First year
First-year coordinator: Dr Damian Conway
Entry to computer science subjects at first-year level may be subject to quota restrictions. The first-year subjects serve both as a general introduction to computer science and as a prerequisite for further studies. Thus they may be taken either by students wishing to major in computer science or by students whose major interest is in some other branch of science.
The first-semester subject CSC1011 covers basic programming skills and gives an introduction to computer science. The alternative first-semester subject CSC1021 covers basic programming skills and elementary digital logic. CSC1021 is recommended for students who are particularly interested in computer hardware design but the majority of students are advised to take CSC1011.
The second-semester subject CSC1030 develops the understanding of algorithms, data structures, and computer systems. CSC1030 together with twelve points of approved mathematics (or equivalent) is a prerequisite for further studies in computer science.
Students intending to major in computer science are strongly advised to take the mathematics subject MAT1130 (Graphs, logic and numbers) or MAP2032 (Discrete mathematics) prior to proceeding to third-year computer science. Students who do not develop a solid background in mathematics may be at a disadvantage in later years of the computer science course.
Second year
Second-year coordinator: Dr Kevin Korb
Second year aims to develop a firm foundation in the fundamental concepts of computer science, namely operating systems and computer architecture, foundations of computing, algorithm development and software engineering. In addition, it introduces new topics to broaden the student's view of computation and its applications.
The prerequisites for entry to second-year computer science are passes in CSC1030 and twelve points of approved mathematics subjects.
The core subjects CSC2040 (Science of programming), CSC2050 (Software engineering I) and any two of CSC2010 (Computer architecture), CSC2020 (Operating systems) and CSC2030 (Foundations of computing) must be passed before a student can proceed to third-year computer science. It is strongly recommended that all three of CSC2010, CSC2020 and CSC2030 be taken.
Optional second-year subjects available include CSC2061 (Digital logic) and CSC2070 (Numerical computing).
Third year
Third-year coordinator: Dr Sid Ray
No third-year subject may be taken until the second-year core material has been completed successfully (CSC2040, CSC2050 and any two of CSC2010, CSC2020 and CSC2030).
Students wishing to major in computer science must take at least one project (CSC3010 or CSC3020) and at least five additional third-year computer science subjects. Students can choose to take a co-major in another discipline, or to spend the full third year in computer science.
The project is a corequisite for all third-year subjects but, with prior permission of the head of department, individual third-year subjects may be taken. A student is not permitted to count more than twenty points of computer science third-year subjects towards any degree unless points from the project are included.
Honours program in computer science
Honours coordinator: Dr Kim Marriott
* CSC4000