IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Videregående objektorienteret programmering 
Kursusnavn (engelsk):Advanced Object Oriented Programming 
Semester:Efterår 2006 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:http://www.itu.dk/courses/VOP/E2006/index.html 
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.


In fall 2006 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.

  • ITU is currently undergoing a study reform, where the contents of
    courses are being defined at this moment. It is therefore likely that there will be a few additional topics covered.


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 CVS

  • Configuration and continuous integration in NAnt

  • Unit testing in NUnit

  • Development in Visual Studio 2005

  • Documentation in NDoc.


This course will be based on the C# language, and the .Net platform - in
particular we will use VisualStudio 2005 express. 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).



 
Læringsaktiviteter:

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 (mandag den 28. august til fredag den 1. september) er der kun undervisning fra 16-18 og øvelsestimer er aflyst.

During the intro week (Monday the 28th of August to Friday the 1st of September) you will only have classes from 4-6PM, and exercises are cancelled.
------
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), 13-skala, Ekstern censur

Exam.

There will be some mandatory assignments which must be done in small
groups of 4 students. It is a prerequisite for enrolling at the exam that these
assignments are marked OK. The exam will be oral, in groups of the same 4
students who do the groups assignments. The questions at the exam can take their outset in the mandatory assignments. The quality of the assignments does not influence the final grade. The grade is individual, based on the 13 scale, and
the oral exam is scheduled to last 20 minutes per student including grading.


 
Litteratur udover forskningsartikler:Main course litterature:

Has yet to be decided. It is our goal to base the syllabus entirely on online resources.  
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Mandag 13.30-15.30 Forelæsning ITU Aud. 4 (4A60)
Mandag 16.00-18.00 Øvelser ITU 4A54, 4A56, 4A58

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2007-01-15 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2007-01-16 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2007-01-17 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2007-01-18 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2007-01-19 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere