Undergraduate Modules
Module Catalogue
Our undergraduate curriculum provides a strong foundation in computer science fundamentals, complemented by practical experience with modern technologies and methodologies. Modules progress from foundational programming to advanced topics in AI, networks, and formal methods.
Introductory Computer Science 1
Fundamental programming concepts, problem-solving strategies, introductory data structures, and algorithmic thinking.
Introductory Computer Science 2
Object-oriented programming, algorithms, complexity analysis, and further exploration of data structures.
CS for Actuarial Studies
Programming for financial applications — tailored for actuarial science students with a focus on computational methods.
Data Structures & Algorithms
Classical data structures (trees, graphs, heaps), advanced algorithm design and analysis, sorting, and complexity theory.
Object-Oriented Programming
Advanced OOP principles, design patterns, SOLID principles, and building maintainable software systems.
Computer Architecture
Hardware fundamentals, assembly language, CPU design, memory systems, and operating system principles.
Scientific Computing
Python programming, Linux fundamentals, numerical computing with NumPy, and introduction to data processing workflows.
Machine Learning
Supervised and unsupervised learning, neural networks, decision trees, evaluation methods, and practical ML pipelines.
Computer Networks
Internet architecture, TCP/IP, routing protocols, network security fundamentals, and distributed systems.
Concurrency
Concurrent and parallel programming principles, thread management, synchronisation, and performance optimisation.
Databases & Web Development
Relational databases, SQL, web services, RESTful APIs, client-server architecture, and front-end frameworks.
Program Design
Software design principles, testability, building medium-to-large software systems with defensive programming techniques.
Computability & Automata Theory
Formal languages, finite automata, Turing machines, computability limits, and computational complexity classes.
Scientific Computing (Advanced)
Advanced Python, pattern searching, large-scale data processing, simulation, and scientific visualisation.
Many modules can be selected as part of different degree streams. Check the Programme Guide for specific requirements for each stream.
Interested in These Modules?
Start your undergraduate journey in computer science at Stellenbosch University.