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

* Model Driven Development or Advanced Object Oriented
Programming
-----
Information about the course of study
This course is part of a specialization on the Master of Science in IT, study programme Software Development and Technology. See a description of specializations on SDT here:
Kandidat Software Development Technology 
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 students 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; ...
 
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,
...)  

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

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.

The duration of this oral exam is 30 minutes.  

Litteratur udover forskningsartikler:To be announced. 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Mandag 12.00-14.00 Forelæsning ITU 3A18
Mandag 14.00-16.00 Øvelser ITU 2A54
Onsdag 12.00-14.00 Forelæsning ITU 2A18
Onsdag 14.00-16.00 Øvelser ITU 2A54

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2011-05-25 09:00-15:00 Skriftlige arbejder ITU The Examination Office (2E)
2011-06-20 Please contact the course manager Mundtlig eksamen ITU 2A20
2011-06-21 Please contact the course manager Mundtlig eksamen ITU 2A20