Level 1 Papers

Level 2 Papers

Level 3 Papers

Level 4 Papers

Level 5 Papers

Summer School Papers

Industry Papers

Computer Graphic Design 3

Computer Graphic Design 4

Intern Project

Advanced Studies in Visual Communication

Degree Project

Portfolio Preparation

Operating Systems

Computer Systems Architecture

Computer Networks

Topics in Programming Languages

Software Engineering Project

Information Systems Development

Artificial Intelligence Techniques and Applications

Design and Analysis of Algorithms

Practical Data Mining

Interactive Multimedia Systems

Human-Computer Interaction

Database Systems

Web Applications Development

Graphics and Computer Games

Reasoning about Programs

Computer Science Placement 1

Computer Science Placement 2

Computer Science Placement 3

Directed Study

2015 Papers
Level 3 Papers >> All Papers
COMP317A Design and Analysis of Algorithms

20 Points

This paper is concerned with fundamental data structures and their algorithms. It involves a study of classical and recently discovered methods, aimed at giving students an awareness of techniques for solving a diverse range of problems using a computer. Analysis of important performance characteristics, efficiency and scalability and discussion of issues pertaining to applicability, adaptation and design will also be addressed. This is an essential paper for students interested in the art and science of computer programming.

Learning Outcomes
After passing this paper, students will be able to recognise the general domain of a new problem, and which algorithm (or class of algorithms) to apply in creating a solution. They will know how to decompose an algorithm into its key parts, analyse how each part works and how it combines with the others to create an effective and efficient solution. Equally important, they will be able to recognise the limitations of an algorithm, or situations where particular algorithms fail to work well. Students will understand how to apply their knowledge of existing algorithms to the design and implementation of new ones, thus giving them the potential to make significant contributions to the discipline of computer science.

Pre Requisite Papers
COMP203 Programming with Data Structures or
COMP241 Software Engineering Development

Lecturers and Tutors

Official Timetable Information

Compulsory Components
Lectures will focus on problem classes and their properties. Specific techniques for solving these problems are presented, predominantly in the form of data structures and their associated algorithms. Students will be called upon to implement computational solutions to selected problems with the aim of giving them practical experience with the details of various algorithms. Additional issues relating to the analysis of algorithms, including efficiency, scalability, adaptation and correctness are also covered, and may be included as part of the practical assessment.

Students are encouraged to sign up for one of the three 1-hour small group tutorial sessions scheduled for each week of the semester. These are informal, unstructured study sessions run by an experienced tutor. They are intended to give students the opportunity to ask questions, and to obtain additional help in understanding lecture material or overcoming problems relating to the assignments.

It is hoped that students will actively participate in the course by freely asking questions and proffering ideas.

Students should expect to spend approximately 16 hours per week on this class (in conformance with school guidelines for Part III courses in computer science).

Required Reading
There is no required textbook for this course. Links to reference material will be provided on the course website, and students are expected to supplement this material on their own (either using the library or other online material).

Recommended Reading
Harel, David, Algorithmics: the spirit of computing.
Cormen, Thomas H., Leiserson, Charles Eric, Rivest, Ronald L., Introduction to algorithms. Goodrich, M.T. and Tamassia, R., Algorithm Design.
(see also:

Computing Resources
The machines in computing laboratory R6 are available for students to use in this course. After hours access to G Block requires CARDAX, which can be obtained through the Department of Computer Science main office in G1.21.

Programming assignments must be written in Java. Suitable alternatives for a programming language may be used only with prior approval by the course lecturer. Students may choose to complete their assignments on their machines at home, but are cautioned that their source code solutions must compile and run under the Java and Linux environment of R6 without alteration.

Means of Assessment

Assessment Ratio
Internal assessment/final examination ratio 2:1

Assessment Components
An overall mark of 50% is required for a pass, with a minimum of 35% in the final exam.

Grading Schedule

Attendance Policy
Class attendance is expected. The course text is not comprehensive, as additional material will be covered in class. You are responsible for all material covered in class.

Academic Integrity
Follow this link for Academic Integrity information.

Performance Impairment
Follow this link for information on Performance Impairment.

Student Concerns and Complaints
Follow this link for Student Concerns and Complaints information.

Application for Extension
Follow this link for information on applying for an Extension.

Review of Grade
Follow this link for information on applying for a Review of Grade.

University Regulations
Your attention is drawn to the following regulations and policies, which are published in the University Calendar:

  2007 FCMS. The University of Waikato - Te Whare Wananga o Waikato