KTH
2D1357
Objektorienterad Programkonstruktion
Nada
Förkunskaper Kurskrav Lärare Undervisning Schema
Laborationer Betygssättning Kurslitteratur Synpunkter Kurssidan

Senaste nytt

Förkunskaper

Motsvarande kursen 2D1340 (eller 2D1341) Introduktion till datalogi eller 2D1320 Tillämpad datalogi.

Kursanmälan

Du kan anmäla dig till kursen här. Anmälan kan också göras genom att du ger kommandot
   res checkin smalltalk97

Kurskrav

För att bli godkänd på kursen krävs att laboration 1-4 (moment LAB1, 3 poäng) och den avslutande större laborationen (moment LAB2, 1 poäng) är godkända. Mer information finns under avsnittet laborationer nedan.

Lärare

Kursledare är Björn Eiderbäck och Magnus Andersson. Lämpligaste sättet att komma i kontakt med kursledarna är att skicka datorbrev, näst lämpligast är att lägga en lapp i postfacket på Nada, Osquars Backe 2, 4 tr eller skicka ett vanligt brev till Nada, KTH, 100 44 Stockholm. Vill man träffa en kursledare personligen går det att besöka Magnus Andersson på mottagningstiden som är torsdagar 11-12, adress Fiskartorpsv. 15H, eller att besöka Björn Eiderbäck e.ö.

De fyra övningsgrupperna leds av följande personer:

Grupp Övningsledare Datorpostadress
1 Li Jiarong li@nada.kth.se
2 Magnus Andersson sungam@nada.kth.se
3 Björn Eiderbäck bjorne@nada.kth.se
4 Daniel Fagerström danielf@nada.kth.se

Undervisning

Kursen omfattar 26 timmar föreläsningar, 16 timmar övningar och 24 timmar laborationer. Det betyder ca 4 timmar föreläsning, 2 timmar övning och 4 timmar laborationer varje vecka. Då kursen omfattar totalt 4 poäng förväntas du utöver den schemalagda undervisningen lägga ner ca 100 timmar eget arbete.

Schema 1997

Period 2 (vecka 44-50)

VAD DAG TID GRUPP VECKA SAL
Föreläsning Mån 8-10 Alla 44-50 D1
Ons 10-12 Alla 44-48 D1
Tor 13-15 Alla 44 D1
Övning Mån 10-12 1-4 45-48 F52-55
Ons 13-15 1-4 45-48 E31-33,F24
Terminalövning Mån 13-15 1-2 46-49 Spel-, Sporthallen
Tis 10-12 3-4 46-50 Spel-,Sporthallen
Tis 13-15 1-2 50 Spel-,Sporthallen
Ons 9-11 1-2 50 Spel-,Sporthallen
Ons 12-14 3-4 50 Spel-,Sporthallen
Tor 13-15 1-2 45-49 Spel-,Sporthallen
Tor 15-17 1-2 44 Spel-,Sporthallen
Fre 9-11 3-4 44-49 Spel-,Sporthallen

Preliminärt detaljschema

För föreläsningarna anges vilka kapitel i kurslitteraturen som gås igenom, alternativt vilka artiklar som behandlas. För övningarna anges huvudsakligt ämne. Schemat är preliminärt och kan vid behov stuvas om.

vecka 44

  • F1 Introduktion
    Allmän översikt av kursen. Objektorientering: vad och varför. Objektorienterad analys, design och konstruktion. Visual Works snabbdemo.
    Litteratur: OPS: Kap 1
  • F2 Smalltalk grunder.
    Objekt, klasser, meddelanden. Instansiering, attribut, metoder (inspektorer och mutatorer). Kategorisering. Enkla uttryck, numeriska klasser. Visual Works: Delar och begrepp (image, virtuell maskin, changefil mm). Starta Launcher. Workspace. Browser. Konstruktion av en klass. Användning av en klass. Spara klass respektive image. Läsa in kod via uttryck respektive File list.
    Litteratur: OPS: Kap (1), 2, 5 (fram till sidan 170)
  • F3 Smalltalks syntax och mer om klasser
    Syntax, klassmetoder, konstruktörer och klassvariabler. VisualWorks: Browser-delar för att hitta klasser, metoder och variabler. Att använda Launchern för att söka referenser och implementationer. Inställningar och on-line-hjälp.
    Litteratur: OPS: Kap 1,3, 4.1,4.3-4.4.
  • Tö1 Lab 1 påbörjas.

