uc:sendtilenven runat server id uc_sendtilenven
Ændre størrelse på tekst Print

Advanced programming


Semesterangivelse: Efterårs kursus Kurset udbydes i blok 1 Kurset udbydes i skemagruppe A2 Kurset giver 7,5 ETCS point

 


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



Københavns Universitet