linda mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/f1_040907.pdf · f1_040907...
TRANSCRIPT
Grundkurs i programmering - introGrundkurs i programmering - intro
Linda Mannila 4.9.2007Linda Mannila 4.9.2007
Dagens föreläsningDagens föreläsning
l Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc.
l Hur arbetar en dator?l Hur vi får datorn att förstå oss ochlösa de problem vi vill?
l Lite om programmeringsspråkl Introduktion till Python
l Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc.
l Hur arbetar en dator?l Hur vi får datorn att förstå oss ochlösa de problem vi vill?
l Lite om programmeringsspråkl Introduktion till Python
Kursen i ett nötskalKursen i ett nötskal
l Kräver inga förkunskaper, vi börjar från början
l Innehålll Grundläggande programstrukturerl Planering och design av programl Problemlösningl Testning och felsökningl Text- och filhanteringl Hantering av undantag
l Kräver inga förkunskaper, vi börjar från början
l Innehålll Grundläggande programstrukturerl Planering och design av programl Problemlösningl Testning och felsökningl Text- och filhanteringl Hantering av undantag
Kursens målKursens mål
l Efter kursen kommer du attl Ha lärt dig att tänka som en informationsbehandlare/datatekniker
l Förstå idén bakom programmeringl Kunna planera, designa och skriva program – även ”coola” sådana
l Klara av att testa och debugga kodl Kunna läsa och förstå kod som andra har skrivit
l Efter kursen kommer du attl Ha lärt dig att tänka som en informationsbehandlare/datatekniker
l Förstå idén bakom programmeringl Kunna planera, designa och skriva program – även ”coola” sådana
l Klara av att testa och debugga kodl Kunna läsa och förstå kod som andra har skrivit
Men du kommer inte att vara en fulländad programmerare... Sorry ☺
Kursens uppläggningKursens uppläggning
l Föreläsningarl Räkneövningarl Skriftlig tent
l Föreläsningarl Räkneövningarl Skriftlig tent
FöreläsningarFöreläsningar
l Period 1 (v. 36-42)l Tisdag 8.30 – 10.00
l Period 2 (v. 44-49) l Tisdag 8.30 – 10.00l Torsdag 8.30 – 10.00
l Sista föreläsningen 4.12l Auditorium Gamma
l Period 1 (v. 36-42)l Tisdag 8.30 – 10.00
l Period 2 (v. 44-49) l Tisdag 8.30 – 10.00l Torsdag 8.30 – 10.00
l Sista föreläsningen 4.12l Auditorium Gamma
RäkneövningarRäkneövningar
l Obligatoriska l Sex stycken á 10 poängl Görs i datorklass under handledningl Lämnas in för korrigeringl För att få tenträtt måste du göra minst 50% av varje räkneövning (dvs. totalt 30 poäng)
l Satsa på räkneövningarnal Ni lär er massor!l Pluspoäng i tenten!
l Obligatoriska l Sex stycken á 10 poängl Görs i datorklass under handledningl Lämnas in för korrigeringl För att få tenträtt måste du göra minst 50% av varje räkneövning (dvs. totalt 30 poäng)
l Satsa på räkneövningarnal Ni lär er massor!l Pluspoäng i tenten!
TentTent
l Med penna och papperl Maxpoäng 30, 15 krävs för godkäntl Kurstenter (OBS! Fel i tryckta utbprog)
l Nr 1: fre 14.12.07l Nr 2: fre 18.01.08
l Pluspoäng från räkne-övningarna till godkänttentresultat
l Med penna och papperl Maxpoäng 30, 15 krävs för godkäntl Kurstenter (OBS! Fel i tryckta utbprog)
l Nr 1: fre 14.12.07l Nr 2: fre 18.01.08
l Pluspoäng från räkne-övningarna till godkänttentresultat
351-60245-50
139-44030-38
BonusRÖ
KurssidaKurssida
http://www.abo.fi/~linda.mannila/proggk07http://www.abo.fi/~linda.mannila/proggk07
Down to business... föreläsning #1
Vad är en dator?Vad är en dator?
l ”a machine that stores and manipulates information under the control of a changeable program”
l ”a machine that stores and manipulates information under the control of a changeable program”
Vad är en dator?Vad är en dator?
l ”a machine that stores and manipulates information under the control of a changeable program”l Indata à Utdatal Inte unikt för datorer (räknemaskin, bensinpump, mikrovågsugn, ...)
l ”a machine that stores and manipulates information under the control of a changeable program”l Indata à Utdatal Inte unikt för datorer (räknemaskin, bensinpump, mikrovågsugn, ...)
Vad är en dator?Vad är en dator?
l ”a machine that stores and manipulates information under the control of a changeable program”l Skiljer datorer från bensinpumpar etc
lDatorer kan göra olika saker beroende påvilket program de kör
l En bensinpump kan inte mitt i allt börja fungera som en Nintendo Gameboy eller en mikrovågsugn som en texteditor à byggda för att utföra en enda uppgift
l ”a machine that stores and manipulates information under the control of a changeable program”l Skiljer datorer från bensinpumpar etc
lDatorer kan göra olika saker beroende påvilket program de kör
l En bensinpump kan inte mitt i allt börja fungera som en Nintendo Gameboy eller en mikrovågsugn som en texteditor à byggda för att utföra en enda uppgift
Vad är en dator?Vad är en dator?
l Processorn (CPU) bearbetar information (data)
l Internminnet (RAM) lagrar program ochdata
l Input/output-enheterna (IO) kommunicerarmed omvärlden, t.ex. tangentbord, skärm, hårddisk, skrivare, etc.
l Processorn (CPU) bearbetar information (data)
l Internminnet (RAM) lagrar program ochdata
l Input/output-enheterna (IO) kommunicerarmed omvärlden, t.ex. tangentbord, skärm, hårddisk, skrivare, etc.
Indata (via inputenhet)
Bearbetning(processor och interminne)
Utdata(via outputenhet)
Vad är en dator?Vad är en dator?
l Hårdvara: Fysiska delar i datorn(skärm, CPU, etc.), elektronik ochsladdar
l Mjukvara: Serie av instruktioner till CPU som styr hårdvaran så att den löser något problem. Program.
l Mjukvaran styr hårdvaran
l Hårdvara: Fysiska delar i datorn(skärm, CPU, etc.), elektronik ochsladdar
l Mjukvara: Serie av instruktioner till CPU som styr hårdvaran så att den löser något problem. Program.
l Mjukvaran styr hårdvaran
ProgrammeringProgrammering
l Att skapa mjukvaral Kräver en förmåga att se större helheter samtidigt som man är petnoga med alla detaljer
l Att skapa mjukvaral Kräver en förmåga att se större helheter samtidigt som man är petnoga med alla detaljer
Varför lära sigprogrammera?Varför lära sig
programmera?
l Väsentlig del av informationsbehandling/ datateknik à viktig för alla som vill bli IT-proffs
l Men även nyttigt för andral Icke-programmerare känner sig ofta utan kontroll då det kommer till datorer
l Programmerare har kontroll
l Utmanande men väldigt roligt! l Utvecklar andra färdigheter, t.ex. problemlösning
l Industrin behöver programmerare
l Väsentlig del av informationsbehandling/ datateknik à viktig för alla som vill bli IT-proffs
l Men även nyttigt för andral Icke-programmerare känner sig ofta utan kontroll då det kommer till datorer
l Programmerare har kontroll
l Utmanande men väldigt roligt! l Utvecklar andra färdigheter, t.ex. problemlösning
l Industrin behöver programmerare
ProgrammeringsspråkProgrammeringsspråk
l Datorn förstår enbart ettor (1) och nollor (0)l En dator förstår inte tvetydigheter ellerunderförstådda saker
l En dator gör ingenting automatiskt!l Programmerare (vi) måste instruera datorntill allt
l Kommunikationen av instruktioner måstevara precis och exakt (som ettor och nollor)
l Datorn förstår enbart ettor (1) och nollor (0)l En dator förstår inte tvetydigheter ellerunderförstådda saker
l En dator gör ingenting automatiskt!l Programmerare (vi) måste instruera datorntill allt
l Kommunikationen av instruktioner måstevara precis och exakt (som ettor och nollor)
ProgrammeringsspråkProgrammeringsspråk
l Naturligt språk?l Programmeringsspråk
l Exakt notationl Syntax: formatl Semantik: mening, betydelse
l Naturligt språk?l Programmeringsspråk
l Exakt notationl Syntax: formatl Semantik: mening, betydelse
Olika typer av programmeringsspråk
Olika typer av programmeringsspråk
l Maskinspråkl Bara ettor och nollorl Maskinberoende
l Assemblerspråk (lågnivåspråk)l Maskinnäral Maskinberoende
l Högnivåspråkl Måste översättas för att datorn skall förstå kodenl Maskinoberoendel Kompilerade eller tolkade
l Maskinspråkl Bara ettor och nollorl Maskinberoende
l Assemblerspråk (lågnivåspråk)l Maskinnäral Maskinberoende
l Högnivåspråkl Måste översättas för att datorn skall förstå kodenl Maskinoberoendel Kompilerade eller tolkade
Kompilerade språkKompilerade språk
l KompilatorEtt program som översätter ett program i ett högnivå-språk till motsvarande program i maskinspråk för en given dator
l KompilatorEtt program som översätter ett program i ett högnivå-språk till motsvarande program i maskinspråk för en given dator
Tolkade språkTolkade språk
l TolkEtt program som ”låtsas” att datorn förstår högnivåspråk. Analyserar och exekverar källkoden en instruktion i taget – inte hela programmet på en gång som en kompilator.
l TolkEtt program som ”låtsas” att datorn förstår högnivåspråk. Analyserar och exekverar källkoden en instruktion i taget – inte hela programmet på en gång som en kompilator.
Kompilerade vs. tolkade språkKompilerade vs. tolkade språk
l Kompilerade språkl Program översätts fullständigt på en gångl Ett kompilerat program kan köras om och om igen utan att man behöver blanda in kompilatorn eller källkoden
l Snabbare program
l Tolkade språkl Program översätts steg för stegl Tolken och källkoden behövs varje gång programmet skall köras
l Flexiblare programutveckling, program kan köras interaktivt
l Kompilerade språkl Program översätts fullständigt på en gångl Ett kompilerat program kan köras om och om igen utan att man behöver blanda in kompilatorn eller källkoden
l Snabbare program
l Tolkade språkl Program översätts steg för stegl Tolken och källkoden behövs varje gång programmet skall köras
l Flexiblare programutveckling, program kan köras interaktivt
ProgrammeringsspråkProgrammeringsspråk
l Fortran (1950-talet)l COBOL (1959)l Basic (1964)l Pascal (1970)l C (1970-talet)l C++ (1983)l Python (1991)l Java (1995)
l Fortran (1950-talet)l COBOL (1959)l Basic (1964)l Pascal (1970)l C (1970-talet)l C++ (1983)l Python (1991)l Java (1995)
PythonPython
l Tolkat skriptspråkl Allt mer populärt i industrin
l Google, Yahoo, NASA, Compaq, Philips,...
l Förinstallerat på Mac och Linux (kolla versionen!)
l Ladda ner från http://www.python.org/download
l Senaste versionen 2.5.1
l Tolkat skriptspråkl Allt mer populärt i industrin
l Google, Yahoo, NASA, Compaq, Philips,...
l Förinstallerat på Mac och Linux (kolla versionen!)
l Ladda ner från http://www.python.org/download
l Senaste versionen 2.5.1
IDLE - Integrated DeveLopment Environment
IDLE - Integrated DeveLopment Environment
Python prompten
Interaktivt lägeInteraktivt läge
l Perfekt för att testa enskilda satser / korta programsnuttar
l Python prompten >>> l anger att interaktivt läge körs
l Exempel...l >>> print ”Hello World”
l >>> print 2+3
l >>> print ”2+3 =”, 2+3
l Perfekt för att testa enskilda satser / korta programsnuttar
l Python prompten >>> l anger att interaktivt läge körs
l Exempel...l >>> print ”Hello World”
l >>> print 2+3
l >>> print ”2+3 =”, 2+3
SkriptlägeSkriptläge
l Kod som skrivs i det interativa läget lagras inte l allt försvinner då tolken stängsl måste skrivas in på nytt om vi vill köra samma program igen
l För att spara program skrivs de i en textfil (.py) som sparasl modul / skript
l Kan sedan köras om och om igen, när som helst
l Exempel...
l Kod som skrivs i det interativa läget lagras inte l allt försvinner då tolken stängsl måste skrivas in på nytt om vi vill köra samma program igen
l För att spara program skrivs de i en textfil (.py) som sparasl modul / skript
l Kan sedan köras om och om igen, när som helst
l Exempel...
Inför nästa veckaInför nästa vecka
l Installera Pythonl Sök upp kursböckerna på nätetl Provkör Python...
l Installera Pythonl Sök upp kursböckerna på nätetl Provkör Python...
ProvkörningProvkörning
a) print ”Att programmera är kul”
b) print 3.0
c) print ”15 i kvadrat är” , 15 * 15
d) print 2.0 + 3.0
e) print ”2” + ”3”
f) print 2 * 3
g) print 2 ** 3
h) print 2 / 3
i) print 2.0 / 3.0
a) print ”Att programmera är kul”
b) print 3.0
c) print ”15 i kvadrat är” , 15 * 15
d) print 2.0 + 3.0
e) print ”2” + ”3”
f) print 2 * 3
g) print 2 ** 3
h) print 2 / 3
i) print 2.0 / 3.0
Starta Python i interaktivt läge och körföljande satser – en i taget. Vad blir resultatet? Varför?
Starta Python i interaktivt läge och körföljande satser – en i taget. Vad blir resultatet? Varför?