vecka 45

  • F4 Polymorfi, arv och basklasser
    Polymorfi. Arv, subklass, subtyp. Omdefinition av metoder i subklasser. Abstrakt klass och gränssnitt. Subklassning, hur och varför. Generalisering och specialisering. Behållare.
    Litteratur: OPS: Kap 4.2, 4.5-4.10, och 7.
  • Ö1 Syntax, konstruktion och användning av enklare klasser.
  • F5 Arv och aggregering. Avlusning och felhantering.
    Arv kontra aggregering. Fallstudier som klasserna Boolean, True och False; Collection-hierarkin. Inspektorer och avlusning. Felhantering.
    Litteratur: OPS: Kap 4.5-4.10, 7, 12. UG: Kap 10.
  • Ö2 Arv. Övning inför lab 2.
  • Tö2 Redovisning av lab 1.

vecka 46

  • F6 Objektmodellering med UML. Designmönster
    Grundläggande syntax för objektbeskrivning. Associationer. Introduktion till designmönster.
    Litteratur: UML: Kap 2 och 5. UMLQ, OMT1, DP93, DP95
  • Ö3 UML och designmönster.
  • Tö3 Inledning på lab 2.
  • F7 OOAD: Objektmodellering och dynamisk modellering
    Tillstånd, händelser, scenarier och användningsfall.
    Litteratur: UML: Kap 6-9. OMT2
  • Ö4 Designmönster. Övning inför lab 3.
  • Tö4 Redovisning av lab 2.

vecka 47

  • F8 Dynamisk modellering. Simuleringspaketet
    Fortsättning av dynamisk modellering. Beskrivning av ett simuleringspaket anpassat för översättning av UML-diagram till kod.
    Litteratur: UML: Kap 6-9. Labhäftet, sista 5 sidorna.
  • Ö5 UML. Dynamisk modellering. Beskrivning av luftsluss.
  • Tö5 Inledning av lab 3.
  • F9 Java
    Introduktion till Java. Statisk och dynamisk typning. Gränssnitt (interface). Arv kontra gränssnitt. Åtkomstskydd för metoder och variabler. Applets.
    Litteratur: Java1, Java2
  • Ö6 Java. Övning inför lab 4.
  • Tö6 Redovisning av lab 3.

vecka 48

  • F10 Grafik och interaktion i Smalltalk. Frameworks
    Grafik och interaktion i Smalltalk inför lab 5. Frameworks.
    Litteratur: Föreläsningsanteckningar
  • Ö7 Övning inför lab 5. Delad övning: 1 grupp med grafik och interaktion, 1 grupp med simulering och 2 grupper med OOAD: exempel.
  • Tö7 Inledning av lab 4.
  • F11 OOAD: Funktionell modell och Smalltalk
    UML: Funktionell modell. Smalltalk: metaklasser, processer, semaforer.
    Litteratur: UML: 10, OPS: kap 6.4, 13
  • Ö8 Övning inför lab 5. Delad övning: 1 grupp med grafik och interaktion, 1 grupp med simulering och 2 grupper med OOAD: exempel.
  • Tö8 Redovisning av lab 4.

vecka 49

  • F12 C++
    Hård typning. Multipelt arv. Generiska datatyper, templates. Överlagring av funktioner.
    Litteratur: Föreläsningsanteckningar
  • Tö9 Inledning av lab 5.
  • Tö10 Fortsättning på lab 5.

vecka 50

  • F13 Objektorienteringens användning inom olika områden
    Komponenter (Java beans, COM) och distribution (OMGs Corba).
    Litteratur: Föreläsningsanteckningar
  • Tö11 Redovisning av lab 5.
  • Tö12 Redovisning av lab 5.

F = Föreläsning
Ö = Salsövning
Tö = Datorövning
OPS = Objektorienterad programkonstruktion med Smalltalk, upplaga 1.
OMT1 = Journal of Objectoriented programming. Artikel om objektmodell av Rumbaugh. Kursbunten.
OMT2 = Journal of Objectoriented programming. Artikel om dynamisk modell av Rumbaugh. Kursbunten
DP1 = Proceedings of ECOOP '93, artikel av Gamma et al. Kursbunten.
DP2 = Utdrag ur boken Design Patterns av Gamma et al. Kursbunten.
UML = UML Notation guide. Kursbunten.
UMLQ = UML Quick Reference. Kursbunten.
Java1 = Utdrag ur Java in a Nutshell av D. Flanagan.
Java2 = The Java Language Specification.
UG = Utdrag ur VisualWorks Users guide. Kursbunten.

