IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Objektorienteret softwarekonstruktion 
Kursusnavn (engelsk):Object Oriented Software Construction 
Semester:Forår 2012 
Udbydes under:Bachelor i softwareudvikling (bswu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:72 
Maks. antal deltagere:75 
Formelle forudsætninger:Grundlæggende programmering (BSc i softwareudvikling), eller tilsvarende.


Information om studiestruktur
Dette kursus indgår på andet semester på bacheloruddannelsen i software. Se studieforløbet beskrevet her: Bachelor softwareudvikling  
Læringsmål:Læringsmål:
Efter kurset forventes den studerende at kunne følgende:
• Anvende faciliteterne i et moderne objektorienteret sprog (eksemplificeret ved Java 6 og 7) )
• Forklare ideen med design patterns og benytte udvalgte patterns i praksis
• Benytte en række af Java API'er på hensigtsmæssig vis (Thread, JDBC, Reflection)
• Formalisere givne uformelle udsagn ved hjælp af logik; kunne forenkle givne logiske udtryk; og identificere hvornår to udsagn er ækvivalente.
• Formulere invarianter, særlig løkkeinvarianter, i programmer, og benytte disse til at ræsonnere om programmers korrekthed.

Fagligt indhold:Kurset indeholder dels en introduktion (4 uger) til simpel formel logik og bevisførelse og disses anvendelse i ræsonnementer om programmers korrekthed, og dels (8 uger) en grundig gennemgang af objektorienteret programmering med Java. Der lægges vægt på at forklare og illustrere, hvordan man bruger objektorienterede elementer på en fornuftig måde.

Kurset gennemgår nogle af de samme elementer af objektorienteret programmering og Java som kendes fra Grundlæggende Programmering med Projekt, men der gås mere i dybden, der lægges mere vægt på korrekt anvendelse, og der lægges vægt på præcision og fuldstændighed. Desuden gennemgås en række nye emner: trådprogrammering, stak og hob, UML, designpatterns, static import og enumerations, konstruktion af generiske typer og generiske metoder, wildcards i generiske typer, håndtering af kataloger og filer, JDBC, refleksion, annotationer og fejlhåndtering.

For at blive indstillet til eksamen skal du for det første besvare og have godkendt tre obligatoriske opgaver, der behandler emnerne fra de første fire uger.
Desuden skal du have godkendt 6 opgavebesvarelser for de opgaver der hører til den sidste 8 uger af kurset. Det vil sige, at du skal have godkendt i alt 9 obligatoriske opgaver.
Deadline for aflevering af de obligatoriske opgaver vil blive offentliggjort på kursets hjemmeside - det betyder, at de angivne deadlines vil være bindende.

Den efterfølgende mundtlige eksamen vedrører emnerne fra kursets 9 sidste uger.

Følgende emner behandles:

•Induktionsbeviser, induktionshypotese
•Udsagnslogik, logisk ækvivalens, tautologi, de Morgans love, prædikatlogik, kvantorer, relation til logiske operatorer i Java
•Løkkeinvarianter, illustreret blandt andet med algoritmer på arrays, beviser for løkkers korrekthed
•Datastrukturinvarianter
•UML
•Design patterns (Proxy, Observer, Composite, Command, Decorator, Factory, Iterator og Visitor)
•Genbrug af kode vha komposition og arv.
•Polymorfi, abstrakte klasser og interfaces
•Indre & anonyme klasser
•Static og non-static members
•Enumerations og static import
•I/O – biblioteker, filer, netværk, console, serialisering af objekter
•Exceptions og korrekt håndtering af disse
•Assertions
•Java Database Connectivity (JDBC)
•Generics, herunder wildcards
•Valg af Collection-typer, performance for disse
•Metoder fra Object-klassen og korrekt overriding
•Tråde og interfacet Runnable
•Samtidighed – keywordet synchronized
•Begreberne stack og heap
•Annotationer
•Refleksion 
Læringsaktiviteter:12 forelæsninger og 12 øvelsesgange

12 forelæsningsgange + 11 øvelsesgange
Undervisningsformen er forelæsninger med overheads, tavle og kørende eksempler og en væsentlig del to-vejs-kommunikation for at tilpasse farten til de studerendes forudsætninger og interesser.

Der lægges stor vægt på praktiske øvelser ved computer med personlig feedback på opgavebesvarelser. Vi lægger op til at de studerende samarbejder om opgaverne i mindre grupper (2-3 personer) og afleverer en samlet besvarelse for gruppen.
-----------
Se hvordan undervisningen er tilrettelagt her:
link til skemaoplysninger
Skemaoplysningerne vil være tilgængelige fra kort før semesterstart 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur

Eksamensspørgsmålene udleveres minimum 14 dage før eksamen.

På dette kursus er der obligatoriske aktiviteter (fx deltagelse, opgaver, øvelser, fremlæggelser, produktioner), som skal opfyldes for at blive indstillet til eksamen:
- For at blive indstillet til eksamen skal du for det første besvare og have godkendt tre obligatoriske opgaver, der behandler emnerne fra de første fire uger.
- Desuden skal du have godkendt 6 opgavebesvarelser for de opgaver der hører til den sidste 8 uger af kurset.
- Det vil sige, at du skal have godkendt i alt 9 obligatoriske opgaver.

Den mundtlige eksamens varighed er 30 minutter.  

Litteratur udover forskningsartikler:Ingen 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Torsdag 08.00-09.50 Forelæsning ITU Aud 4
Torsdag 10.00-11.50 Forelæsning ITU Aud 4 og 4A54, 4A56, 4A58, 2A14 (med egne computere)
Torsdag 12.00-13.50 Øvelser ITU 4A54, 4A56, 4A58, 2A14 (med egne computere)
Torsdag 14.00-15.50 Øvelser ITU 2A14 (med egne computere)

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2012-05-16 Senest kl. 15 Skriftlige arbejder ITU Eksamenskontoret
2012-06-12 Tidspunkt oplyses senere Mundtlig eksamen ITU 2A52
2012-06-13 Tidspunkt oplyses senere Mundtlig eksamen ITU 2A52
2012-06-14 Tidspunkt oplyses senere Mundtlig eksamen ITU 2A52