CSC4002W: Computer Science Honours Project

60 NQF credits at HEQSF level 8

Course entry requirements: BSc degree with a major in Computer Science from UCT. An overall pass for the coursework component of this degree.

Course outline:

This course is the compulsory research project component of a Computer Science Honours degree. The research project comprises a large project run over the course of the year under academic supervision, with a final mini-dissertation and other project deliverables.


CSC4018W: Information Technology Honours Project

60 NQF credits at HEQSF level 8

Course entry requirements: BSc degree with a major in Computer Science. An overall pass for the coursework component of this degree.

Course outline:

This course is the compulsory research project component of a Computer Science Honours degree. The research project comprises a large project run over the course of the year under academic supervision, with a final mini-dissertation and other project deliverables.


CSC4019Z: Research & Innovation

16 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology.

Course outline:

This course introduces students to knowledge essential for computer professionals and researchers.

The course develops communication and writing skills and introduces basic research methodology. The first module of the course focusses on Professional Communications in general, including written and visual communication.

A second component teaches entrepreneurship as New Venture Planning: a critical element of economic development. This module introduces students to the ideas, theories and concepts associated with entrepreneurial ventures, with a focus on the elements needed to develop a viable business plan.

A third module teaches scientific writing and research methods for statistical analysis and evaluation of data.

DP requirements: None

Assessment: The practical aspects of the work will be evaluated through: a series of 4 NVP assignments (10%/15%/35%/40%), culminating in a business plan; Professional Communications course (25%); and a submitted literature review for the project (35%) and the project proposal (40%). NVP and PCU+RM are equally weighted.


CSC4020Z: Functional Programming

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology.

Course outline:

This course will expose students to the alternative functional programming paradigm, its theoretical underpinnings in the lambda calculus and its practical implementation in specific languages. Students' theoretical understanding of computability will be expanded from the introduction in the undergraduate theory of algorithms module where a Turing machine approach was used. Students will be introduced to the notion of “functions as rules”.

Students will also learn how to use functional programming as a practical programming skill. Topics include side effect free programming and its benefits; first-class functions and higher-order functions; partial application and defining higher-order operations on aggregates, especially map, reduce/fold, and filter. Important new functional programming concepts including lazy evaluation and monads.

DP requirements: 40% mark in the practical assignments for the course.

Assessment: Final examination: 60%; Practical assignments: 40%


CSC4021Z: Compilers 1

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology.

Course outline:

This course will introduce students to the inner mechanics of a modern programming language compiler or interpreter. Students will appreciate why programming languages are designed in particular ways and they will learn how to develop compilers and compiler-related tools. Course content will include: language classes, formal grammars, recursive descent parsing, tokenisers, parsing, and abstract syntax trees.

DP requirements: None

Assessment: Final examination: 60%; Practical assignments: 40%


CSC4023Z: Big Data Management & Analysis

This course will not be offered every year.

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology. A basic understanding of databases, similar to the CSC2001F database material, is expected.

Course outline:

This course will enable students to understand the challenges of designing and implementing database applications at very large scale. They will know the approaches taken by big data technologies such as relational databases, NoSQL, Hadoop and data mining tools, and have practice in applying this knowledge.

The focus of this course is on systems designed for big data storage and analysis. Topics covered include NoSQL, Hadoop, HBase, HIVE, YARN and Apache Spark, as well as an introduction to data mining techniques and tools. The course concludes with a series of short presentations on new developments in database technology such as spatial, temporal, mobile, multimedia, text and social network data management.

DP requirements: None

Assessment: Final examination: 60%; Practical assignments: 40%


CSC4024Z: Human Computer Interaction

This course will not be offered every year.

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology.

Course outline:

This course will introduce you to basic concepts and practice around user-centred design of digital systems.

This course covers how to design and evaluate interactive systems for real users both in the developed and developing worlds. We will look at both theory and practice of designing digital systems.

Topics include the design cycle, sketching and storyboarding, task analysis, contextual inquiry, conceptual models, usability inspection, human information processing, experience design, and qualitative and quantitative study design and evaluation. We will also invite guest speakers from industry and research to talk about their own experiences with user-centred design.

DP requirements: None

Assessment: Final examination: 60%; Practical assignments: 40%


CSC4025Z: Artificial Intelligence

This course will not be offered every year.

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology.

Course outline:

This course will expose students to foundational concepts and computational techniques in modern Artificial Intelligence and their theoretical underpinnings in logic, search, optimisation and mathematical statistics. Students will also learn how to select and implement these techniques to solve various real world problems. Core topics will include: problem solving, knowledge representation and reasoning, machine learning and dealing with uncertainty, with selected topics from: planning, agents and natural language processing.

DP requirements: None

Assessment: Final examination: 60%; Practical assignments: 40%


CSC4026Z: Network & Internetwork Security

