Välkomna till kursen: Programmeringsteknik och Matlab DD1315. Kursanvarig. Dagens föreläsning. Vad är Programmering?

Relevanta dokument
Kursanalys DD1312 hösten 2008

KTH Learning Experience Questionnaire (LEQ) v3.1.2 Established

HF Antal respondenter: 111 Antal svar: 31 Svarsfrekvens: 27,93 %

FK Electrodynamics I

ID Antal respondenter: 210 Antal svar: 24 Svarsfrekvens: 11,43 %

MG Antal respondenter: 57 Antal svar: 14 Svarsfrekvens: 24,56 %

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

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

DD1314 Programmeringsteknik

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

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 18

Kursanalys DA2003 sommar 2017

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?

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

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

Kursanalys DA2003 höst 2017

HF Antal respondenter: 164 Antal svar: 29 Svarsfrekvens: 17,68 %

HF Antal respondenter: 81 Antal svar: 16 Svarsfrekvens: 19,75 %

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

MO8004 VT What advice would you like to give to future course participants?

DVA336 (Parallella system, H15, Västerås, 24053)

SF Antal respondenter: 82 Antal svar: 17 Svarsfrekvens: 20,73 %

04/11/14. Välkomna till kursen: Databasteknik och informationssystem DD1370. Kursanvarig. Dagens föreläsning. Vad är en Databas?

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

Introduktionsmöte Innehåll

Föreläsning 1 & 2 INTRODUKTION

HF Antal respondenter: 113 Antal svar: 18 Svarsfrekvens: 15,93 %

MG Antal respondenter: 103 Antal svar: 10 Svarsfrekvens: 9,71 %

HF Antal respondenter: 167 Antal svar: 24 Svarsfrekvens: 14,37 %

Programmeringsteknik II

Föreläsning 2 Programmeringsteknik och C DD1316

Matthew Thurley Industriell bildanalys (E0005E) Response rate = 65 %

DD Antal respondenter: 162 Antal svar: 60 Svarsfrekvens: 37,04 %

HF Antal respondenter: 93 Antal svar: 38 Svarsfrekvens: 40,86 %

1. How many hours per week have you on average spent on the course, including scheduled time?

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

ID Antal respondenter: 65 Antal svar: 11 Svarsfrekvens: 16,92 %

729G04 Programmering och diskret matematik. Python 3: Loopar

Chapter 4: Writing Classes/ Att skriva egna klasser.

EDAA01 Programmeringsteknik - fördjupningskurs

HF Antal respondenter: 164 Antal svar: 54 Svarsfrekvens: 32,93 %

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

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

1. How many hours per week have you on average spent on the course, including scheduled time?

GeoGebra in a School Development Project Mathematics Education as a Learning System

1DV432 ST14. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

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

Kursutvärderare: IT-kansliet/Christina Waller. General opinions: 1. What is your general feeling about the course? Antal svar: 17 Medelvärde: 2.

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

FK Nuclear and Particle Physics, Astrophysics and Cosmology

Anders Persson Philosophy of Science (FOR001F) Response rate = 0 % Survey Results. Relative Frequencies of answers Std. Dev.

Ge bara ett svar på varje fråga. Välj det svar som passar in bäst. Det är viktigt att du svarar på samtliga frågor.

Sammanställning för Lineär algegra 2 MATB22 vt 2018

Att stödja starka elever genom kreativ matte.

Sätt att skriva ut binärträd

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

Från extern till intern på tre dagar Erfarenheter från externa lärares pedagogiska kompetensutveckling

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Föreläsning 1 & 2 INTRODUKTION

Kursanalys DD100N hösten 2018

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Kontextuell utforskning, 8 hp, H15 (IDK213 KONT)

Använda Python Laboration 1 GruDat, DD1344

Statistik MG2028 HT14,

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Kursplanering Objektorienterad programmering

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

Föreläsning 1 Programmeringsteknik och C DD1316. Kurswebbsidan. Mål

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Extramaterial till Matematik Y

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018

EVALUATION OF ADVANCED BIOSTATISTICS COURSE, part I

Uppgifter teknik HT17 (uppdaterad v. 40)

Grundläggande datalogi - Övning 1

Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017

Kursanalys. Douglas Wikström 15 juni Problemlösning och programmering under press (DD2458) Högskolepoäng (hp): 9 Kursen gavs: Period 1-2, 2008

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

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

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

AK2055 Vetenskapsteori och forskningsmetodik för lärare

UPPSTÄLLDA SAMBAND SKALL MOTIVERAS (gärna med en enkel skiss). Uppgifterna är inte avsiktligt ordnade efter hur svåra de är.

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

