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: Dr. Anwarul Patwary
Consultation: Friday 11am-12pm 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 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 8-9amMonday Social Sciences LT
Lecture 12-1pmWednesday Tattersal and Wilsmore LT
Tutorial 9-10amMonday Social Sciences LT (starting week 2)
Laboratory 10-12am Monday CSSE Lab 2.03
Laboratory 1-3pm Monday CSSE Lab 2.03
Laboratory 3-5pmMondayCSSE Lab 2.03
Laboratory 8-10amTuesdayCSSE Lab 2.03
Laboratory 10am-12pm Tuesday CSSE Lab 2.03
Laboratory 10am-12pm Wednesday CSSE Lab 2.03
Laboratory 2-4pm Wednesday CSSE Lab 2.03
Laboratory 4-6pm Wednesday CSSE Lab 2.03
Laboratory 8-10am Thursday CSSE Lab 2.03
Laboratory 4-6pm Thursday CSSE Lab 2.03
Laboratory 8-10am 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