IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Objekt-orienteret programmering 
Kursusnavn (engelsk):Object-oriented programming 
Semester:Efterår 2001 
Udbydes under:cand. it, softwareudvikling (swu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:
Maks. antal deltagere:65 
Formelle forudsætninger:Grundlæggende programmering (GP).

Fra Foråret 2002 vil vi desuden forudsætte at man har udviklet og testet et mindre java-program, fx som et 4-ugers projekt efter GP.

I efteråret 2001 er kurset en naturlig fortsættelse af Grundlæggende Programmering. Hvis du har lidt programmeringsbaggrund allerede kan kurset tages sideløbende med -- eller helt uden -- Grundlæggende Programmering, men det kræver en vis selvstændighed, idet nogle begreber kan blive benyttet før de gennemgås i Grundlæggende Programmering. 
Læringsmål:For virkelig at kunne udnytte et objekt-orienteret programmeringssprog skal du som programmør have indgående kendskab til brugen af de udtryksmidler (f.eks. klasser, synlighedsmekanismer, rekursion, ...) som sproget indeholder. Dette kendskab kan opnås gennem erfaring med
en række praktiske programmeringsprojekter, eller mere systematisk gennem dette kursus.

Kurset bygger videre på Grundlæggende Programmering ved at vise den
praktiske betydning og anvendelse af objekt-orienterede
sprogfaciliteter, her eksemplificeret med Java. Desuden viser kurset
hvordan disse faciliteter er realiseret i maskinen, så du får en bedre
praktisk forståelse af komplekse programmers virkning og pladsforbrug.

Kurset lægger vægt på praktisk brug af begreberne i en række
programmeringsøvelser.

Efter kurset vil du aktivt og selvstændigt beherske objekt-orienteret
programmering, og du vil have en solid baggrund for at følge
videregående praktiske og teoretiske kurser.

Kombineret med et algoritmekursus og måske et kursus i
objekt-orienteret design vil dette kursus sætte dig i stand til at
planlægge og udvikle store programmer.
 
Fagligt indhold:



Efter dette kursus vil du aktivt beherske følgende emner:



  • Klassers tre roller:

    1. modularisering,
    2. specialisering (nedarvning) og
    3. repræsentation af datastrukturer.


  • Modularisering ved hjælp af klasser, klassegrænseflader ('interfaces') og pakker.

  • Indkapsling og beskyttelse ved styring af synlighed af felter og metoder i klasser, og af klasser i pakker.

  • Anvendelse af biblioteker (pakker af beslægtede klasser); opbygning og dokumentation af biblioteker, javadoc

  • Indre klasser

  • Datastrukturer i Java, specielt rekursive datastrukturer såsom lister, træer, endelige mængder og endelige afbildninger.

  • Collections

  • Rekursion

  • Polymorfi (i forbindelse med nedarvning), typer og typekonvertering.

  • Lagring af værdier (dataobjekter) i maskinen. Forskellen på baseværdier (int, double, ...) og objekter (String, ....); objekt versus reference; deling af objekter ved hjælp af referencer; parameteroverførsel. Du skal kunne tegne hvordan henholdsvis baseværdier og objekter lagres i maskinen.

  • Virkefeltsregler (scope') og forskellen på klassefelter og klassemetoder ('static'), objektfelter, og lokale variable.

  • Abstrakte klasser og grænseflader.

  • Fejlhåndtering med undtagelser.

  • Grundlæggende trådprogrammering.

  • Model-GUI arkitektur (Model View Control)
 
Læringsaktiviteter:

Ugentligt: 3 timers forelæsning + 3 timers øvelser (m. obligatoriske opgaver) 

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

4 timers skriftlig eksamen.  

Litteratur udover forskningsartikler:Bruce Eckel "Thinking in Java - The Definitive Introduction to Object-Oriented Programming int the Language of the World Wide Web 2nd edition", Prentice Hall, 2000. (Kan downloades gratis på www.bruceeckel.com).