1. Programmeringsintro
Programmeringsteknik
(27 mellanliggande versioner visas inte.) | |||
Rad 1: | Rad 1: | ||
+ | {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | ||
+ | | style="border-bottom:1px solid #797979" width="5px" | | ||
+ | {{Mall:Vald flik|[[1. Programmeringsintro|Teori]]}} | ||
+ | {{Mall:Ej vald flik|[[1. Kom igång med Python|Kom igång med Python]]}} | ||
+ | {{Mall:Ej vald flik|[[1. Övningar|Övningar]]}} | ||
+ | | style="border-bottom:1px solid #797979" width="100%"| | ||
+ | |} | ||
+ | |||
+ | |||
+ | ==Vad är att programmera?== | ||
+ | |||
+ | Programmering är ett hantverk, där programmeraren är i en ständig lärandeprocess. | ||
+ | |||
+ | När man lär sig programmera är det främst tre olika saker man lär sig: | ||
+ | * Man lär sig ett programmeringsspråk och därigenom mer om hur datorer fungerar. | ||
+ | * Man lär sig ord för att beskriva program så att man kan tala med andra programmerare. | ||
+ | * Man lär sig problemlösning samt att dela upp problem i lagom stora bitar. | ||
+ | |||
+ | Det första känns ganska naturligt för de flesta att man ska lära sig (även om det kan vara svårt att lära sig programspråket), men det andra är något som många missar att det ingår: man kan inte diskutera program utan att lära sig språket om programmering. | ||
+ | |||
+ | Programmering är ofta en social aktivitet (parprogrammering, stora utvecklingsteam, open source-utveckling, etc.) där det är viktigt att kunna tala med de som är i samma projekt och även med beställarna som ofta har endast en vag uppfattning om de möjligheter som finns. Även om man inte arbetar som programmerare så är det bra att kunna tala språket för att kunna kommunicera med programmerare för att på ett rätt och riktigt sätt kunna beställa olika IT-lösningar. | ||
+ | |||
+ | Att lära sig grunderna i programmering ger även en uppfattning om vilka möjligheter och begränsningar som finns i tekniken för att kunna sätta rimliga kravspecifikationer på nya system. | ||
+ | |||
==Vad är en dator?== | ==Vad är en dator?== | ||
- | + | När man i vardagligt tal pratar om en dator så avses oftast en persondator, d.v.s. en dator avsedd för en mänsklig användare och som är antingen stationär eller bärbar. Den består väsentligen av ett tangentbord, en mus och en skärm som ibland sitter i samma låda som själva datorn. I mer tekniska sammanhang menar man ibland lådan med datorn och ibland endast processorn som sitter i lådan. | |
- | en mus och en skärm som ibland sitter i samma låda som själva | + | |
- | datorn. I tekniska sammanhang menar man ibland lådan med datorn | + | <table> |
- | och ibland endast processorn som sitter i lådan. | + | <tr><td> |
+ | [[Bild:797711.jpg]] | ||
+ | </td></tr> | ||
+ | <tr><td> | ||
+ | ''Minneskort med minnen (RAM) i svart'' | ||
+ | </td></tr> | ||
+ | </table> | ||
+ | |||
+ | Uppgifter som man brukar se i annonser om datorer är t.ex. | ||
+ | * Datorhastighet som mäts i GHz (GigaHertz), dvs miljarder operationer per sekund | ||
+ | * RAM-storlek som mäts i GB (GigaByte), dvs miljarder byte | ||
+ | |||
+ | En bit är den minsta minnesenheten på en dator och innehåller en etta eller en nolla. En byte består av en sekvens av bitar, vanligen åtta, och kan t.ex. lagra ett tal mellan 0 och 255. Bitar grupperas i bytes för att öka effektiviteten i datorns hårdvara. | ||
<table> | <table> | ||
Rad 25: | Rad 61: | ||
stängs av). | stängs av). | ||
- | + | Ibland hör man också benämningen ”data”. I IT-sammanhang betyder data endast information. Personer som använder data (eller ännu värre: ”datan”) för att referera till själva datorn upplevs ofta som mindre kunniga (se t ex Maria Bloms film Masjävlar) av de som skiljer på datorer och informationen som datorerna behandlar. De kunniga kan också använda uttryck som ”datan” och ”min data”, men då som slanguttryck. Tänk på det som att en dator hanterar data. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Ibland hör man benämningen | + | |
- | data endast information. Personer som använder data (eller | + | |
- | ännu värre: | + | |
- | upplevs ofta som mindre kunniga (se t ex Maria Bloms film | + | |
- | Masjävlar) av de som skiljer på datorer och informationen | + | |
- | som datorerna behandlar. | + | |
Om du glömmer bort vad ett visst ord betyder kan du slå upp det | Om du glömmer bort vad ett visst ord betyder kan du slå upp det | ||
i vår [[ordlista]] över pythontermer. | i vår [[ordlista]] över pythontermer. | ||
- | |||
- | |||
- | <em>På många ställen i den här kursen finns det testfrågor | ||
- | som du kan använda för att kolla om du har förstått. | ||
- | Prova först att lösa uppgifterna på egen hand. | ||
- | Det går också utmärkt att diskutera frågorna på kursens forum. | ||
- | Här är en första uppmjukningsfråga.</em> | ||
- | |||
- | '''Vad är en dator?''' | ||
- | |||
- | # Detsamma som en processor med minne. | ||
- | # Detsamma som en processor, skärm, dator, tangentbord och mus. | ||
- | # Detsamma som en data. | ||
- | |||
- | '''Svar:''' -><span style="color:white">2. Detsamma som en processor, skärm, dator, tangentbord och mus.</span><- | ||
- | |||
- | <em>Lösningen till uppgiften är skriven med osynligt bläck på föregående rad. Om du vill titta på svaret så håller du ned vänster musknapp och markerar den osynliga texten som finns mellan tecknen -> och <-.</em> | ||
- | |||
==Vad är ett program?== | ==Vad är ett program?== | ||
- | Ett (dator | + | Ett (dator)program är en uppsättning instruktioner som styr vad datorn ska göra. Vanligen finns det indata (t.ex. knapp- eller mustryckningar) som behandlas av datorn enligt instruktionerna i programmet vilket resulterar i utdata (text, diagram, bilder) på skärmen. |
- | vad datorn ska göra. Vanligen finns det indata (t ex knapp- | + | |
- | eller mustryckningar) som behandlas av datorn enligt | + | |
- | instruktionerna i programmet vilket resulterar i utdata | + | |
- | ( | + | |
[[Bild:791439.jpg]]<br/> | [[Bild:791439.jpg]]<br/> | ||
Rad 100: | Rad 84: | ||
variabler, instruktionerna kallas ofta för satser. Satserna är | variabler, instruktionerna kallas ofta för satser. Satserna är | ||
det som avgör hur variablerna manipuleras (dvs ändrar värde). | det som avgör hur variablerna manipuleras (dvs ändrar värde). | ||
- | |||
- | |||
- | '''Vad är ett datorprogram? (Det kan finnas flera riktiga svar.)''' | ||
- | |||
- | # Något som styr en dator. | ||
- | # Detsamma som en processor, skärm, tangentbord och mus. | ||
- | # Något som styr hu en dator manipulerar indata för att presentera utdata. | ||
- | # En samling obegripliga ord i godtycklig ordning. | ||
- | # En samling av variabler och satser. | ||
- | |||
- | '''Svar:'''<span style="color:white"> 1, 3 och 5 är alla rätt.</span> | ||
- | |||
==Vad är ett programspråk?== | ==Vad är ett programspråk?== | ||
- | En dator förstår endast sitt eget datorspråk | + | En dator förstår endast sitt eget datorspråk (maskinkod, binärkod) som är mycket svårförståeligt även för de flesta erfarna programmerare. För att underlätta för alla som programmerar skriver man därför vanligen program i ett programspråk som t.ex. Java, C++ eller som vi ska använda i denna kurs: Python. För att kunna få datorn att förstå och utföra program skrivna i programspråk krävs det att man översätter (kompilerar, tolkar, interpreterar) det till datorns eget språk. |
- | mycket | + | |
- | För att underlätta för alla som programmerar skriver man därför | + | |
- | vanligen program i ett programspråk som t ex Java, C++ eller som | + | |
- | vi ska använda i denna kurs: Python. För att kunna få datorn att | + | |
- | förstå och utföra program skrivna i | + | |
- | översätter (kompilerar, tolkar, interpreterar) det till datorns | + | |
- | eget språk. | + | |
+ | Kod skrivs vanligen i en editor (textredigerare) som t.ex. notepad++, emacs eller Vim. Till skillnad från ordbehandlare (som t.ex. Word) så hanterar en editor text som data, den innehåller inte formaterad text. Den har underlättande egenskaper så som automatisk färgsättning av texten (för att underlätta läsandet), autokomplettering (för att minska skrivandet och stavfel) och parentesmatchning. | ||
- | + | IDE's (Integrated Develop Environment, integrerade utvecklingsmiljöer) innehåller vanligtvis såväl editor som kompilator och avlusare (debugger, används för att hitta fel i program). Några vanliga är Eclipse, Netbeans, Microsoft Visual Studio, Xcode samt IDLE. | |
- | För att kunna läsa den här kursen måste du installera Python | ||
- | på din dator. Python finns tillgängligt för många olika | ||
- | operativsystem, bland annat Linux/Unix, Mac OS X och Windows, | ||
- | och är enkelt att installera. På webbplatsen [http://www.python.org python.org] | ||
- | hittar du all information du behöver för att kunna ladda ner och | ||
- | installera den senaste verionsen av Python på din dator. | ||
- | + | ==Test 1== | |
- | + | ||
- | + | Börja med att presentera dig genom att skriva ett | |
- | + | inlägg under rubriken Intro i kursens forum. Om du inte har lust | |
- | + | att berätta om dig själv så kan du alltid skriva ett kort inlägg: | |
- | + | <pre>Hej, jag heter Stefan och har skostorlek 41.</pre> | |
- | == | + | Du får gärna ljuga om skostorleken med det är bra om namnet stämmer! |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ett | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | <pre> | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | får | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
Nu är det dags att göra kursens första test. | Nu är det dags att göra kursens första test. | ||
Rad 352: | Rad 107: | ||
Testet rättas automatiskt och du har möjlighet att göra | Testet rättas automatiskt och du har möjlighet att göra | ||
om testet flera gånger om du inte lyckas på första försöket. | om testet flera gånger om du inte lyckas på första försöket. | ||
+ | |||
+ | Om det är något som du undrar över i det här avnsnittet eller | ||
+ | i testet så är det fritt fram att fråga och diskutera i kursens forum. | ||
+ | Men undvik att avslöja de rätta svaren på testfrågorna! |
Nuvarande version
Teori | Kom igång med Python | Övningar |
Innehåll |
Vad är att programmera?
Programmering är ett hantverk, där programmeraren är i en ständig lärandeprocess.
När man lär sig programmera är det främst tre olika saker man lär sig:
- Man lär sig ett programmeringsspråk och därigenom mer om hur datorer fungerar.
- Man lär sig ord för att beskriva program så att man kan tala med andra programmerare.
- Man lär sig problemlösning samt att dela upp problem i lagom stora bitar.
Det första känns ganska naturligt för de flesta att man ska lära sig (även om det kan vara svårt att lära sig programspråket), men det andra är något som många missar att det ingår: man kan inte diskutera program utan att lära sig språket om programmering.
Programmering är ofta en social aktivitet (parprogrammering, stora utvecklingsteam, open source-utveckling, etc.) där det är viktigt att kunna tala med de som är i samma projekt och även med beställarna som ofta har endast en vag uppfattning om de möjligheter som finns. Även om man inte arbetar som programmerare så är det bra att kunna tala språket för att kunna kommunicera med programmerare för att på ett rätt och riktigt sätt kunna beställa olika IT-lösningar.
Att lära sig grunderna i programmering ger även en uppfattning om vilka möjligheter och begränsningar som finns i tekniken för att kunna sätta rimliga kravspecifikationer på nya system.
Vad är en dator?
När man i vardagligt tal pratar om en dator så avses oftast en persondator, d.v.s. en dator avsedd för en mänsklig användare och som är antingen stationär eller bärbar. Den består väsentligen av ett tangentbord, en mus och en skärm som ibland sitter i samma låda som själva datorn. I mer tekniska sammanhang menar man ibland lådan med datorn och ibland endast processorn som sitter i lådan.
Minneskort med minnen (RAM) i svart |
Uppgifter som man brukar se i annonser om datorer är t.ex.
- Datorhastighet som mäts i GHz (GigaHertz), dvs miljarder operationer per sekund
- RAM-storlek som mäts i GB (GigaByte), dvs miljarder byte
En bit är den minsta minnesenheten på en dator och innehåller en etta eller en nolla. En byte består av en sekvens av bitar, vanligen åtta, och kan t.ex. lagra ett tal mellan 0 och 255. Bitar grupperas i bytes för att öka effektiviteten i datorns hårdvara.
Löstagen processor (i svart) med sex rader med kontakter runt om. |
Processorn sitter fast på ett kretskort, ofta kallat moderkortet och är kopplat till flera olika minnen. Viktigaste minnena är registren i processorn, där alla beräkningar och tolkningar (t ex om ett tal är större än ett annat) sker, RAM-minnet (Random Access Memory) där program ligger när de körs, och skivminnet (ofta kallat hårddisk) där program och dokument lagras för att vara kvar även när datorn har stängts av (till skillnad från RAM-minnet som töms varje gång strömmen stängs av).
Ibland hör man också benämningen ”data”. I IT-sammanhang betyder data endast information. Personer som använder data (eller ännu värre: ”datan”) för att referera till själva datorn upplevs ofta som mindre kunniga (se t ex Maria Bloms film Masjävlar) av de som skiljer på datorer och informationen som datorerna behandlar. De kunniga kan också använda uttryck som ”datan” och ”min data”, men då som slanguttryck. Tänk på det som att en dator hanterar data.
Om du glömmer bort vad ett visst ord betyder kan du slå upp det i vår ordlista över pythontermer.
Vad är ett program?
Ett (dator)program är en uppsättning instruktioner som styr vad datorn ska göra. Vanligen finns det indata (t.ex. knapp- eller mustryckningar) som behandlas av datorn enligt instruktionerna i programmet vilket resulterar i utdata (text, diagram, bilder) på skärmen.
En analogi är stickning där samma indata (garn) med ett program kan bli till utdata i form av ett par sockor och med ett annat program till en tröja.
Precis som själva datorn består ett datorprogram väsentligen av två saker: minne och instruktioner. Minnet kallas för variabler, instruktionerna kallas ofta för satser. Satserna är det som avgör hur variablerna manipuleras (dvs ändrar värde).
Vad är ett programspråk?
En dator förstår endast sitt eget datorspråk (maskinkod, binärkod) som är mycket svårförståeligt även för de flesta erfarna programmerare. För att underlätta för alla som programmerar skriver man därför vanligen program i ett programspråk som t.ex. Java, C++ eller som vi ska använda i denna kurs: Python. För att kunna få datorn att förstå och utföra program skrivna i programspråk krävs det att man översätter (kompilerar, tolkar, interpreterar) det till datorns eget språk.
Kod skrivs vanligen i en editor (textredigerare) som t.ex. notepad++, emacs eller Vim. Till skillnad från ordbehandlare (som t.ex. Word) så hanterar en editor text som data, den innehåller inte formaterad text. Den har underlättande egenskaper så som automatisk färgsättning av texten (för att underlätta läsandet), autokomplettering (för att minska skrivandet och stavfel) och parentesmatchning.
IDE's (Integrated Develop Environment, integrerade utvecklingsmiljöer) innehåller vanligtvis såväl editor som kompilator och avlusare (debugger, används för att hitta fel i program). Några vanliga är Eclipse, Netbeans, Microsoft Visual Studio, Xcode samt IDLE.
Test 1
Börja med att presentera dig genom att skriva ett inlägg under rubriken Intro i kursens forum. Om du inte har lust att berätta om dig själv så kan du alltid skriva ett kort inlägg:
Hej, jag heter Stefan och har skostorlek 41.
Du får gärna ljuga om skostorleken med det är bra om namnet stämmer!
Nu är det dags att göra kursens första test. Under rubriken Examination på kursens förstasida hittar du samtliga test och inlämningsuppgifter. Testet rättas automatiskt och du har möjlighet att göra om testet flera gånger om du inte lyckas på första försöket.
Om det är något som du undrar över i det här avnsnittet eller i testet så är det fritt fram att fråga och diskutera i kursens forum. Men undvik att avslöja de rätta svaren på testfrågorna!