University Of Pretoria Computer Science Department

First Year

First Semester

COS151 Introduction to Computer Science
This module introduces concepts and terminology related to the computer science discipline. Topics covered include the history of computing, machine level representation of data, Boolean logic and gates, basic computer systems organisation, algorithms and complexity and automata theory. The module also introduces some of the subdisciplines of computer science, such as computer networks, database systems, compilers, information security and intelligent systems. The module is divided into two parts. Firstly, an introduction to program design will be presented by means of flowcharts. The focus of this first part will be on practical, pen-and-paper program design prior to program implementation, in addition to a software-based practical flowcharting component. Secondly, a broad overview of the fundamental concepts underlying computer science, as well as many of the sub-disciplines within the field will be given. The practical focus of the second part will be on short research assignments.

COS132 Imperative Programming
This module introduces imperative computer programming, which is a fundamental building block of computer science. The process of constructing a program for solving a given problem, of editing it, compiling, running and debugging it, is covered from the beginning. The aim is to master the elements of a programming language, and be able to put them together in order to construct programs using types, control structures, arrays, functions and libraries. After completing this module, the student should understand the fundamental elements of a program, the importance of good program design and user friendly interaction mechanisms. Students should be able to write complete elementary programs.

Second Semester

COS110 Program Design: Introduction
The focus is on object-oriented (OO) programming. Concepts including inheritance and multiple inheritance, polymorphism, operator overloading, memory management (static and dynamic binding), interfaces, encapsulation, re-use, etc. will be covered in the module. The module teaches sound program design with the emphasis on modular code, leading to well structured, robust and documented programs. A modern OO programming language is used as the vehicle to develop these skills. The module will introduce the student to basic data structures, lists, stacks and queues.

COS122 Operating Systems
Fundamental concepts of modern operating systems in terms of their structure and the mechanisms they use are studied in this module. Real Time, Multimedia and Multiple Processor Systems are defined and analysed. This module also deals with modern design issues of process management, deadlock, memory management, input/output management, file systems and security.

COS121 Software Modelling (C++)
The module will introduce the concepts of model-driven analysis and design as a mechanism to develop and evaluate complex software systems. Systems will be decomposed into known entities, such as design patterns, classes, relationships, execution loops and process flow, in order to model the semantic aspects of the system in terms of structure and behaviour. An appropriate tool will be used to support the software modelling. The role of the software model in the enterprise will be highlighted. Students who successfully complete this module will be able to conceptualise and analyse problems and abstract a solution.

COS143 Introduction to Programming 2
This module follows on from the previous module and introduces the concepts of functions, memory management and libraries in the imperative programming paradigm. An introduction to object orientation will be given. After completing this module and the module prerequisite, the student should understand the fundamental elements of a program, the importance of good program design and user friendly interfaces. Students should be able to conduct basic program analysis and write complete elementary programs.

Anti Semester

Year Long

ACM101 ACM ICPC Training Module
This module is the official page for the Coders Guild. Sessions include training for the ACM International Collegiate Programming Contest, other related contests, as well as other fun programming related activities.

COS101 COS101
This module is a companion for the COS132 module. It is not for credits. It is an open online module which presents the material for the credited COS132 module presented at the Computer Science Department during the first semester every year It introduces imperative computer programming, which is a fundamental building block of computer science. The process of constructing a program for solving a given problem, of editing it, compiling, running and debugging it, is covered from the beginning. The aim is to master the elements of a programming language, and be able to put them together in order to construct programs using types, control structures, arrays, functions and libraries. After completing this module, the student should understand the fundamental elements of a program, the importance of good program design and user friendly interaction mechanisms. Students should be able to write complete elementary programs.

COS000 Orientation and Registration
This module has been created to aid the with orientation and registration process for first year students as well as the registration process for 2nd and 3rd year students in 2017. Degree detail, not available in the online yearbooks, will be posted here. Subject forms and other details will also be made available here.

