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 who want to enroll for this course, must have passed for 'Structure of Computer Programs 1'.
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 en the translation of object-oriented models to an implementation (code). The Scala Programming language is used to make these concepts concrete. The following topics are covered in the course:

-       Types, type-inferencing

-       Classes – objects

-       The Scala type hierarchy

-       Constructors, constructor arguments, parametric fields

-       Class hierarchies

-       Polymorfism

-       Overriding – overloading, Dynamic binding

-       Visibility

-       Singleton objects – companion objects

-       Type parameters

-       Variance, co-variance, contra-variance

-       Lower and upper bounds for type parameters

-       Traits

-       Mix-in Composition versus Multiple Inheritance

-       Pattern Matching

-       Equality

-       Case Classes, Case Objects & Enumerations

-       Error and Exception Handling

-       Packages

-       From OO class diagrams to OO implementations

-       Implementing state machine diagrams

Course material
Digital course material (Required) : Scala by Example, Martin Odersky
Handbook (Recommended) : Programming in Scala, Updated for Scala 2.12, Martin Odersky, Lex Spoon, and Bill Venners, 3de, Artima, 9780981531687, 2016
Additional info

Additional information (assistants, contact information, excercises, assignments, ...) can be found on the learning platform.

The material that is used inthe lectures  (transparancies) 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 some important patterns to map OO models to OO implementations and can explain and illustrate them

 

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:
Other Exam determines 100% of the final mark.

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

  • Other exam with a relative weight of 1 which comprises 100% 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.

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 Computer Science: Enkel voor studenten industriƫle wetenschappen (only offered in Dutch)
Preparatory Programme Master of Science in Applied Computer Science: Track A (58 ECTS) (only offered in Dutch)
Preparatory Programme Master of Science in Applied Computer Science: Track B (52 ECTS) (only offered in Dutch)