Details regarding postgraduate modules are available at www.cs.up.ac.za.
IT.27 Bachelor of Science Honours in Computer Science [BScHons (Computer Science)] (Code12244000) This degree programme is offered in English only. Consult G Regulations G.16 to G.29
(a) Admission
Subject to the stipulations of G Regulations G.1.3, G.16 and G.54, a BSc degree, majoring in Computer Science from a South African university (or equivalent) with an average of 60% over all third-year computer science modules, is required for admission to this degree programme. Students from outside South Africa need to obtain a certificate from the South Afican Qualifications Authority (SAQA) before admission will be considered. The Head of Department may prescribe additional conditions for admission.
(b) Minimum duration of study
A student is required to complete his/her studies within one year (full-time) or within two years (part-time). However, the Dean, on the recommendation of the Head of Department, may approve a stipulated limited extension of this period. (c) Pass requirements
In calculating marks, G Regulation G.12.2 is applicable. However, a student is required to obtain at least 50% in an examination in a module where no semester or year mark is required. In those cases where a year mark or semester mark is available, a subminimum of 40% must be obtained in the examination.
(d) Examinations
The Dean may, on the recommendation of the admissions committee, cancel the studies of a student who fails more than one module in an academic year. A module may only be repeated once. No supplementary examinations are granted at postgraduate level.
(e) Degree with distinction
The BScHons degree is awarded with distinction to a candidate who obtains a weighted average of at least 75% in all the prescribed modules and who did not fail any module.
(f) Conferment of degree
The degree is conferred on a student who successfully completes at least 120 credits of coursework in Computer Science at honours level.
(g) Curriculum
Minimum credits required 120
Core modules (30 credits)
COS 700 Research report 30 Year
Elective modules (90 credits)
Select any six modules from the following (one module can be selected from outside the Department
of Computer Science, subject to the approval of the programme manager, and provided that there are no lecture and exam clashes with Computer Science modules). Note that some of the elective modules might not be presented each year. Consult the departmental website for the list of modules presented in the current year.
COS 710 Artificial intelligence I 15
Consult the department concerning the Period of
presentation
COS 711 Artificial intelligence II 15
COS 720 Computer and information security I 15
COS 721 Computer and information security II 15
COS 730 Software engineering I 15
COS 731 Software engineering II 15
COS 740 Formal aspects of computing I 15
COS 741 Formal aspects of computing II 15
COS 750 Educational software development 15
COS 781 Data mining 15
COS 782 Generic programming 15
COS 783 Digital forensics and investigations 15
COS 784 Computer networks 15
COS 785 Computer graphics 15
COS 786 Parallel and distributed computing 15
COS 787 Spatial databases 15
COS 788 Information hiding 15
COS 790 Special topics I 15
COS 791 Special topics II 15
IT.28 Master of Science in Computer Science
[MSc (Computer Science)] (Research) (Code 12255000) Consult G Regulations G.30 to G.40 and G.54.
(a) Admission
Subject to the stipulations of G Regulations G.1.3, G.30 and G.54, an appropriate BScHons or equivalent degree is required for admission. In addition, to be considered for admission, an average of 65% should have been obtained for the modules passed for the honours degree. The Dean, on the recommendation of the supervisor and the Head of Department, may approve additional requirements and conditions.
(b) Conferment of degree
The MSc degree is conferred on grounds of a dissertation and such additional postgraduate coursework as may be prescribed. A student works under the guidance of a supervisor and is expected to identify and complete a research project. The research results are to be fully reported in an MSc dissertation.
(c) Degree with distinction
The MSc degree is conferred with distinction on candidates who obtain a final average mark of at least 75%.
(d) Progress requirements
If the supervisor affirms that a candidate has progressed satisfactorily, registration may be renewed for the second year (full-time) or for the second to fourth year (part-time). Re-registration thereafter will only take place if a written motivation from the candidate, supported by the Head of Department is submitted to the student administration offices.
(e) Duration
Consult the General Regulation G.32.4 regarding the maximum period of registration allowed.
(f) Curriculum
A student is required to demonstrate, by means of a dissertation, the ability to plan, institute and execute a scientific investigation.
(g) Article for publication
Unless Senate, on the recommendation of the supervisor, decides otherwise, a student, before or on submission of a dissertation, must submit proof of submission of an article by an accredited journal to the Head: Student administration.
The draft or submitted article, as the case may be, should be based on the research that the student has conducted for the dissertation/thesis and be approved by the supervisor if the supervisor is not a co-author.
The supervisor shall be responsible for ensuring that the paper is taken through all the processes of revision and resubmission, as may be necessary. Conferment of the degree may be made subject to compliance with the stipulations of this regulation. Also consult the G Regulations.
IT.29 Doctor of Philosophy in Computer Science [PhD (Computer Science)] (Code 12266000) Consult G Regulations G.42 to G.54
(a) Admission
Subject to the stipulations of G Regulations G.1.3, G.42 and G.54, admission to doctoral studies requires that the candidate should have obtained at least 75% for a master‟s degree in computer science.
(b) Curriculum
The department offers a research-based PhD degree. The student works under guidance of a supervisor and is expected to identify and complete a research project. The research results are to be fully reported in a PhD thesis.
(c) Conferment of degree
Unless otherwise decided by the Dean, on the recommendation of the supervisor, the PhD(Computer Science) degree is awarded on the basis of a thesis and an examination on the thesis.
(d) Article for publication
Unless Senate, on the recommendation of the supervisor, decides otherwise, a student, before or on submission of a thesis, must submit proof of submission of an article by an accredited journal to the Head: Student Administration.
The draft or submitted article, as the case may be, should be based on the research that the student has conducted for the dissertation/thesis and be approved by the supervisor if the supervisor if the supervisor is not a co-author. The supervisor shall be responsible for ensuring that the paper is taken through all the processes of revision and resubmission, as may be necessary. Conferment of the degree may be made subject to compliance with the stipulations of this regulation.
(e) Pass requirements
The thesis and examination thereof should prove that the candidate has carried out advanced original research and/or creative work, which make a real and substantial contribution to the discipline of computer science.
Alphabetical list of modules in the School of Information Technology
# = Concurrent registration () = Examination admission dpw = discussions per week
GS = combined (final) mark (semester/year mark plus examination mark) of at least 40% - 49%
hpw = hours per week LP = Lecturer's permission lpw = lectures per week ppw = practicals per week spw = seminars per week
TDH = Permission by head of department tpw = tutorials per week
wbppw = web-based period per week opw = other per week
AIM 101 Academic information management 101 Academic organisation: School of Information Technology Contact time: 2 lpw
Period of presentation: Semester 1 or Semester 2
Language of tuition: Both Afr and Eng Credits: 6 Module content:
Find, evaluate, process, manage and present information resources for academic purposes using appropriate technology. Apply effective search strategies in different technological environments. Demonstrate the ethical and fair use of information resources. Integrate 21st-century communications into the management of academic information.
AIM 111 Academic information management 111 Academic organisation: School of Information Technology Contact time: 2 lpw Mamelodi
Period of presentation: Semester 1
Language of tuition: Both Afr and Eng Credits: 4 Module content:
Find, evaluate, process, manage and present information resources for academic purposes using appropriate technology.
AIM 121 Academic information management 121 Academic organisation: School of Information Technology Contact time: 2 lpw Mamelodi
Period of presentation: Semester 2
Language of tuition: Both Afr and Eng Credits: 4 Module content:
Apply effective search strategies in different technological environments. Demonstrate the ethical and fair use of information resources. Integrate 21st-century communications into the management of academic information.
BIB 890 Dissertation: Library science 890 Academic organisation: Information Science Period of presentation: Year
Language of tuition: English Credits: 180 BIB 990 Thesis: Library science 990
Academic organisation: Information Science Period of presentation: Year
Language of tuition: English Credits: 360 COS 110 Program design: Introduction 110
Academic organisation: Computer Science
Prerequisite: COS 153 or COS 131 or COS 132 and Maths level 5 or WTW 133 Contact time: 1 ppw 4 lpw
Period of presentation: Semester 2
Language of tuition: Both Afr and Eng Credits: 16 Module content:
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, reuse, 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.
COS 121 Software modelling 121
Academic organisation: Computer Science Prerequisite: COS 153 or COS 131 or COS 132 Contact time: 1 ppw 4 lpw
Period of presentation: Semester 2
Language of tuition: Both Afr and Eng Credits: 16 Module content:
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.
COS 131 Introduction to programming 131 Academic organisation: Computer Science Contact time: 1 ppw 4 lpw
Period of presentation: Semester 1
Language of tuition: Both Afr and Eng Credits: 16 Module content:
*Note: All students not registered for programmes in the School of IT need to enrol for this module.
The aim of this module is to acquire a sound knowledge of basic computer programming concepts and an introductory knowledge of data structures. The theory of these concepts, as well as design methodologies, will be investigated. Understanding rather
than memorising is emphasised in order to stimulate creative thinking and the development of innovative skills amongst students in the field of computer programming. The C programming language is used to implement these concepts. At the end of the module a short introduction to object-oriented programming using C++ will be given. After completing this module, a student should be able to design and write structured, efficient programs using the C programming language, be familiar with the basic data structures, pointers and file processing, and have an introductory knowledge of advanced data structures and object-orientation.
COS 132 Imperative programming 132 Academic organisation: Computer Science
Prerequisite: APS of 30 and level 5 (60-69%) Mathematics Contact time: 1 ppw 1 tpw 3 lpw
Period of presentation: Semester 1
Language of tuition: Both Afr and Eng Credits: 16 Module content:
*Note: All students registered for degrees within the School of IT, excluding the two four year programmes, BIS (Information Science) and BIS (Publishing), need to enrol for this module.
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 (both manually and automatically), 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. An introduction to object orientation will be given. After completing this module, 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.
COS 133 Introduction to programming 1 133 Academic organisation: Computer Science Prerequisite: Extended programmes only
Contact time: 2 dpw 2 lpw 2 ppw Mamelodi Foundation module Period of presentation: Semester 1
Language of tuition: English Credits: 8
Module content:
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 (both manually and automatically), 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 and arrays.
COS 143 Introduction to programming 2 143 Academic organisation: Computer Science Prerequisite: COS 133
Contact time: 2 dpw 2 lpw 2 ppw Mamelodi Foundation module Period of presentation: Semester 2
Module content:
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.
COS 151 Introduction to computer science 151 Academic organisation: Computer Science Contact time: 1 ppw 2 lpw
Period of presentation: Semester 1
Language of tuition: Both Afr and Eng Credits: 8 Module content:
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.
COS 153 Introduction to programming 3 153 Academic organisation: Computer Science Prerequisite: COS 143
Contact time: 2 dpw 2 lpw 2 ppw Foundation module Period of presentation: Semester 1
Language of tuition: English Credits: 8
Module content:
The module follows a practical programming approach. It will consolidate fundamental prior problem solving and programming knowledge.
COS 212 Data structures and algorithms 212 Academic organisation: Computer Science Prerequisite: COS 110
Contact time: 1 ppw 4 lpw Period of presentation: Semester 1
Language of tuition: Both Afr and Eng Credits: 16 Module content:
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.
COS 216 Netcentric computer systems 216 Academic organisation: Computer Science Prerequisite: COS 110
Contact time: 1 ppw 4 lpw Period of presentation: Semester 1
Language of tuition: Both Afr and Eng Credits: 16 Module content:
This module introduces the principles of netcentric computing that can be applied to the WWW and internet as well as to distributed applications. After completing this module, a student will have gained, as outcomes, knowledge of how to integrate various programming and web-based technologies. Particular outcomes include gaining knowledge on the concepts of client and server side programming, web-based applications, port and socket interaction, writing programmes that require remote function calls and achieving database connectivity using remote SQL calls. The supporting technologies of mark-up languages like HTML and scripting languages like JavaScript are also studied. In order to practically demonstrate that a student has reached these outcomes, students will be required to use, integrate and maintain the necessary software and hardware by completing a number of smaller practical assignments whereafter integrating all these technologies into a comprehensive and practical netcentric programming project is required.
COS 222 Operating systems 222
Academic organisation: Computer Science Prerequisite: COS 153 or COS 131 or COS 132 Contact time: 1 ppw 4 lpw
Period of presentation: Semester 2
Language of tuition: Both Afr and Eng Credits: 16 Module content:
Fundamental concepts of modern operating systems in terms of their structure and the mechanisms they use are studied in this module. After completing this module, students will have gained, as outcomes, knowledge of real time, multimedia and multiple processor systems, as these will be defined and analysed. In addition, students will have gained knowledge on modern design issues of process management, deadlock and concurrency control, memory management, input/output management, file systems and operating system security. In order to experience a hands-on approach to the knowledge students would have gained from studying the abovementioned concepts, students will have produced a number of practical implementations of these concepts using the Windows and Linux operating systems.
COS 226 Concurrent systems 226 Academic organisation: Computer Science Prerequisite: COS 153 or COS 131 or COS 132 Contact time: 1 ppw 4 lpw
Period of presentation: Semester 2
Language of tuition: Both Afr and Eng Credits: 16 Module content:
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.
COS 284 Computer organisation and architecture 284 Academic organisation: Computer Science
Prerequisite: COS 110 Contact time: 1 ppw 4 lpw Period of presentation: Semester 2
Language of tuition: Both Afr and Eng Credits: 16 Module content:
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.