Computer Science Rekenaarwetenskap

Postgraduate Modules

Programmes

18139-797 Honours in Computer Science

Stream Computer Science. This stream consists of 6 modules of 16 credits each, as well as a compulsory programming project of 32 credits. At most two modules may be taken from related departments with the permission of the Computer Science. Not all modules are necessarily offered each year. Stream Data Science. This stream consists of 5–8 compulsory modules which includes a compulsory programming project. The remaining credits to reach the required credit total are modules in Computer Science or selected modules in Mathematical Statistics. Not all modules are necessarily offered each year.

18139-878 Masters in Computer Science

Independent research on an approved topic as determined by the supervisor(s) and leading to a thesis is required.

18139-978 PhD in Computer Science

A dissertation containing the results of your independent research is required.

Year Modules

63444-771 Honors Project in Computer Science (1st and 2nd Semester)

A large software construction or research problem on which the student works independantly, under the supervision of a staff member.

First Semester Modules

64947-712 Advanced Algorithms (Willem Bester) (1st Semester)

This course resumes the study of algorithms and data structures where it left off in RW214. We discuss various algorithmic paradigms (such as divide-and-conquer, greedy algorithms, dynamic programming, and randomized algorithms), algorithmic applications (such as graphs, heaps, and trees), and the basics of the theory of computation.

64955-713 Theoretical CS - Advanced Automata (Lynette van Zijl) (1st Semester)

This course is an advanced course in automata theory. It covers diverse topics, such as combinatorics on words, cellular automata, descriptional complexity, and advanced automata such as 2-way, Mealy, and Moore machines. Note that CS345 is a prerequisite for this course.

64963-714 Concurrent Programming I (314*) (Cornelia Inggs) (1st Semester)

Unless you have completed Computer Science 314 or an equivalent, the following Computer Science module is compulsory. This module covers an overview of the field of concurrency, its theoretical. principles, the design, implementation and verification of concurrent systems, and practical aspects of distributed and parallel programming. It is focused around selected important topics.

64971-716 Advanced Topics I - Computing and Society (William (Bill) Tucker) (1st Semester)

Theory, domains and critique of topics related to Computing and Society, such as human-centred computing; social development theories, critical analysis of case studies; methods and ethics; and challenges of sustainable community engagement.

14195-742 Machine Learning A (315*) (Steve Kroon) (1st Semester)

Prominent machine-learning concepts and tasks. Selected feature extraction or dimensionality reduction techniques. Introduction to probabilistic modelling and latent variable models. Fundamental paradigms in parameter estimation.

65021-745 Software Construction - Compilers (Bernd Fischer) (1st Semester)

14232-791 Artificial Intelligence (1st Semester)

Second Semester Modules

63452-711 Automata Theory & Applications (345*) (Lynette van Zijl) (2nd Semester)

This course is a first introduction to theoretical computer science, and covers the Chomsky hierarchy of languages in relation to computability. Note that you may not take this course if you had already completed CS345.

11788-741 Machine Learning (Andries Engelbrecht) (2nd Semester)

This module is an introduction to selected topics in machine learning.

65013-744 Concurrent Programming II - Software Testing and Analysis (Cornelia Inggs, Willem Visser, Bernd Fischer) (2nd Semester)

Introduction to various techniques for software quality management.

65048-745 Advanced Topics II - Principles of Data Science (Marcel Dunaiski) (2nd Semester)

This course covers the typical pipeline of data science projects: information retrieval, data wrangling and exploratory data analysis, hypothesis testing and regression analysis, as well as visualisations and data ethics.

14066-791 Space Science Algorithms (Trienko Grobler) (2nd Semester)

Algorithms and techniques in Space Science, with applications.

13944-795 Functional Programming (Brink van der Merwe) (2nd Semester)

This module gives an introduction to the functional programming paradigm

14065-796 Soft. Verif. and Analysis - Vulnerability Discovery and Exploitation (TBC in April if it will be offered in 2022) (Fabian Yamaguchi) (2nd Semester)

This module provides an introduction to the discovery and exploitation of vulnerabilities in software systems. We learn to uncover vulnerabilities and demonstrate their exploitability and then proceed to focus on methods for automating parts of the discovery procoess, both via static and dynamic program analysis.