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

Relevanta dokument
Objektorienterad Programkonstruktion. Föreläsning 1 2 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 1 1 nov 2016

Objektorienterad Programkonstruktion

Imperativ programmering

Programmeringsteknik II

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Program & programmering

DD1361 Programmeringsparadigm Föreläsning 1: Intro

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17

729G06 Föreläsning 1 Objektorienterad programmering

Programmering för språkteknologer II, HT2011. Rum

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

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

Introduktion till programmering. Programspråk och paradigmer

DD1361 Programmeringsparadigm Föreläsning 1: Intro

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

EDAA01 Programmeringsteknik - fördjupningskurs

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

SKOLFS. beslutade den -- maj 2015.

Introduktionsmöte Innehåll

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

Objektorienterad programmering

Imperativ programmering. Föreläsning 4

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Programmering B med Visual C

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

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

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Presentation. Curriculum Vitae för Lars Kristiansson,

Kursplanering Objektorienterad programmering

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Datavetenskapligt program, 180 högskolepoäng

B. Förkunskapskrav och andra villkor för tillträde till kursen

Föreläsning 2. Operativsystem och programmering

TDDC77 Objektorienterad Programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

SKOLFS. beslutade den XXX 2017.

Objektorienterad programmering, allmänt

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

Föreläsning 14 Innehåll

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

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

Föreläsning 1: Introduktion till kursen

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Programmering, grundkurs

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

Kursanalys DA2003 höst 2017

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan SGITD. IT-design. Study programme in IT-Design

Kursplanering för EE3D i kursen Programmering 1, 100p.

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga

OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

IT för personligt arbete F6

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

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

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Föreläsning 5-6 Innehåll

Kursanalys DD1312 hösten 2008

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Föreläsning 1: Introduktion till kursen

Civilingenjörsutbildning i datateknik Degree Programme in Computer Science and Engineering 300,0 högskolepoäng

Kursplan. System och programkonstruktion. Systems and Software Development

Undervisning. Examination

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

Föreläsning 1 & 2 INTRODUKTION

Beslut om fastställande: - - Behörighetskrav: -

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

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

Automatisk analys av kursplaner med hjälp av språkteknologi

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

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

Kursanalys DA2003 sommar 2017

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

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

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

Objektorienterad Programmering (TDDC77)

Tentamen Datastrukturer (DAT037)

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Classes och Interfaces, Objects och References, Initialization

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

LOKAL UTBILDNINGSPLAN INFORMATIKPROGRAMMET 120 POÄNG IF04

OOP Objekt-orienterad programmering

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

