TDP002 - Imperativ programmering

Relevanta dokument
TDP002 - Imperativ programmering

TDP002 Imperativ programmering

TDP002 Imperativ programmering. Översikt. Programplan för IP - översikt. Innovativ programmering

TDP002 Imperativ programmering

Tutorial: Python på 90 minuter

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer

TDIU01 (725G67) - Programmering i C++, grundkurs

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

Program & programmering

TDP002 - Imperativ programmering

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

Grundkurs i programmering - intro

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

Imperativ programmering

Introduktion till programmering. Programspråk och paradigmer

Användarhandledning Version 1.2

Föreläsning 2. Operativsystem och programmering

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

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

729G04 Programmering och diskret matematik. Python 3: Loopar

Grundläggande datalogi - Övning 1

Introduktion till programmering och Python Grundkurs i programmering med Python

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

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

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

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

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

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

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

Uppgifter teknik HT17 (uppdaterad v. 40)

Grundläggande databehandling ht 2005

TDDE44 Programmering, grundkurs

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

TDDE44 Programmering, grundkurs

Visual Basic, en snabbgenomgång

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

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?

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

TDIU01 - Programmering i C++, grundkurs

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Omprov 11/11. på förmiddagen.

Prova på-laboration i Ada

Beräkningsvetenskap föreläsning 2

Python. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!

Imperativ programmering. Föreläsning 2

DD1311 Programmeringsteknik för S1 Laborationer läsåret

Använda Python Laboration 1 GruDat, DD1344

Föreläsning 1 & 2 INTRODUKTION

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

Exempel på typer av datorspråk EXCEL

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Digitalt lärande och programmering i klassrummet

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

Sista delen av kursen

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

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

Sista delen av kursen

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

Välkomna till NADA. Paradigm i datalogin. Vad är ett paradigm

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

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

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

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

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Föreläsning 2 Programmeringsteknik och C DD1316

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

Deklarativ programmering

Objektorienterad Programmering (TDDC77)

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

Selektion och iteration

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

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

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

Programmering i C, 7,5 hp

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

En kort text om programmering i C.

TDP002 - Imperativ programmering

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

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

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)

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

Objektorienterad programmering i Java

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

Funktionell programmering

Övningsuppgifter kapitel 8

Introduktion till PHP

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

Laboration: Whitebox- och blackboxtesting

v. 43 Python HT17 En introduktion Oscar Bergqvist

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

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 i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

TDIU01 - Programmering i C++, grundkurs

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

Transkript:

. TDP002 - Imperativ programmering Introduktion till kursen och Python Eric Elfving Institutionen för datavetenskap 14 augusti 2015

Översikt 2/29 Programmering - en översikt Python - Köra och skriva program Python - grunderna (typer, selektion, upprepning)

Programmering - en introduktion 3/29 Vad är programmering?

Programmering - en introduktion 4/29 Programmeringsspråkens nivåer Maskinspråk: datorns språk, binärkod (1 eller 0) Assemblerspråk: mnemoniskt maskinspråk, t.ex. "MOV A.#0FFH" Högnivåspråk: språk utvecklade för att passa mänskliga programmerare 1943 Einac Code 1950 Short Code 1954 FORTRAN 1958 Algol 58, Lisp 1959 COBOL 1963 Algol 68 1964 Basic 1967 Simula 1971 Pascal 1972 C, Prolog, ML 1976 Smalltalk 1977 Bourne Shell 1983 C++, Ada 1987 Perl 1991 Python, VB 1993 Ruby 1994 PHP 1995 Java 2000 C#

Programmering - en introduktion 5/29 Syntax och semantik Syntax: formatet på språkets konstruktioner Semantik: betydelsen hos språkets konstruktioner Varje språk har unik syntax Språket ingår ofta i en specifik paradigm - en gemensam semantisk kärna med vissa variationer I våra kurser: vi fokuserar på principerna så att ni kan paradigmen Språket väljs som exempel av paradigmen Viktigt att se principerna i exemplet

