This module is a continuation of the module CS-110 Programming 1. In it, students will continue to enhance their skills in programming, as well as gain a basic understanding of algorithms and data structures.
This module along with CS-155 gives an overview of some of the main principles underlying computers and computing from both a theoretical and an applied point of view. Following a brief history of computers and software an introduction to the representation of data and the basic components of a computer will be given. Students will be introduced to the principles of programming at assembly language level. The module is accessible and relevant to students of all disciplines who wish to learn about, or reinforce their understanding of, computers and computer science.
This module provides an introduction to the issues raised in developing and using concurrent and distributed systems. Consideration of practical and formal solutions to example problems from operating systems and networking.
This module will give an overview on advanced techniques in object oriented programming. It will investigate some standard libraries in depth. It will examine many design patterns and students will understand how to design their own generic libraries to allow for full static type checking. The module introduces the programming languages C and C++ to experienced programmers, including low-level aspects of programming that are usually abstracted in languages like Java and Objects as implemented by C++.