• Offered by Research School of Computer Science
  • ANU College ANU College of Engineering and Computer Science
  • Classification Transitional
  • Course subject Computer Science
  • Academic career Postgraduate
  • Course convener
    • Prof Stephen Blackburn
  • Mode of delivery In Person
  • Co-taught Course COMP1110
  • Offered in First Semester 2018
    Second Semester 2018
    See Future Offerings

This course introduces students to the fundamentals of software development with a substantial group software project at its center.    Major foci are data structures, object oriented programming, and an introduction to software engineering.   Students will extend their understanding of software productivity tools, using revision control for group work, and be introduced to test-driven development as an integral part of software construction.

Students will be introduced to an industrial strength object oriented programming language, extending their understanding of the imperative programming paradigm with a solid grounding in object oriented programming.  Inheritance, polymorphism, and parametric types are taught, as well as concepts such as boxing and auto boxing.   The important role of standard libraries and their collection types will be emphasized.  GUI programming will be introduced.

The course includes a deeper treatment of data structures, using hash tables, trees and lists, which are used to provide concrete implementations of abstract library collection types.   The theory of data structures and their time and space complexity will thus be tied to the practice of using standard collections such as those offered by object oriented languages.

The foundations of software engineering including: major development paradigms (such as big plan up front, agile, and formal methods) and risk are introduced.

Learning Outcomes

Upon completion of this course, the student will be able to:

  1. Apply fundamental programming concepts, using an object oriented programming language, to solve substantial problems
  2. Understand basic types and the benefits of static typing for object oriented programs
  3. Distinguish language definition from implementation, syntax and parsing from semantics and evaluation; understand how program state maps to memory (globals, local, heap) and the implications of heap reachability for memory management
  4. Develop, understand, test, and evolve substantial programs using a modern IDE, and associated configuration tools; use programming approaches that avoid common coding errors; practice fundamental defensive programming; perform individual and team program reviews; use established design principles to organize a software system
  5. Use, implement, and evaluate fundamental data structures and associated algorithms;  create, implement, debug, and evaluate algorithms for solving substantial problems, including recursive, using divide-and-conquer and via decomposition; select and implement an abstract data type for a given problem
  6. Perform analysis of simple algorithms; select and use appropriate algorithmic approaches to solve problems (brute-force, divide-and-conquer, recursive backtracking, heuristic)
  7. Apply the even-driven programming paradigm to construct GUIs
  8. Deliver and evaluate basic technical documents, presentations, and group interactions, using appropriate tools

Indicative Assessment

Individual Assignment (5%), Group Assignment (25%), 2 Lab Tests (20%), Final Exam (50%)

The ANU uses Turnitin to enhance student citation and referencing techniques, and to assess assignment submissions as a component of the University's approach to managing Academic Integrity. While the use of Turnitin is not mandatory, the ANU highly recommends Turnitin is used by both teaching staff and students. For additional information regarding Turnitin please visit the ANU Online website.

Workload

31 hrs lectures + 8 x 2hrs of labs/tutorial

Requisite and Incompatibility

You are not able to enrol in this course if you have previously completed COMP6700 or COMP1110.

Prescribed Texts

Cay Horstmann,, Big Java, Wiley, 4th Edition, 2010

Specialisations

Fees

Tuition fees are for the academic year indicated at the top of the page.  

If you are a domestic graduate coursework or international student you will be required to pay tuition fees. Tuition fees are indexed annually. Further information for domestic and international students about tuition and other fees can be found at Fees.

Student Contribution Band:
Band 2
Unit value:
6 units

If you are an undergraduate student and have been offered a Commonwealth supported place, your fees are set by the Australian Government for each course. At ANU 1 EFTSL is 48 units (normally 8 x 6-unit courses). You can find your student contribution amount for each course at Fees.  Where there is a unit range displayed for this course, not all unit options below may be available.

Units EFTSL
6.00 0.12500
Domestic fee paying students
Year Fee
2018 $4080
International fee paying students
Year Fee
2018 $5400
Note: Please note that fee information is for current year only.

Offerings and Dates

The list of offerings for future years is indicative only

First Semester

Class number Class start date Last day to enrol Census date Class end date Mode Of Delivery
4859 19 Feb 2018 27 Feb 2018 31 Mar 2018 25 May 2018 In Person

Second Semester

Class number Class start date Last day to enrol Census date Class end date Mode Of Delivery
8079 23 Jul 2018 30 Jul 2018 31 Aug 2018 26 Oct 2018 In Person

Responsible Officer: Registrar, Student Administration / Page Contact: Website Administrator / Frequently Asked Questions