Programmering - en introduktion 6/29 Python och ada - en skillnad i syntax... Python: if x == 2 and y == 3: print("hej") Ada: if x = 2 and y = 3 then Put_Line("Hej"); end if; Villkor for x in range(1,6): print(x) for x in 1..5 loop Put(x); New_Line; end loop; Iteration... men väldigt lika semantik!

Programmering - en introduktion 7/29 Tips för att bli en bra programmerare Att lösa problemet är intressant Ju svårare desto bättre Fokusera på ett (del-)problem i taget Klienterna kommer till dig för att det är svårt Arbeta systematiskt Välj dina uppdrag med omsorg Övning ger färdighet!

Python - att köra och skriva program 8/29 Pythonkod skrivs vanligen i en vanlig texteditor (t.ex. emacs) och sparas med filändelsen.py Koden matas sedan in i interpretatorn som tolkar och kör koden Interpretatorn har en inbyggd bytekod-kompilator Python-bytekod exekveras (körs) av "Python virtual machine"(pvm). Källkod Interpretator Bytekodkompilator PVM

Python - Att köra och skriva program 9/29 Tre olika sätt att exekvera Pythonkod Interaktivt via kommandorad DOS, IDLE, terminal print onödig, möjligt att ladda fil, inga blanka rader Bra vid experimenterande, lätt att testa kod interaktivt Anorpa fil från kommandorad $ python3 program.py Linux/UNIX: överst i filen: #! /usr/bin/python3 eller #! /usr/bin/env python3 $ chmod u+x program.py $./program.py Generell editor/ide: t.ex. emacs med C-c C-c

Python - Historia 10/29 Version 0.9 lanserades 1991 Grunder från språket ABC (liknar Basic) Python 2.7.5 och 3.3.2 nuvarande stabila versioner Öppen källkod Programming for everybody Multiparadigm: Imperativt, funktionellt, objektorienterat Skriptspråksfamiljen: Perl, Python, Tcl, BASH, etc. Rapid development: bra både för nybörjare och erfarna Batteries included: standardbibliotek som kan göra det mesta.

Python - Grunderna 11/29 Generellt om Python Kraftfullt skriptspråk script = manus, manuscript Kommandospråk, dvs används även interaktivt Bra både för enradare och större program Går att använda för att sammanfoga olika system, har bra stöd för filer, strängar och operativsystemsanrop Går att bädda in i andra språk, t.ex. C och Java Generellt lättanvänt imperativt och objektorienterat språk Enkla konstruktioner: typsystem, modulhantering, exekvering Korta program med stort stöd från ett stort standardbibliotek

Python - Grunderna 12/29 Vårt första Pythonprogram hello.py: #! /usr/bin/env python3 # -*- coding: utf-8 -*- Enkla Pythonprogram fungerar som skript, dvs kommandon på fil print('hello World!') $ chmod u+x hello.py $./hello.py Hello World! $

Python - Grunderna 13/29 Lab 0 - filer och moduler >>> import imp, os >>> help(os) (Hjälp för modulen os) >>> import hello Hello World! >>> imp.reload(hello) Hello World! >>> Python Standard Library Utvidgar kärnan med kommandon och funktioner som är bra att ha http: //docs.python.org/3/ Källkod: /usr/lib/python import laddar in en modul help interaktiv hjälp (jmf man) imp.reload laddar om en modul

Python - Grunderna 14/29 Typer - Tal >>> 20 + 22 42 >>> 3 * 4 12 >>> 3 / 0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero >>> max(3,7) 7 >>> 5 // 2 2 >>> 5 % 2 1 >>> Inbyggda (built-in) Icke-förändliga (immutable) Tre typer - heltal, flytttal och komplexa

Python - Grunderna 15/29 Typer - Strängar >>> str = 'Hej' >>> len(str) 3 >>> str[1] 'e' >>> str[1:3] 'ej' >>> str[-2] 'e' >>> str + str 'HejHej' >>> str * 3 'HejHejHej' >>> str.split('e') ['H', 'j'] Inbyggda (built-in) Icke-förändliga (immutable) Sekvenstyp Egna funktioner med strängspecifika operationer

