729G74 IT och programmering, grundkurs Tema 1, Föreläsning 2 Jody Foo, jody.foo@liu.se
Föreläsningsöversikt Kurslogistik Begreppspresentationer Uppgifter i diskret matematik Uppgifter i Python Tema 1: Repetition Vad är ett program? Vad händer när man kör ett program? Programmeringsspråk
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 Syfte: eget arbete med att sammanfatta och presentera begrepp relaterade till temat Korta presentationer (ca 5 minuter) i mindre grupper (ca 5 personer) Temavecka 2. Manus och presentation skickas in i förväg (se inlämningsinstruktioner på kurshemsidan) Tidsåtgång 2-4h Formatet är under utvärdering. Kommentarer och återkoppling tas gärna emot!
Begreppspresentationer på torsdag Grupp 1 och 2: 13.15-14.00 Grupp 3 och 4: 14.15-15.00 Salar: G35 och G37 i Galaxen (G-huset) Grupp 1 och 3 i G35 (Jody) Grupp 2 och 4 i G37 (Evelina) Presentera på egen dator/platta eller kom överens med någon annan i gruppen. 5 minuter per presentation. Presentationsordning: 1, 6, 2, 3, 4, 5 Jody och Evelina kommer att gå runt, samt agera moderatorer om det behövs, samt hålla koll på tiden.
Uppgifter i diskret matematik Grundläggande notation och begrepp i diskret matematik Uppgifter görs tillgängliga på kurshemsidan temavecka 2 Lämnas in temavecka 5 Max 10 poäng, 7 poäng för godkänt. Tidsåtgång 1-2h Läggs upp på kurshemsidan inom de närmaste dagarna. E- post skickas ut till kurslistan.
Uppgifter i pythonprogrammering Uppgifter att göra självständigt. Automatisk rättning Tidsåtgång drygt 4h Läggs upp på kurshemsidan inom de närmaste dagarna. E- post skickas ut till kurslistan.
"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
Program och programmering Forts. från Föreläsning 1 Vad är ett program? Vad är inte ett program? Vad kan ett program göra i en dator? Vad är ett programmeringsspråk? Exempel på programmeringsspråk: Python och Scratch Python i datorsal/thinlinc
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)
Datorn och datorvetenskap är ett verktyg som kognitionsvetare kan använda för att både skapa och förstöra magi.
Vi ska lära oss magi för att "förstöra" magin.
Tema 1 Människans maskiner - Byggstenar
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
Koppling diskret matematik Begreppet mängd Oändlig, diskret mängd rutor Ändlig mängd symboler Ändligt antal tillstånd Regler för tillståndsövergångar (funktion)
Datorer är enkla
Vad menar vi med "enkel"/"simple"? Enkel att förstå? Enkel att använda? Enkel att bygga? Enkel att ta sönder? Enkelspårig?
The STE Specification provides a set of Writing Rules and a Dictionary of controlled vocabulary. The Writing Rules cover aspects of grammar and style; the Dictionary specifies the general words that can be used. These words were chosen for their simplicity and ease of recognition. In general, there is only one word for one meaning, and one part of speech for one word. The ASD-STE100 Specification http://www.asd-ste100.org/about.html
Datorer är enkla för att antalet möjliga symboler är 2. { 0, 1 }
... men vi kan göra "komplicerade" saker med datorer?
Abstraktion
Saker som ser enkla ut kan vara komplicerade.
Saker som ser komplicerade ut kan vara enkla.
Program och programmering Forts. från Föreläsning 1 Vad är ett program? Vad är inte ett program? Vad kan ett program göra i en dator? Vad är ett programmeringsspråk? Exempel på programmeringsspråk: Python och Scratch Python i datorsal/thinlinc
Vad är ett program?
Vad säger kurslitteraturen? Wikipedia? Andra källor?
Data och information. Vad har de för relation till ett program?
Program Program är egentligen en homonym - ett "ord" flera betydelser Ett ord står för olika 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):...
Program och programmering Forts. från Föreläsning 1 Vad är ett program? Vad är inte ett program? Vad kan ett program göra i en dator? Vad är ett programmeringsspråk? Exempel på programmeringsspråk: Python och Scratch Python i datorsal/thinlinc
Programmering på låg nivå
Lågnivåprogrammering Maskinkod Assemblerkod
Programmering på högre nivå
Högnivåprogrammering Python Java Scratch JavaScript C#
Ökad abstratktionsnivå
Kompilering och interpretering Kompilering = översättning av kod Genererar en 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.
Program och programmering Forts. från Föreläsning 1 Vad är ett program? Vad är inte ett program? Vad kan ett program göra i en dator? Vad är ett programmeringsspråk? Exempel på programmeringsspråk: Python och Scratch Python i datorsal/thinlinc
Skriva ett program i Python Texteditor Programtolk för Python Skriva källkod i texteditorn som sedan skickas till programtolken
Källkod Filändelsen.py Instruktioner Funktioner som innehåller flera instruktioner Funktionell programmering