TDDE44 Programmering, grundkurs

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

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

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

Introduktion till programmering och Python Grundkurs i programmering med Python

Föreläsning 2. Operativsystem och programmering

Programmering, grundkurs

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

Föreläsning 1: Intro till kursen och programmering

TDDC77 Objektorienterad Programmering

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Föreläsning 1: Intro till kursen och programmering

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

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

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

TDDC77 Objektorienterad Programmering

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

DD1314 Programmeringsteknik

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Extramaterial till Matematik Y

HF0010. Introduktionskurs i datateknik 1,5 hp

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

TDIU01 - Programmering i C++, grundkurs

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

TDP002 Imperativ programmering

Program & programmering

Objektorienterad Programmering (TDDC77)

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

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

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

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

Objektorienterad programmering i Java

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

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

Grundkurs i programmering - intro

TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

Programmeringsteknik med C och Matlab

Introduktion C-programmering

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Repetition C-programmering

729G04 Programmering och diskret matematik. Python'1:'Labbmiljö'och'introduk7on'7ll'Python'

TDDE44 Programmering, grundkurs

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Imperativ programmering

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

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

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

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

Använda Python Laboration 1 GruDat, DD1344

TDP002 - Imperativ programmering

TDP002 - Imperativ programmering

Uppgifter teknik HT17 (uppdaterad v. 40)

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

Imperativ och Funktionell Programmering i Python #TDDD73

Imperativ programmering. Föreläsning 2

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Programmering A. Johan Eliasson

OOP Objekt-orienterad programmering

v. 42 Python HT17 En introduktion Oscar Bergqvist

Övningsuppgifter till föreläsning 2 Variabler och uttryck

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

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Introduktion till programmering

Föreläsning 1 & 2 INTRODUKTION

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Objektorienterad Programmering (TDDC77)

Användar- och systemdokumentation

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

Inledande programmering med C# (1DV402) Introduktion till programmering

v. 43 Python HT17 En introduktion Oscar Bergqvist

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):

Föreläsning 1 & 2 INTRODUKTION

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

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Föreläsning 2 Programmeringsteknik och C DD1316

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

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

DD1361 Programmeringsparadigm. Carina Edlund

Variabler, värden och typer

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Grunderna i stegkodsprogrammering

TDDC77 Objektorienterad Programmering

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Parameteröverföring. Exempel. Exempel. Metodkropp

Transkript:

TDDE44 Programmering, grundkurs Föreläsning 1 Jody Foo, jody.foo@liu.se

Föreläsningsöversikt Vad ingår i "Programmering, grundkurs"? Kursöversikt Datorer, program, programmeringsspråk Kort om nästa föreläsning

Grundkurs i programmering

Kursens syfte Första gången kursen går. Ersätter TDDC74 "Programmering, abstraktion och modellering" (programmering i Scheme, LISP dialekt) Övergripande mål för denna kurs: se till att ni kan använda programmering som ett verktyg

Kursplan använda aktuella datorsystem för laborativ verksamhet redogöra för grundläggande begrepp relaterade till datavetenskap, programmering och programspråk lösa programmeringsrelaterade problem metodiskt med hjälp av ett interaktivt arbetssätt med implementering, testning och felsökning konstruera abstraktioner med varierande grad av stöd i det underliggande programmeringsspråket lösa programmeringsproblem genom att bryta ner det i delproblem konstruera rekursiva och iterativa algoritmer

Kurshemsida https://www.ida.liu.se/~tdde44

Kursupplägg Period 1 Grundläggande konstruktioner: inbyggda datatyper, loopar, funktioner Hur man testar program, delar upp ett program i funktioner Laboration 1-4 Period 2 Introduktion till objektorienterad programmering Laboration 5-7

Kursupplägg

Laborationer och redovisningar Period 1 (lab 1-4) en laboration = 2 veckor förberedande lektion redovisning Laboration 1-3: Pythonuppgifter + tillämpningsuppgift Laboration 4: Större tillämpningsuppgift

Laborationer och redovisningar Period 2 (lab 5-7) en laboration = 3 veckor förberedande lektion redovisning