Second Year

First Semester

COS212 Data Structures and Algorithms
Data abstraction is a fundamental concept in the design and implementation of correct and efficient software. In prior modules, students are introduced to the basic data structures of lists, stacks and queues. This module continues with advanced data structures such as trees, hash tables, heaps and graphs, and goes into depth with the algorithms needed to manipulate them efficiently. Classical algorithms for sorting, searching, traversing, packing and game playing are included, with an emphasis on comparative implementations and efficiency. At the end of this module, students will be able to identify and recognise all the classical data structures; implement them in different ways; know how to measure the efficiency of implementations and algorithms; and have further developed their programming skills, especially with recursion and polymorphism.

COS216 Netcentric Computer Systems
This module introduces the principles of netcentric computing that can be applied to the WWW and internet as well as to distributed applications. The main focus is on the concepts of client and server side programming, web-based applications, port and socket interaction, writing programs that require remote function calls, and achieving database connectivity using the appropriate technology. The supporting technologies of mark-up languages and scripting languages are also studied. It will also test the ability of a student to use, integrate and maintain the necessary software and hardware required to illustrate the concepts specified.

COS153 Introduction to Programming
Introduction to Programming 3 The module follows a practical programming approach. It will consolidate fundamental prior problem solving and programming knowledge.

Second Semester

COS226 Concurrent Systems
Computer science courses mostly deal with sequential programs. This module looks at the fundamentals of concurrency; what it means, how it can be exploited, and what facilities are available to determine program correctness. Concurrent systems are designed, analysed and implemented.

COS284 Computer Organisation and Architecture
This module provides the foundations on which other modules build by enabling a deeper understanding of how software interacts with hardware. It will teach the design and operation of modern digital computers by studying each of the components that make up a digital computer and the interaction between these components. Specific areas of interest, but not limited to, are: representation of data on the machine-level; organisation of the machine on the assembly level; the architecture and organisation of memory; inter- and intra-component interfacing and communication; data paths and control; and parallelism. Topic-level detail and learning outcomes for each of these areas are given by the first 6 units of ‘Architecture and Organisation’ knowledge area as specified by the ACM/IEEE Computer Science Curriculum 2013. The concepts presented in the theory lectures will be reinforced during the practical sessions by requiring design and implementation of the concepts in simulators and assembly language using an open source operating system.

Anti Semester

Year Long

Third Year

First Semester

COS314 Artificial Intelligence
The main objective of this module is to introduce a selection of topics from Artificial Intelligence (AI), and to provide students with the background to implement AI techniques for solving complex problems. This module will cover topics from classical AI, as well as more recent AI paradigms. These topics include: Search methods, game playing, knowledge representation and reasoning, machine learning, neural networks, evolutionary computation, and swarm intelligence. In the practical part of this module, students will get experience in implementing (1) game trees with suitable algorithms, (2) a genetic algorithm and applying it to solve a real-world problem, and (3) a neural network and applying it to solve a real-world problem, as examples.

COS332 Computer Networks
The objective of this module is to acquaint the student with the terminology of communication systems and to establish a thorough understanding of exactly how data is transferred in such communication networks, as well as applications that can be found in such environments. The study material includes: concepts and terminology, the hierarchy of protocols according to the OSI and TCP/IP models, protocols on the data level, physical level and network level as well as higher level protocols. The practical component of the module involves programming TCP/IP sockets using a high level language. The emphasis throughout is on the technical aspects underlying the operation of networks, rather than the application of networks.

COS341 Compiler Construction
THIS WEB PAGE IS THE STUDY GUIDE for COS341: COMPILER CONSTRUCTION. Please carefully take note of all further announcements which will appear on this web page! In COS341 we follow the textbook by Torben Mogensen.

