729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

Relevanta dokument
729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 3 Jody Foo,

Föreläsning 2 Programmeringsteknik och C DD1316

729G04 Programmering och diskret matematik

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Föreläsning 5 Mer om funktioner, villkor

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

729G04 Programmering och diskret matematik

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

Språket Python - Del 1 Grundkurs i programmering med Python

TDDE44 Programmering, grundkurs

729G04 Programmering och diskret matematik. Föreläsning 7

Grundläggande datalogi - Övning 1

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

729G04 Programmering och diskret matematik. Python 3: Loopar

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Övning2. Variabler. Data typer

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

Grundläggande databehandling ht 2005

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo

DD1314 Programmeringsteknik

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Klassdeklaration. Metoddeklaration. Parameteröverföring

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Användarhandledning Version 1.2

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Pythons standardbibliotek

Logik och kontrollstrukturer

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 1 Jody Foo,

TDIU01 - Programmering i C++, grundkurs

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Uppgifter teknik HT17 (uppdaterad v. 40)

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

MicroPython Ett textbaserad programmeringsspråk för Micro:bit

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 1 Jody Foo,

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

Extramaterial till Matematik Y

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

Programmeringsteknik I

Introduktion till programmering SMD180. Föreläsning 7: Strängar

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Introduktion till programmering SMD180. Föreläsning 8: Listor

MUDDYCARDS 729G04 PYTHON 1. Positivt. Negativt. JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden

Tentamen Grundläggande programmering

Objektorienterad Programmering (TDDC77)

F4. programmeringsteknik och Matlab

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00

729G04 Programmering och diskret matematik

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Teori: Variabler En variabel har fyra grundläggande egenskaper: Namn, Typ, Värde och Synlighet.

SMD 134 Objektorienterad programmering

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Selektion och iteration

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

C++ - En introduktion

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

729G04 Programmering och diskret matematik

Repetition C-programmering

Programmering grundkurs

Funktioner. Linda Mannila

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

729G74 - IT och programmering, grundkurs. Dugga.

Classes och Interfaces, Objects och References, Initialization

Visual Basic, en snabbgenomgång

TDDE44 Programmering, grundkurs

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Exempel på ett litet Ada-program

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Planering av ett större program, del 2 - for och listor. Linda Mannila

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

Programmering för språkteknologer I, VT2012. Rum

Ordlistor, filhantering och ut på webben. Linda Mannila

Tentamen i Introduktion till programmering

Objektorienterad Programmering (TDDC77)

Dataabstraktion. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Föreläsning 3: Booleans, if, switch

Digitalt lärande och programmering i klassrummet

Transkript:

729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Föreläsningsöversikt Kursinfo: återkoppling Muddy Cards och kompletteringar Diskret matematik Python: Programmering som informationsbearbetning Ändra programbeteende baserat på information (villkor och jämförelser) Bearbetning av sekventiell information (loopar och data i listor)

Återkoppling Muddy Cards (sammanfattning) Överlag lagom tidsåtgång (med variationer både upp och ner mellan svar) Givande/roligt/bra moment Tröskel som nybörjare Exempel till diskret matematik Vägledning till resurser "Jag lär mig", förståelse Viss otydlighet/förvirrande upplägg

Programmering som informationsbearbetning

Repetition av datatyper i Python heltal (integer), int exempel: 5 flyttal (floating point numbers), float exempel: 5.0 text (string), str exempel: "hejsan" lista (list), list exempel: [1, "1", []]

Repetition av funktioner i Python Definiera funktion med hjälp av nyckelordet def En definierad funktion måste ha ett namn En funktion kan ta emot noll eller fler namngivna argument En funktion returnerar alltid ett värde, om inget returneras explicit, returneras värdet None

Exempel som block

Exempel som python-kod def concatenate_strings(s1, s2): return s1 + s2

Ändra programflöde baserat på information

Nya begrepp från exemplet Jämförelse: "Är är X lika med Y?" Svar på jämförelse: ja/nej sant/falskt

Nya begrepp från exemplet Villkor: om... gör det här Villkor: om... gör det här, men om... gör det där istället Villkor: om... gör det här, men om... gör det där istället, om inget stämmer, gör något annat.

Jämförelser Lika med Inte lika med Större än Mindre än Större eller lika med Mindre eller lika med Svaret på en jämförelse är "ja" eller "nej". Mer formellt säger vi att jämförelsen är sann eller falsk

Jämförelser i Python Lika med: == Inte lika med:!= Större än: > Mindre än: < Större eller lika med: >= Mindre eller lika med: <= sant: True falskt: False

Ny datatyp: sanningsvärde boolskt värde, (eng. boolean)

Villkor i naturligt språk Om det är blött på marken, ta med dig ett paraply. Om det är blött på marken, ta med dig ett paraply. Om det är soligt ute, ta inte med dig ett paraply. Om Stor-affären har öppet, köp en mugg, om Lill-affären har öppet, köp en penna. Annars, köp en pärlplatta. Vad finns det för problem med dessa uttalanden?

