IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Videregående objektorienteret programmering 
Kursusnavn (engelsk):Advanced Object Oriented Programming 
Semester:Efterår 2008 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:55 
Maks. antal deltagere:100 
Formelle forudsætninger:The student needs to have knowledge about object-oriented programming and terminology at a level similar to the course Object Oriented Programming.
  1. More concretely students should know important object oriented programming terms such as classes, encapsualation, inheritance, polymorphism, interfaces, exceptions

  2. Furthermore students should be able to design and implement smaller Java programs (more than 5 classes, 40 methods).
  3.  
Læringsmål:The goal of this course is to give you the necessary technical
skills to practice best-practice in agile development teams working with medium to large scale object-oriented software applications.
After the course the student will be able to:

  • Design and conceptualize a large-scale software application in a robust and effective way using organizational descriptions larger than classes.

    • The student can use Design Patterns for analysis and design of software and for communication of software documentation in writing and UML diagrams.

    • Manage the evolution of code. E.g. through the principle of re-factoring.

    • Understand the issues in mapping classes to relational database systems.



  • Implement a larger IT system in a robust and effective way.

    • The student will be able to use a modern integrated development environment.

    • The student will understand how to write software documentation (internal documentation) in the form of API documentation and architectural documents.

    • Understand the techniques of code generation and its role in application development.




 
Fagligt indhold:

The course will cover tools and techniques for implementing larger
object-oriented systems. The exact tools might vary slightly from one semester to the next, as might the techniques.


This fall we plan to examine the following techniques:



  • Design patterns. Design patterns are important issues which are reoccurring in programming and design. Design patterns give each issue a name, and prescribe typical trade-off to consider, as well as prototypical solutions.

  • Software documentation. We focus on documentation which is intended for peer-programmers. Especially we will examine API documentation and the role of design patterns in architectural documentation.

  • Re-factoring. A fundamental principle in programming is to choose simple solutions which are easy to understand. However, as applications evolve, they are required to do more, and the simple solution might no longer be enough. Then the code needs to be re-factored. Re-factoring are controlled ways to re-arrange the code.

  • Unit testing. Modern program testing is an integrated part of development, and when done systematically, it will help sharpening design.Testing also play a crucial role in ensuring that re-factorings have been carried out correctly.

  • Code generation. Today one describes the design in terms of UML diagrams and user interfaces are drawn in special GUI designers. From these high-level expressions it is possible to (partly) generate application code.
    We will examine different techniques and issues in relation to code
    generation.

  • Object relation mapping. We will examine the three major ways to map between class inheritance and relational tables, as well as how classes in general can be mapped to tables.


Most of the above techniques will be exemplified through concrete tools. The
selected tools should be seen merely as examples of automated support, but do
represent best practice today.



  • Version handling in Subversion

  • Configuration and continuous integration in NAnt

  • Unit testing in NUnit

  • Development in Visual Studio 2005


This course will be based on the C# language, and the .Net platform - in
particular we will use VisualStudio 2005. The exam will not depend on
the .net platform per se, but on general principles of object oriented software
design and the knowledge of IDE's of similar quality (e.g. the Java platform).

C# delegates and C# partial classes will be part of the course.



 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

The course will be held as a mix of class presentations and exercises around building an IT system.

Depending on the number of students, the course manager is allowed to separate the students in two groups for exercises. One group will then do exercises in the evening (from 16:00 - 18:00) and one group can do exercises before the lectures.
----------
I introugen (uge 35) er der kun undervisning fra 16-18 og øvelsestimer er aflyst.

During the intro week (week 35) this class will be held on its regular day but from 4-6PM (and exercises are cancelled).
------------------------------------
I intro-ugen (uge 35) er der ændrede kursustidspunkter ¿ se hvordan undervisningen er tilrettelagt her:
link til skemaoplysninger
Skemaoplysningerne for efterårssemesteret vil være tilgængelige fra august måned.

In the intro week (week 35) the course time table is changed ¿ see the schedule here:
link to the time table
The schedule for the fall term will be available in August.

-------------------------------------

------
Information om studiestruktur / Information about study structure
Dette kursus er en del af SDT-specialiseringen Models and Programs, som du kan finde beskrevet her: SDT studiestruktur
For at blive cand.it. i SDT skal du bestå SDT¿s backbone, og gennemføre en 22,5 ECTS specialisering samt to 7,5 ECTS valgfag.

This course is part of the SDT specialization Models and Programs ¿ find it described here: SDT study structure
In order to graduate as a MSc in SDT, you need to pass the SDT backbone courses, and also take a 22,5 ECTS specialization and two 7,5 ECTS electives.
 

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

 

Litteratur udover forskningsartikler:Main course litterature:

All course litterature will be online.
However, we recommend you get yourself a book on design patterns. The classical text "Design Patterns - Elements of Reusable Object-Oriented Software" by Erich Gamma et al. from Addison-Wesley 1994 (isbn 0-201-63361-2) still contains the best discussions on design in our oppinion. 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Mandag 10.00-12.00 Øvelser ITU 4A56
Mandag 13.30-15.30 Forelæsning ITU Aud. 4
Mandag 16.00-18.00 Øvelser ITU 4A56, 4A58

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2009-01-12 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2009-01-13 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2009-01-14 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere