This course introduces the student to techniques for designing and analysing efficient algorithms. The emphasis is on the principles at work in algorithms that solve some common problems in a variety of topics, and on techniques for analysing algorithm performance. Students who take this course should already be familiar with writing Mathematical proofs, and be able to argue rigorously about abstract objects such as numbers, functions and graphs.
Students will be required to pass both the coursework and the final examination to pass the course. Attendance at tutorials and lab sessions is mandatory.
COMP1126 - Introduction to Computing I,
COMP1127 - Introduction to Computing I,
COMP1161- Object-Oriented Programming AND COMP1210 - Mathematics for Computing.