Science

Computer science is the theory and practice of algorithms. It is a wonderful combination of art (invention and design), science (analysis and experimentation), and engineering to solve problems with computers. Our students learn to program, develop, and manage large software systems in a team, but – most importantly – to frame problems in terms of computational processes.

empty

empty tag

Why is it called Computer Science, and not IT or just programming?

In general, Information Technology (IT) refers to the integration and management of computing facilities in organisations. But Computer Science, more specifically, is about the theory and practice of algorithms — the step-by-step instructions for solving a particular problem or to achieve a particular goal. Programmers may know how to solve a particular computational problem, but computer scientists also know why the solutions work, enabling them to solve existing problems more efficiently, or to solve entirely new problems.

What are the career possibilities?

Career opportunities include programming, research, web development, IT, and data science positions for a Computer Science major; many of our graduates write code for a living. If Computer Science is combined with another third-year major (main subject), just about anything is possible. Our alumni work for companies like Google, Amazon, Facebook, NASA, Microsoft, eBay, Takealot, Black Ginger, Capitec, Praelexis, and Allan Gray. Most of our graduates have jobs waiting for them. Also, jobs related to computer science and software development consistently rate highly in polls of job desirability.

What Computer Science modules (subjects) are there?
First year CS114 Introductory Computer Science 1 (basic programming)
  CS144 Introductory Computer Science 2 (basic program design)
Second year CS214 Data Structures and Algorithms
  CS244 Computer Architecture (including low-level programming and compilers)
Third year CS314 Concurrency (including elements of operating systems)
  CS315 Machine Learning
  CS334 Databases and Web-Centric Programming
  CS344 Program Design (software engineering)
  CS345 Computability and Automata
  CS354 Computer Networks

CS314, CS334, CS344, and CS354 are required for a major in Computer Science.

On honours (extra fourth year) level, there are Advanced Algorithms, Advanced Automata, Compilers, Computational Intelligence, Functional Programming, Machine Learning, Simulation of Networks, Software Verification & Analysis, and Space Science Algorithms; these modules change from year to year. There is also a research/software engineering project for each student, under the personal supervision of one of the lecturers.

Why don’t you say a lot about specific programming languages in the Calendar and brochures?

What distinguishes a university-educated computer scientist from a programmer is the ability to adapt to the changing state of the art. Therefore – although we teach you programming languages, both old and new, through practicums that have real-world relevance and require a lot of programming – we focus equally on the underlying principles that will allow you to stay up to date with rapidly changing technologies. As such, what we learn by studying different programming languages is more important than the exact languages themselves. But for the record, in our undergraduate course modules, you’ll get thorough experience in Java, C, Python, JavaScript, and assembly language. At postgraduate (honours) level, you’ll also see Haskell, C++, Scala… and whatever is brand new and happening in four years’ time.

Do I need to do IT or CAT at school?

No… but you do need Mathematics (and not Mathematical Literacy). Our first-year modules are designed such that no prior programming knowledge is necessary, and indeed, some of our most successful alumni arrived in Stellenbosch without any programming experience at all. And don’t fear: Even if you had IT at school, you certainly won’t be bored. Before the start of the first semester, we also offer an intensive, week-long bridging course, as an introduction to programming (from scratch), to all students who have been finally accepted and who will take Computer Science or Computer Programming (for engineering students) as first-year subject. This course is optional, but does help if your computer experience is limited.

I want to study Computer Science, but which degree should I choose?

Computer Science as a major is available from the BSc, BCom, and BDatSci programmes. A limited number of third-year Computer Science modules is also available in the BEng (Electrical & Electronic) programme. At a glance:

Degree Pros Cons
BSc Widest variety of subject choices, including some commerce and engineering subjects. More expensive than BCom, because many subjects have laboratory fees.
BCom Less expensive than BSc. More limited subject choices, because Mathematics and Mathematical Statistics are required in the second year.
BDatSci Wide variety of focal areas.

• Strictest admission requirements.

• More statistical (if you just want to code).

BEng More scope for hardware design.

• Most expensive.

• Not all CS modules can be taken.

 

BSc and BCom are three-year degrees, and require an extra fourth (honours) year for admission to a master’s degree in Computer Science. BDatSci and BEng are four-year degrees, and depending on the subjects offered, may not require an honours degree for further study.

