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.
This course concerns practices for eliciting, modeling and prioritizing requirements. Through theory and hands-on exercises obtain insights is obtained about how they can be applied during software development. Topics include: requirements elicitation, requirements analysis, traceability, requirements validation, requirements evolution, user participation, software analytics, and requirements mining.
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 datastructures; multicore programming.
To obtain basic knowledge of functional programming (using Haskell) and its foundations via lambda-calculus and equational reasoning.
1 semester (30 EC)
This minor is accessable to third year bachelor students Computer Science and related bachelors.
Informatica, Wiskunde en Bedrijf