Foundations of Algorithms

Subject COMP10002 (2016)

Note: This is an archived Handbook entry from 2016.

Credit Points: 12.5
Level: 1 (Undergraduate)
Dates & Locations:

This subject has the following teaching availabilities in 2016:

Semester 1, Parkville - Taught on campus.
Pre-teaching Period Start not applicable
Teaching Period 29-Feb-2016 to 29-May-2016
Assessment Period End 24-Jun-2016
Last date to Self-Enrol 11-Mar-2016
Census Date 31-Mar-2016
Last date to Withdraw without fail 06-May-2016

Semester 2, Parkville - Taught on campus.
Pre-teaching Period Start not applicable
Teaching Period 25-Jul-2016 to 23-Oct-2016
Assessment Period End 18-Nov-2016
Last date to Self-Enrol 05-Aug-2016
Census Date 31-Aug-2016
Last date to Withdraw without fail 23-Sep-2016


Timetable can be viewed here. For information about these dates, click here.
Time Commitment: Contact Hours: 60 hours, comprising of three 1-hour lectures and one 2-hour workshop per week
Total Time Commitment:

170 hours

Prerequisites:
Subject
Study Period Commencement:
Credit Points:
Semester 1, Semester 2
12.50

OR

Achieving at least 75% in a programming competency test.

Corequisites:

None

Recommended Background Knowledge:

None

Non Allowed Subjects:

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

Subject

433-172 Algorithmic Problem Solving

433-152 Algorithmic Problem Solving

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

Coordinator

Dr Jianzhong Qi, Prof Alistair Moffat

Contact

Semester 1: Dr Jianzhong Qi
email: jianzhong.qi@unimelb.edu.au


Semester 2: Professor Alistair Moffat
email: ammoffat@unimelb.edu.au

Subject Overview:

AIMS

In many projects, it is important for programmers to have fine control over low-level details of program execution, and to be able to assess the cost of a design decision on likely overall program performance. This subject introduces students to a system programming language that gives programmers this kind of control, explores a range of standard data structures and algorithmic techniques, and shows how to apply them to frequently encountered problems.

INDICATIVE CONTENT

  • Introduction to computer organization
  • Machine level representation of data
  • Programming in a system programming language
  • Pointers and dynamic memory allocation
  • Program semantics and arguments about correctness
  • Induction and recursion
  • Basic searching algorithms (linear and binary)
  • Basic sorting algorithms (such as selection sort, insertion sort, quicksort)
  • Basic data structures (binary search trees and hash tables)
  • Asymptotic complexity
  • Standard software development tools such as debuggers.

Learning Outcomes:

INTENDED LEARNING OUTCOMES (ILO)


On completion of this subject the student is expected to:

  1. Read, write and debug typical small-scale programs in a system programming language such as C
  2. Discuss, analyse, implement, and apply standard data structures such as linked lists, binary search trees, and hash tables
  3. Discuss, analyse, and apply a range of sorting and searching algorithms
  4. Present logical arguments for the correctness of a given algorithm
  5. Choose between different algorithms for simple problems by analysing their complexity
  6. Use a command line interface and standard development tools for programming
Assessment:
  • Project work during semester, requiring approximately 30 - 35 hours of work, (30%), due in approximately Week 8 and Week 11
  • One mid-semester test (10%), held in Week 5 or Week 6
  • One two-hour end-of-semester examination (60%).

Hurdle requirement: To pass the subject, students must obtain at least:

  • 50% overall
  • 12/30 in project work
  • 28/70 in the mid-semester test and end-of-semester written examination combined.

Intended Learning Outcomes (ILO) 1 is addressed in all components of assessment. ILO 2, ILO 3, ILO 4 and ILO 5 are assessed in the mid-semester test and in the examination. ILO 6 is addressed in the programming assignments.

Prescribed Texts:

None

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:

  • Ability to undertake problem identification, formulation and solution
  • Capacity for independent critical thought, rational inquiry and self-directed learning
  • Profound respect for truth and intellectual integrity, and for the ethics of scholarship
  • An ability to apply knowledge of basic science and engineering fundamentals.

Notes:

This subject is available for science credit to students enrolled in the BSc. Students undertaking this subject will require regular access to the internet.

LEARNING AND TEACHING METHODS

The subject will be delivered through a combination of lectures, programming workshops, and programming exercises and assessed programming assignments. Students will also be expected to develop and submit programming assignments for assessment.

INDICATIVE KEY LEARNING RESOURCES

Students will have access to lecture notes and lecture slides, and will be expected to own a copy of the textbook nominated by the coordinator. Other guidance will be provided via the LMS.

CAREERS / INDUSTRY LINKS

Programming competencies are a critical part of a range of career pathways, including in IT, engineering, and mathematics. In addition, an understanding of the fundamental nature of computation is a key enabler across all science discipline areas, including genetics and physics.

Related Majors/Minors/Specialisations: Science-credited subjects - new generation B-SCI and B-ENG.
Selective subjects for B-BMED

Download PDF version.