Education Research Current About VU Amsterdam NL
Login as
Prospective student Student Employee
Bachelor Master VU for Professionals
Exchange programme VU Amsterdam Summer School Honours programme VU-NT2 Semester in Amsterdam
PhD at VU Amsterdam Research highlights Prizes and distinctions
Research institutes Our scientists Research Impact Support Portal Creating impact
News Events calendar The power of connection
Israël and Palestinian regions Culture on campus
Practical matters Mission and core values Entrepreneurship on VU Campus
Organisation Partnerships Alumni University Library Working at VU Amsterdam
Sorry! De informatie die je zoekt, is enkel beschikbaar in het Engels.
This programme is saved in My Study Choice.
Something went wrong with processing the request.
Something went wrong with processing the request.

All about the principles behind programming and process control

The minor Deep Programming elaborates on important principles, different paradigms and modern developments in computer programming.

This minor elaborates on the theory and practice of programming to turn these students into highly skilled programmers and is an excellent preparation for entering a Master program in Computer Science. Systems Programming and Equational Programming are advanced courses on programming in the imperative language C and the functional language Haskell. Compiler Construction provides in-depth knowledge on building compilers for translating source code from a high-level to a lower-level programming language. Secure Programming focuses on cryptography in software development. Concurrency & Multithreading teaches foundations and programming principles for multicore computing. 

Related VU master’s programmes: 

Overview courses

  • Secure Programming

    Through a series of practical assignments the students are called to develop programs that incorporate useful features for security purposes. The students have the chance to become familiar with APIs (OpenSSL) for cryptographic operations, such as symmetric/asymmetric encryption, cryptographic hashing, cryptographic protocols, digital certificates, encrypted sockets, and SSL/TLS.

    Deep understanding of core cryptography is not needed. Basic concepts of cryptography are introduced and refreshed in the course. The focus is mostly on using cryptographic elements for software development.

  • Advanced Systems Programming

    The course covers recent advancements in systems and networking technologies in general-purpose computing (e.g., data center, cloud computing). The course is split into two themes: end-host systems and network infrastructure.

    In the end-host systems theme, students will learn key concepts in networking and systems design with a focus on performance, scalability, and efficient use of modern hardware. Topics include networking concepts (stateful and stateless offloading, RSS, SGE, multiqueue NICs), internals of the Linux networking stack, tools (ping, tcpdump, perf, strace), challenges associated with building high-performance software (benchmarking, profiling), and performance optimizations (many/multi-core scalability, asynchronous IO). Students will also explore how user-level network applications (for example, Node.js, Go) operate and interact with the operating system’s networking stack and how design decisions affect performance and responsiveness.

    The second theme of the course will be focused on the recent development in network infrastructure and its management. Students will learn the details about the protocols running on our Internet and how the Internet is managed with new approaches like software-defined networking, and how to utilize these new technologies to build popular Internet applications/services.

  • Compiler Construction

    This course gives an introduction to the internals of modern compilers and allows students to gather practical, hands-on experience on building compiler components.

  • Concurrency & Multithreading

    This course provides a comprehensive presentation of the foundations and programming principles for multicore computing devices. Learning objectives are: fundamental insight into multicore computing; algorithms for multicore computing; analyzing such algorithms; concurrent data structures; multicore programming. 

  • Equational Programming

    This course provides students with basic knowledge of functional programming (using Haskell) and its foundations via lambda-calculus and equational reasoning. 

Quick links

Homepage Culture on campus VU Sports Centre Dashboard

Study

Academic calendar Study guide Timetable Canvas

Featured

VUfonds VU Magazine Ad Valvas Digital accessibility

About VU

Contact us Working at VU Amsterdam Faculties Divisions
Privacy Disclaimer Veiligheid Webcolofon Cookies Webarchief

Copyright © 2025 - Vrije Universiteit Amsterdam