COS344 Computer Graphics
The aim of this module is to acquire a sound knowledge of the basic theory of interactive computer graphics and basic computer graphics programming techniques. The theory will cover graphics systems and models, graphics programming, input and interaction, geometric objects and transformations, viewing in 3D, shading and rendering techniques. The module includes a practical component that enables students to apply and test their knowledge in computer graphics.

Second Semester

COS330 Computer Security and Ethics
This module develops an appreciation of the fundamentals and design principles for information assurance and security. Students will develop a clear understanding of the basic information security services and mechanisms, enabling them to design and evaluate the integration of solutions into the user application environment. Emphasis will be placed on services such as authorisation and confidentiality. Students will acquire knowledge and skills of Security Models such as the Bell-LaPadula, Harrison-Ruzzoconfidentiality service by focusing on cryptology and the practical implementation thereof. The student will be introduced to professional and philosophical ethics. At the end of the module students will be able to engage in a debate regarding the impact (local and global) of computers on individuals, organisations and society. The professionalism of IT staff will be discussed against national and international codes of practices such as those of the CSSA, ACM and IEEE.

COS326 Database Systems
This module builds on a prior introductory module on database technology and provides more advanced theoretical and practical study material.

COS333 Programming Languages
Programming languages are the backbone for software development. Each language has its own unique syntax and semantics, but there are many common concepts that can be illustrated and studied through the languages. This module concentrates on issues of object orientation, including delegation, iteration and polymorphism. It surveys how languages provide the basic building blocks for data and control, as well as exception handling and concurrency. At the end of the module, students will be able to appreciate the rich history behind programming languages, leading to independent principles that have evolved over time. They will be skilled at using a variety of programming languages (including new paradigms such as functional, logic and scripting), and will know how to learn a new language with ease. From this experience, they will be able to apply evaluation criteria for choosing an appropriate programming language in a given scenario.

Anti Semester

Year Long

COS301 Software Engineering
The module exposes students to problems associated with software development on an industrial scale. Overall goals of the module are: to become familiar with the latest trends in software engineering; to understand the software engineering process and to appreciate its complexity; to be exposed to a variety of methodologies for tackling different stages of the software lifecycle; to understand and apply the concepts of systems administration and maintenance; to complete the development of a fairly large object orientation-based software product. The module involves two software projects. The first is a project during which all students in the class collaborate to design and implement one software application. This project is completed in phases by rotating teams. It is due early May. The second project lasts the rest of the year. The project is completed in groups of approximately five (5) students and teaches students to take responsibility for a variety of roles within a group, and to understand the different requirements for these; to experience the advantages and problems of working in a group; professionalism with regards to particularly colleagues and clients. After the successful completion of this module, students should: understand the psychology of a client; work in groups; and have an appreciation for planning, designing, implementing and maintaining large projects. These qualities should place the students in a position in which they are able to handle software development in the corporate environment.

LAB300 Project lab module
Project lab module


First Semester

COS710 Artificial Intelligence (I)
This module focuses on two Computational Intelligence paradigms, namely Evolutionary Computation and Swarm Intelligence. Within the Evolutionary Computation paradigm, algorithmic models of Darwinian evolution will be studied, including genetic algorithms, genetic programming, evolutionary strategies, evolutionary programming, differential evolution, cultural algorithms and co-evolution. Within the Swarm Intelligence paradigm algorithm models of social organisms found in nature will be studied, including ant algorithms and particle swarm optimisation. These algorithms will mostly be studied in the context of complex optimisation problems, including multi-objective optimisation, dynamic environments, constraints, and finding multiple solutions. Prior knowledge assumed include good programming skills and an undergraduate module in calculus.

COS720 Computer and information security (I)
This module focuses on state-of-the-art security topics that are current and relevant to industry. The curriculum for the module is determined annually to reflect the current research directions as pursued by the Information and Computer Security Architectures (ICSA) researh group. The main topics include, but are not limited to: Applied security, including operating system security, secure coding, and cryptography; Trust and trust management systems; Privacy and privacy-enhanced technologies; Social Engineering. Students will be challenged to contribute innovative research ideas in the field of Computer Security by completing a number of mini projects such as writing research papers and writing software programs.

