IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Videregående objektorienteret programmering 
Kursusnavn (engelsk):Advanced Object-oriented Programming 
Semester:Forår 2006 
Udbydes under:cand. it, softwareudvikling (swu) 
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:Before the course the student shall have knowledge about object-oriented programming and terminology at a level similar to the course Object Oriented Programming.
  1. In the concrete students should know important object oriented programming terms such as classes, encapsualation, inheritance, polymorphism, interfaces, exceptions, treads and synchronisation

  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 can point out characteristics of specific tools and techniques useful in managing large-scale projects. These techniques derive from the 'Extreme Programming' style of practice and include automated build, automated unit-testing, and the concept of source code control.

    • The student will be able to use a modern integrated development environment, and perform release handling.

    • The student will understand how to write software documentation (internal documentation) in the form of API documentation and architectual 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 spring 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
  • Configuration and version control. In order to allow several
    developers to work on the same project it is necessary with techniques
    to help orchestra the development done by the individual towards the
    overall project. Configuration and version control are the key
    techniques for this.



    Most of the above techniques will be examplified 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. 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:12 forelæsninger og 12 øvelsesgange

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

NB! In the introductory week, meaning from 30 January to 3 February 2006 the course will run from 16:00 to 18:30, where the first lecture will take place. This means, that exercises are cancelled in the introductory week.


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:30) and one group can do exercises before the lectures.
 

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

There will be three 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 will 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 an hour for one group of
4 students.  

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
Tirsdag 13.30-16.00 Forelæsning ITU Aud 3 (2A56)
Tirsdag 16.00-18.30 Øvelser ITU 3A50, 3A52

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2006-06-08 See time table on course homepage Mundtlig eksamen ITU See examination plan in Study Guide on the Intranet
2006-06-09 See time table on course homepage Mundtlig eksamen ITU See examination plan in Study Guide on the Intranet
2006-06-12 See time table on course homepage Mundtlig eksamen ITU See examination plan in Study Guide on the Intranet
2006-06-13 See time table on course homepage Mundtlig eksamen ITU See examination plan in Study Guide on the Intranet
2006-06-14 See time table on course homepage Mundtlig eksamen ITU See examination plan in Study Guide on the Intranet
2006-06-15 See time table on course homepage Mundtlig eksamen ITU See examination plan in Study Guide on the Intranet