linda mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/f1_040907.pdf · f1_040907...

29
Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Linda Mannila 4.9.2007

Upload: lelien

Post on 02-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

Grundkurs i programmering - introGrundkurs i programmering - intro

Linda Mannila 4.9.2007Linda Mannila 4.9.2007

Page 2: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 3: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 4: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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 ☺

Page 5: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

Kursens uppläggningKursens uppläggning

l Föreläsningarl Räkneövningarl Skriftlig tent

l Föreläsningarl Räkneövningarl Skriftlig tent

Page 6: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 7: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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!

Page 8: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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Ö

Page 9: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

KurssidaKurssida

http://www.abo.fi/~linda.mannila/proggk07http://www.abo.fi/~linda.mannila/proggk07

Down to business... föreläsning #1

Page 10: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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”

Page 11: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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, ...)

Page 12: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 13: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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)

Page 14: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 15: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 16: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 17: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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)

Page 18: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 19: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 20: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 21: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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.

Page 22: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 23: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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)

Page 24: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 25: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

IDLE - Integrated DeveLopment Environment

IDLE - Integrated DeveLopment Environment

Python prompten

Page 26: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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

Page 27: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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...

Page 28: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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...

Page 29: Linda Mannila 4.9 - users.abo.fiusers.abo.fi/lgrandel/proggk07/forel1/F1_040907.pdf · F1_040907 Author: Linda Grandell Created Date: 8/30/2007 1:49:16 PM

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?