Köp 12 ägg från affären, om de har bananer, köp 3. Hur många ägg köpte Pikachu?

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 1: X, Y, Z är sanningsvärden och P, Q, R är instruktioner. "Om X är sant, utför P". Om X gör P Om Y gör Q Om Z gör R Här kan utfallet bli att inga, någon eller alla av P, Q, R utförs.

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 1 Om X gör P Om Y gör Q Om Z gör R if x: p if y: q if z: r

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 1 som pythonexempel if 6 < 3: print("i am older than you!") if "hej" == "hej": print("hello, hello") if True: print("the Truth is out there")

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 2: X, Y, Z är sanningsvärden och P, Q, R är instruktioner. "Om X är sant, utför P, annars (dvs om inte X är sant), utför Q". Om X gör P, annars, gör Q Här kan utfallet bli att antingen P eller Q utförs.

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 2 Om X gör P, annars, gör Q if x: p else: q

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 2 som pythonexempel if 6 < 3: print("i am older than you!") else: print("hello, hello")

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 3: X, Y är sanningsvärden och P, Q är instruktioner. "Om X är sant, utför P, men om X inte är sant, kolla om Y är sant, i så fall, gör Q". Om X gör P, annars, om Y gör Q Här kommer antingen P eller Q, eller ingen av P eller Q att göras. Både P och Q kommer inte att göras.

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 3 Om Y gör Q, annars, om Z gör R if y: q elif z: r

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 3 som pythonexempel if 6 < 3: print("i am older than you!") elif "hej" == "hej": print("hello, hello")

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 4: X, Y, Z är sanningsvärden och P, Q, R är instruktioner. "Om X är sant, utför P, men om X inte är sant, kolla om Y är sant, i så fall, gör Q, men om varken X eller Y är sant, gör R istället". Om X gör P, annars, om Y gör Q, annars gör R. Här kommer exakt en av P, Q och R att utföras.

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 4 Om X gör P, annars om Y, gör Q, annars, gör R if x: p elif y: q else: r

Behöver formalisera för att göra det tydligare vad vi menar Formell struktur 4 som pythonexempel if 6 < 3: print("i am older than you!") elif "hej"!= "hej": print("hello, hello") else: print("i'll be here for you")

Ändra programflöde baserat på information

Ändrat programflöde baserat på information def rate_my_name(name): output = 0 if name == 'Aaa': output = 10 elif name == 'Bbb': output = 20 else: output = 5 return output print(rate_my_name('jody'))

Exempel på trinket.io https://trinket.io/blocks/dbec76430c

Bearbetning av en sekvens av värden Scenario: en robot ska titta på möjliga saker den skulle kunna göra.

Bearbetning av en sekvens av värden

Loop i Python Börja med nyckelordet while följt av ett sanningsvärde Loopen fortsätter så länge som sanningsvärdet är sant

Loop-exempel while False: print("kommer aldrig att hända.") while True: print("kommer aldrig att sluta.") counter = 0 while counter < 5: print("hur många gånger skrivs jag ut?") counter = counter + 1

Bearbetning av en sekvens av värden

Ändrat programflöde baserat på information task_list = ['uppgradera minnesstorlek', 'kolla nya skalfärger', 'ladda batterierna', 'utforska nya rummet', 'kom på nytt namn till mig själv'] counter = 1 while counter <= len(task_list): task = task_list[int(counter - 1)] print(str('undrar om jag ska ') + str(task)) counter = counter + 1

Exempel på trinket.io https://trinket.io/blocks/4c4c740880

Bearbetning av en sekvens av värden Scenario: En robot som ska bestämma sig för vad den ska göra

Robot som ska bestämma sig för något att göra

Ändrat programflöde baserat på information task_list = [['uppgradera minnesstorlek', 4], ['kolla nya skal-färger', 1], ['ladda batterierna', 5], ['utforska nya rummet', 2], ['kom på nytt namn till mig själv', 3]] def decide_what_to_do(input_task_list): global what_to_do, counter, todo_item, task_name, todo_priority what_to_do = ['rulla tummarna', -1] counter = 1 while counter <= len(input_task_list): todo_item = input_task_list[int(counter - 1)] task_name = todo_item[0] todo_priority = todo_item[-1] if todo_priority > what_to_do[-1]: what_to_do = todo_item counter = counter + 1 return what_to_do print(str('jag ska komma ihåg att ') + str((decide_what_to_do(task_list))[0]))

Exempel på trinket.io https://trinket.io/blocks/7acb826d5c

Föreläsningssummering: Nya begrepp och termer Jämförelser: ==,!=, <, >, <=, >= Sanningsvärden: True, False Villkorssatser: if, if-else, if-elif, if-elif-else Villkorlig loop: while