Kurslitteratur Ingen obligatorisk kurslitteratur Litteraturtips finns dock på kurshemsidan

Programmerbar maskin

Universell turingmaskin (översikt) 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 specifik operation och hoppar till nästa tillstånd Videotips: https://www.youtube.com/watch?v=-zs_zfg4w5k

Blinkenlights Frontpanelen hos en IBM System/360 Modell 91 By MBlairMar)n - Own work, CC BY-SA 4.0, h9ps://commons.wikimedia.org/w/index.php?curid=50243909

von Neumann-arkitekturen Data och program lagras i gemensamt minne Instruktioner utförs sekventiellt, en instruktion i taget En operand ("en styck data") bearbetas åt gången Central processorenhet, Central Processing Unit (CPU) styrenhet aritmetisk-logisk enhet Primärminne, Random Access Memory (RAM)

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

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 Ettor och nollor: binära talsystemet 0: 0 1: 1 10: 2 11: 3 100: 4 101: 5

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#

Python

Kort om Python Födelsedatum: sent 80-tal Skapare: Guido van Rossum Fyllde 2.0 i oktober 2000 Fyllde 3.0 i december 2008 Idag: 3.7.2 och 2.7.15 Interpreterat, men det finns en uppsjö av möjligheter Stöd för flera olika programmeringsparadigm Populärt som "nybörjarspråk" Finns till flera plattformer, även inbäddade system

Stort community Konferenser runt om i världen av olika storlek Många, ramverk som används i produktion inom många områden 15 november 2018. h9ps://blog.github.com/2018-11-15-state-of-the-octoverse-top-programming-languages/

Skriva och köra pythonprogram

Datormiljön på IDA Operativsystem: Linux (Ubuntu) Inloggning med LiU-ID Möjlighet att logga in från egen dator via ThinLinc https://www.ida.liu.se/local/students/remote/index.sv.shtml

Två sätt 1.Interaktivt genom att skriva in ett kommando i taget 2.Genom att skriva programmet i förväg Interaktiv användning: använda IDE eller starta Python i terminalen Skriva program i förväg: skriv programkod i textfil och starta Python och ange textfilen som program

Interaktiv användning Starta pythontolken genom att skriva kommando i terminalen python3 eller ipython3 Avsluta med Ctrl-D

Köra ett program som skrivits i förväg 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)

Datatyper: Heltal och flyttal De flesta programmeringsspråk skiljer på heltal och decimaltal (eller flyttal som det kallas för inom datavetenskapen) Flyttal och heltal är olika datatyper, float och int Flyttal skrivs i Python med punkt. Exempel: 1.0, 3.1415, -4.5 Heltal skrivs som vanligt. Exempel: 1, -10, 6000 Både flyttal och heltal kan vara antingen positiva eller negativa i Python.

Datatyp: sträng En sträng är en sekvens av tecken. Skiljer på sträng och variabel genom att en sträng skrivs inom citattecken. "Ada" "boll" "far är rar"

Beståndsdelar i ett program värden (value): t.ex. siffror eller text (kallas för strängar) operatorer (operators): token/symbol som står för en instruktion

Matematiska operatorer Matematiska operatorer addition: + subtraktion: - multiplikation: * division: / division trunkerat till närmaste heltal // modulo (rest vid division): %

Användning av operatorer Operatorer vi kan använda på siffror 5 + 5 10 10-198 -188 8.9 * 10 89.0 29 / 3 9.666666666666666 29 // 3 9 29 % 3 2 Operatorer vi kan använda på strängar "hej" + "san" "hejsan" "hej" * 2 "hejhej"

Beståndsdelar i ett program värden (value): t.ex. siffror eller text (kallas för strängar) operatorer (operators): token/symbol som står för en instruktion variabler (variable): namngivna referenser till värden uttryck (expression): ett uttryck kan beräknas till ett värde (ibland säger man även utvärderas istället för beräknas)

