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

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

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

Kursplanering fo r HI1027, Objektorienterad programmering, P1 HT112

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

Kursplanering Objektorienterad programmering

Introduktionsmöte Innehåll

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

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

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

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

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

Objektorienterad programmering

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

EDAA01 Programmeringsteknik - fördjupningskurs

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

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

Föreläsning 1: Introduktion till kursen

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

Objektorienterad programmering

Programmeringsteknik II

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

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

Föreläsning 15: Repetition DVGA02

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Distribuerade affärssystem

Objektorienterad Systemutveckling Period 3

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

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

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

OOP Objekt-orienterad programmering

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

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

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

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

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

Programming in C# and.net Framework

Objektorienterad analys och design

Objektorienterad Programmering (TDDC77)

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

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

Ingenjörsfirman Stéen Java Sida 1 av 1

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

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

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

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

Design och konstruktion av grafiska gränssnitt

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Programmering, grundkurs

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

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

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

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

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

Design och konstruktion av grafiska gränssnitt

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

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

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

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

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.

Objektorienterad programmering

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

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

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Arv och polymorfism i Java

Datamodeller och databaser, avancerad kurs

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

Design Patterns. En kort introduktion

Objektorientering. Grunderna i OO

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

Kursplan. System och programkonstruktion. Systems and Software Development

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

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

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

Konstruktion av klasser med klasser

Objektorienterad programmering

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

Studiehandbok 1FE196 Introduktion till ekonomistyrning, 7,5

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

DAT043 - Föreläsning 7

Scriptprogrammering och avancerad Flash. Ulf Larsson Jon Wåhlstedt

DT018G Introduktion till programmering i C++, 7,5 hp Välkommen till denna information om kursen "Introduktion till programmering i C++".

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

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

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

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

Avdelningen för informations- och kommunikationssystem Fakulteten för naturvetenskap, teknik och medier

Kursbeskrivning för JKA220, Japanska II (22,5 hp), VT12

Välkomna till DIT012 IPGO

Objektorienterad Programmering (TDDC77)

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Kursens uppläggning. Lärare. Handledare och gruppövningar.

SMD 134 Objektorienterad programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

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

Transkript:

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT17 Lärare och examinator Anders Lindström, anders.lindstrom@sth.kth.se, telefon 08 790 48 13 (kursansvarig och examinator) 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 Kursen kommer också att ge grundläggande kunskaper om händelsestyrda applikationer, grafiska gränssnitt, programmering med trådar samt en introduktion till objektorienterade designmönster (Design Patterns). HI1027 1 Anders Lindström, KTH STH

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 istället läsa grundkursen, som också går i P1, innan du börjar denna kurs. Kursmaterial Rekommenderad kurslitteratur Introduction to Java Programming, Comprehensive version, 10 th eller 9 th edition, Y. Daniel Liang, Pearson Education ISBN 9781292070018 (10 th edition) Boken finns även som e-bok, ISBN 9781292070025, och är då billigare. Delar av innehållet i denna bok användas även inom (delar av) följande kurser på programmet Datateknik, TIDAA: HI1030, Databasteknik (åk 2), HI1031, Distribuerade informationssystem (åk 3) samt HI1032, Kommunikationssystem (åk 3). Referenslitteratur (bredvid-läsning, ej obligatorisk ) 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. Kurswebb Kurswebben ligger på Canvas och där finns övningar, laborationer, visst material som tas upp på föreläsningar samt länkar till övrigt material. Notera att du måste vara kursregistrerad för att kunna komma åt kurswebben (kontakta studentexpeditionen om du har problem med detta). 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. Javakompilatorn, Java SE Development Kit (JDK), och utvecklingsmiljön, NetBeans laddas ned från http://www.oracle.com/technetwork/java/javase/downloads/index.html Välj NetBeans with JDK 8 så installeras både kompilator och utvecklingsmiljö. För att även kunna kompilera javakod från ett terminalfönster, utan utvecklingsmiljön NetBeans, ska du efter installationen ange sökvägen till din JDK (som bl.a. innehåller HI1027 2 Anders Lindström, KTH STH

