Advanced Programming for Computer Science


Course Objective

The goal of this course is to obtain familiarity and experience with
advanced programming language concepts, such as subtyping and pattern
matching, as well as learning advanced programming skills.

After taking this course, you will be able to:
* Understand & apply concepts from object-oriented programming such as
subtyping and inheritance.
* Understand & apply concepts from functional programming such as
pattern matching and higher-order functions.
* Design and implement a moderately large program from scratch.
* Produce clear, readable code.

Course Content

The lectures cover various programming concepts from Object-oriented as
well as Functional programming and how they occur in various programming
languages. These topic include inheritance, subtyping, parametric
polymorphism, side effects, higher-order functions and pattern matching.
The lectures also cover how to produce clear, readable code.

There are several moderately large programming exercises, which give the
students experience with designing and implementing moderately large
programs from scratch. Moreover, they train the students in producing
clear, readable code as well as provide experience with applying the
programming concepts from the lecture.

Teaching Methods

Lectures: 4 hours per week (in total 28 hours).
Practical sessions: 4 hours per week (in total 28 hours).

Method of Assessment

Written exam (50% of grade) and programming exercises (50% of grade).

Both grades have to be at least 5.5. There is no resit opportunity for
the programming exercises.

Entry Requirements

Computer Programming(XB_40011) OR Project Application

Target Audience


General Information

Course Code XB_0019
Credits 6 EC
Period P1
Course Level 200
Language of Tuition English
Faculty Faculty of Science
Course Coordinator dr. A.J. van der Ploeg MSc
Examiner dr. A.J. van der Ploeg MSc
Teaching Staff dr. A.J. van der Ploeg MSc

Practical Information

You need to register for this course yourself

Last-minute registration is available for this course.

Teaching Methods Seminar, Lecture