Donating to SPU |   053 491 0000 |   [email protected] |   Vacancies View current jobs |   Employee Portal





BSc Honours in Computer Science programme supports the development of research skills and creative interventions in the fields of software engineering, design and analyses of algorithms, security and cryptography, and machine learning. Excellency in these fields is heavily integrated in the development of most largescale enterprise systems in demand today. It is, thus, important that more computer scientists be trained by way of a BSc Honours in Computer Science

Admission Requirements 

  • The General Rules of Sol Plaatje University in respect of admission to Bachelor Honours Degrees (aligned with the Higher Education Qualification Sub-Framework: HEQSF) are applicable to this degree.
  • To be admitted to the Bachelor of Science (Honours) programme, a student must be in possession of an acknowledged Bachelor qualification at NQF Level 7 or cognate qualification, with an average of at least 60% in for major subjects in the final undergraduate year.
  • The formal university’s Recognition of Prior Learning (RPL) Policy may be applied in instances where applicants do not meet the minimum admission requirements for entry into the Honours Degree.

Programme Structure

In order to satisfy the qualification requirements, students must take and pass at least 120 credits.  The BSc.Hons in Computer Science comprises of five compulsory modules.

show more

Module Code


Module Name

Research Project

Module Description

The research methods and project is a core module of the programme. It introduces students to research, mainly focusing on topics related to research planning, proposal and abstract writing. It gives details regarding how to introduce a research topic, how to state the statement of the problem, how to provide grounds and background to a research topic, as well as how to motivate and justify the worthiness of a topics. Approaches to conducting valuable literature reviews, giving the important parts of literature reviews, elucidating on referencing styles, and how to filter relevant literature towards pinpointing gaps in the body of knowledge are discussed.)

Module Content

·         Introduction to research methods

·         Topic choosing and supervisor relationship

·         Research project management

·         Scientific and technical writing

·         Conducting an electronic based literature search

·         Ethics of research: Honesty and integrity

·         Data analysis using statistical software

·         Publication of research output

Learning Outcomes

Upon completion of this module, students should be able to:

Select a topic, plan, and develop a research project proposal for the topic.

·         Introduce a research topic, clearly stating the statement of the problem, giving sound background, motivation, and envisioned contributions of the work.

·         Filter and present relevant literature, culminating the review with a gap to fill.

·         Select and justify an appropriate research methodology, choosing a suitable paradigm, valid data collection strategy, participants, and relevant statistics.

·         Develop good experiment designs for evaluating and testing selected strategies.

·         Make informed ethical considerations before and during the study.

·         Demonstrate research competencies by completing the independent research assignment in time, using proper referencing and writing styles, with the aim of possible publication of the research output.

Module Code


Module Name

Advanced Algorithms Analysis and Application

Module Description

This course introduces students to advanced techniques for the design, analysis and evaluation of algorithms, and explores a variety of areas of applications of the same skills. It discusses different methodologies used to solve real world problems, exposing students to a variety of algorithms and computational resources available in the literature, critically analyzing apparent limitations on solving problems efficiently. The course seeks to develop in students, appropriate mathematical skills for algorithm design, analysis, and evaluation, as well as to develop skills to design and implement efficient programming solutions to various problems.

Module Content

·         Asymptotic notations, recurrences, algorithm analysis

·         Divide and conquer algorithms

·         Greedy algorithms

·         Dynamic programming algorithms

·         Amortized analysis

·         Graph algorithms,

·         Network Flow: steepest assent, Edmonds-Karp, matching:

·         Number-Theoretic Algorithms

·         NP-Completeness

Module Code


Module Name

Computer Security

Module Description

The module, mainly, investigates policies, standards, protocols, algorithms, services, and mechanism used for detecting, preventing, and reversing computer security attacks in order to ensure confidentiality, integrity, and availability/accessibility/accountability/authenticity of data. It covers aspects of computer security from a wide perspective, including language-based security, network security, and operating systems security using technical mechanisms. Graduates of this module should particularly demonstrate an informed understanding of the number theories applied in cryptography, including the divisibility and division algorithms, uses of greatest common divisors, Euclidean algorithms, modular arithmetic, prime numbers, Fermat’s and Euler’s Theorems, Chinese remainder theorem, as well as testing entries for primality.