BSc

The BSc (Computer Science) programme includes five streams:

  1. General Computer Science, offering the most subject choices, with Applied Mathematics, Economics, General Linguistics, Mathematical Statistics, Mathematics, Operations Research, and Physics as possible second majors; in addition, Music Technology may be taken as a third-year subject.
  2. Computer Systems, which includes hardware design subjects from the Electrical and Electronics Engineering programme;
  3. Data Science, which includes subjects from the BDatSci programme;
  4. Computer Science with Genetics as second major; and
  5. Computer Science with Geographical Information Technology as second major.

In addition, some streams in the Chemistry, Mathematical Sciences, and Physics programmes allow you to take Computer Science as a second major, or at least most of the Computer Science modules in the third year—but because of timetable clashes, this is not always possible. All streams and programmes that allow Computer Science as a major require Mathematics and Probability Theory & Statistics in the first year.

BCom

The Data Science focal area  in the BCom (Mathematical Sciences) programme allow you to take Computer Science as a major, but in addition to the requirements of Mathematics and Probability Theory & Statistics in the first year, also require Business Management and Economics in the first year, and Mathematical Statistics, Mathematics, and one Operations Research module in the second year. All of these subjects, except Business Management, are also available through the BSc (Computer Science) programme, but depending on the stream, are not compulsory.

BDatSci

The interdisciplinary BDatSci degree has the following focal areas:

Focal Area Home Faculty
Statistical Learning Economic and Management Sciences
Analytics and Optimisation Economic and Management Sciences
Behavioural Economics Economic and Management Sciences
Computer Science Science
Applied Mathematics Science
Statistical Physics Science
Geoinformatics Arts and Social Sciences
Statistical Genetics AgriSciences

 

All of these focal areas require all Computer Science modules up to the second year, most of them have some required Computer Science third-year modules, and the Computer Science focal area allows you to take all third-year Computer Science modules and a number of fourth-year Computer Science modules that are equivalent to existing honours modules.

BEng

The BEng (Electrical & Electronics) programme has two compulsory modules that are equivalent to the first-year Computer Science modules. The Data Engineering focus area offers three of the third-year Computer Science modules, but does not lead to a Computer Science major, whereas the other focus areas can lead to at most one third-year Computer Science module; second-year Computer Science modules cannot be taken at all.

What are the admission and selection requirements?

The final word on admission to every degree, programme, and stream is always the current Calendar (informally, the “yearbook”) and the information at www.sun.ac.za/english/maties. These resources have all relevant information, whether you matriculated at a South African school (NSC/IEB) or elsewhere in the world. All programmes that include Computer Science are selection programmes, and just meeting the requirements does not guarantee admission. In terms of school subjects, you need Mathematics (and not Mathematical Literacy), for which you must have at least 70% – note that some programmes, like data science, have stricter requirements – as well as either English or Afrikaans as Home Language or First Additional Language. Some programmes have additional school subject requirements, depending on which subjects you want to take as part of your degree. None of the programmes, however, require that you do IT or CAT at school.

Isn’t BEng a better option if I want to program, and can I not switch to BSc later?

In the BEng (Electrical and Electronics) programme, excluding the Data Engineering focus area, students study both hardware and software design; the software component often focuses on very specific engineering applications, and not all Computer Science modules are available in this programme. In contrast, Computer Science has a deeper focus on software (algorithms and program development), and the Computer Systems stream allow you access to those engineering subjects most of interest to a computer specialist. If you are uncertain about the choice, it would be a good idea to speak to representatives of both programmes.

Switching to BSc from BEng will typically require extra years of study. You should get credit for passing Engineering Mathematics and some of the Applied Mathematics for Engineers, but other specialised modules like Engineering Chemistry and Engineering Physics will have to be replaced by the more general Chemistry and Physics modules offered to BSc students. The Computer Programming and Computer Science for Engineers modules are equivalent only to the first-year Computer Science modules offered to BSc students, and in particular, both second-year Computer Science modules have to be taken to graduate with a Computer Science major.

What are the postgraduate specialisation areas?

Our academics do research in Artificial Intelligence, Assistive Technologies, Automata Theory, Computational Intelligence, Data Science, Formal Languages, Formal Methods, Machine Learning, Mobile Networks, Natural Language Processing, and Software Engineering & Verification.

English