2D1359 & 2D1360 OOMPA-99 Informationsblad 1, 3 September 1999 INTRODUKTION av Björn Eiderbäck, kursledare. Hej och välkommen till, Objektorienterad Modellering Programmering och Analys. Kursen är på 6 poäng och genomförs under period 1-2. ÖVERSIKT En fortsättningskurs i datalogi som behandlar objektorienterad analys, modellering, design och programmering. I år används Java som huvudprogramspråk i Mål Kursens mål är att ge ingående kännedom om principerna och begreppen bakom objektorienterad analys, design och programmering, ge kännedom om och färdighet i metoder för att utveckla, d.v.s. utforma, implementera och prova, objektorienterade program, ge erfarenhet av objektorienterad programmering för att eleverna ska kunna tillämpa objektorienterade metoder vid design och implementation av moderna programsystem. Kursinnehåll Objektorientering, principer och begrepp: objekt, klass, instans, attribut, metod, arv etc. Abstrakta datatyper, generiska datatyper, polymorfi. Objektorienterad analys, modellering och design: principiella tillvägagångssätt, exempel på notationer, kriterier på god design och robust programuppbyggnad. Systematiska principer för konstruktion av korrekta och robusta program. Objektorienterade språk: olika språkfamiljer, deras grundläggande begrepp och skillnader. Programmering i ett objektorienterat språk. Testning: typer av fel, felhantering, val av testdata och testprocedurer. DELTAGANDE OCH ANMÄLAN Vem får läsa? Fr.o.m. hösten 1998 gäller att endast de teknologer som delfakulteten lagt in i ladok som studerande på en kurs får läsa Registrering För att genomföra kursen måste du också registrera dig via res. Gör: res checkin oompa99 Prenumerera på kursinformation För att prenumerera på kursinformation gör också: course join oompa99 VIKTIGA ADRESSER Hemsidor Kursens hemsidor med mer beskrivningar hittar du på följande adress: http://www.nada.kth.se/ kurser/kth/2d1359 News Kursen har ett eget newsmöte: news:nada.kurser.oompa Kursledning och lärare Aktuell kontaktinfo, dvs adresser till kursledare och assar, eventuella mottagningstider mm hittar du från kursens hemsida. Hemkatalog Kursens hemkatalog har följande adress: /info/oompa99 GENOMFÖRANDE Föreläsningar På kursen ingår 18 föreläsningar varav 13 i period 1 och 5 i period 2. Seminarier På kursen ingår också 6 seminarier. Varje seminarium består av två delmoment. Seminarierna redovisas i grupper (se gruppindelning nedan) vid speciella seminarietillfällen. För betyg mm se avsnittet Betyg nedan. Laborationer Laborationer genomförs i grupper om två personer. I kursen ingår fem stycken laborationer. Där varje laboration har två delar: en obligatorisk och en med två extrauppgifter. Den första laborationen redovisas period ett resterande period två.
Laborationerna genomförs i Brun, Gul, Röd, Grön och Orange sal. För mer info se avsnittet Betyg respektive Tillåtet respektive icke tillåtet samarbete vid laborationer nedan. sedan denna poäng med betyget på tentamen. Exempel 3:a på tentan och 4.2 labbpoäng ger 7.2 / 2 = 3.6 som höjs till slutbetyget 4. skall från skissen enkelt gå att ta fram/ redovisa en lösning. Tentamen Betyg U, 3, 4 eller 5. Tentamen et i period ett av kursen tenteras i tentaperioden efter period ett. BETYG För att bli godkänd på kursen krävs att seminarium 1-6 (moment SEM1, 2 poäng), laboration 1-5 (moment LAB1, 2 poäng) och tentamen (moment TEN1, 2 poäng) är godkända. Laborationer I kursen ingår fem stycken laborationer. Där varje laboration har två delar: en obligatorisk och en med två extrauppgifter. Alternativt till extrauppgifter kan extrauppgiftslab göras. Den obligatoriska delen har ett sista vecka för redovisning. För att inte "bestraffning" skall ske måste laborationen redovisas senast den angivna veckan. För mer information om detta se avsnitten betygsberäkning och försening nedan. Alla laborationer skall utföras för avklarad labkurs och därmed betyg på hela Extrauppgifter genomförs antingen 1) för att höja betyg eller 2) för att kompensera för redovisning efter sista redovisningsdatum. Laborationsmomentet betygsätts och viktas sedan med betyget på tentamen för framräkning av slutbetyget på SISTA REDOVISNINGSDAG FÖR HÖGRE BETYG ÄN 3 PÅ LABKURSEN För att uppnå högre betyg än 3 på labkursen måste alla obligatoriska uppgifter och extrauppgifter vara redovisade senast vecka 2 år 2000. Därefter kan man uppnå högst betyget 3 på lab Se också sista datum på labpeken. Betygsberäkning Grunduppgifterna på laborationerna är värda 0.6 labbpoäng styck, extrauppgifterna 0.3 labbpoäng styck. Dvs varje laboration kan max ge 1.2 labbpoäng. Maximalt kan labkursen ge 6 labbpoäng. För beräkning av slutbetyget viktas FÖRSENING Försening ger 0.1 bestraffningspoäng första veckan, 0.2 andra och tredje veckan efter sista redovisningsdatum för en viss laboration. Dvs en veckas försening ger 0.6-0.1 = 0.5 poäng, två veckors 0.6-0.1-0.2 = 0.3 och tre (eller fler) veckors försening 0.6-0.1-0.2-0.2 = 0.1 poäng. Vid försening måste alltså extrauppgifter göras för att det godkända betyget 3 skall uppnås. Kompenserande extrauppgifter kan dock väljas från annan laboration än den försenade. Seminarier För godkänt skall 75% av alla seminarieuppgifter utföras, dvs 9 av 12 deluppgifter. Redovisas i seminariegrupper. Seminarieuppgifterna har lite olika karraktär, vissa kräver att fullständiga lösningar görs i förväg andra förberedelse läsning av artiklar och lösningsskisser för att i gruppen tillsammans lösa ett visst problem. För att bli godkänd på ett seminariemoment skall du vi seminarietillfället lämna in en lösningsskiss med namn och personnummer, kryssa för att du har gjort ett visst moment och vara beredd att demonstrera en lösning för resten av gruppen. Den skriftliga redovisnigen behöver inte vara fullständigt men det Schemaöversikt period 1 Slutbetyg Betyg 3, 4 eller 5. För slutbetyg fordras godkänd tentamen, godkänd seminarieserie samt genomförd labkurs. Slutbetyget räknas fram genom att en viktning av betyget på tentamen och laborationer görs, där båda delarna väger lika mycket. Avrundning sker till närmaste heltal (avrundning av 0.5 sker uppåt). Maxbetyget är dock 5. SCHEMA Kursen består av fyra olika moment: föreläsningar, seminarier, laborationer och övning (en tentaräkningsövning). Nedan följer en övsersikt av dom olika momenten vecka för vecka. Förkortningar i schemaöversikten 35 36 37 38 39 40 41 F1 F2 F5 F7 F9 F11 F13 F3 F6 F8 F10 F12 S6 F4 S2 S3 S4 S5 Ö1 S1 L1 L2 L3 L4 L5 R1 Schemaöversikt period 2 F S Ö L R X Föreläsning Seminarium Traditionell övning Laboration/Terminalövning Redovisning av labuppgift (utan reducering av betyget) Extrauppgifter (sista dag för tillgodoräknande av extrauppgifter för högre betyg än 3 på labkursen) 43 44 45 46 47 48 49 50 2 F14 F16 F17 F18 F15 L7 L9 L11 L13 L15 L17 L6 L8 L10 L12 L14 L16 L18 R2 R3 R4 L19 R5 X 2 (5)
Tider och salar I kolumnen till höger hittar du tabeller som beskriver var och när dom olika momenten äger rum. Laborationstider Laborationerna äger rum i Brun, Gul, Röd, Grön och Orange sal. Observera att olika grupper labbar olika tider. Se tabellerna längs till höger för terminalövningsschema. Detaljschema På nästa sida hittar du ett detaljschema som beskriver innehållet på respektive föreläsning och seminarium. GRUPPINDELNING Vi delar 2D1359 i fyra lika stora delar och 2D1360 har en egen grupp. Period 1 (vecka 35-42) VAD SAL Föreläsning Må 14-16 36 F2 Må 14-16 37-41 E1 Ti 14-16 36 F2 On 9-11 36-37 M1 On 9-11 38-40 D1 Fr 9-11 35 D1 Seminarie/ Övning 2D1359 Må 16-18 41 F52-55 To 9-11 37-41 F52-55 Fr 9-11 36 F43-45, 55 2D1360 Må 15-18 41 F51 Fr 8-10 37-39, D34 41 Fr 8-10 40 F31 Fr 13-15 36 D34 Tentamen Lö 14-19 42 F41-45, 51-55 Grupp 1-2 Må 14-18 44-49 On 14-16 48-49 On 16-18 44-47 To 14-16 37-41 Fr 8-10 49 Fr 14-16 43 Grupp 3-4 Ti 8-10 44-49 To 11-13 48-49 To 16-18 44-47 Fr 9-11 37-41 Fr 16-18 43 Fr 12-14 49 Gruppindelning Efternamn som börjar på Grupp A-G 1 H-N 2 M-U 3 V-Ö 4 Ni som följer 2D1360 5 LÄSANVISNINGAR Läsanvisningar och annan information hittar du från kursens hemsida. KURSBÖCKER Vi kommer använda två böcker på En fokuserad på analys, design och UML: Using UML: Software Engineering with Objects and Components, Rob Pooley and Perdita Stevens, 1999 280 pages, Addison- Wesley 0-201-36067-5. Samt en bok som handlar om objektorientering med Java: Understanding Object-Oriented Programming With Java 1st Edition, Timothy Budd, 1998 384 pages, Addison-Wesley 0-201- 30881-9. Period2 (vecka 43-50) VAD SAL Föreläsning On 14-16 43-46 D1 To 11-13 43 E1 Omtentamen Fr 14/1 kl 8-13 E31-34 KURSBUNT er lablydelser, seminarielydelser, artiklar samt laborations- och seminariekvitton. Försäljningen av kursbunten startar fredag 3/9 kl 10.00. Kursbunten har två delar. LABORATIONER OCH SEMINARIER Laborationskvitto. Seminariekvitto. Krav och betygsregler. Lab 1, Figurer i hierarki. Lab 2, Designmönster. Lab 3, Grafik. Lab 4, Distribuering med CORBA. Lab 5, Smalltalk. Sem 1, Figurer i hierarki. Sem 2, CRC-kort. Sem 3, UML och lite Java. Sem 4, Kontemplation och reflektion. Sem 5, Designmönster. Sem 6, Modellering och UML. UTDRAG UR ARTIKLAR OCH BÖCKER BC. A Laboratory For Teaching Object-Oriented Thinking, Kent Beck och Ward Cunningham, 1989. Grupp 5 Må 16-18 44-49 Ti 13-15 49 On 17-19 48-49 To 12-14 44-47 Fr 13-15 37-41, 43 PW. Dimensions of Object-Based Language Design, Peter Wegner, 1987. WBW. Object-Oriented Design: A Responsibility-Driven Approach, Rebecca Wirfs- Brock och Brian Wilkerson, 1989. EG. Utdrag ur Design Patterns Elements of Reusable Object-oriented Software (mönstret Observer), av Gamma, Helm, Johnson och Vlissides, 1994. CORBA. CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments, Steve Vinoski, 1996, 12 sidor. + eventuellt något mer som delas ut under kursens gång. 3 (5)
Detaljschema föreläsningar och seminarier Vecka Vad. (Sal) Dag Litteratur 35 F1. (D1) Fr 3/9, 9-11 36 F2. (F2) Må 6/9, 14-16 F3. (F2) Ti 7/9, 14-16 F4. (M1) On 8/9, 9-11 S1. Se tabell 37 F5. (E1) Må 13/9, 14-16 F6. (M1) On 15/9, 9-11 S2. Se tabell 38 F7. (E1) Må 20/9, 14-16 F8. (D1) On 22/9, 9-11 S3. Se tabell 39 F9. (E1) Må 27/9, 14-16 F10. (D1) On 29/9, 9-11 S4. Se tabell 40 F11. (E1) Må 4/10, 14-16 F12. (D1) On 6/10, 9-11 S5. Se tabell 41 F13. (E1) Må 11/10, 14-16 Introduktion: Allmän översikt. Vad skall vi göra på kursen och varför? Kursuppläggning. OO problem, historik, användning. OO grunder, 1: Klass, objekt, arv, polymorfi, inkapsling. CRCkort: för att beskriva och spåna fram klasser. Scenarier: för att beskriva beteende och förlopp. OO grunder, 2. Komponenter och beteende. Java: historik, arkitektur, kompilering, exekvering. Klass, metod, attribut. Analys introduktion: vad?, varför?, processen, något om klassdiagram. Figurer i hierarki TB 1-2 PS 1, (2) TB {1}, 3 PS {2}, 5.6 BC hela TB {3}, 4 PS 3-5 Användningsfall (eng. Use Cases). Analys: Klassdiagram. PS 6-8 Design: Interaktionsdiagram, tillståndsdiagram. PS 9, 11 CRC-kort OO med Java: historik, arkitektur, klasser, arv, syntax, variabler, bibliotek, interface. Mer om interaktions och tillståndsdiagram. Arv och återanvändning av kod (i Java): typer och typning, olika former av arv och återanvändning. Polymorfi: polymorfa variabler, överlagring, överskrivning. Abstrakta metoder och klasser. Något om Javas mängdklasser. UML och lite Java Utvecklingsmetoder och processen. Hitta klasser, attribut och realationer, use cases, etc. TB {4}, 5, (6) PS {9, 11} 10, 12 TB 8, 10, (11), 12, (19) PS (Rep 1-12 spec 2-4), (20) Designmönster: historik, varför?, hur?, exempel. TB 15 EG PS 18 Kontemplation och reflektion Analys och design: mer om interaktions- och tillståndsdiagram. Aktivitetsdiagram. Andra diagramtyper. PS 10, 12-14 Testning och felhantering Avlusning, felhantering, stringens. TB 16 PS 19 Designmönster Java: in-, utmatning, hantering av collections och strängar. IDEer. TB 14, 17, 19 S6. Se tabell Övning Se tabell Modellering och UML Tentaräkning Extenta 4 (5)
Vecka Vad. (Sal) Dag Litteratur 43 F14. (D1) On 27/10, 14-16 F15. (E1) To 27/10, 11-13 44 F16. (D1) On 3/11, 14-16 45 F17. (D1) On 10/11, 14-16 46 F18. (D1) On 17/11, 14-16 Konstruktion av gränssnitt: konstruera grafiska gränssnitt med Java. Hantering av inmatning från mus och andra interaktionsverktyg. AWT: Javas bibliotek för konstruktion av fönster och grafiska komponenter. Något om Java2D. Trådar. Java och Webben: applets. Socketar: för att kommunicera mellan olika datorer och program. TB 7, 9, 13, 18 TB {13}, 14, 19 TB 20, 21 OO: olika oo-språk; användningsområden. Smalltalk: en introduktion och kort jämförelse med Java. VisualWorks\Smalltalk: miljö och språk. CORBA: distributionspaketet. Vinosky + material som delas ut på föreläsningen F-anteckningar + ev annat material F-anteckningar + ev annat material Förkortningar F Föreläsning BC Beck och Cunningham TB Timothy Budd {} Repetition, fördjupning S Seminarium EG Eric Gamma PS Pooley & Stevens () Översiktligt vid detta tillfälle FÖR FLER DETALJER OM SALAR FÖR LABORATIONER OCH SEMINARIER Se också http://www.nada.kth.se/kurser/schema/kthht99.html#oompad (2D1359) respektive http://www.nada.kth.se/kurser/schema/kthht99.html#oompae (2D1360) TILLÅTET RESPEKTIVE ICKE TILLÅTET SAMARBETE VID LABORATIONER Enligt KTH:s jurist är det att betrakta som fusk om en student försöker att redovisa en laborationsuppgift som vederbörande inte löst själv. Det är alltså fusk att kopiera en lösning eller delar av en lösning från någon annan utan att redovisa att du gjort så även om du sätter dig in i lösningen, förstår den och kan redogöra för den. Det är inte heller tillåtet att inleda andra i frestelse att fuska genom att göra sina egna lösningar lätt tillgängliga. För denna kurs tillämpas följande hederskodex: Grundregeln är att det jobb du gör i kursen på labbar ska du göra i grupp om två studenter. Vid redovisning av labbar ska varje individ kunna redogöra i detalj för hela lösningen. Ibland, speciellt när man skriver program, kan det vara nödvändigt att fråga någon annan (en kamrat eller en handledare) om hjälp med att hitta fel. Det kan också vara aktuellt att utnyttja färdiga exempelprogram från exempelvis kurslitteraturen. Du kan också använda kursens newsmöte för att fråga om hur ett visst delproblem löses (fast inte hela labben). Detta är tillåtet förutsatt att du uppfyller följande villkor. Du ska med kommentarer i programkoden ange vad du fått hjälp med av handledare/kamrat eller hämtat från färdiga exempelprogram. Du måste förstå och kunna redogöra för hela den färdiga lösningen, även de delar du fått hjälp med. Varje annan form av samarbete eller utnyttjande av andras lösningar betraktas som ett brott mot hederskodexen och kan resultera i att du måste göra en ny uppgift och/eller att ärendet överlämnas till KTH:s juridiska avdelning som bedömer om det ska tas upp i KTH:s disciplinnämnd. Det är tillåtet att diskutera lösningar med andra, men inte att skriva av eller kopiera andras lösningar. Det är naturligtvis tillåtet att använda material som finns i läroboken eller som kursledningen tillhandahåller. Gör du det, så ska du skriva en kommentar till de aktuella delarna som anger var de härrör ifrån (allt enligt hederskodexen). Om examinator bedömer att du fått för mycket hjälp med din lösning tilldelas du en ny uppgift. 5 (5)