3 ECTS credits
75 h study time

Offer 1 with catalog number 1021129BNR for all students in the 1st semester at a (B) Bachelor - advanced level.

Semester
1st semester
Enrollment based on exam contract
Impossible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Enrollment Requirements
Students must have followed 'Structure of Computer Programs 1' before they can enroll for ‘Object-oriented programming’. Students must have followed 'Higher-Order Programming' before they can enroll for ‘Object-oriented Programming’. For students preparatory programmes: 'Object-oriented Programming’ means that you simultaneously follow 'Structure of Computer Programs 1 / Higher-Order Programming' or have successfully passed ‘Structure of Computer Programs 1 / Higher-Order Programming’.
Taught in
Dutch
Faculty
Faculty of Sciences and Bioengineering Sciences
Department
Computer Science
Educational team
Wolfgang De Meuter (course titular)
Activities and contact hours
18 contact hours Lecture
18 contact hours Seminar, Exercises or Practicals
Course Content

This course introduces the concepts of object-oriented programming and the basic principle of how object-oriented programming languages are executed. The programming language Scala (and Scheme) is used to make this concrete. The following topics are discussed

-       Object-oriented languages: definition, late binding, history, taxonomy, types.

-       Basic values in Scala, control structures, the type hierarchy, higher-order programming in Scala, partial applications, scoping rules and tail recursion.

-       Objects, messages, classes, overloading, overriding, companion objects, universal polymorphism, bounded polymorphism, functions as objects.

-        Simple class hierarchies: Liskov substitution, abstract classes, semantics of super and this, inheritance vs. overloading.

 

-       Complex class hierarchies: multiple inheritance, traits, the mixin linearisation algorithm.

-       Advanced multi-paradigmatic programming, pattern matching, the expression problem, case classes.

-       Types and type systems: variance, co-variance, contra-variance, variance in higher order programming.

-       Contextual abstractions: exceptions, givens, extension methods

-       Basic principles behind OOP languages: method selection, v-tables, garbage collection.

 

Course material
Digital course material (Required) : Scala by Example, Martin Odersky
Additional info

The material that is used in the lectures is available on the learning platform. 

Learning Outcomes

General competencies

Knowledge and understanding

-The student knows the different concepts of OO programing concepts and can explain and illustrate them

-The student can explain and illustrate how the different OO concepts occur in the Scala programming language

-The student knows how these concepts are executed by a digital computer.

 

Application of knowledge and understanding

-The student can apply the techniques and principles introduced in the course to write good quality Scala programs

 

Making judgments

-The student can choose the most suitable implementation for a given application

-The student can argue and comment critically on choices made

 

Communication

-The student can write a clear report on the course topics and on the programs he/she has written

 

Learning skills

-The student can use the concepts introduced in this course as a stepping stone to study, understand and apply other OO programming languages independently.

Grading

The final grade is composed based on the following categories:
Written Exam determines 60% of the final mark.
SELF Practical Assignment determines 40% of the final mark.

Within the Written Exam category, the following assignments need to be completed:

  • Exam with a relative weight of 60 which comprises 60% of the final mark.

Within the SELF Practical Assignment category, the following assignments need to be completed:

  • Project with a relative weight of 40 which comprises 40% of the final mark.

Additional info regarding evaluation

The final grade is a combination of two parts:

(1)    A programming assignment, including a report, must be finished during the semester. The project is mandatory and weights for 40% of the final grade.

(2)    A written exam weights for 60% of the final grade. This exam covers both exercises and theoretical questions.

The student must conclude both parts of the evaluation and score at least 7/20 on each part before the weighted average is computed as the final grade. When both parts are concluded but on at least one of the parts the score is lower than 7/20 the final mark will be the minimum of the scores. No partial exemptions are granted for this course.

Allowed unsatisfactory mark
The supplementary Teaching and Examination Regulations of your faculty stipulate whether an allowed unsatisfactory mark for this programme unit is permitted.

Academic context

This offer is part of the following study plans:
Bachelor of Computer Science: Default track (only offered in Dutch)
Bachelor of Mathematics and Data Science: Standaard traject (only offered in Dutch)
Bachelor of Artificial Intelligence: Default track (only offered in Dutch)
Master of Teaching in Science and Technology: biologie (120 ECTS, Etterbeek) (only offered in Dutch)
Master of Teaching in Science and Technology: geografie (120 ECTS, Etterbeek) (only offered in Dutch)
Master of Teaching in Science and Technology: fysica (120 ECTS, Etterbeek) (only offered in Dutch)
Master of Teaching in Science and Technology: wiskunde (120 ECTS, Etterbeek) (only offered in Dutch)
Master of Teaching in Science and Technology: ingenieurswetenschappen (120 ECTS, Etterbeek) (only offered in Dutch)
Master of Teaching in Economics: standaard traject (90 ECTS, Etterbeek) (only offered in Dutch)
Preparatory Programme Master of Science in Applied Sciences and Engineering: Computer Science: Track C (Ind Ing, 61 ECTS) (only offered in Dutch)
Preparatory Programme Master of Science in Applied Sciences and Engineering: Computer Science: Track A (76 ECTS) (only offered in Dutch)
Preparatory Programme Master of Science in Applied Sciences and Engineering: Computer Science: Track B (65 ECTS) (only offered in Dutch)
Preparatory Programme Master of Science in Applied Informatics: Enkel voor studenten industriële wetenschappen (only offered in Dutch)
Preparatory Programme Master of Science in Applied Informatics: Track A (58 ECTS) (only offered in Dutch)
Preparatory Programme Master of Science in Applied Informatics: Track B (52 ECTS) (only offered in Dutch)