Our courses can be broadly divided into four broad categories. Firstly, the mathematical basis for computer science is dealt with in our courses on discrete mathematics, logic and computational theory. Secondly, we have courses that deal with the theory of programming, the core of Computer Science. Thirdly, we have a series of courses which concentrate on applications of computers and more practical programming and the management of program development. Finally, we have an elective set of courses on control systems, artificial intelligence, parallel and distributed systems that deal with theoretical and application aspects of computers. Apart from these four categories, other math courses in our core curriculum provide the necessary mathematical infrastructure.
Most of our courses have high project content. Students should expect to spend considerable time each term completing projects and assignments which will give them valuable understanding, experience and confidence. In these projects we use many different programming languages, databases and operating systems, avoiding tying our students to any particular language, operating system, database or the products of a single manufacturer. Technology changes very fast, so our courses are designed to give students the confidence and theoretical background to move to new technologies as rapidly as they are introduced.