Object-Oriented and Functional Programming

2024-2025

Algemene informatie

Vakcode XB_0019
Studiepunten 6 EC
Periode P1
Vakniveau 200
Onderwijstaal Engels
Faculteit Faculteit der Bètawetenschappen
Vakcoördinator dr. A.J. van der Ploeg
Examinator dr. A.J. van der Ploeg
Docenten dr. A.J. van der Ploeg
Onderdeel van opleiding(en)

Praktische informatie

Voor dit vak moet je zelf intekenen. De inteken- en afmeldtermijnen staan op VU.nl

Onderwijsvorm Werkcollege, Hoorcollege
Dit vak wordt in het Engels aangeboden. Omschrijvingen kunnen daardoor mogelijk alleen in het Engels worden weergegeven.

Doel vak

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)

Inhoud vak

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.

Aanvullende informatie onderwijsvormen

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

Toetsvorm

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.

Vereiste voorkennis

Computer Programming (XB_40011) or Systems Programming Project (XB_0123) (formerly known as Computer Programming Project (X_400556)).

Literatuur

Materials will be provided through Canvas.

Aanvullende informatie doelgroep

Bachelor Computer Science (year 2)