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 |
| Examiner | dr. A.J. van der Ploeg |
| Teaching Staff |
dr. A.J. van der Ploeg |
|
Part of programme(s)
Bachelor
Premaster
Use the arrow keys to navigate the list, Enter to select, and Escape to close.
|
|
Practical Information
You need to register for this course yourself. The (de)registration deadlines can be found on VU.nl
| Teaching Methods | Seminar, Lecture |
|---|
Course Objective
The goal of this course is to obtain familiarity and experience with advanced programming language concepts, such as inheritance and pattern matching, as well as improving general programming skills.
After taking this course, you will be able to:
- Understand & apply concepts from object-oriented programming such as subtyping and inheritance. (Knowledge and understanding) (Applying knowledge and understanding)
- Understand & apply concepts from functional programming such as pattern matching and higher-order functions. (Knowledge and understanding) (Applying knowledge and understanding)
- Design and implement a moderately large program from scratch. (Applying knowledge and understanding) (Making judgements)
- Produce clear, readable code. (Applying knowledge and understanding) (Making judgements) (Lifelong learning skills)
Course Content
The lectures cover various programming concepts from Object-oriented and Functional programming and how they occur in various programming languages. These topics include inheritance, subtyping, parametric polymorphism, side effects, higher-order functions, and pattern matching. The lectures also cover how to produce clear, readable code.
We will use the programming language Scala, as it supports a wide array of programming techniques.
There are several individual programming exercises that offer practice with writing programs with the concepts discussed in the lectures. These give the students experience with designing and implementing moderately large programs from scratch, train the students in producing clear, readable code, and provide an opportunity to use the advanced concepts from the lectures.
There are also several multiple-choice exercises that offer practice with reading programs that involve the concepts discussed in the lectures. These typically present a small program, with accompanying multiple-choice questions such as what is the output of this program, what is the type of certain function, what type of error is present, etc? These programs help with understanding the details of how the program concepts work. Such questions will be presented on canvas and in the lectures. The exam is a digital multiple-choice proctored exam taken at the VU which mainly presents these types of questions.
Additional Information 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 (40% of grade) and programming exercises (60% 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 Systems Programming Project (XB_0123) (formerly known as Computer Programming Project (X_400556)).