Module Content

·         Computer security environment

·         Cryptography fundamentals

·         Protection mechanisms for computer systems

·         Authentication and inside attacks

·         Various system attacks and defensive mechanism

·         Non-technical Aspects: Administration of security systems; policies; physical security; economics of security; legal and ethical issues

Module Code


Module Name

Software Engineering

Module Description

This module introduces students to software engineering and its key concepts, practice, standards, and models used for planning, managing, designing, analyzing, and evaluating software projects. It focuses on describing software development life cycle activities required to ensure that software products are developed and delivered on time and within the budget. Students should acquire sufficient software engineering skills, methods, practices, and appropriately apply these skills in the development of environment-specific tailored ICT solutions for the industry, commerce, and education.

Module Content

·         Software process

·         Software modelling

·         Design and implementation

·         Software testing strategies

·         Software security and dependability

·         Professional software practices and ethics

·         Advanced topics in software engineering

·         Software management (project, process and configuration management)

Learning Outcomes

At the end of the module, students are expected to be able to:

·         Describe the software engineering process, stating why it requires management attention, the challenges related to risk management, human resources management, and its impact on productivity and quality.

·         Describe the various types of software systems, different software engineering techniques, and ethical and professional issues important to software engineers.

·         Discuss the processes involved in discovering and documenting systems requirements, including user and system requirements, functional and non-functional requirements.

·         Describe agile software development, including an understanding of the rationale for agile software development methods, the agile manifesto, and the differences between agile and plan-driven development.

·         Describe graphical models for presenting software systems, including the fundamental system modelling perspectives of context, interaction, structure, and behaviour.

·         Describe the concepts of software architecture and architectural design, indicating their importance, and the decisions associated with the architectural design processes and architectural patterns.

·         Describe the principles underlying object-oriented thinking and the methods used to accomplish object-oriented analysis and design.

·         Explain software security and dependability, in relation to system errors, acknowledging that change is inevitable if systems are to remain relevant.

·         Describe strategies and tactics for software testing and test case design. Students should demonstrate an understanding of the stages of testing (from testing during development to acceptance testing). They should be able to identify those techniques that help them choose test cases geared to discovering program defects using test-first development.

·         Describe changeover approaches, maintenance, and the costs involved.

Module Code


Module Name

Machine Learning

Module Description

The module equips the students with knowledge of machine learning concepts to enable them design, test, implement and evaluate general purpose algorithms that facilitates how machines perceive the environment characterized by data. The technical aspect of the course provides students with mathematical concepts and software tools to use machines (computers) to learn to discriminate behavior of interest from the rest and be able to take reasonable decisions. The module emphasizes on the concept of learning, data models and learning approaches, as well as on mathematical underpinnings of learning algorithms.

Module Content

·         Concept of learning, data models and learning approaches

·         Mathematical underpinnings of learning algorithms

·         Classification, association, regression and clustering methods

·         Design and analyze machine learning algorithms

·         Implement various machine learning algorithms in a range of real-world applications

Learning Outcomes

At the end of the module, students are expected to be able to:

·         Demonstrate an understanding of the theoretical mathematical foundations of machine learning concepts.

·         Demonstrate a good understanding of the fundamental issues and challenges of machine learning, including, but not limited to, data, model selection, model complexity.

·         Show an understanding of popular machine learning paradigms and approaches

·         Analyze, design and evaluate learning systems in unfamiliar problem domains.

·         Implement real-world ICT solutions using machine learning algorithms.



Science graduates are open to various career opportunities in academic, government and industry. 

A Bachelor of Science (BSc) degree emphasises coursework in the sciences, mathematics or career-specific topics. 

The degree can serve as foundation for a variety of careers. Job prospects for BSc graduates offer a diverse range of professional fields to work in, such as healthcare, finance, biology, chemistry, forensic sciences, consulting, engineering and computer programming.

Please contact the School Registrar Ms Nobulali Mathimba on (053) 491 0369 or [email protected] 

You can download a comprehensive list of all our qualifications that will be offered in 2022 by clicking here.