COS730 Software Engineering, I
The course aims to deepen the understanding of requirements engineering, software development methodologies, quality assurance, component based development and software testing.

COS740 Formal Methods (1)
THIS WEB PAGE IS THE STUDY GUIDE for COS740: FORMAL METHODS (1). Please carefully take note of all further announcements which will appear on this web page! In COS740 we study the construction of verifiable software specifications by means of the language "SOFL".

COS783 Digital forensics and investigations
(Please pardon poor paragraph breaks below.) <p>In 2016 COS783 will explore two related, but distinct themes: digital forensics and digital investigations.</p> <p>An immediate challenge when studying these two topics is that they are often conflated in the literature and in practice. An additional challenge is that the notion of digital forensic science is not mature yet, and arguably needs further development and creative thinking.</p> <p>Digital forensic science is situated in the contexts of other branches of forensic science, of the judicial and law enforcement systems and the requirements of being scientific. Given its potential impact on peoples' lives, ethics forms an inherent part of this context - not only in terms of the professional ethics of the practitioner, but also in terms of the nature of the discipline itself. Therefore a broad perspective is required. In this module students will be confronted by concepts dictated by the contexts described above. Many of these concepts will be outside the typical frame of reference of a computer science students - and, quite possibly, outside the comfort zones of some students.</p> <p>In general the purpose of forensic science is to apply science to conclude facts that may be of use in matters of law. In particular such factual conclusions assist the court to decide a legal dispute. The best known example of such a conclusion is arguably a finding that two DNA samples originate from the same donor. This may prove that a subject was indeed on the scene of a crime or that DNA found on such a scene originated from another donor. The word 'forensic' refers to the forum where legal matters were argued in Roman times. Forensic science therefore literally refers the application of science to reach conclusions that may be used in such a forum - or, in the modern context, in a court of law.</p> <p>The same factual conclusions that assist the court to decide a legal matter are often useful when the police, private investigators or similar entities investigate a crime or incident. Note that neither the court, nor the investigator relies solely on forensic evidence to reach its conclusion, though.</p>

COS787 Spatial databases
This module covers the major themes of spatial databases with application to geographic information systems (GIS), i.e. systems concerning data with an implicit or explicit reference to a location relative to the earth. Topics covered include an introduction to spatial databases and spatial data management systems, representation of geographic data, spatial data modelling, computational geometry, spatial data indexing, query processing and spatial data standards. For Computer Science students the module is an introduction to the ever increasing application field of geographics information systems (GIS), and for Geoinformatics students the module provides insight into the Computer Science foundations of the field.

COS782 Generic programming
This module introduces the concepts of generic programming in order to generate code at compile-time. Of particular interest is the automatic generation of design pattern implementations at compile-time for use at run-time. To this end, design patterns and compile-time programming techniques such as: basic compile-time programming constructs, object allocation, generalised functors, smart pointer and multi-methods are discussed in detail and applied to design patterns.

COS786 Parallel and Distributed Computing
Computational science relies on the analysis of often complex models, for its empirical data and analyses typically involve an enormous amount of calculations. Parallel computing is one means of reducing the time needed to complete such calculations. This module will examine the kinds of problems that lend themselves to parallel computation and the methods for implementing programs to solve such problems. The aim of the module is to provide a background for parallel and distributed computing as well as practical knowledge of the implementation of computational experiments. This course is suitable for students of Computer Science as well as for students of Computer Engineering who have already studied computer networks and concurrent programming at undergraduate level.

Second Semester