Övningsuppgifter kapitel 8

OOP Tentamen

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Beijer Electronics AB 2000, MA00336A,

OOP Objekt-orienterad programmering

Adding active and blended learning to an introductory mechanics course

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

Webbregistrering pa kurs och termin

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

F4. programmeringsteknik och Matlab

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

1. How many hours per week have you on average spent on the course, including scheduled time?

Extramaterial till Matematik Y

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

Transkript:

Kursanvarig Väkomna ti kursen: Programmeringsteknik och Matab DD1315 Petter Ögren Petter Ögren petter@kth.se Kontor: Teknikringen 14 Kontakt/frågor: - Canvas (något många vi veta, måsättning är svar inom 24h) - Emai (något som få vi veta) - Vid föreäsningarna A information finns här: - https://kth.instructure.com/courses/4243 Tips: Vidarebefordra er KTH-mai ti er vaniga maiadress Dagens föreäsning Vad är Programmering? Vad är programmering? Varför är programmering viktigt? Eamination (vad krävs för att kara kursen?) Kursens må Introduktion ti Python Mået: Lösa ett probem. Vad är detta? Steg: Förstå probemet Dea upp probemet i hanterbara bitar Skissa en ösning (specifikation) Impementera och testa Varför är programmering viktigt (för er)? Denna kurs kräver ingen förkunskap om programmering. Dock intressant att veta viken bakgrund ni har. Aternativ A: Jag har inte programmerat tidigare Aternativ B: Jag har programmerat, men inte Python (t.e. Java) Högre kurser - DT1130 Spektraa transformer 7,5 hp (Matab->Python) - DT1175 Ljud - DM150 Videoteknik - DD1320 Tiämpad dataogi 6.0 hp - Framtida probemösning med datorer Det är ku! Aternativ C: Jag har programmerat Python 1

Vad behövs för att kara kursen? Vad behövs för att kara kursen? Vad behövs för att kara kursen? - Godkänt på föjande adok-moment:, LAB1, LAB2, LAB3, MAT1 Hur bestäms betyget? - Av P-uppgiften (LAB3) Förmåga L L LL D Python 4 abbar Datorprov (par) (ind) LAB1 (P/F) LAB2 (P/F) P P-uppgift (ind) LAB3 (A,B,,F) L L Matab/Numpy 2 abbar (par) MAT1 (P/F) Är P-uppgiften Omöjig? Dagens föreäsning P-uppgiften är en möjighet - att väja något roigt probem - att visa vad ni ärt er - att få det betyg ni vi ha L L L L D P Mitt må: Så många A som möjigt! P Vad är programmering? Varför är programmering viktigt? Eamination (vad krävs för att kara kursen?) Kursens må Introduktion ti Python Lärandemå Efter kursen ska ni kunna: föja regerna i programspråkets synta tiämpa och redogöra för reger för god programmeringssti (såsom användarvänighet, kommentarer, fehantering, strukturering, feibiitet) upptäcka och korrigera programmeringsfe modifiera givna program överföra data mean fi och program identifiera behovet av och använda styrstrukturer (vikorssatser och singor) dea upp ett större probem i hanteriga dear och konstruera funktioner för dessa använda de datastrukturer som finns inbyggda i programspråket, samt väja datastrukturer som passar för det aktuea probemet använda kasser, samt konstruera egna kasser, granska andras program hantera matriser och använda matrisoperationer i Matab använda färdiga funktioner ur Matabs bibiotek för beräkningar och visuaisering skriva egna Matabfunktioner använda den programmeringsmetodik du ärt dig under första deen av kursen även i de program du skriver i Matab Vi konkretiserar dessa i form av Nyckekoncept... Modu 1, första veckan Lärandemå ßà Moduer och Nyckekoncept Lärandemå/Nyckekoncept föja regerna i programspråkets synta tiämpa och redogöra för reger för god programmeringssti (såsom användarvänighet, kommentarer, fehantering, strukturering, feibiitet) Variaber For-oopar Whie-oopar Datatyper (int, foat, string) Listor Funktioner Scope Dictionaries Moduer/ Import Fier, fehantering och mer Dictionaries Kasser/ Objekt Arv upptäcka och korrigera programmeringsfe modifiera givna program överföra data mean fi och program identifiera behovet av och använda styrstrukturer (vikorssatser och singor) dea upp ett större probem i hanteriga dear och konstruera funktioner för dessa använda de datastrukturer som finns inbyggda i programspråket, samt väja datastrukturer som passar för det aktuea probemet använda kasser, samt konstruera egna kasser, granska andras program P-uppgiften se kurshemsidan... 2

