|
Udgave: |
Efterår 2012 NAT |
Point: |
7,5 |
Blokstruktur: |
1. blok |
Skemagruppe: |
A2 |
Fagområde: |
dat |
Varighed: |
7 weeks plus 1 week exam period
|
Institutter: |
Computer Science |
Studieordning: |
Computer Science Master |
Uddannelsesdel: |
Kandidat niveau |
Kontaktpersoner: |
Ken Friis Larsen, e-mail: kflarsen@diku.dk.
Telefon: 35321424 |
Andre undervisere: |
Andrzej Filinski, Michael Kirkedal Carøe |
Skema- oplysninger: |
Vis skema for kurset Samlet oversigt over tid og sted for alle kurser inden for Lektionsplan for Det Naturvidenskabelige Fakultet Efterår 2012 NAT |
Undervisnings- form: |
Lectures, mandatory homeworks
|
Formål: |
The purpose of this course is to provide practical experience with sophisticated programming techniques and paradigms from a language-based perspective. The focus is on high-level programming and systematic construction of well-behaved programs. |
Indhold: |
The selection of the topics covered will be informed by current and emerging trends in industrial practice. The possible topics covered may include, but are not limited to:
- applicative (functional) programming
- concurrent programming
- declarative (logic) programming
- distributed programming
- generic programming
- parallel programming
- reactive programming
The actual contents of this course may vary in different instantiations, based on the composition of the course team. |
Kompetence- beskrivelse: |
After taking this course, the student should be able to
- Quickly acquaint themselves with advanced programming techniques, from academic literature and/or technical documentation
- Use those techniques to solve challenging, realistic problems
- Write correct, efficient, and maintainable programs with clear separation of concerns
- Give an assessment of her own code based on a systematic evaluation
|
Målbeskrivelse: |
After taking this course the student should be able to:
- Use programming structuring principles and design patterns, such as monads, to structure the code so that there is a clear separation of concerns.
- Use a parser combinator library to write a parser for medium-sized language with a given grammar, including changing the grammar so that it is on an appropriate form.
- Use parallel algorithm skeletons such as map-reduce to write data exploring programs.
- Implement simple concurrent/distributed servers using message passing, with appropriate use of synchronous and asynchronous message passing.
- Use programming structuring principles and design patterns for making reliable distributed systems in the presence of software errors.
- Write idiomatic programs in a logic programming language.
- Give an assessment based on a systematic evaluation of correctness, selection of algorithms and data structures, error scenarios, and elegance.
|
Lærebøger: |
Extracts from some selected books and articles
|
Tilmelding: |
Via KUnet from the May 15th to June 1st. |
Faglige forudsætninger: |
Programming ability in at least two substantially different languages. Some basic familiarity with functional programming is strongly recommended, corresponding to Chapters 2, 4, 5, and 6 of Learn You a Haskell for Great Good for example. |
Eksamensform: |
Individual project exam, external censorship on the 7-step scale. Submission in Absalon.
To participate in the exam, 3-6 mandatory assignments must be passed. The exact number of required assignments will be given at course start.
Re-exam: individual written assignment with approximately 20 minute oral examination, external grading on the 7-step scale. Submission in Absalon.
|
Eksamen: |
Aflevering af opgave 2. november 2012.
Reeksamen: Aflevering af opgave den 28. januar og mundtlig prøve den 31. januar 2013.
|
Kursus hjemmeside: |
|
Undervisnings- sprog: |
Kun engelsk
|
Sidst redigeret: |
30/4-2012 |