COS711 Artificial Intelligence (II)
This module focuses on three Computational Intelligence paradigms, namely Artificial Neural Networks, Artificial Immune Systems, and Fuzzy Systems. Within the Artificial Neural Networks paradigm algorithmic models of neural learning will be studied, including supervised, unsupervised, and reinforcement learning. Aspects that influence the performance of artificial neural networks will be studied in depth. Within the Artificial Immune Systems paradigm algorithm models of different views of the human biological immune system will be studied, including negative selection, clonal selection, network theory and danger theory models. The Fuzzy Systems paradigm include models of reasoning with uncertainty, specifically fuzzy logic and rough sets. Prior knowledge assumed include good programming skills and an undergraduate module in calculus.

COS721 Computer and information security (II)
This module focuses on state-of-the-art information security/cyber-security topics that are current and relevant to industry. The curriculum for this module is annually determined to reflect the current research interests of the Cyber-security/Information security researchers in the department. The main topics include, but are not limited to: Big Data Science and Cyber-security (Identity Deception), Big Data Science and the Insurance industry, Security-aware cloud computing, and other related topics. Students will be challenged to contribute innovative research ideas in the field of Cyber-security/Information Security by completing a number of mini projects such as writing research papers and writing software programs.

COS731 Software engineering (II)
This module discusses software architecture, including the representation of designs, definitions, styles and patterns of architecture. Its themes include model-driven architecture, formal modelling and analysis, and architectural description languages. The module will show that the architecture of a software system is determined by the collection of significant design decisions made early on in the development of that system – decisions concerning the components comprising the system, repeating-patterns of system-wide aspects, and the platforms on which the system will be built. It will discuss how, once these decisions are made and subsequently followed, they end up profoundly affecting the development, deployment, use and ongoing enhancement of that system. The module assumes that the student is familiar with software development lifecycle concepts, and that she/he has been part of at least one significant software development effort. Those who have not completed COS730 will be provided additional background.

COS741 Formal Aspects of Computing II
[20-July-2016]: In any engineering discipline it would be unthinkable to construct a large system without having a precise notion of what is to be built and without verifying how the system is functioning. Software engineering, if it truly deserves the title "engineering", should be no different in this respect. In order to support these goals, FORMAL METHODS involve the use of mathematical notation and calculus in software development. In this course COS741 we study particularly the SOFL method which is also CASE-tool-supported.

COS750 Educational software development
This module provides the foundation to evaluate and develop educational software. It will introduce didactic principles applicable to the discipline of Computer Science. Using these principles, educational software, such as tools for teaching programming, on-line testing software, and adaptive software to name a few, can be evaluated and developed. Computer Science topics of interest are: programming environments, persistence of information and knowledge, knowledge representation etc.

COS781 Data mining
Data mining is the extraction of novel knowledge, or hidden patterns, from large data bases. The focus of this course is on how the computational intelligence techniques (such as evolutionary algorithms, swarm algorithms and neural networks) can be used for knowledge extraction. In addition, traditional machine learning techniques (such as decision trees and rule induction) will be covered. The pre-processing of data in preparation for data mining algorithms, as well as the post-processing of results after data mining, will be discussed. Exploratory data analysis and statistical data mining methods are also investigated. Finally, some attention will be given to more modern problems, such as the extraction of hidden knowledge from unstructured data, such as text and images. It is highly recommended that students do COS710 and COS711, as knowledge of these modules are assumed.

COS785 Computer graphics
This module is intended as an advanced module in real-time computer graphics and shader programming. The module includes the following topics: Advanced texture mapping, curves and curved surfaces, shadow mapping, skeletal animation, ray tracing and collision detection. The module assumes prior knowledge of introductory graphics as presented in an undergraduate module and a working knowledge of linear algebra and calculus.

COS791 Special Topics (Image Analysis and Understanding)
In this course you will learn the foundations of image analysis and how we can use this to understand the image better. Topics that will be covered are: the human computer vision system, sampling and frequency domain processing (Fourier Transforms and other transforms), image processing operations, feature extraction and object description.

Anti Semester

