Kursplanering fo r HI1027, Objektorienterad programmering, P1 HT112

Relevanta dokument
Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT14

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT17

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

Introduktionsmöte Innehåll

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Kursplanering Objektorienterad programmering

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

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

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Objektorienterad programmering

EDAA01 Programmeringsteknik - fördjupningskurs

Objektorienterad programmering

Föreläsning 1: Introduktion till kursen

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level

Programmeringsteknik II

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Föreläsning 1: Introduktion till kursen

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

Objektorienterad Systemutveckling Period 3

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

Föreläsning 1: Introduktion till kursen

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

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

Programmering, grundkurs

Datateknik GR (A), Introduktion till programmering i C++, 7,5 hp

Föreläsning 15: Repetition DVGA02

Kursplan. System och programkonstruktion. Systems and Software Development

Distribuerade affärssystem

Objektorienterad programmering

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Informatik med systemvetenskaplig inriktning A, 30 högskolepoäng Informatics, Basic Course, 30 Credits

Inledande programmering med C# (1DV402) Introduktion till. eller så här är det tänkt att fungera.

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

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Objektorienterad Programmering (TDDC77)

Design Patterns. En kort introduktion

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

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

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

b) NY KURS (Ange kursnamn, årskurs, önskad läsperiod, schemablocksplacering. Bifoga utkast till kursplan.)

Informatik med systemvetenskaplig inriktning A, 30 högskolepoäng Informatics, Basic Course, 30 Credits

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

Teoridel (svaren direkt på lydelsen)

Programming in C# and.net Framework

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2011

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

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Ingenjörsfirman Stéen Java Sida 1 av 1

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Objektorienterad Programkonstruktion

SF1513 (tidigare DN1212) Numeriska metoder och grundläggande programmering. för Bio3, 9 hp (högskolepoäng)

Kurs-PM för Programmeringsdelen på FK4025/FK4026, HT16

2D1359 & 2D1360. Informationsblad 1, 3 September Objektorienterad analys, modellering och design: principiella tillvägagångssätt,

Objektorienterad analys och design

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

OOP Objekt-orienterad programmering

Programmering i C++ Programkurs 6 hp Programming in C++ TNG033 Gäller från: 2018 VT. Fastställd av. Fastställandedatum

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2010

Datateknik B, Tillämpad datavetenskap, 30 högskolepoäng Computer Engineering, Applied Computer Science, Intermediate Course, 30 Credits

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

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

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

Studiehandbok 1FE196 Introduktion till ekonomistyrning, 7,5

Datamodeller och databaser, avancerad kurs

Design och konstruktion av grafiska gränssnitt

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

KONSTFACK Institutionen för design, inredningsarkitektur och visuell kommunikation KURSPLAN

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

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

GIT L0003B. Databaser, en introduktion. Information inför kursstart

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

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

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

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Objektorienterad programmering

Välkomna till DIT012 IPGO

LOKAL UTBILDNINGSPLAN INFORMATIKPROGRAMMET 120 POÄNG IF04

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

Kursplanering Utveckling av webbapplikationer

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

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

Teknisk modellering: Bärverksanalys VSMF05

Programmeringsteknik I

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

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

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Imperativ programmering. Föreläsning 4

Kursplan. Matematiska och systemtekniska institutionen (MSI) Kurskod IVA741 Dnr MSI 99/00:62 Beslutsdatum Design av informationssystem

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

Objektorientering. Grunderna i OO

Schema för BL2011 Gener, celler och populationer 15 hp VT17 del 3:

Transkript:

Kursplanering fo r HI1027, Objektorienterad programmering, P1 HT112 Aktuell kursplan finns på studentwebben, http://www.kth.se/student/program-kurser/sokkurs. Examinator/Kursansvarig lärare/undervisande lärare Anders Lindström, anders.lindstrom@sth.kth.se, rum 7044, telefon 08 790 48 13 Kursbeskrivning Kursen är en introduktionskurs till objektorienterad programmering och modellering samt programmering i ett objektorienterat språk, Java. Kursen ger kunskaper i objektorienterad programmering och modellering som kommer att användas inom andra områden under utbildningen. Inom objektorienterad programmering närmar man sig ett programmeringsproblem utifrån vad det är programmet ska modellera. Ett objekt är en modell av något inom problemområdet, t ex en person i ett registerprogram, en socket i ett program som kommunicerar över nätverk eller en kortlek i ett program för att lägga patiens. För varje typ av objekt har man klart definierat vilka operationer som får utföras. Operationerna bestäms utifrån hur de olika objekten i programmet samverkar med varandra. Detta sätt att närma sig ett programmeringsproblem är ofta naturligare än att, som i rent imperativ programmering (t ex C), börja med att beskriva en algoritm. Kursen behandlar nyckelbegrepp inom objektorienterad programmering som: klasser (mallar för objekt av samma typ) inkapsling (att dölja information som är oväsentlig för användaren av klassen) relationer mellan objekt, t.ex. aggregat (sammansatta objekt) arv och interface objektorientering modellering HI1027 1 Anders Lindström, KTH STH

