IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Avancerede modeller og programmer 
Kursusnavn (engelsk):Advanced Models and Programs 
Semester:Efterår 2006 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:http://www.itu.dk/research/sdg/doku.php?id=advanced_models_and_programs_part_2/ 
Min. antal deltagere:
Forventet antal deltagere:
Maks. antal deltagere:10 
Formelle forudsætninger: * Solid knowledge of Java and C#
* SMP1 (formerly known as VOP)
 
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.
After passing the course, a student can work confidently with these topics, for instance in an MSc thesis project.

The course has several themes: real machines, virtual machines, interpretation, and compilation; functional languages (Scheme) and dynamically typed object-oriented languages (Ruby, Python); static checking; and model-driven development, generative programming, and domain-specific languages.
 
Fagligt indhold:In this preview we will discuss three first themes:

1. Compilation for real and abstract machines
2. Programming language design
3. Static checking

Structure ¿ four themes for the full course:

1. Real and abstract machines
1. Abstract syntax (programs as trees)
2. Bytecode (programs as instruction sequences), stack machines
3. Automatic memory management, garbage collection
4. The C programming language and register-based machines

2. Programming language design
1. Functional/declarative languages: Scheme
2. Higher-order functions, continuations, call/cc (Scheme, Ruby)
3. Other object-oriented languages: Smalltalk, Scala, Ruby, Python, EcmaScript, ¿

3. Static checking
1. Type systems, type inference (Standard ML, C# 3.0)
2. Haskell¿s type classes, generic programming, domain-specific languages
3. Logic, design by contract, extended static checking (Jackson¿s Alloy, JML, Spec#, ESC/Java, ...)
4. Object Constraint Language?

4. Generative programming
1. Programs as data objects
2. Generative programming, runtime code generation
3. Models, model-driven development (UML-to-code)
4. Wellformedness (of code and models)

Other topics:
* Aspect-oriented programming?
* Concurrency models: join calculus, Polyphonic C#?
* Language support for shared-memory processor architectures?
 
Læringsaktiviteter:

This is a 7.5 ECTS preview of the SMP2 course, a specialization course for the SDT study line.
The full SMP2 course (15 ects including a project) will not be given until spring 2007. 

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

Passing this course will require active participation and production of a mini-report (for instance, 5-8 pages text, plus an implementation)  

Litteratur udover forskningsartikler: Possible books:

* David Watt and Deryck Brown: Programming Language Processors in Java. Prentice-Hall 2000.
* Michael L. Scott: Programming Language Pragmatics, Second Edition. Morgan Kaufmann 2005. Haves Naturfagsbogladen og Polyteknisk.
* James E. Smith and Ravi Nair: Virtual Machines. Morgan Kaufmann 2005.
 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Tirsdag 09.00-12.00 Forelæsning ITU 3A12 - teaching takes place 9-11

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2006-12-20 No later than 3 PM Eksamensopgave 1 ITU The Examination Office