Python - Grunderna 16/29 Typer - Listor >>> mylist = ['A', 'B', 'C'] >>> mylist[1] 'B' >>> mylist[1:3] ['B', 'C'] >>> mylist[0] = 'D' >>> del mylist[1] >>> mylist ['D', 'C'] >>> mylist.append('x') ['D', 'C', 'X'] >>> list2 = [4,6,2] >>> list2.sort() >>> list2 [2, 4, 6] Inbyggda (built-in) Förändliga (mutable), både vad gällande storlek och innehåll Sekvenstyp - "dynamiska arrayer" Elementen kan vara vilken typ som helst, även olika typer i samma lista Egna funktioner med operationer specifika för listor

Python - Grunderna 17/29 Typer - Dictionary (tabell) >>> words = {'GUL' : 'YELLOW', 'VIT' : 'WHITE'} >>> words['gul'] 'YELLOW' >>> 'GUL' in words True >>> words['gul'] = 'RED' >>> words.values() ['WHITE', 'RED'] Hashtabell / map Lagrar nyckel-värde associationer Inbyggda (built-in) Nycklarna är icke-förändliga

Python - Grunderna 18/29 Typer - Tupler >>> ('A', 'B', 'C') ('A', 'B', 'C') >>> tup = ('A', ('B', 'C')) >>> tup[1] ('B', 'C') >>> ('A','B','C') + ('D', 'E') ('A', 'B', 'C', 'D', 'E') Sekvenser av objekt Icke-Förändliga Fixerad längd Statiska värden

Python - Grunderna 19/29 Syntax och struktur 1. Program består av moduler 2. Moduler består av satser 3. Satser innehåller uttryck 4. Uttryck skapar och beräknar värden

Python - Grunderna 20/29 Satser - Tilldelning A = 4 sum = 3.2 + 5 res = 'En vacker sträng' print(a) print(res) print(sum/2) 4 En vacker sträng 4.1 Variabler används för att lagra värden av uttryck Uttryck är det som "räknar ut något"i språket Jmf matematiska uttryck Även strukturuttryck t.ex. strängar och listor En variabel tilldelas ett värde; variabel = uttryck

Python - Grunderna 21/29 Satser - Villkor import random comp_die = random.randint(1,6) user_die = random.randint(1,6) if comp_die > user_die: print('datorn vann!') elif comp_die < user_die: print('du vann!') else: print('lika') if-satsen: "om sant, gör följande" elif: "annars om detta, gör följande" else: "i övriga fall, gör detta" elif och else frivilliga man kan ha flera elif-grenar OBS! kolon och indentering krävs

Python - Grunderna 23/29 Satser - Villkor. import random comp_die = random.randint(1,6) user_die = random.randint(1,6) comp_die > user_die T print('datorn vann!') if comp_die > user_die: print('datorn vann!') elif comp_die < user_die: print('du vann!') else: print('lika') F comp_die < user_die F T print('du vann!') print('lika!')

Python - Grunderna 24/29 Satser - Upprepning (while) i = 3 x = 1 while i < 5: x = x * i i = i + 1 while-loopen, "utför sålänge detta stämmer" Villkoret testas inför varje nytt varv Bra för obestämda loopar OBS! kolon och indentering krävs

Python - Grunderna 25/29 Satser - Upprepning (while) i = 3 x = 1 while i < 5: x = x * i i = i + 1. i = 3 x = 1 i < 5 F T x = x * i i = i + 1

Python - Grunderna 26/29 Satser - Upprepning (for) sum = 0 for val in [1,4,7]: sum = sum + val for-loopen, "upprepa för varje element" Bra för förutbestämda loopar OBS! kolon och indentering krävs

Python - Grunderna 27/29 Satser - Upprepning (for) sum = 0 lst = [1, 4, 7] for val in lst: sum = sum + val. sum = 0 lst = [1,4,7] Fler värden i lst? Ja sum = sum + val Stega vidare val Nej

Python - Grunderna 28/29 Satser - Upprepning (for) for x in [1, 2, 3, 4, 5]: print(x) for x in range(1,6): print(x) for-loopen itererar över varje element i en samling. Om man vill upprepa ett visst antal gånger (eller med vissa värden) är range bra. range(a,b) ger värden i intervallet [a, b[. range(x) ger [0, x[.

.. www.liu.se