Algorithms and Data Structures

Subject COMP20003 (2014)

Note: This is an archived Handbook entry from 2014.

Credit Points: 12.50
Level: 2 (Undergraduate)
Dates & Locations:

This subject is not offered in 2014.

Time Commitment: Contact Hours: 36 hours, comprising of two 1-hour lectures and one 1-hour workshop per week
Total Time Commitment:

170 hours

Prerequisites:

25 points of university-level mathematics AND one of the following:

Subject
Study Period Commencement:
Credit Points:
Semester 1, Semester 2
12.50
Not offered in 2014
12.50
Semester 1, Semester 2
12.50
Corequisites:

None

Recommended Background Knowledge:

None

Non Allowed Subjects:

Students cannot enrol in and gain credit for this subject and:

Subject
Core Participation Requirements:

For the purposes of considering request for Reasonable Adjustments under the Disability Standards for Education (Cwth 2005), and Student Support and Engagement Policy, academic requirements for this subject are articulated in the Subject Overview, Learning Outcomes, Assessment and Generic Skills sections of this entry.

It is University policy to take all reasonable steps to minimise the impact of disability upon academic study, and reasonable adjustments will be made to enhance a student's participation in the University's programs. Students who feel their disability may impact on meeting the requirements of this subject are encouraged to discuss this matter with a Faculty Student Adviser and Student Equity and Disability Support: http://services.unimelb.edu.au/disability

Contact

email: stern@unimelb.edu.au

Subject Overview:

AIMS

Programmers can choose between several representations of data. These will have different strengths and weaknesses, and each will require its own set of algorithms. Students will be introduced to the most frequently used data structures and their associated algorithms. The emphasis will be on justification of algorithm correctness, on analysis of algorithm performance, and on choosing the right data structure for the problem at hand. Leading up to an exam with a programming component, quality implementation of algorithms and data structures is emphasized.

This subject, or its cognate COMP20007 Design of Algorithms, is a prerequisite for many 300-level subjects in the Computing and Software Systems major.

INDICATIVE CONTENT

Topics include: justification of algorithm correctness; asymptotic and empirical analysis of algorithm performance; algorithms for sorting and searching, including fundamental data structures such as trees and hash tables; and graph algorithms.

Learning Outcomes:

INTENDED LEARNING OUTCOMES (ILO)

On completion of this subject the student is expected to:

  1. Present arguments for the correctness or incorrectness of a given algorithm
  2. Reason about and evaluate the efficiency behaviour of a given algorithm
  3. Choose appropriate data structures and algorithms for a given problem
  4. Implement the chosen data structures and algorithms

Assessment:
  • Programming project work during semester, due around weeks 5 and 11, expected to take about 36 hours (30%)
  • One 30-minute mid-semester test (10%)
  • A 3-hour end-of-semester written examination that includes a practical programming component (60%)

Hurdle requirement: To pass the subject, students must obtain at least: 50% overall; 15/30 in project work; 35/70 in the mid-semester test and end-of-semester examination combined

Intended Learning Outcomes (ILOs) 2, 3 and 4 are addressed in all assessment components. ILO 1 is primarily addressed in the second programming project and the final examination.

Prescribed Texts:

TBA

Breadth Options:

This subject potentially can be taken as a breadth subject component for the following courses:

You should visit learn more about breadth subjects and read the breadth requirements for your degree, and should discuss your choice with your student adviser, before deciding on your subjects.

Fees Information: Subject EFTSL, Level, Discipline & Census Date
Generic Skills:

On completion of this subject, students should have developed the following skills:

  • Application of knowledge of basic science and engineering fundamentals
  • Effective communication about computational efficiency
  • Capacity to reason and solve problems
  • Ability to undertake problem identification, formulation and solution
  • Programming competency
  • Capacity for creativity and innovation
  • Profound respect for truth and intellectual integrity, and for the ethics of scholarship

Notes:

LEARNING AND TEACHING METHODS

This subject involves two 1-hour lectures and one 2-hour workshop each week. Although lectures are largely delivered directly based on the slides, often there are in-class discussions and development of computer code. The workshops are a blend of tutorial theory questions and implementation of algorithms and data structures in C.

INDICATIVE KEY LEARNING RESOURCES

Students are provided with lecture slides, and sample and scaffolding computer code in the C language. The slides are integrated with the well-established textbook.

CAREERS / INDUSTRY LINKS

With Big Data at the forefront of modern computing solutions, industry is ever-more focused on efficient computational analysis methods. Software engineers, developers and data analysts will find not only the analysis techniques, but also the fundamental algorithmic design concepts, highly applicable to the handling of significant datasets. Building on an initial connection in the 2012 offering, there is scope for industry liaison with this subject.

Related Majors/Minors/Specialisations: B-ENG Software Engineering stream
Computer Science
Science credit subjects* for pre-2008 BSc, BASc and combined degree science courses
Science-credited subjects - new generation B-SCI and B-ENG.
Selective subjects for B-BMED

Download PDF version.