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.
The course is a combination of lectures and lab assignments.
During the course, the student is taught how to program in C, use POSIX APIs for process control and networking, understand memory management, use low-level debugging and verification tools, and use performance
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.
LANGUAGE OF INSTRUCTION
1 semester (30 EC)
This minor is accessable to third year bachelor students Computer Science and related bachelors.
FIELD OF INTEREST
Computer Science, Mathematics and Business