This course will not be offered every year.

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology. Computer Networking at third year level.

Course outline:

The objective of this course is to introduce cryptographic techniques and protocols for secure exchange of information on networks and internetworks, and to examine the deployment of these in emerging technologies.

The course will cover risk issues (ISO27000; PoPI act); security services; conventional encryption (classical encryption techniques, DES/AES, key distribution, key generation); public-key encryption (RSA algorithm, key management, certification hierarchies); authentication & digital signatures; authentication and key exchange (Kerberos, Diffie-Hellman); electronic messaging security (S-MIME/PGP/WhatsApp); HTTP security (S-HTTP, SSL, capabilities); secure electronic commerce (SET); web application security (OWASP); web-services security (WS-Security, SAML); cloud computing security (public vs private clouds); critical infrastructure security (Stuxnet etc); Security Information & Event Management (SIEM) and next generation Security Operation Centres.

DP requirements: None

Assessment: Final examination: 60%; Practical assignments: 40%


CSC4027Z: Computer Game Design

This course will not be offered every year.

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology. Computer Graphics at third year level.

Course outline:

This course will introduce students to the techniques and technologies used in designing and programming computer games and related applications.

This course introduces high-level game programming concepts and practical game construction. By the end of the course, students will be able to design and implement simple 2D and 3D games. The course content include: appropriate terminology, methods, and tools for computer game development are introduced; fundamental algorithms for 2D game development; design and development of simple 3D and networked games; uncertainty and constantly changing gaming environments; and techniques for multiuser and distributed games.

This is a practical course: students collaborate with designers and artists to produce a full games that builds on concepts covered in lectures.

DP requirements: None

Assessment: Final examination: 60%; Practical assignments: 40%


CSC4028Z: High-Performance Computing

This course will not be offered every year.

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology. Computer Graphics at third year level.

Course outline:

Single-core CPU compute performance has flatlined at 70-100 GFLOPs and no longer doubles every eighteen months. Multicore architectures are now ubiquitous and commodity Graphical Processing Units (GPUs) have overtaken CPUs in terms of processign power, with performance in the 900-1200 GFLOP range. This is the era of heterogeneous parallel computing with multicores and accelerators. As a result, multithreaded computing is increasingly important for effective software development. However, knowledge and experience of both parallel algorithms and architectures is required in order to program a parallel computer effectively, particularly in the case of complex hybrid accelerator/multicore machines. This course cover methods for the practical development of parallel algorithms on multiple cores or GPUs.

This module covers the following areas: An overview of parallel computing, with a history of a parallel computing in general, clusters, multicore and accelerators; Parallel architectures – clusters, multicore machines and accelerators; General comparison of parallel programming models and methods; Thinking in parallel: Parallel algorithms and applications; Multithreaded computing for multiple cores; A motivation for general purpose computation on GPUs (GPGPU); The CUDA approach to multithreaded computing; CUDA threading and memory models; CUDA performance optimization; and Benchmarking, profiling and proving parallel performance.

DP requirements: None

Assessment: Assignment (50%), Exam (50%)


CSC4029Z: Introduction to Computer Graphics

This course will not be offered every year.

12 NQF credits at HEQSF level 8

Course entry requirements: Admission to BSc Hons specialising in Computer Science or Information Technology.

Course outline:

This course will expose students to the foundational theory of 3D computer graphics and provide a short introduction to OpenGL and GLSL shader programming. Theory will encompass the formal description of 3D models and how these can be lit and rendered to produce a desired representation of a 3D scene. On the practical side, a series of short assignments will introduce basic OpenGL and shader programming and allow students to apply the theory they have learned.
 Topics include: the rendering pipeline and rasterization; 3D mesh model representation; homogeneous coordinates; modelling and viewing transformations; shading, lighting and texturing; GLSL shader programming; OpenGL/WebGL programming; advanced rendering - ray-tracing.

DP requirements: 40% in the practical assignments for the course.

Assessment: Assignment (40%), Exam (60%)


STA4026S: Analytics

18 NQF credits at HEQSF level 8

Course entry requirements: Undergraduate degree that included a substantial degree of training in quantitative subjects and programming, as assessed by the course convener.

Course outline:

This course will cover computationally-intensive statistical methods for analysing datasets of various sizes. The course will cover three broad sections: (1) Parallel and high-performance computing in R, (2) Supervised Learning and (3) Unsupervised Learning.

In the first section, students will learn how to use R to analyse large datasets on multiple computer processors, and UCT's own HPC cluster. The second section will expose students to machine learning techniques that are used to infer a regression or classification rule based on labelled training data, including regression and classification trees, bagging and random forests, boosting, neural networks. The last section will cover statistical methods for classifying observations into groups where the group memberships of the training data are not known in advance, including self-organising maps, association rule mining and cluster analysis.

DP requirements: Satisfactory completion of assignments

Assessment: Assignments and Computer-based Exam