Year Long

COS700 Research Methods and Project
COS700 is COMPULSORY. All students ---also part-time students--- MUST take it in their FIRST study-year at Honours Level.

HON016 Honours 2016

HON017 Honours 2017


First Semester

MIT842 Computer Science in Perspective
Computer Science in Perspective: The aim of this module is to serve as an introduction to the discipline of Computer Science. We will be exploring algorithms on different levels of abstraction; some basic modelling of algorithms and code using UML; understanding the nature of programming and how to manage programmers. We will also be exploring some selected topics in Computer Science such as Formal Methods, Artificial Intelligence and Computer Security.

MIT860 ICT Infrastructure Management
The course covers various disciplines of IT infrastructure management from the perspective of people, process, and technology. Topics include performance management, network management, and capacity planning.

MIT800 Introduction to Big Data Science
The MIT (Stream C) - Big data Science focuses on the provision of an educational opportunity on a post-graduate level for researchers and practitioners in Big Data Science cognizant of the needs on the South African landscape. The definition of Big Data Science at the University of Pretoria includes, among other aspects: Big Data, Data Management, Machine Learning and Predictive modelling. Graduate professionals from industry can leverage this module and ultimately the MIT BDS degree to re-skill themselves in the foundational building blocks of Big Data Science whilst researchers can excel in Big Data and Data Science as research disciplines. The full MIT curriculum contains 180 credits, half of which are required courses and the other half is a research-based mini-dissertation. This module, referred to as, MIT 800 (Introduction to Big Data Science) counts 5 credits of the full degree. This is also the first and introductory module for the MIT degree in Big Data Science. In this module Big Data and Data Science will be defined and students will be exposed to different application domains within the participating University of Pretoria academic departments in the MIT degree. These departments include: Computer Science, Electrical, Electronic and Computer Engineering (EECE), Informatics, Information Science, Mathematics and Applied Mathematics, Industrial and Systems Engineering, Statistics, Computational Biology, Sport and Exercise Science. The presentation of this module will be in the format of a two-day workshop. The module will also expose students to real life projects in industry. We will look at industry projects such as the intelligent detection of fraudulent insurance claims and profiling of people on social media platforms.

MIT803 Introduction to Information Ethics for Big Data Science
The focus in this module is on Information Ethics and its place within the disciplines of Ethics and Philosophy. The following topics will be covered: Information Ethics and PAPAS (privacy, accuracy, property, access, security); Information ethics and the life cycle of big data; Information ethical dilemmas within big data in different disciplines, e.g. science, technology, engineering and mathematics (STEM), health sciences, economics and management sciences, social sciences and the humanities; and Case studies.

MIT802 Introduction to Data Platforms and Sources
Students will obtain hands-on experience on the following technologies such as: Python, Spark, Hadoop, R and SAS, Streaming, Data fusion, Distributed file systems; and Data sources such as social media and sensor data.

MIT804 Introduction to Mathematical Optimisation for Big Data Science
In this module students will be introduced to Mathematical Optimization through gaining knowledge about the theory and algorithms to solve optimisation problems. Topics will include: Linear programming, unconstrained optimization, equality constrained optimization, general linearly and nonlinearly constrained optimization, quadratic programming, global optimization, Theory and algorithms to solve these problems.

MIT801 Introduction to Machine and Statistical Learning
In this module students will be exposed to different categories of machine and statistical learning algorithms that can be used to manipulate big data, identify trends from the data, modelling trends for prediction purposes as well as modelling for the detection of hidden knowledge. Students will be exposed to various machine and statistical learning algorithms/methods and they will learn how to make the right choice with regard to these. Learning, in a supervised and unsupervised mode will be covered. Furthermore students will develop a practical understanding of methods that can aid the learning process, such as, new developments in regression and classification, probabilistic graphical models, numerical Bayesian and Monte Carlo methods, neural networks, decision trees, deep learning and other computational methods. This module also includes a visualisation component focusing on the encoding of information, such as patterns, into visual objects.

