Computer Science 2
CS201
Course Co-ordinator: Dr Karen Bradshaw
Introduction to Java
This module introduces the Java programming language for students who are already familiar with another language, such as Python. The course is fast-paced and covers all the major features of the Java language, as well as introducing some widely-used packages from the extensive libraries that form part of the Java programming environment.
Architecture
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.
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.
Prerequisites: CS I
CS202
Course Co-ordinator: Dr Karen Bradshaw
Databases
This module deals with mass storage of data. The topic is introduced by an examination of the classic approaches to databases then proceeds to cover crucial concepts in databases, such as concurrency, integrity and security. The 4GL SQL is used on a UNIX platform.
OOP in C++
This module introduces the syntax of the C++ programming language, with emphasis on low level constructs and constructs that have not been encountered in Java. The course also explores the object oriented programming constructs provided in C++ and fosters an in-depth understanding of the associated implementation techniques.
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, their derivation and complexity.
Prerequisites: CS201