Kursen kommer också att ge grundläggande kunskaper om händelsestyrda program, grafiska gränssnitt, programmering med parallella trådar samt en introduktion till objektorienterade designmönster (Design Patterns). Efter denna kurs bör du på egen hand kunna lära dig andra objektorienterade programmeringsspråk, som t.ex. C# eller C++, eller på annat sätt fördjupa dig inom objektorienterad programmering. Förkunskapskrav För att följa denna kurs krävs goda kunskaper i grundläggande programmering, t ex kursen HI1024. Om du ännu inte är godkänd på datortentan på kursen HI1024 men är godkänd på laborationer och teoritentamen bör det vara det möjligt att klara kursen, även om det kan kräva extra arbete i början av kursen. Är varken laborationerna eller datortentan avklarade rekommenderas du att läsa grundkursen, som också går i P1, innan du börjar denna kurs. Är du osäker på om dina förkunskaper är tillräckliga för denna kurs är du välkommen att diskutera detta med kursansvarig före kursstarten. Kursmaterial Rekommenderad kurslitteratur Object-oriented Software Development Using Java, 2 nd edition, Xiaoping Jia, Addison Wesley. ISBN 0-321-21073-5 En mycket bra bok med fokus på design av bra objektorienterad mjukvara. Boken innehåller mycket om objektorienterad analys och design, modellering med UML samt introducerar Patterns (designmönster). Grafikavsnittet i boken är inte helt up to date, men å andra sidan finns mycket information på nätet om grafik i Java. Boken kan även användas som litteratur för programmeringsdelen i kursen Kommunikationssystem i årskurs 3. Boken finns i ett begränsat antal exemplar i bokhandeln i Haninge men kan också beställas från t.ex. adlibris.se eller amazon.com. Alternativa böcker Introduction to Java Programming, Comprehensive version, 9 th, 8th eller 7th edition, Y. Daniel Liang, Pearson Education ISBN 0-273-77138-8 (9th edition) Boken täcker, precis som Jia s bok, kursen och programmeringsmoment i andra kurser. Boken är mer detaljerad än Jia s (speciellt om grafiska gränssnitt), men är inte lika klar när det gäller objektorienterat tänkande och objektorienterad analys och design. Bredvidläsning För den som vill fördjupa sig i objektorienterat tänkande rekommenderas någon bok om Design Patterns, designmönster. Designmönster för programmerare, Bilting, Studentlitteratur, ISBN 91-44-04312-0, är en välskriven, och billig, introduktion. HI1027 2 Anders Lindström, KTH STH

Design Patterns: Elements of Reusable Object-Oriented Software, Gamma/Helm/Johnson/Vlissides, ISBN 0-201-63361-2, är ett omfattande standardverk. Kurswebb På KTH Social, https://www.kth.se/social/, finns övningar, laborationer, visst material som tas upp på föreläsningar samt länkar till övrigt material. Programvara Programvaran som används under kursen är freeware och kan laddas ner från nedanstående webbsidor. Information om hur du installerar programvaran finns på kurswebben/resurser. Javakompilator, Java SE Development Kit (JDK): http://www.oracle.com/technetwork/java/javase/downloads/index.html Välj Java Platform (JDK). Efter installationen bör du också ange sökvägen till din SDK. I Windows lägger du till denna sökväg till miljövariabeln PATH (exempel ;C:\Program Files\Java\jdk1.7.x ). Kodeditor och projekthanterare, Eclipse SDK: http://www.eclipse.org/downloads/ Välj Eclipse Classic eller Eclipse IDE for Java Developers (dock ej versionen EE). Använder du Windows extraherar du lämpligen zip-filen till C:\Program Files. Vill du ha en genväg till applikationen måste du skapa denna själv (högerklicka på ikonen eclipse ). Dokumentation om Javas standardklasser (API) finns på http://docs.oracle.com/javase/7/docs/api/ Under den senare delen av kursen, och i laboration 4, behöver du ett verktyg för objektorienterad modellering med UML. Dia är ett enkelt ritverktyg för detta, http://dia-installer.de Föreläsningar och övningar Vid föreläsningarna hänvisar jag ibland till programexempel eller korta kompendier, som finns att hämta på kurswebben. Det är lämpligt att skriva ut dessa dokument och ta med till föreläsningen. Läs igenom angivna kapitel i boken, samt ev. material från kurswebben före föreläsningen. Varje föreläsning följs av en övning. På kurswebben kan du se vilka uppgifter som är lämpliga att arbeta med på övningarna. Examination Tentamen, TEN1, 3,5 hp. Betygsskala A-F Tentamen sker vid dator och innehåller både teoretiska och praktiska moment. Tentamen ges i slutet av P1 samt i januari, se separat tentamensschema. Anmälan till tentamen görs via Mina Sidor. Komplettering av tentamen kan göras om resultatet på tentamen anses ligga nära gränsen för betyg E. Gräns för komplettering anges på varje tentamen. Kompletteringen kan endast ge betyg E eller F och sker senast 4 veckor efter tentamenstillfället vid av examinator angiven tid. Examinator avgör om kompletteringen ska vara muntlig eller skriftlig. HI1027 3 Anders Lindström, KTH STH