Laborationer och betygssättning

Kursens examination består av två delar, LAB1 och LAB2, som omfattar 3 respektive 1 poäng. Delarna godkänns var för sig, men bägge måste vara avklarade innan kursens slutbetyg inrapporteras. Momentet LAB1 omfattar 3 mindre, obligatoriska laborationer. Momentet LAB2 är en lite större projektuppgift.

Betygssättning

Såväl LAB1 som LAB2 betygssätts med 3, 4 eller 5. Slutbetyget blir ett viktat medelvärde: 2/3 * LAB1-betyg + 1/3 * LAB2-betyg. Medelvärdet avrundas sedan till närmsta heltal.

LAB1

För betyget 3 krävs att alla obligatoriska uppgifter har godkänts. Laboration 2-4 innehåller också en frivillig extrauppgift. För betyg 4 på denna del krävs att minst 2 sådana extrauppgifter är godkända. För betyg 5 krävs lösningar på 3 extrauppgifter.
  1. Introduktion till Smalltalk
  2. Grafisk editor
  3. Designmönster och brevhanteringssystem
  4. Javalabb

LAB2

I laboration 5 (Kursmoment Lab2) skall du först lämna in en liten specifikation av det program du skall skriva. När denna är godkänd går du vidare med själva uppgiften. Du väljer själv bland ett antal olika uppgifter i labhäftet vilka har ett, två eller fler betygsmöjligheter.

Redovisning av laborationer

Eftersom denna kurs inte har någon tentamen kommer kraven på redovisningarna av laborationer och projektuppgift att vara hårdare än vad du kanske är van vid från andra kurser.

Vid redovisning av laborationer och projektuppgift ska den som redovisar kunna redogöra i detalj för hela lösningen, inklusive datastrukturer och eventuella UML-modeller. Inlämnad programkod ska vara välstrukturerad och dokumenterad; det räcker inte med att den fungerar. Kursbunten innehåller vissa grundläggande krav på programstruktur, programkodlayout och kommentering.

Uppgifterna får lösas individuellt eller i grupper om två personer. All examinering sker dock individuellt, d.v.s. eleverna bedöms alltid var för sig. Det kan mycket väl hända att en av personerna i en grupp blir underkänd på en laboration, medan den andre blir godkänd. Läraren kan välja att ställa frågor omväxlande till de bägge eleverna eller att examinera en elev i taget. Du måste alltså vara beredd att själv redogöra för allt som rör laborationen, inklusive praktiska saker som var filer ligger och hur program startas.

Diskussion av uppgifter och lösningar mellan grupper är tillåten men direkt kopiering av programkod eller UML-ritningar betraktas som fusk.


Laborationerna ska redovisas för övningsledarna eller särskilda handledare under terminalövningarna. För redovisning av den sista labben krävs att du bokar en tid via WWW (Se den kurssidan för denna kursomgång).

Rapportering av godkända laborationer till betygsdatasystemet ska ske automatiskt. Varje elev måste dock se till att få laborationskvittot påskrivet av assistenten som tar redovisningen. Kvittot ska fyllas i med bläck och ni måste kunna visa legitimation. Vid första redovisningen ska dessutom kvitto på kåravgiften uppvisas, precis som vid en vanlig tentamen.

Kurslitteratur

Kurslitteraturen ska läsas på egen hand parallellt med kursen. Det är inte säkert att föreläsningar och övningar täcker allt som behövs för att klara laborationer och projektuppgift. Det gäller speciellt en del frivilliga uppgifter i laborationerna.

Kursbok

Som kursbok använder vi "Objektorienterad programmering i Smalltalk" av Eiderbäck, Hägglund och Bälter. Pris på THS xxx kr.

Kursbunt

Kursbunten består av kursöversikt (delas ut separat på första föreläsningen), laborationshäfte och utdrag ur böcker och tidskrifter enligt följande:

Kursbunten säljs till en kostnad av 100 skr på NADAs expediton.

Synpunkter på kursen

Vi är tacksamma för synpunkter på kursen, både under kursens gång och efteråt. En datorstödd kursutvärdering kommer att göras. Synpunkter kan lämnas till kursledaren eller övningsledarna.

^ Upp till kursens hemsida.


Sidansvarig: <bjorne@nada.kth.se>
Senast ändrad 12 december 1997
Tekniskt stöd: <webmaster@nada.kth.se>