Detajschema Dagens föreäsning Redovisning på fredag! Efter dagens föreäsning kan ni börja ösa uppgifterna Vad är programmering? Varför är programmering viktigt? Eamination (vad krävs för att kara kursen?) Kursens må Introduktion ti Python Varför Python? Kursboken Python är Popuärt, kraftfut och ättanvänt! Det finns många sätt att ära sig Kursbok (finns onine?) Youtube-videor Onine-tutorias... Hur är man sig programmering? Nyckekoncept F1 & F2 Genom att koa på eempe! Hur hittar man eempe? Googe! - Hmm hur ser en for-oop ut i Python? Dock: Pagiering inte ok - (se CSC-Code of Honor) Variaber For-oopar Whie-oopar Datatyper (int, foat, string) 3

1-01-15 PyCharm PyCharm är en utveckingsmijö för Python PyCharm i datorsaarna Öppna Termina Skriv pycharm i terminaen... ok... start new project Väj python 3.5 som interpreter New... fie... Kör PyCharm - Python som miniräknare - Sama kommandon i fi Ett Python-program import matpotib.pypot as pt import math from random import randrange = 0.0 y = 0.0 corner_ = [0, 1, 0.5] corner_y = [0, 0, math.sin(math.pi/3)] for i in range(0, 2000): my_inde = randrange(3) = ( + corner_[my_inde]) / 2.0 y = (y + corner_y[my_inde]) / 2.0 pt.pot(,y,",") print(i) Ett Python-program importera etrafunktioner variaber istor for-oop pt.yabe('triange') pt.show() Nyckekoncept F1 & F2 Variaber For-oopar Whie-oopar Datatyper (int, foat, string) import matpotib.pypot as pt import math from random import randrange = 0.0 y = 0.0 corner_ = [0, 1, 0.5] corner_y = [0, 0, math.sin(math.pi/3)] for i in range(0, 2000): my_inde = randrange(3) = ( + corner_[my_inde]) / 2.0 y = (y + corner_y[my_inde]) / 2.0 pt.pot(,y,",") print(i) pt.yabe('triange') pt.show() Debugging, Brakepoints och Step Här startar man debuggern Breakpoint, här stannar eekveringen Just nu körs denna rad Här stegar man i koden 4

Nyckekoncept F1 & F2 Variaber For-oopar Whie-oopar Datatyper (int, foat, string) Variaber Variaber sätts med = a = 2 (sätt a ika med 2!) Vikor testas med == a == 2 (är a ika med 2?) Bra variabenamn: - anta_kompisar - AntaKompisar (endast kasser) Dåiga variabenamn: - antkomp - - kvrp - z De 3 viktigaste variabetyperna: Int, Foat, String Vad skriver föjande program ut på skärmen? = 4 y = hej z = 4.0 print(+) print(y+y) print(z+z) Aternativ A: hejhej.0 Aternativ B: hejhej Aternativ C: hheejj int - heta = 3 + bir 6 foat fytta (decimata) = 0.333 + bir 0.666 = 1/3 ger = 0.3333333333333333 obs avrundningsfe kan förekomma string tetsträng = hej + bir hejhej = 0.333 + bir 0.3330.333 Nyckekoncept F1 & F2 Variaber For-oopar Whie-oopar Datatyper (int, foat, string) Vad skriver föjande program ut på skärmen? print("hej aihop!") Aternativ A: Liseott Aternativ B: Hej aihop! Aternativ C: Hej aihop! Aternativ D: ( Hej aihop! ) 5