Laborationer, ÖVN1, 4,5 hp. Betygsskala A-F Laborationskursen består av 5 obligatoriska laborationer samt ett antal frivilliga fördjupningsuppgifter. Laborationerna redovisas vid 5 schemalagda tillfällen. Ytterligare 2 redovisningstillfällen kommer att finnas, i tentamensveckan period 1 samt i anslutning till omtentamen i januari. Om du efter dessa tillfällen inte är godkänd på laborationskursen hänvisas du till nästa läsårs hela laborationskurs. Tidsbokning för laborationsredovisning görs via Bilda, Verktyg/Inbjudningar. Laboration Löses och redovisas Motsvarande föreläsningar 1 Enskilt F1 F3 2 Enskilt F1 F5 3 Parvis F1 F8 4 Grupp F1 F10 5 Parvis F1 F14 X, Y (högre Enskilt F1 F15 betyg, frivilliga) Notera: Vid redovisning av laborationer gäller STH:s Hederskodex. Om laboration 1 inte redovisas vid första schemalagda tillfälle, får du en ny uppgift (Lab 1b). Det är ett krav att vara godkänd på laboration 1 och 2 (löses enskilt) för att få redovisa laboration 3-5 (par/grupp). Föreläsningen och övningen den 24/9 är obligatorisk. Vid denna övning introduceras laboration 4 och gruppindelning för redovisningen sker. Krav för högre betyg (D - A) Kraven för godkänt måste vara uppfyllda. Dessutom finns sammanlagt 4 fördjupningsuppgifter, en på respektive laboration 3 och 5, samt laborationerna X och Y. För att erhålla ett högre betyg än E på laborationskursen krävs att samtliga laborationer är godkända vid ordinarie tillfälle (under kursens gång). Antal godkända fördjupningsuppgifter 1 2 3 4 Betyg, ÖVN1 D C B A Slutbetyg Viktat medelvärde av betygen på ÖVN1, vikt 4,5, och TEN1, vikt 3,5. Betygen översätts vid beräkningen till siffror, där A = 5, B = 4, C = 3, D = 2 och E = 1. Exempel: Betyg B på ÖVN1 och betyg E på TEN1 ger slutbetyget (4*4,5 + 1*3,5)/(4,5+3,5) = 2,6875 vilket avrundas till 3, d v s slutbetyget blir C. Läsanvisningar På följande sidor finner du läsanvisningar till den rekommenderade samt den alternativa kurslitteraturen. HI1027 4 Anders Lindström, KTH STH

