IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Avancerede modeller og programmer 
Kursusnavn (engelsk):Advanced Models and Programs 
Semester:Forår 2010 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:15,00 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:12 
Forventet antal deltagere:20 
Maks. antal deltagere:40 
Formelle forudsætninger: * Solid knowledge of the Java programming language. (Knowledge of at
least one more programming language would be helpful).

* Model Driven Development E2009 (or Advanced Object Oriented
Programming F2009 or earlier)

[Updated 7 December 2009] 
Læringsmål:The subject of the course is programming language technologies, with special
attention to advanced technologies that are likely to influence software
practice over the next ten years.

The course has two parts as detailed under course form below - a regular
course followed by a project.
After the course, the students are expected to be able to:
* Describe relevant concepts within the themes of the course,
* account for the practical applications of the covered constructs, and
* compare selected techniques and constructions within a single of the
course themes.
On the basis of the project, the student are expected to be able to:
* Apply relevant methods and techniques in the chosen project
* Argue for the overall design-decisions in the project, and
* Relate project and theory 
Fagligt indhold:The contents of the course is structured in a number of themes, for
example:

Programming language design
* The C# programming language: basic differences from Java,
what is new in C# 3.0 (2008) and C# 4.0 (2010)
* Abstract syntax (programs as trees), and transformation of programs
* Concrete syntax and parsing
* Functional/declarative languages: Scheme
* Higher-order functions, continuations, call/cc (Scheme)
* Other languages (e.g. Smalltalk, Scala, Ruby, Python, Google's Go)

Static analysis and development tools
* Logic, design by contract, extended static checking (JML,
Spec#, Jackson's Alloy, ...)
* Dataflow analysis

Real and abstract machines
* Bytecode (programs as instruction sequences), stack machines
* Automatic memory management, garbage collection
* The C programming language and register-based machines

Some possible additional topics: Modern support for multiprocessors,
such as transactional memory; staged programs; generalized ADTs;
compile-time parametrization with values; the UML Object Constraint
Language (OCL); generative programming; ...

[Updated 7 December 2009] 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger, øvelser og vejledning

Course structure:

The course period is 16 weeks half time (15 ects). The course will
consist of:

* Lectures and exercises (approximately 10 weeks), covering the
themes of the course.

* A project done in groups of 1-3 students (approximately 6 weeks),
within one of the themes, resulting in a project report.

The weekly exercises must be handed in, and at least 8 of 10 exercises
must be approved to pass the course. The project report must be
presented in an oral exam, where questions may be asked in all themes
of the course.

Possible project areas include, but are not limited to:

Programming language design
* Implement a program transformer or similar using Scheme of C#
* Implement Icon or another language with backtracking using
continuations
* Implement a spreadsheet in a browser using JavaScript

Static checking and development environments
* Specify, implement and verify a substantial program library
(e.g. collection classes) using JML, UML/OCL (+ tools) or Spec#
* Investigate the Eclipse API tools, for ensuring backwards
compatibility of interfaces

Real and abstract machines
* Implement an abstract machine in Java or C
* Implement a garbage collector in Java or C
* Implement a compiler that generates real machine language

Generative programming
* Transform statechart models to Java code or bytecode or C
* Check consistency of models (multiplicity of associations, OCL,
...)

[Updated 7 December 2009] 

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

There are weekly mandatory exercises which must be handed in, and at least 8 of 10 exercises must be approved to pass the course.
The project report must be presented in an oral exam, where questions may be asked in all themes of the course.  

Litteratur udover forskningsartikler:To be announced. 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Mandag 08.30-10.30 Forelæsning ITU 4A16
Mandag 10.45-12.45 Øvelser ITU 2A52
Fredag 11.00-13.00 Forelæsning ITU 2A14
Fredag 13.45-15.45 Øvelser ITU 2A52

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2010-05-25 No later than 3 PM Skriftlige arbejder ITU The Examination Office
2010-06-15 Please contact the course manager Mundtlig eksamen ITU Aud 4
2010-06-16 Please contact the course manager Mundtlig eksamen ITU 3A18
2010-08-20 Mulig dag for reeksamen /Possible date for re-exam Mundtlig eksamen ITU Eksamensform kan blive ændret / Examination form may be altered
2010-08-23 Mulig dag for reeksamen /Possible date for re-exam Mundtlig eksamen ITU Eksamensform kan blive ændret / Examination form may be altered
2010-08-25 Mulig dag for reeksamen /Possible date for re-exam Mundtlig eksamen ITU Eksamensform kan blive ændret / Examination form may be altered