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.
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.
The material that is used in the lectures is available on the learning platform.
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.
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:
Within the SELF Practical Assignment category, the following assignments need to be completed:
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.
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)