Valid from: Spring 2016
Decided by: Rektor Viktor Öwall
Date of establishment: 2016-06-21
Division: Automatic Control
Course type: Third-cycle course
Teaching language: English
The purpose of the course is to give an understanding of the various programming concepts that underpin both old and modern programming languages. Special attention is given to functional programming and object-oriented programming.
Knowledge and Understanding
For a passing grade the doctoral student must
Competences and Skills
For a passing grade the doctoral student must
The course is based on Prof. Dan Grossman's on-line course "Programming Languages" and is given in the form of a study circle. The most important concepts in the course are: functional programming (avoiding mutation, exploiting recursion and higher-order functions, closures, anonymous functions); algebraic datatypes and pattern-matching; essential object-oriented programming (late-binding / dynamic dispatch, subtyping vs. subclassing); language support for abstraction, such as modules, abstract types, and dynamic type-creation; syntax vs. semantics; static vs. dynamic typing and type safety; parametric polymorphism / generics; object-oriented extensibility vs. functional extensibility.
Video lectures and course material is available on the webpage http://courses.cs.washington.edu/courses/cse341/13sp/
Types of instruction: Lectures, self-study literature review. The course is given in the form of a study circle with eight meetings. Before each meeting, the participants are expected to solve a number of programming problems. The PhD students should also prepare a brief lecture on the most important programming concepts in the material of the week. The reponsibility to produce reference solutions and to grade the handins also rotate among the participants.
Examination formats: Written assignments, seminars given by participants
Grading scale: Failed, pass
Examiner:
Assumed prior knowledge: Basic knowledge in a few different programming languages, e.g. Java, C, Python
Course coordinator: Anton Cervin <anton.cervin@control.lth.se>
Web page: https://www.control.lth.se/Education/DoctorateProgram/programming-languages