Rhodes University Logo
Rhodes > Computer Science > Studying > Undergraduate > Computer Science 2

Computer Science 2


Course Co-ordinator: Prof Karen Bradshaw

Advanced Programming
This module builds on the data structures and algorithms covered in Computer Science 1, introducing several new topics. Dynamic data structures are an important focus of the course and underlie the concepts of abstract data types. Important classes of algorithms (such as sorting and searching) are considered and used to introduce simple aspects of algorithm analysis.

This module introduces the five classic components of a computer – input, output, memory, datapath, and control. You will learn about the language of the hardware, which all high level languages are translated to, and how the hardware executes programs written in this language. You will gain an understanding of factors that affect the performance of a computer.

This module introduces the syntax of the C programming language, with emphasis on low-level constructs and features that have not been encountered in C#, building on the machine-level view of the Architecture course. The course fosters understanding of how higher-level managed languages are implemented, and how to program for performance making use of your understanding of the real machine.

Prerequisites: CS I


Course Co-ordinator: Prof Karen Bradshaw

Theory of Computing
This module focuses on the more formal aspects of Computer Science, and covers formal languages and automata, as well as Turing machines and computability. It also provides further insight into algorithms, including their derivation and complexity, and introduces aspects of programming language grammars, which are used in the Translators course in CS301 .

Operating Systems
This module covers the fundamental considerations involved in the design and use of a modern operating system.
The topics include:
• Introduction to operating systems
• Processes and threads
• Memory management
• Process scheduling.
• Input / output and files
The emphasis in the course is on low-level programming in

The Databases module centres on the core of most modern software: data storage and retrieval. It gives a brief introduction to database concepts and the language used for database interaction – SQL – before delving into the role of databases in networked GUI applications. Students will be exposed to relational database systems such as SQLite and PostgreSQL. The module will also briefly touch on NoSQL, a topical modern paradigm that provides an alternative means of data storage to standard relational databases.

Prerequisites: CS201

Last Modified :Fri, 22 Sep 2017 10:34:53 SAST

Related Content