(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

Transkript:

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

Kontaktuppgifter & Info: Kurskod: DD1339, 19hp Kursomgång: inda14 Kursansvarig: Christian Smith, ccs@kth.se Michael Minock, minock@kth.se Dilian Gurov, dilian@csc.kth.se Hemsida: http://www.csc.kth.se/utbildning/kth/kurser/dd1339 https://www.kth.se/social/course/dd1339/ Kursanmälan: https://rapp.csc.kth.se/rapp

Kursbeskrivning (Studiehandboken) Kursens huvudsakliga innehåll: Operativsystem och speciellt Unix, skolans datorsystem, en dators uppbyggnad, texteditering, grundläggande HTML och LaTeX. Programmering: Teori och praktisk övning rörande alla aspekter av grundläggande programmering och programutveckling. Programspråken Java och Go används. Grundläggande datastrukturer: Listor, stackar, köer, prioritetsköer, mängder, hashtabeller, träd och grafer. Grundläggande algoritmer: Sökning, sortering, trädalgoritmer samt ytterligare några typer av algoritmer. Introduktion till algoritmanalys. https://www.kth.se/student/kurser/kurs/dd1339

Kursbeskrivning (Studiehandboken) Kursens huvudsakliga innehåll: Operativsystem och speciellt Unix, skolans datorsystem, en dators uppbyggnad, texteditering, grundläggande HTML och LaTeX. Programmering: Teori och praktisk övning rörande alla aspekter av grundläggande programmering och programutveckling. Programspråken Java och Go används. Grundläggande datastrukturer: Listor, stackar, köer, prioritetsköer, mängder, hashtabeller, träd och grafer. Grundläggande algoritmer: Sökning, sortering, trädalgoritmer samt ytterligare några typer av algoritmer. Introduktion till algoritmanalys. https://www.kth.se/student/kurser/kurs/dd1339

Kursbeskrivning (Studiehandboken) Kursens huvudsakliga innehåll: Operativsystem och speciellt Unix, skolans datorsystem, en dators uppbyggnad, texteditering, grundläggande HTML och LaTeX. Programmering: Teori och praktisk övning rörande alla aspekter av grundläggande programmering och programutveckling. Programspråken Java och Go används. Grundläggande datastrukturer: Listor, stackar, köer, prioritetsköer, mängder, hashtabeller, träd och grafer. Grundläggande algoritmer: Sökning, sortering, trädalgoritmer samt ytterligare några typer av algoritmer. Introduktion till algoritmanalys. https://www.kth.se/student/kurser/kurs/dd1339

Kursbeskrivning (Studiehandboken) Kursens huvudsakliga innehåll: Operativsystem och speciellt Unix, skolans datorsystem, en dators uppbyggnad, texteditering, grundläggande HTML och LaTeX. Programmering: Teori och praktisk övning rörande alla aspekter av grundläggande programmering och programutveckling. Programspråken Java och Go används. Grundläggande datastrukturer: Listor, stackar, köer, prioritetsköer, mängder, hashtabeller, träd och grafer. Grundläggande algoritmer: Sökning, sortering, trädalgoritmer samt ytterligare några typer av algoritmer. Introduktion till algoritmanalys. https://www.kth.se/student/kurser/kurs/dd1339

Lärandemål (Studiehandboken) Efter fullgjord kurs ska kursdeltagare kunna: använda vanligt förekommande datorverktyg och då speciellt datormiljöerna på D designa och implementera enkla sekventiella och parallella program lösa problem med hjälp av programmering analysera, välja, använda och implementera grundläggande algoritmer och datastrukturer delta i professionell programmeringsverksamhet och känna till programmerarens olika roller och uppgifter i syfte att: effektivt utnyttja datorer i sina fortsatta studier och i arbetslivet hitta och använda rätt teknik för ett givet problem, gå fortsättningskurser inom datalogi och numerisk analys.

Examination Kursen examineras med hemuppgifter och projekt som redovisas skriftligt och muntligt i samband med de obligatoriska övningarna. Kursen omfattar 19 hp: 1,5 hp för datorintroduktionen, LAB1 6 hp för höstens hemuppgifter, HEM1 5,5 + 3 hp för vårens hemuppgifter, HEM2, HEM3 3 hp för projektet i slutet av kursen, PRO1

Examination Slutbetyget på kursen baseras på betygen på hemuppgifterna (HEM1 och HEM2). Övriga delmoment betygsätts enbart med godkänt/underkänt. Slutbetyget på kursen beräknas enligt följande tabell (medelvärde avrundat uppåt): Höstbetyg A B C D E Vår betyg A A A B B C B A B B C C C B B C D D E C C D D E

Kursupplägg HT14 Föreläsningar (7+6) x 2 h (2 x 45 min) tar upp teori, principer, terminologi Övningar (6+6) x 2h Genomgång av hemuppgifter Labbar 13 x 2h Praktisk hjälp med programmeringsuppgifter

Hemuppgifter 11+1 uppgifter, utförs enskilt Redovisas skriftligt och muntligt på övningar Antalet godkända uppgifter sätter betyget på denna kursdel: 12 poäng ger betyget A 11 poäng ger betyget B 10 poäng ger betyget C 9 poäng ger betyget D 8 poäng ger betyget E

Programmeringsparadigm Lågnivåspråk: Maskinkod (binärkod) Instruktioner som kan utföras direkt av processorn Exempel: b0 61 // Lagrar värdet 97 i AL-registret Assembler (50-talet) Nära maskinkod, men lättare för människor att läsa Exempel: MOV EAX, EBX register EAX // lagrar värdet från register EBX i

Programmeringsparadigm Procedurella språk (sent 60-tal, 70-tal) Kommandon kan packas i procedurer, man skriver hur man vill att maskinens tillstånd skall ändras. Programmet kompileras till maskinkod innan det kan köras. Exempel: Fortran, Cobol, (Python), C float mean(float a, float b){ return (a + b)/2; } int main(){ float c; c = mean(17, 55.3); }

Programmeringsparadigm Funktionella Språk (70-tal) Program uttrycks som matematiska funktioner som ska utvärderas Exempel: Scheme, Haskell, (Python), Common Lisp: (defun mean (A B) "Compute the mean of A and B." (/ (+ A B) 2)) (mean 17 55.3)

Programmeringsparadigm Objektorienterade språk (70-tal) Programdelar kapslas in i objekt, som innehåller datafält och metoder som verkar på objekten Exempel: Simula67, SmallTalk, C++, (Python), Java: public class 2DVector{ private double x = 17; private double y = 55.3; public double getmean(){ return (x+y)/2; } }... My2DVector = new 2DVector(); double mean = my2dvector.getmean();

Objektorientering Motiverat av allt mer komplexa programmeringsprojekt. Programkomponenter lagras i objekt. Hur dessa ser ut inuti döljs från resten av programmet. Man kan interagera med objekt med hjälp av publika metoder. Underlättar modulär design, och utbytbara programkomponenter. Exempel: Ett objekt kan inehålla en bild, och som programmerare behöver man inte veta vilket format bilden är lagrad i för att kunna skala om den till en annan storlek, utan man anropar bara t.ex: minbild.getscaledinstance(width, height, hints)

Terminologi Mallar för hur objekt ska skapas kallas klasser Man säger att objekt är instanser av klasser Ex: objektet ZGF 123 är en instans av klassen Bil Klasser (och Objekt) har fält som rymmer data (egenskaper), och metoder som kan anropas för att utföra något. Ex: Klassen Rektangel har - fälten: höjd, bredd - metoderna: yta, omkrets, ändra storlek, inre punkt

Terminologi Vi hänvisar till fält i ett objekt med punktnotation: Ex: myrectangle.height Ett fält i ett objekt, kan i sig vara ett objekt, då kan vi skriva längre uttryck för att hänvisa till något. Ex: myrectangle.height.unit Metoder anropas på liknande vis, men tar (eventuellt tomma) argument också: Ex: myrectangle.setheight(10)

http://www.csc.kth.se/utbildning/kth/kurser/dd1339