MIT808 Big Data Science project
This module provides the opportunity to students for demonstrating the application of the theoretical Big Data Science knowledge gained in the core part of this degree. Students are expected to identify and work with a collaborator who is taking ownership for the project. This collaborator can either be an industry partner or a researcher within one of the participating departments. Projects will be based on the entire big data lifecycle as discussed in this degree programme. This includes the gathering of data of a significant size as well as a final technical report describing the process followed and the deliverables. Depending on the complexity of the project, students can apply to work in groups with a maximum of two members. The proposed project will be subject to approval by the Department Computer Science.

Second Semester

MIT853 Corporate IT Systems
This module focuses on the problems posed by large systems typically exemplified by integrated IT applications in the corporate sector. Facets covered are the relationships between components in the system (hardware, software, people) and the processes in the system. The following themes will be covered: Enterprise Resource Planning (ERP) Systems, Customer Relationship Management (CRM) Systems, IT Security &amp; Privacy, Free/Libre/Open Source Software and Corporates, Modern Mainframe Systems.

MIT850 Life Cycle and Maturity Models for IT
The module aims to introduce the fundamental techniques of software engineering, by looking at maturity models, software life cycles and methods, standards and procedures to assess and measure quality of processes.

MIT862 IT Research
MIT862 introduces the student to research skills required to complete the research required for the mini-dissertation.

MIT805 Big Data
This module focuses on tools for Big Data processing. The focus is on the 3 V- characteristics of Big Data namely volume, velocity and variety. Students will learn about the different architectures available for Big Data processing. The map-reduce algorithm will be studied in detail as well as graphical models for Big Data. The module will include a significant component of practical work (hands-on) where students will be exposed to real use cases that are or can be implemented on Big Data platforms.

MIT809 Research methods for Big Data Science
Similar to MIT862: Research methodologies applicable to the IT field as preparation for the mini dissertation.

COS801 Big Data Science Elective
Example courses, amongst others, may include: Cyber-security, Digital Forensics, Deep Machine Learning, Image and sound analysis, Feature extraction, and Graph Modelling. In addition to study-leader approval, elective course selection may be subject to course pre- requisites, course availability, and internal departmental regulations as decided by the Head of the Department.

COS802 Big Data Science Elective
Example courses, amongst others, may include: Cyber-security, Digital Forensics, Deep Machine Learning, Image and sound analysis, Feature extraction, and Graph Modelling. In addition to study-leader approval, elective course selection may be subject to course pre- requisites, course availability, and internal departmental regulations as decided by the Head of the Department.

MIT806 Big Data Management
Big data management is the governance, administration and organization of large volumes of both structured and unstructured data. Aspects included in big data management are: big data as organizational asset, harnessing big data as disruptive technology for competitive advantage, big data quality and accessibility; management strategies for large and fast-growing internal and external data, big data infrastructure and platform management, and big data policy, strategy and compliance.

Anti Semester

Year Long

MIT840 Mini-dissertation (Class-based portion)
This part of MIT840 is the final preparation phase for the research component of the MIT degree.

MIT807 Mini dissertation in Big Data Science - Continuing
Students may choose a supervisor/co-supervisor from any of the participating departments, which includes, but are not limited to: Electrical, Electronic & Computer Engineering (EECE), Informatics, Information Science, Mathematics and Applied Mathematics, and Faculty of Health Science departments (Computational biology, Family Medicine, Radiology). Additionally to the last mentioned, a supervisor/co-supervisor will also be allocated to all students from a department in the School of Information Technology. It is expected that a submission to a relevant journal is made during the course of the study. All the other faculty and university regulations for a master’s degree will also be applicable over and above those listed at the beginning of this paragraph.

All content copyright © Department of Computer Science, School of IT, University of Pretoria, South Africa