F# Moment Jia, Objectoriented Software Development using Java 1 Vad är objektorienterad programmering? Språket Java. En jämförelse mellan Java och C. 2 Klasser och objekt. Datamedlemmar och metoder. Inkapsling. Mutable/Immutable. Återanvändning. 3 Mer om klasser och objekt: static, this, överlagrade metoder m m Java: Referensvariabler, objekt och Garbage Collector. Arrayer med objekt. Klassen String. Enumeration. Material från kurswebben samt kap 1 och 2.1 (en översikt) Kap 3 och 4.1 4.3 Kap 4.4 4.4.6 Kap 4.4.7 4.4.9, 4.5 4 Relationer mellan klasser: association, aggregat. UML, klassdiagram. Kap 2.1 2.2 5 Arv, specialisering. Vad och varför? Basklass och subklasser. Nyckelordet super Omdefiniering av metoder i subklasser (overriding) Klasshierarkier, basklassen Object. 6 Polymorfism heterogena objektsamlingar, basklassreferenser Abstrakta klasser. Arv vs. Aggregat. 7 Interface och arv Exempel: Interfacet Comparable och kod för t ex sortering Collections Framework, speciellt klassen ArrayList. 8 Felhantering med exceptions: try, catch, finally. Filhantering i Java, strömmar. Serialisering av objekt. Kap 5.1 5.4 (täcker föreläsningarna 5 7) Kap 4.6 Kap 8.1 och 8.4 9 Resurs/Repetition. Något om Generics i Java. Material från kurswebben. 10 Obligatorisk övning: OO modellering från problem till klasser. Unified Modeling Language, UML: klassdiagram, sekvensdiagram m m 11 Grafiska användargränssnitt, introduktion till swing Introduktion till händelsehantering; händelsekällor, lyssnare och händelsehanterare. 12 Mer om händelsehantering Model-View-Controller mönstret. 13 Mer om komponenter i swing; layout, text input, text areas, check boxes, menyer. 14 Parallella aktiviteter med trådar Race conditions, synkronisering av trådar Kap 2 (2.1 2.5) Kap 6.1 6.3 bör läsas som en översikt inför kommande kurser. Kap 8.3 samt föreläsningsmaterial. För detaljer om grafiska komponenter hänvisas till länkar på kurssidan. Kap 9 bör läsas, som ett praktiskt exempel Kap 11 15 Något om Design-mönster, Patterns Valda delar av kap 7 + kurswebben 16 Exempeltentamen. Coachning inför laboration 5. Material från kurswebben. HI1027 5 Anders Lindström, KTH STH

F# Moment Liang, Introduction to Java programming, Comprehensive version, 7 th / 8 th ed 1 Vad är objektorienterad programmering? Språket Java. En jämförelse mellan Java och C. 2 Klasser och objekt. Datamedlemmar och metoder. Inkapsling. Mutable/Immutable. Återanvändning. 3 Mer om klasser och objekt: static, this, överlagrade metoder m m Java: Referensvariabler, objekt och Garbage Collector. Arrayer med objekt. Klassen String. Enumeration. Material från kurswebben Kap 6/6, 7.1-7.3 (arrayer) [Kap 1 5 är en repetition av grundläggande programmering, i Java] Kap 7, 9 / 8, 10 (täcker föreläsningarna 2 och 3) Se F2 Kap 8.1-8.2 / 9.1-9.2 (String) 4 Relationer mellan klasser: association, aggregat. UML, klassdiagram. Kap 12.1-12.4.4 / 8.2, 10.7, 10.11 + kurswebb 5 Arv, specialisering. Vad och varför? Basklass och subklasser. Nyckelordet super Omdefiniering av metoder i subklasser (overriding) Klasshierarkier, basklassen Object. 6 Polymorfism heterogena objektsamlingar, basklassreferenser Abstrakta klasser. Arv vs. Aggregat. 7 Interface och arv Exempel: Interfacet Comparable och kod för t ex sortering Collections Framework, speciellt klassen ArrayList. 8 Felhantering med exceptions: try, catch, finally. Filhantering i Java, strömmar. Serialisering av objekt. Kap 10 11 / 11, 14 (täcker föreläsningarna 5 7) 22.5-22.6 / 22.6-22.7 Kap 18 / 13 Kap 19 / 9.6-9.7, 19 9 Resurs/Repetition. Introduktion till Generics i Java. Material från kurswebben. 10 Obligatorisk övning: OO modellering från problem till klasser. Unified Modeling Language, UML: klassdiagram, sekvensdiagram m m 11 Grafiska användargränssnitt, introduktion till swing Introduktion till händelsehantering; händelsekällor, lyssnare och händelsehanterare. 12 Mer om händelsehantering Model-View-Controller mönstret. 13 Mer om komponenter i swing; layout, text input, text areas, check boxes, menyer. 14 Parallella aktiviteter med trådar Race conditions, synkronisering av trådar Material från kurswebben samt utdelat material (kap 2 Xiaoping Jia). Kap 12 (Liang) Kap 13, 15, 16 / 12, 16, 17 samt föreläsningsmaterial. Detaljer om grafiska komponenter, se länkar på kurssidan. Kap 35.1-35.3 / 35.1-35.3 (MVC) Kap 29 / 29 15 Något om Design-mönster, Patterns Material från kurswebben. 16 Exempeltentamen. Coachning inför laboration 5. Material från kurswebben. HI1027 6 Anders Lindström, KTH STH