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


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
Consultation: Friday 11am-12pm in CSSE Rm 1.07; Friday 12-1pm over zoom (link will be announced on LMS page).
Recommended Texts:
  • Data Structures and Problem Solving Using Java, by Weiss.
  • Introduction to Algorithms, by Cormen, Lieserson, Rivest and Stein (any edition will do).


Students should attend both lectures each week as well as the tutorial and one laboratory session each week. The tutorial and laboratories will start from the second week of the semester.

Important information for online enrolled students:

  • The face-to-face lectures and tutorials will be recorded and uploaded to LMS within half an hour of each session. Hence, online enrolled students will be able to view the lectures within half an hour of the completion of the lectures.
  • There are two labs dedicated for online enrolled students (see the schedule below). These two labs will be conducted over discord and the link will be announced on the LMS page
Type Time Day Location
Lecture 4-5pmTuesday Ross LT
Lecture 1-2pmThursday Ross LT
Tutorial 2-3pmThursday Ross LT (starting week 2)
Laboratory 4-6pm Tuesday Online, over Discord
Laboratory 8-10am Thursday Online, over Discord
Laboratory 10am-12pmTuesdayCSSE Lab 2.03
Laboratory 12-2pmTuesdayCSSE Lab 2.03
Laboratory 10-12 Wednesday CSSE Lab 2.03
Laboratory 12-2 Wednesday CSSE Lab 2.03
Laboratory 2-4 Wednesday CSSE Lab 2.03
Laboratory 11am-1pm Thursday CSSE Lab 2.03
Laboratory 10am-12pm Friday CSSE Lab 2.03
Laboratory 12-2pm Friday CSSE Lab 2.03

Asse ssment

The assessment for CITS2200 consists of 8 assessed laboratories, a project and a 2hr examination.
Assessment % of final mark Assessment Dates
Laboratories 8 x 2.5% various
Project 20% Available: April 20
Due: 11:59pm Friday, May 21
Final exam 60% End of Semester Examination Period

This Page