2D1358 OOPK period 4 00/01 för B,F,I,K,L,M,T,V
Upp till kursens webbsida.
Information kommer att lämnas under kursens gång genom kursens
webbsidor. Ta för vana att titta på dessa då och då. Rättelser till
laborationer, schemaändringar, svar på vanliga frågor etc kommer att
läggas in på dessa sidor.
-
Information on how to login into your UNIX account from an external terminal
-
Information on how to obtain a UNIX account from DELFI
- Slides for lecture 1 available online
- Slides for lecture 2 available online
- Descriptions of lab exams available online
- Slides for lecture 3, lecture 4 and lecture 5 available online
- Added link to UML quick reference
- Added STL quick reference and documentation
- Lab exams available in PDF format
- Upgraded course environment to gcc 2.95.2
- Grain package now compiles properly under gcc 2.95.2 (new Makefiles)
- If you want to work from home you find more information
here, e.g. how to use Grain under MS Windows
- Slides for lecture 6 available online
- Slides for lecture 7 available online
- Slides for lecture 8 available online
- Slides for lecture 9 available online
- Slides for lecture 10 available online
- Slides for lecture 11 available online
- If you want to use a UNIX like environment under Windows,
including gcc, g++, make etc., take a look at the free cygwin tools
- Finally, res now works for OOPK01, you can use : res checkin oopk01
- Manual pages for grain available as postscript file grain.ps
- wxWindows is free a cross-platform C++ graphical user interface library. Notice, that wxWindows is not supposed to be used in the labs
and that assistents will not be able to answer questions about wxWindows.
- You find the example code (including the observer and viewer class) that Mikael
presented in his exercises here
- Extra labs: There will be two extra labs during the Easter break on
Tuesday 10/4 and Tuesday 24/4 from 13-15 in terminal room red.
- DIA is a drawing program from Linkoeping University with which
you can draw UML diagrams. DIA is installed on the NADA Unix system,
added to the course module and can be executed with the command dia.
- The Computational Vision and Active Perception Laboratory
CVAP is seeking
students for part-time jobs. If you are interested contact
me
or Anders Orebäck.
- Example code for observer pattern: observer.h, observer.cc, main.cc
- Slides for lecture 12 available online
- Binder with additional course material
(design patterns, UML, STL, lecture slides, lab assignments) available at studentexpidition
- Slides for lecture 13 available online
- Course evaluation : Please fill out the course evaluation form (in Swedish)
- Results of course evaluation
- Slides for lecture 14 available online
- Tool autodia which allows you to generate UML diagrams from C++ source code.
- Extra labs to take lab exams and if time permits to get help. All labs
take place in terminal room gul.
- Monday May 28th 13:00-15.00
- Wednesday May30th 13:00-15:00
- Tuesday June 5th 13:00-15:00
- Thursday June 7th 13:00-15:00
- Friday June 15th 10:00-12:00
After June 15th, you can take your redovisning not before the next
ontentamenperiod in August.
- Please contact Ronnie Johansson for redovisning of uncompleted labs.
- Redovisning of remaining labs, Thursday, August 30th, 10-13, labsal roed
Information på denna sida
Denna kursomgång går i period 4, 2001, och är öppen för
alla program.
Reglerna för vem som får följa olika kurser på KTH har skärpts fr.o.m.
hösten 1998.
Från och med hösten 1998 gäller att endast de
teknologer som delfakulteten lagt in i Ladok som studerande på en kurs
kan godkännas på kursen. Vill du läsa en kurs som inte är
obligatorisk för dig, måste du alltså först välja kursen vid ditt
fakultetskansli som ska godkänna ditt val.
För att få gå denna kurs måste du som följer ett civilingenjörsprogram
antas till kursen av ditt delfakultetskansli.
Kansliet registrerar dig i Ladok som elev på kursen och meddelar kursledaren.
Eftersom denna registrering ibland kan fallera eller släpa efter
får du i början av kursen redovisa laborationer även om du ännu inte
finns med i Ladok.
Notera dock att
om du inte är antagen till kursen kan inget slutbetyget rapporteras.
Är du osäker på om du har antagits till kursen bör du därför
snarast vända dig till ditt delfakultetskansli.
Doktorander på NADA och institutioner med vilka NADA har avtal om
ömsesidigt utbyte (t.ex. Matematik, Mekanik) ska meddela
Ann Bengtsson, ann@nada.kth.se. Övriga doktorander måste fylla i en särskild
blankett
och skicka den till kursledaren före kursstart (for more information
see Doktorand som läser teknologkurs vid Nada).
Förutom detta ska du anmäla dig till kursen så snart
som möjligt efter kursstart.
Det kan du göra elektroniskt.
Då vet vi vilka som verkligen tänker gå kursen, och vi får alla
personuppgifter direkt från källan. Efter anmälan kommer du automatiskt
med på alla labresultatlistor.
Kursen består av två kursmoment, LAB1 (3 poäng) och LAB2 (1 poäng).
LAB1 omfattar två obligatoriska laborationer samt en frivillig
introduktionslaboration. LAB2 består av en lite större uppgift.
Laborationerna löses i grupper om högst tre personer och redovisas i
terminalsal på särskilda tider. Det finns ingen tentamen i kursen.
Är du godkänd endast på de tre obligatoriska laborationerna får du
betyget 3.
För att få högre betyg måste du lösa extra uppgifter som tar upp
fler aspekter av kursens innehåll.
Laborationerna måste redovisas senast i omtentamensperioden
januari 2002.
Det finns ingen garanti för att du kommer att få tillgodoräkna dig enstaka
laborationer när nästa
års kurs har börjat. Däremot har du rätt att tillgodoräkna dig hela,
avklarade kursmoment (dvs LAB1 och LAB2).
Mer information finns under avsnittet
laborationer nedan.
Detta är en kurs i objektorienterad programkonstruktion, inte primärt
en kurs i C++. Det är dock oundvikligt att C++ tar upp en betydande del
av kursen, och det har visat sig vara mycket svårt att göra laborationer
utan att ha en bra, utförlig och modern bok i C++. Vi rekommenderar
därför att man skaffar en av dessa böcker:
- The C++ Programming Language, 3:e upplagan, av Bjarne
Stroustrup, Addison-Wesley 1997. ISBN 0-201-88954-4 (paperback).
Denna bok finns även översatt till svenska och heter då
Programspråket C++ med ISBN 0-201-67504-8 (inbunden).
- C++ Primer, 3:e upplagan, av Stanley Lippman och Josee
Lajoie, Addison-Wesley 1998. ISBN 0-201-82470-1 (paperback).
- The Waite Group's Object-Oriented Programming in C++, 3:e upplagan, av Robert Lafore, SAMS 1998. ISBN 0-57169-160-X (paperback).
Stroustrups bok är mycket koncis, men mer avancerad än Lippman och
innehåller färre exempel.
Kursen handlar förutom C++ också om mönster (patterns), UML och
objektorienterad analys och design. Detta kommer att gås igenom på
föreläsningar och övningar. För den som vill ha riktiga böcker som
täcker detta ordentligt rekommenderas
- Design Patters, av Erich Gamma m.fl., Addison-Wesley 1995,
ISBN 0-201-63361-2 (hardcover). Redan en klassiker. För den som
planerar att ägna sig åt objektorienterad programutveckling är den ett
måste.
- The Unified Modeling Language User Guide, av Grady Booch
m.fl., Addison-Wesley 1999, ISBN 0-201-57168-4 (hardcover). Den
definitiva UML-guiden, skriven av upphovsmännen. Inte så lättläst,
speciellt inte för den som inte redan kan objektorientering.
- UML Distilled, av Martin Fowler, Addison-Wesley 2000, ISBN
0-201-65783-X (paperback). En tunn och lättläst bok, full av
personliga (men vettiga) synpunkter från en erfaren systemutvecklare.
Det är inte direkt en nybörjarbok i objektorientering, men den är
heller inte särskilt avancerad.
Kursledare är Frank Hoffmann,
hoffmann@nada.kth.se.
Lämpligaste sättet att komma i kontakt med
kursledaren är att skicka datorpost.
Vill du träffa kursledaren personligen går det också..
Adressen är rum 12.4 på CVAP/NADA.
De fyra övningsgrupperna leds av
- Danica Kragic, danik@nada.kth.se
- Anders Orebäck, oreback@nada.kth.se
- Mikael Rosbacke, rosbacke@nada.kth.se
- Peter Raicevic, peterr@nada.kth.se
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 övningsledarna eller till kursledaren.
Här finns dessutom en PostScript-version av programmeringsreglerna för laborationerna.
Kursmodul
Innan du börjar arbeta med laborationerna bör du ladda kursens
modulfil. Modulfilen kommer att laddas automatiskt vid varje inloggning
om du en gång ger kommandot
course join oopk01
Du kan behöva logga ut och logga in igen, efter att ha gett kommandot.
Modulfilen definierar bl.a. omgivningsvariabeln $OOPKHOME.
Beskrivning
- Introduktion
lab exam 1
lab exam 1 (English)
lab exam 1 (PDF)
lab exam 1 (PDF) (English)
Frivillig.
Detta är en kom-igång-laboration som inte ska redovisas och som inte
är betygshöjande.
Jag rekommenderar dock bestämt att du gör den. Det kommer att bespara dig tid
senare i kursen. Passa på att fråga övningsledare och laborationshandledare
mycket. De har bättre med tid i början av kursen.
- Menyhantering
due 4/5/2001
lab exam 2
lab exam 2 (English)
lab exam 2 (PDF)
lab exam 2 (PDF) (English)
Obligatorisk.
Laborationen tar framför allt upp arv och polymorfism.
- Grafiskt ritverktyg
due 18/5/2001
lab exam 3
lab exam 3 (English)
lab exam 3 (PDF)
lab exam 3 (PDF) (English)
Obligatorisk.
Utifrån ett enkelt fönstersystem ska du bygga
ett ritverktyg. Laborationen tar upp klassbibliotek,
fönsterprogrammering och s.k. mönster (patterns).
- Fiaspel
due 25/5/2001
lab exam 4
lab exam 4 (English)
lab exam 4 (PDF)
lab exam 4 (PDF) (English)
Obligatorisk.
I denna laboration ska du analysera och objektmodellera spelet Fia i UML.
Från modellen ska du sedan implementera ett program som ritar ut spelplanen
på skärmen, flyttar pjäser och ser till att spelreglerna upprätthålls.
- Hantering av väljare
due 1/6/2001
lab exam 5
lab exam 5 (PDF)
Frivillig och betygshöjande.
Ett programs beteende kan man påverka genom att specificerar en eller flera
s.k. väljare, eventuellt med tillhörande argument. Ett exempel är -l till
programmet ls. Du ska skapa ett litet objektorienterat system som
automatiskt tar hand om sådana väljarna och deras argument och som är
bekvämt att använda för en programmerare.
- Verktygslåda för fönsterprogrammering (toolkit)
due 1/6/2001
lab exam 6
lab exam 6 (PDF)
Frivillig och betygshöjande.
Till fönstersystemet från laboration 3 ska du skapa ett
objektbibliotek för fönsterprogrammering. Biblioteket ska innehålla
objekt som ofta förekommer i grafiska gränssnitt, såsom knappar, menyer,
och rullningslister (scrollbars), och vara dokumenterat i UML.
Laborationen tar upp klassbibliotek, fönsterprogrammering,
designmönster och UML.
- Äventyrsspel
due 1/6/2001
lab exam 7
lab exam 7(PDF)
Frivillig och betygshöjande.
I ett äventyrsspel rör man sig i en okänd värld full av faror.
Man måste ta hjälp av olika föremål och ledtrådar man hittar på
vägen. Denna laboration går ut på att designa och implementera ett
sådant spel, komplett med grafik (enkel grafik, inte 3D-grafik).
Betygssättning
Är du godkänd på laboration 2, 3 och 4 är du också godkänd på kursen
med betyget 3. Gör du dessutom laboration 5 och 6 blir betyget 4.
För betyg 5 måste även laboration 7 göras.
Du måste ha fått de obligatoriska laborationerna godkända innan du kan
redovisa de betygshöjande.
kvitto för godkända laborationer
Genomförande, tillåtet och otillåtet samarbete
Uppgifterna får lösas individuellt eller i grupper om högst
tre 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 de andra blir godkända.
Läraren kan välja att ställa frågor omväxlande till gruppens medlemmar eller
att examinera varje elev enskilt.
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.
All redovisad programkod kommer att registreras elektroniskt och lösningarna
kommer att jämföras med varandra i efterhand.
Det är därför viktigt att du aldrig gör din kod läsbar för
andra än dina laborationskamrater. Lämna inte heller utskrifter vid
skrivarna. Ta med dig alla utskrifter och släng dem någon annanstans.
Kopierar någon din kod kan du få svårt att visa att det verkligen är
du som har skrivit den.
Detta ska dock inte hindra dig från att diskutera olika
tänkbara lösningar med andra eller att ge och ta emot tips om enskilda
konstruktioner och kodavsnitt. Får du hjälp med bitar av laborationen
av andra än dina laborationskamrater, redovisa det öppet, t.ex.
genom att notera det i koden. Det hjälper oss att snabbt avskriva
misstankar om fusk när systemet upptäcker likheter mellan inlämnade lösningar.
Redovisning
Laborationerna redovisas under labbtimmarna, samt om det behövs även
på extratider under kursens gång. Därefter tas redovisningar emot
endast på vissa tider i omtentamensperioderna (mars, augusti,
januari), fram tills dess nästa kursomgång för B,F,I,K,L,M,T,V
startar.
Laborationerna måste alltså redovisas senast i omtentamensperioden
augusti 2001.
Eftersom denna kurs inte har någon tentamen kan kraven på
redovisningen av laborationerna vara hårdare än vad du kanske är van
vid från andra kurser. Vid redovisning ska du kunna redogöra i detalj
för hela lösningen, inklusive datastrukturer, in- och utgångsvillkor
hos funktioner, 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. Ta del av dessa.
Redovisad programkod kommer att registreras,
oavsett om du blir godkänd eller ej. Därför måste all programkod
finnas tillgänglig på maskinläsbar form på UNIX-systemet vid
redovisningen (gör dock inte koden allmänt läsbar, se
ovan).
Programkoden skall dessutom finnas tillgänglig på papper, annars får
läraren ingen överblick och redovisningen tar då mycket längre tid.
Eventuell annan pappersdokumentation (t.ex. UML-diagram där sådana
krävs) ska läraren kunna ta med sig. Gör kopior om du vill ha kvar
originalet.
Rapportering av godkända laborationer till betygsdatasystemet
ska normalt ske automatiskt. För varje kursomgång registreras dock
hundratals laborationer, och enstaka missar är oundvikliga.
Varje elev måste därför se till att få laborationskvittot påskrivet av läraren som tar emot 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.
Spara kvittot tills kursen är godkänd och du ser att slutbetyget har registrerats i ditt betygsutdrag.
För att vara säker på att få redovisa ska du skriva upp dig på den
elektroniska anmälningslistan. Det finns en lista för de flesta
laborationstider.
I början av kursen är antalet redovisningar litet, och det går bra att redovisa utan tidigare anmälan. Anmälningslistor för laborationsredovisning kommer att börja användas då det behövs.
Assistenterna kommer att följa dessa listor och ropa upp namnen i den
ordning eleverna har anmält sig. Vi kan tyvärr inte exakt specificera
när det blir din tur: Olika laborationer tar olika långt tid att
redovisa, en del personer som skrivit upp sig på listan dyker aldrig
upp, och antalet assistenter kan variera. I regel finns dock 2-3
assistenter som tar emot redovisningar på varje tid och varje
assistent klarar av ca 4-5 redovisningar per timme.
Du kan redovisa flera laborationer vid samma tillfälle, men du måste
göra en bokning för varje. Det går inte att anmäla sig elektroniskt
efter kl 18 dagen före redovisningen. Anledningen till detta är dels
att assistenterna måste kunna dra ut listan i god tid kvällen före,
dels att kursledaren måste få tid att fördela assistenterna mellan
olika hårt belastade redovisningstillfällen. Är du sent ute kan du
chansa på att komma oanmäld till redovisningstillfället. Skriv då
till ditt namn på assistentens lista så tar han/hon emot din
redovisning i mån av tid.
Vid varje schemalagt redovisningstillfälle finns också ett
antal handledare som kan hjälpa dig med laborationerna och svara på
frågor. Oftast organiserar de en kölista på tavlan i
terminalsalen. Skriv upp dig på den listan endast om du vill ha
hjälp.
Kursen består av två huvuddelar: objektorienterad modellering samt
programmering med C++. Efter en kort introduktion börjar vi direkt med
programmeringsdelen, eftersom kursen annars skulle bli väldigt
abstrakt. Fokus kommer sedan att växla till design och mönster (patterns),
d.v.s. hur objekt typiskt samverkar med varandra för att lösa en uppgift.
Senare i kursen kommer problemanalys och modellering att tas upp.
Ett grafiskt språk för att beskriva system, UML, kommer att gås igenom.
Preliminär föreläsningsplan:
- Kursinformation.
Introduktion till objektorienterad programmering.
Powerpoint file lecture 1
PDF file lecture 1
- Introduction to C++.
C++ Basics, data types, variables, operators, functions
- Stroustrup : chapters 3.4-3.6, 4, 6, 7
- Lippman : chapters 3.1-3.7, 4.1-4.7, 5, 7.1-7.4, 9.1-9.2
- Lafore : chapter 2, 3, 5
Powerpoint file lecture 2
PDF file lecture 2
- Klasser.
Classes, objects, constructor, destructor.
Reading:
- Stroustrup : chapter 10
- Lippman : chapters 13, 14
- Lafore : chapter 6
Powerpoint file lecture 3
PDF file lecture 3
- Operator overloading and templates.
Operator overloading, friend function and classes, templates
- Stroustrup : chapters 11.1.-11.5, 13
- Lippman : chapters 10, 15, 16
- Lafore : chapter 8, 14
Powerpoint file lecture 4
PDF file lecture 4
- Standard template library.
containers, iterators, algorithms
- Stroustrup : chapters 16, 17.1-17.4
- Lippman : chapters 6, 12
- Lafore : chapter 15
Powerpoint file lecture 5
PDF file lecture 5
Standard template library quick reference
Standard template library documentation
- Pointers
pointers, pointers and arrays, dynamic memory allocation, new and delete
- Stroustrup : chapter 5
- Lippman : chapters 2.2, 3.3, 4.9, 8.4
- Lafore : chapter 10
Powerpoint file lecture 6
PDF file lecture 6
- Inheritance
Inheritance, access specifiers, virtual functions
- Stroustrup : chapter 12
- Lippman : chapters 17, 18
- Lafore : chapter 9, 11
Powerpoint file lecture 7
PDF file lecture 7
- Abstract Classes
Abstract classes, pure virtual functions
- Stroustrup : chapter 12
- Lippman : chapters 17, 18
- Lafore : chapter 9, 11
Powerpoint file lecture 8
PDF file lecture 8
- I/O streams
streams, file I/O, exception handling
- Stroustrup : chapters 14, 21
- Lippman : chapters 11, 20
- Lafore : chapters 12, 14
Powerpoint file lecture 9
PDF file lecture 9
- Grain, UML (Unified Modelling Language)
Grain package, UML static model, class and object diagrams,
associations, aggregation, composition, generalization.
Powerpoint file lecture 10
PDF file lecture 10
-
Design Patterns
Design Patterns, Composite Pattern
Powerpoint file lecture 11
PDF file lecture 11
- Design Patterns / UML
Observer Pattern, UML use case and sequence diagrams
Powerpoint file lecture 12
PDF file lecture 12
- Design Patterns / UML
UML statechart diagrams, Mediator pattern
Powerpoint file lecture 13
PDF file lecture 13
Design Patterns / UML
Singleton pattern, fiagame, course analysis
Powerpoint file lecture 14
PDF file lecture 14
Övningarnas innehåll är till stor del beroende av vad de enskilda
övningsassistenterna vill ta upp, men följande lista ger en indikation
av vad de olika övningarna kan komma att innehålla.
- Några enkla program och klasser i C++: ordräkning, ordfrekvenser,
datumklass.
- Hur man skriver en containerklass med interatorer.
Båtuthyrningsexempel: ett exempel på att hur man representerar data i
ett program påverkar dess flexibilitet.
- Virtuella funktioner: evaluering av aritmetiska uttryck och
simulator för logiska kretsar.
- Programmering med Grain.
- Den statiska modellen i UML.
- Den dynamiska modellen i UML.
- Mönster (design patterns), speciellt observer.
- Exceptions.
| v11 | Mån 12/3 | Tis 13/3 | Ons 14/3 | Tor 15/3 | Fre 16/3 |
| 10:00 | | | | | F Objori D1 |
| 11:00 | | F Objori D1 | | |
| 12:00 | | | | |
| 13:00 | | | | F Objori D1 | |
| 14:00 | | | | |
| 15:00 | F Objori D1 | | | | |
| 16:00 | | | | |
| v12 | Mån 19/3 | Tis 20/3 | Ons 21/3 | Tor 22/3 | Fre 23/3 |
| 9:00 | | F Objori D2 | | | |
| 10:00 | | | | L Objori Röd, Orange gr 3-4 |
| 11:00 | | Ö Objori D32-33, E36, E53 | | |
| 12:00 | | | | |
| 13:00 | | | | F Objori D1 | |
| 14:00 | | | | |
| 15:00 | | | | Ö Objori E31, 35, 51-52 | |
| 16:00 | | | | |
| 17:00 | | | | L Objori Röd, Orange gr 1-2 | |
| 18:00 | | | | |
| v13 | Mån 26/3 | Tis 27/3 | Ons 28/3 | Tor 29/3 | Fre 30/3 |
| 8:00 | | | | F Objori Q1 | |
| 9:00 | | | | |
| 10:00 | | | | Ö Objori Q11-14 | L Objori Röd, Orange gr 3-4 |
| 11:00 | | L Objori Röd, Orange gr 1-2 | |
| 12:00 | | | | |
| 13:00 | | | L Objori Röd, Orange gr 3-4 | L Objori Brun, Gul gr 1-2 | |
| 14:00 | | | |
| 15:00 | F Objori D1 | | | | |
| 16:00 | | | | |
| 17:00 | Ö Objori D31-32, 34-35 | | | | |
| 18:00 | | | | |
| v14 | Mån 2/4 | Tis 3/4 | Ons 4/4 | Tor 5/4 | Fre 6/4 |
| 8:00 | | | L Objori Orange, Röd gr 1-2 | F Objori Q1 | L Objori Orange, Röd gr 3-4 |
| 9:00 | | F Objori D2 |
| 10:00 | | L Objori Röd, Orange gr 3-4 | Ö Objori Q11-14 | |
| 11:00 | | Ö Objori E32-33, 36, 53 | |
| 12:00 | | | | |
| 13:00 | | | | L Objori Brun, Gul gr 1-2 | |
| 14:00 | | | | |
| v18 | Mån 30/4 | Tis 1/5 | Ons 2/5 | Tor 3/5 | Fre 4/5 |
| 10:00 | | | | L Objori Brun, Gul gr 1-2 | |
| 11:00 | | | | |
| 12:00 | | | | | |
| 13:00 | | | | L Objori Gul, Brun gr 3-4 | |
| 14:00 | | | | |
| 15:00 | | | F Objori E1 | | |
| 16:00 | | | | |
| 17:00 | | | Ö Objori E31-33, 35 | | |
| 18:00 | | | | |
| v19 | Mån 7/5 | Tis 8/5 | Ons 9/5 | Tor 10/5 | Fre 11/5 |
| 8:00 | | F Objori Q1 | L Objori Orange, Röd gr 1-2 | | L Objori Orange, Röd gr 3-4 |
| 9:00 | | |
| 10:00 | | Ö Objori Q12-13, 15, 21 | | F Objori Q1 | |
| 11:00 | | | |
| 12:00 | | | | | |
| 13:00 | | | L Objori Röd, Orange gr 3-4 | L Objori Brun, Gul gr 1-2 | |
| 14:00 | | | |
| v20 | Mån 14/5 | Tis 15/5 | Ons 16/5 | Tor 17/5 | Fre 18/5 |
| 8:00 | L Objori Orange, Röd gr 1-2 | | F Objori E1 | | |
| 9:00 | | | |
| 10:00 | | | L Objori Orange, Röd gr 1-2 | L Objori Orange, Röd gr 3-4 | L Objori Röd, Orange gr 3-4 |
| 11:00 | | |
| 12:00 | | | | | |
| 13:00 | | | | L Objori Brun, Gul gr 1-2 | |
| 14:00 | | | | |
| 15:00 | L Objori Röd, Orange gr 3-4 | | | | |
| 16:00 | | | | |
Upp till kursens webbsida.
Sidansvarig: <hoffmann@nada.kth.se>
Senast ändrad 21 februari 2001
Tekniskt stöd: <webmaster@nada.kth.se>