Variabler, tilldelning och uttryck Tilldelning: = Exempel x = 5 x = 7 + 9 voltage = 5 * (3 + 6) Variabeln i vänsterledet tilldelas värdet till i högerledet. Om högerledet är ett uttryck beräknas det innan tilldelningen kan ske Ett uttryck kan beräknas till ett värde Exempel på uttryck: användning av operatorer funktionsanrop

Variabler, tilldelning och uttryck För att öka värdet på en variabel med 1 skrivs min_variabel = min_variabel + 1 Nedanstående förkortade syntax kan också användas min_variabel += 1 Följande förkortningar finns += -= *= /=

Funktionsanrop, en typ av uttryck En funktion, definierad med matematisk notation f(x) = 2x Ett anrop till funktionen, vi "stoppar in ett värde" f(10) 20 Ett funktionsanrop är ett uttryck som beräknas till ett värde.

Inbyggda funktioner för omvandling mellan datatyper Ett heltal kan omvandlas till ett flyttal genom att använda funktionen float(). Exempel: float(5) 5.0 Flyttal kan omvandlas till ett heltal genom att använda funktionen int(). Vid omvandlingen huggs alla decimaler bort. Exempel: int(3.1415) 3 Vill man ha avrundning används funktionen round(). Som också kan ta emot ett andra argument för antal decimaler. Exempel: round(3.1415) 3 round(3.1415, 2) 3.14

print() - en inbyggd funktion som skriver ut värden print("hej") x = 56 namn = "Beata" print(namn) print(x + 487)

Beståndsdelar i ett program värden (value): t.ex. siffror eller text (kallas för strängar) operatorer (operators): token/symbol som står för en instruktion variabler (variable): namngivna referenser till värden uttryck (expression): ett uttryck kan beräknas till ett värde (ibland säger man även utvärderas istället för beräknas) nyckelord (keywords): speciella ord som refererar till instruktioner som ska utföras skiljetecken (punctuators)

Definiera en funktion i Python def f(x): return 2 * x resultat = f(10) Med hjälp av nyckelorden def och return samt skiljetecknet : kan vi definiera funktionen f(x) = 2x i Python. När funktionen anropas returnerar den värdet som fås när uttrycket 2*x beräknas.

Beståndsdelar i ett program värden (value): t.ex. siffror eller text (kallas för strängar) operatorer (operators): token/symbol som står för en instruktion variabler (variable): namngivna referenser till värden uttryck (expression): ett uttryck kan beräknas till ett värde (ibland säger man även utvärderas istället för beräknas) nyckelord (keywords): speciella ord som refererar till instruktioner som ska utföras skiljetecken (punctuators) sats (statement): fullständig instruktion

Satser och uttryck En sats motsvarar "en mening", dvs minsta beståndsdelen i programmeringsspråk som har betydelse. Exempel på satser: uttryck korrekt användning av nyckelord Ett uttryck kan beräknas till ett värde (ibland säger man även utvärderas istället för beräknas) Exempel på uttryck användning av operatorer funktionsanrop

Nyckelord och betydelsebärande tecken Vissa ord har speciell betydelse i Python def return Korrekt användning av nyckelord ger oss en sats. Vissa tecken används på samma sätt som skiljetecken i naturligt språk. Exempel: nyckelord som påbörjar ett block har ett : innan första raden på det nya blocket tecknet # påbörjar en kommentar, resten av raden ses inte som Pythonkod.

Block Vissa nyckelord påbörjar ett eget block (t.ex. nyckelordet def) För att visa vad som ingår i ett block används indentering i Python Indentering: inskjutning av textrad med tab-tecken eller blankstegstecken (standard är 4 blanksteg per nivå)

Funktioner i Python Definition av funktion med matematisk notation: f(x) = 2 * x Definition av samma funktion i Python def f(x): return 2*x Syntax: def funktionsnamn(argument1, argument2,..., argumentn): sats1 sats2 sats3...

Vad vi gått igenom idag Datorn, programmering och programmeringsspråk Programmera python funktioner och returvärden datatyper: heltal, flyttal, strängar

Nästa föreläsning Ny datatyp: list Mer om strängar Komma åt funktionalitet via moduler Skript - körbara textfiler