Print och Strängar För att skriva ut på skärmen används print Eempe: print( hej ) print( hej + då ) namn = Kim print( hej +namn) För att få information från användaren använd input Eempe: my_name = input( Skriv in ditt namn: ) Viken diaog hör ti föjande program? name_1 = input( Vad heter du?") print( Hej +name_1) Aternativ A: Vad heter du? Hej name_1 Aternativ B: Vad heter du? Kim Hej Kim Aternativ C: input: (Vad heter du?): Kim Hej Kim Nyckekoncept F1 & F2 Hur känns dagens föreäsning? Aternativ A: För svår Aternativ B: Lagom Aternativ C: För ätt Variaber For-oopar Whie-oopar Datatyper (int, foat, string) Prata med årskursrepresentanterna! If-satser True/Fase Vad skriver föjande program ut på skärmen? = 10 if > 5: print("större") ese: print("mindre") Aternativ A: Större Aternativ B: Mindre Aternativ C: Större Mindre Amänt: if epression1: eif epression2: eif epression3: ese: Eempe: Ett bock är if == 4: at indenterat print( är fyra ) efter koon (:) eif == 3: print( är tre ) print(... och inte fyra ) ese: print( tydigen varken 3 e.4 ) print( tråkigt ) Aternativ D: (inget) print( nu tänker vi på något annat ) eif är förkortning av ese if 6

Nyckekoncept F1 & F2 Variaber For-oopar Whie-oopar Datatyper (int, foat, string) Vad skriver föjande program ut på skärmen? for i in range(97, 100): print(i) print("nu kommer jag!") Aternativ A: 97 Nu kommer jag! Aternativ B: 97 9 99 Nu kommer jag! Aternativ C: Nu kommer jag! For-oopar och Whie-oopar Nyckekoncept F1 & F2 Känt anta upprepningar: for var in sequence: statements(s) for i in range(1,6): y=i**2 Okänt anta upprepningar: whie epression: i=0 whie i<5: i=i+1 y=i**2 Variaber For-oopar Whie-oopar Datatyper (int, foat, string) används för att förkara kod # gör att Python ignorerar resten av raden (trippe-quotes) används för fera rader av tet Eempe: # this is the XYZ agorithm t = + y + z print( ZZZzzz... ) # This is the ZZ-agorithm """ This is an eampe of a mutiine comment that spans mutipe ines ba ba ba """ Nyckekoncept F1 & F2 Variaber For-oopar Whie-oopar Datatyper (int, foat, string) 7

Datatyper Nyckekoncept F1 & F2 Aa variaber tihör en typ Testa genom: >>>type(myi) <cass 'int'> Kaas även Datastrukturer, innehåer en saming data (t.e. ista av ta) se F3... myi=7 myf=4.4 # int # foat myb= True # boo mys="hej # str myl=[3, 4, 5] # ist # dict myd={"dog":"hund,"cat":"katt"} Variaber For-oopar Whie-oopar Datatyper (int, foat, string) Nu kan ni tiräckigt för att börja med Lab1 (deadine på fredag) Ett Python-program Var finns Lab1-beskrivningen? importera etrafunktioner variaber istor for-oop import matpotib.pypot as pt import math from random import randrange = 0.0 y = 0.0 corner_ = [0, 1, 0.5] corner_y = [0, 0, math.sin(math.pi/3)] for i in range(0, 2000): my_inde = randrange(3) = ( + corner_[my_inde]) / 2.0 y = (y + corner_y[my_inde]) / 2.0 pt.pot(,y,",") print(i) pt.yabe('triange') pt.show() Sut Hur kändes dagens föreäsning? Aternativ A: För svårt Aternativ B: Lagom Aternativ C: För ätt Prata med årskursrepresentanterna!

22 Viktiga punkter (Säg ti om vi inte uppfyer dessa!) Stimuating tasks 1. I worked with interesting issues [Jag hoppas kunna övertyga er om att programmering är intressant] Eporation and own eperience 2. I epored parts of the subject on my own [Läroboken, videoföreäsningar och CodyCoursework/CodeCademy ska underätta sjävstudier] 3. I coud earn by trying out my own ideas [i abbarna och P-uppgiften ska möjighet ges att pröva egna ideer] Chaenge 4. The course was chaenging in a stimuating way [Labbar och P-uppgift ska vara utmanande] Beonging 5. I fet togetherness with other course participants [] 6. The atmosphere in the course was open and incusive [Föreäsningar och övningar ska vara öppna för frågor i en positiv anda] Cear goas and organization 7. The earning objectives heped me understand what I was epected to achieve [Lärandemåen ska kommuniceras och koppas ti eaminiation]. I understood how the course was organized and what I was epected to do [Detta ska kommuniceras] Understanding of subject matter 9. I understood what the teachers were taking about [Säg ti om det bir obegripigt] 10. I coud earn from concrete eampes that I was abe to reate to [Eempe finns i Kursboken och Oninemateriaet] 11. Understanding of key concepts was given high priority [Det ska framgå vika nyckekoncepten är] 22 Viktiga punkter (vika är våra svagheter?) Constructive aignment 12. The course activities heped me to reach the earning objectives efficienty 13. I understood what I was epected to earn in order to get a particuar grade Feedback and security 14. I reguary received feedback that heped me see my progress 15. I coud practice and receive feedback without any grading being done 16. The assessment on the course was fair and honest Sufficient background knowedge 17. My background knowedge was sufficient to foow the course Time to refect 1. I reguary spent time to refect on what I earned Variation and choices 19. I coud earn in a way that suited me 20. I had opportunities to choose what I was going to do Coaboration 21. I coud earn by coaborating and discussing with others Support 22. I coud get support if I needed it 9