The University of Western Australia
School of Computer Science and Software Engineering
 
 

School of Computer Science and Software Engineering

CITS2200 Data Structures and Algorithms Home

Algorithm Quotes

"The Feynman Problem Solving Algorithm: (1) write down the problem; (2) think very hard; (3) write down the answer." Richard Feynman

"Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better." Edsger Dijkstra

"Beware of bugs in the above code. I have only proved it correct, not tried it." Donald Knuth

"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.", Tony Hoare

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.", Donald Knuth

Overview

At the core of most computer applications is the storage and retrieval of information. The way that the stored data is structured has a strong impact on what can be retrieved, how quickly it can be retrieved and how much space it occupies. The use of generic structures, or abstract data types (ADTs), to encapsulate the data also allows software engineering principles of independent modification, extension and re-use.

The unit studies the specification, implementations and time and space performance of a range of commonly used ADTs and corresponding algorithms in an object-oriented setting. The aim is to provide students with the background needed both to implement their own ADTs where necessary, and to select and use appropriate ADTs from object-oriented libraries where suitable.

Outcomes: Students develop an understanding of the fundamentals of data structure selection, analysis, design, implementation and application, and in-depth technical knowledge of key abstract data types; the ability to undertake problem identification, formulation and solution using ADT components for storing and retrieving data; and the ability to select and use appropriate ADTs for object-oriented libraries where suitable. Also, students gain in-depth technical competence in algorithm design, implementation and analysis and learn techniques for problem identification, formulation and solution.

Unit coordinator: Prof. Amitava Datta
Tutor: Andrew Gozzard, Mark Robson, Anna Taleb-Bendiab
Consultation: Friday 2-3pm in CSSE Rm 1.07.
Recommended Texts:
  • Data Structures and Problem Solving Using Java, by Weiss.
  • Introduction to Algorithms, by Cormen, Lieserson, Rivest and Stein (any edition will do).

Timetable

Students should attend both lectures each week as well as the workshop and one laboratory session each week.
Type Time Day Location
Lecture 2-3pmTuesday Maths: Weatherburn LT
Lecture 8-9amThursday Physics:Ross LT
Workshop 9-10amThursday Physics:Ross LT (starting week 2)
Laboratory 12pm-2pm Monday CSSE Lab 2.05
Laboratory 4pm-6pm Monday CSSE Lab 2.03
Laboratory 3pm-5pm Tuesday CSSE Lab 2.03
Laboratory 4pm-6pm Wednesday CSSE Lab 2.03
Laboratory 2pm-4pm Thursday CSSE Lab 2.03
Laboratory 4pm-6pm Thursday CSSE Lab 2.03

Asse ssment

The assessment for CITS2200 consists of a midsemester test, 8 assessed laboratories, a project and a 2hr examination.
Assessment % of final mark Assessment Dates
Laboratories 8 x 2.5% various
Mid-semester test 10% 2pm, Tuesday, April 10
Project 20% Available: April 25
Due: 11:59pm Friday, June 1
Final exam 50% End of Semester Examination Period

This Page