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.
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.
COMP203 Programming with Data Structures or
COMP241 Software Engineering Development
Official Timetable Information
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).
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).
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: algorithmdesign.net)
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.
Internal assessment/final examination ratio 2:1
An overall mark of 50% is required for a pass, with a minimum of 35% in the final exam.
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.
Follow this link for Academic Integrity information and this link for detailed explanation of How to prevent plagiarism in Computer Science assessment items.
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.
Your attention is drawn to the following regulations and policies, which are published in the University Calendar: