CITS2200 Data Structures and Algorithms

Credit
6 points
Offering
(see Timetable)
AvailabilityLocationMode
Semester 1UWA (Perth)Face to face
Details for undergraduate courses
  • Level 2 core unit in the Computer Science major sequence
  • Level 2 core unit in the Software Engineering specialisation in the Engineering Science major sequence
  • Category B broadening unit for students
  • Level 2 elective
Content
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 facilitates software engineering principles of independent modification, extension and re-use. This unit studies the specification, implementation and time-and-space performance of a range of commonly used ADTs and corresponding algorithms in an object-oriented setting.
Outcomes
Students are able to (1) work in teams; (2) write concise technical reports; (3) demonstrate critical thinking and information literacy; (4) understand the evolution of the discipline including its history, philosophy and theorising; (5) understand the discourse conventions of the discipline; (6) undertake problem identification via abstraction; (7) understand common and important data structures and algorithms in the computing discipline; (8) implement a range of data structures and algorithms in a high-level programming language; (9) select and apply existing data structures and algorithms from pre-built software libraries; (10) design data structures and algorithms; and (11) analyse the performance of different data structures and algorithms and compare them systematically and rigorously.
Assessment
Typically this unit is assessed in the following ways: (1) mid-semester test; (2) projects; and (3) a final examination. Further information is available in the unit outline.

Supplementary assessment is not available in this unit except in the case of a bachelor's pass degree student who has obtained a mark of 45 to 49 overall and is currently enrolled in this unit, and it is the only remaining unit that the student must pass in order to complete their course.
Unit Coordinator(s)
Professor Amitava Datta
Unit rules
Prerequisites:
CITS1001 Object-oriented Programming and Software Engineering
and
(Mathematics Methods ATAR
or
WACE Mathematics Specialist 3A/3B2
or
MATH1721 Mathematics Foundations: Methods
or
equivalent
or
higher)
Advisable prior study:
an additional programming unit
Contact hours
61 (lectures: 26 hours; tutorials: 11 hours; labs: 24 hours)
Texts

Weiss, M. A. Data Structures and Problem Solving Using Java, 4th edn: Addison-Wesley 2010

Cormen, T. H. et al. Introduction to Algorithms, 3rd edn: MIT Press 2009

  • The availability of units in Semester 1, 2, etc. was correct at the time of publication but may be subject to change.
  • All students are responsible for identifying when they need assistance to improve their academic learning, research, English language and numeracy skills; seeking out the services and resources available to help them; and applying what they learn. Students are encouraged to register for free online support through GETSmart; to help themselves to the extensive range of resources on UWA's STUDYSmarter website; and to participate in WRITESmart and (ma+hs)Smart drop-ins and workshops.
  • Books and other material wherever listed may be subject to change. Book lists relating to 'Preliminary reading', 'Recommended reading' and 'Textbooks' are, in most cases, available at the University Co-operative Bookshop (from early January) and appropriate administrative offices for students to consult. Where texts are listed in the unit description above, an asterisk (*) indicates that the book is available in paperback.