For the last 4 years I have been growing dissatisfied with the quality and contents of the BSc programs in informatics in the Netherlands. So as the engineer inside me requires, I have also thought hard to find a (putative) solution. This is the result.
Program
Two components: Foundations of Informatics (FoI) and Computer Systems Engineering (CSE).
FoI | CSE | |
1st year 10x6ECs |
|
|
2nd year 10x6ECs |
|
|
3rd year 7x6ECs + 18ECs |
Choice courses: 7 in total, at least 4 from this list, up to 3 from other programs | |
|
|
|
Project (18ECs) |
Students must follow both components for 2 years, and may specialize during the 3rd year.
“Bonus” assignments in all courses during the 2nd year used to detect/qualify student preferences.
Key characteristics
No “programming” as standalone course. Instead, all other courses must define assignments where students must program to reach a solution.
All FoI courses assignments to use a (near-)pure functional language with minimalist syntax (eg. Haskell, LISP etc.).
All CSE courses assignments to use a mix of C and “language of the day” with strong typing and either modules or objects (eg. Rust, Julia, Ocaml, Java, C++ etc).
Assistants are appointed for the whole year, and the same assistant team assists all courses. Assistants organize “werkcolleges” to provide basic intro to programming languages, separate from course lectures. Automated testing should be used as much as possible, with assistant teams responsible for developing, maintaining and extending testing tools over time.