729G74 IT och programmering, grundkurs Tema 1, Föreläsning 2 Jody Foo, jody.foo@liu.se
Föreläsningsöversikt Kommande moment Vad är ett program? Vad händer när man kör ett program? Programmeringsspråk Python
Kursinformation Se kurshemsidan. Har du upptäckt att jag missat något? Skicka e-post eller kom förbi mitt kontor. https://www.ida.liu.se/~729g74
Temaupplägg Vecka 1: Introduktion (föreläsning + introduktionsuppgift) Vecka 2: Temats kärna (föreläsning, begreppspresentationer) Vecka 3-4: Praktisk fördjupning (föreläsning, lektion inför temauppgift) Vecka 5: Avslutning (redovisning, inlämning)
Begreppspresentation Varför: sammanfatta och presentera begrepp relaterade till temat. Ni skriver om alla dessa begrepp i Temarapport 1. När: Tema 1, torsdag 14 september Hur Seminariegrupp A-H. Tre par per grupp. Presentation på 10 minuter med Powerpoint/Keynote och projektor Seminariegruppen har möjlighet att ställa frågor till presenterande pargrupp diskussion, inte förhör
Begreppspresentation Vad: Efter presentationstillfället skickar ni era presentationer som PDF till alla andra studenter i er seminariegrupp och till 729g74@ida.liu.se använd filnamn: begrepp1_x_liuid1_liuid2.pdf (byt ut X mot ert parnummer, samt liuid1/2 mot era LiU-IDn) Komplettering: Vid missat seminarium skickas presentation med manus, samt inspelad screencast till medlemmarna i seminariegruppen samt till 729g74@ida.liu.se
Schema för presentationer Salar: A36 (Evelina) och A37 (Jody) 13.15-13.55: Grupp A och Grupp B 14.00-14.40: Grupp C och Grupp D 14.45-15.25: Grupp E och Grupp F 15.30-16.10: Grupp G och Grupp H 16.15-17.00: Grupp I Ta med eventuella adaptrar etc. Skriv på närvarolistan
Pythonuppgifter Uppgifter att göra självständigt. Automatisk rättning Tidsåtgång ~4h
Lektion på fredag, 15/9 Möjlighet till frågor om man fastnat eller undrar över något kring Pythonuppgift 1. Påbörja pythonuppgifterna innan lektionen. Lektionstiden räcker inte för att komma oförberedd. Kl. 10-11: Grupp A, B, C, D Kl. 11-12: Grupp E, F, G, H, I
Uppgifter i diskret matematik Grundläggande notation och begrepp i diskret matematik Släpps under eftermiddagen på kurshemsidan Lämnas in v39 (se kurshemsidan) Max 10 poäng, 7 poäng för godkänt. Tidsåtgång 1-2h
"Offensiv kunskapsinhämtning" Du som student måste delta aktivt i dina universitetsstudier Förvänta dig inte att allt du "måste" lära dig tas upp på föreläsningar. Kurslitteraturen är en del av kursen. Kogvets "Rekommendationer om examination och kursupplägg" (se kandidatprogramsidorna) SOLO-taxonomin. Riktlinjer: Godkänt = Relationell nivå, Väl godkänd = Utvidgat abstrakt
Tema 1 Människans maskiner - Byggstenar
Välkomna till Hogwarts Jakovche
Any sufficiently advanced technology is indistinguishable from magic. Clarke's Third Law. Arthur C. Clarke
Every time we figure out a piece of it, it stops being magical; we say, 'Oh, that's just a computation.' Rodney Brooks (kallas för "the AI effect)
Vad är ett program?
Program Program används som homonym - ett "ord" flera betydelser dvs. ett ord kan användas för att representera fker än ett begrepp program (1): instruktioner som utförs av en dator program (2): exekverbar data som en användare kan köra på en dator program (3): instruktioner i datorns minne program (4):...
Vad är programmering? Aktiviteten kopplad till att skapa program.
Universell turingmaskin Oändligt antal rutor som kan innehålla en symbol (eller vara tom) Maskinen kan befinna sig i ett ändligt antal tillstånd Maskinen läser aktuell ruta Beroende på indata och aktuellt tillstånd utför maskinen en operation Vad är programmering om vi ska programmera en turingmaskin?
Programmering på låg nivå
CPU + Minne Ett program sett från den lägsta abstraktionsnivån: numeriska värden i minnet som representerar instruktioner läses och avkodas av processorn som sedan utför den avkodade instruktionen
Maskinkod Numerisk sekvens i minnet: 184, 0, 184, 142, 216, 198, 6, 158, 15, 36, 205, 32 Resultat på en PC som kör MS-DOS: ett dollartecken i vänstra nedersta hörnet på skärmen. Det tar extremt lång tid att programmera genom att skriva maskinkod.
Assembler MOV AX, 47104 MOV DS, AX MOV [3998], 36 INT 32 Exempel från http://www.swansontec.com/sprogram.html
Lågnivåprogrammering Maskinkod Assemblerkod
Ökad abstratktionsnivå
Kompilering och interpretering Kompilering ~ översättning av kod + process för att göra kompilerade koden körbar = exekverbar fil Interpretering = tolkning av kod En programtolk "läser" källkod och utför det som står i koden. programtolken står för att ge processorn instruktioner / skapa maskinkod.
Programmering på högre nivå
Högnivåprogrammering Python Java JavaScript C#
Skriva och köra pythonprogram
Att skriva ett program i Python Ingredienser: Texteditor Gör så här: Starta texteditorn och skriv din pythonkod. Spara filen och använd filändelsen.py
Att köra ett program skrivet i Python Ingredienser Textfil med pythonkod Programtolk för Python Gör så här: Från terminalen, kör programtolken och skicka sökvägen till textfilen med pythonkoden som argument exempel: $ python3 hello.py
Beståndsdelar i ett program värden (value): t.ex. siffror eller text (kallas för strängar) sats (statement): instruktion om att göra något uttryck (expression): delar av satser som kan beräknas till ett värde variabler (variable): namngivna referenser till värden
Exempel på värden 2 "hej" 4.2345-199 Heltal, sträng, flyttal
Exempel på variabelanvändning a = 4 size = 321 name = " Gunnel"
Exempel på satser print("hej") a = 4 return a
Exempel på uttyck 4 + 4 a = 4 + 6 a + 4
Operatorer kan användas för att skapa uttryck + - / *
Funktionell programmering Definiera en funktion som tar argument och returnerar ett värde. Jämför med f(x) = y där f(x) = 2x
Funktion i python # kommentarer med hashtag framför # en sats består av ett eller flera uttryck def funktionsnamn(argument1, argument2): sats sats return uttryck
ThinLinc http://www.ida.liu.se/local/students/remote/index.sv.shtml