kompilatorn). I Windows lägger du till denna sökväg till miljövariabeln PATH (exempel ;C:\Program Files\Java\jdk1.8.x\bin ). Dokumentation om Javas standardklasser (API) finns på http://docs.oracle.com/javase/8/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 exempelkod eller korta kompendier som finns att hämta på kurswebben. Det är lämpligt att ta med dessa 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 omtentmanesperioden i P2, se separat tentamensschema. Du anmäler dig till tentamen 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 vid tentamenstillfället. 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. 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. Laboration Löses och redovisas Motsvarande föreläsningar 1 Enskilt F1 F3 2 Enskilt F1 F4 3 Parvis F1 F8 4 Grupp F1 F10 5 Parvis F1 F14 X, Y (endast för högre betyg) Enskilt F1 F15 HI1027 3 Anders Lindström, KTH STH

Notera: Vid redovisning av laborationer gäller STH:s Hederskodex, se kurswebben, undersidan Laborationer. 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 2/10 är obligatorisk. Vid detta tillfälle introduceras laboration 4 och gruppindelning för redovisningen sker. Tidsbokning för laborationsredovisning görs via kurswebben. 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. HI1027 4 Anders Lindström, KTH STH

Läsanvisningar På följande sidor finner du läsanvisningar till den rekommenderade samt den alternativa kurslitteraturen. F# Moment Introduction to Java programming, Compr. version, 10th/9th ed (de fall där 9 th ed avviker är markerade med rött) 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. Material från kurswebben Kap 7, 8.1-8.3 (9th ed: 6, 7.1-7.3) [Kap 1 6 (9th ed: 1-5) är en repetition av grundläggande programmering, i Java] 9, 10 (9th ed: 8, 10). Detta täcker föreläsningarna 2, 3 och 4) 3 Mer om klasser och objekt: static, this, överlagrade metoder m m Java: Referensvariabler, objekt och Garbage Collector. Arrayer med objekt. Klassen String. Enumeration. Se F2 4.4, 4.6 (9th ed: 9.1-9.2) - behandlar klassen String samt enkel I/O. 4 Relationer mellan klasser: association, aggregat. UML, klassdiagram. 9.2, 10.4.1-10.4.2 (9th ed: 8.2, 10.7, 10.11) + material på kurswebben 5 Arv, specialisering. Vad och varför? Superklass och subklasser. Nyckelordet super Omdefiniering av metoder i subklasser (overriding) Klasshierarkier, basklassen Object. 6 Polymorfism heterogena objektsamlingar, basklassreferenser Abstrakta klasser. Arv vs. Aggregat. Interface och arv Exempel: Interfacet Comparable och kod för t ex sortering 11, 13 (9th ed: 11, 15). Detta täcker föreläsningarna 5 6. Se F5 7 Generics i Java. Collections Framework, speciellt klasserna LinkedList och ArrayList. Enhetstestning 8 Felhantering med exceptions: try, catch, finally. Filhantering i Java, strömmar. Serialisering av objekt. 9 Resurs 10 Obligatorisk föreläsning/övning (2/10): OO modellering från problem till klasser. Unified Modeling Language, UML: klassdiagram, sekvensdiagram m m 11 Grafiska användargränssnitt, introduktion till Java FX Introduktion till händelsehantering; händelsekällor, lyssnare och händelsehanterare. 12 Mer om händelsehantering Designmönstret Model-View-Controller Mer om komponenter i Java FX: layout, text input, text areas, check boxes, menyer. 13 Parallella aktiviteter med trådar Race conditions, synkronisering av trådar 19 (9th ed: 21) 20.4-20.6 (9th ed: 22.4-22.6) Material på kurswebben 12.1-12.9 (9th ed: 14.1-14.9) 12.10-12.13, 17 (9 th ed: 14.10-14.13, 19) Material från kurswebben samt utdelat material (kap 2 Xiaoping Jia). Kap 14, 15, 16 samt föreläsningsmaterial. Notera att 9th inte tar upp Java FX-grafik; länkar till alternativt material finns på kurswebb Se F9 samt kap 34 Material från kurswebben. 30.1-30.15 (9th ed: 32.1-32.15) 14 Introduktion till Design-mönster, Design Patterns Material från kurswebben. 15 Exempeltentamen. Coachning inför laboration 5. Material från kurswebben. HI1027 5 Anders Lindström, KTH STH