Offered
Gippsland Second semester 2008 (Off-campus)
Singapore Second semester 2008 (Off-campus)
Synopsis
This unit introduces more advanced object-oriented programming topics and techniques than its predecessor, and gives students a deeper understanding of programming and data structures and more practical skills in designing, building and testing computer programs. Topics include: inheritance, abstractions and polymorphism; introduction to data structures in the Java API; recursion; storing and retrieving data using files; exception handling; graphical user interfaces; and software development support tools (JUnit, subversion, ant).
Objectives
At the completion of this unit, students will have an understanding of:
-  Object-oriented concepts such as inheritance, polymorphism, and abstract classes.
-  The implementation in Java of object-oriented concepts such as multiple inheritance.
-  How to test a program consisting of many interacting classes.
-  The collection classes in the Java API.
-  Design principles for building an object-oriented program.
-  Problem-solving techniques for debugging an object-oriented program.
-  The concept of recursion in a computer program.
-  Dynamic data structures.
At the completion of this unit, students will have attitudes that will allow them to:
-  Write programs that conform to programming standards
-  Use good design principles when constructing systems
-  Take a patient and thorough approach to testing
-  Acknowledge any assistance they have received in writing a program
-  Search for supplementary Java class-related information in appropriate places when necessary.
At the completion of this unit, students will be able to:
-  Design an object-oriented program consisting of many interacting classes with association, generalisation and aggregation relationships.
-  Construct a test harness for testing a multiple class object-oriented program.
-  Write code to implement a multiple class object-oriented design in Java including association, generalisation and aggregation relationships.
-  Debug and modify an existing program consisting of many interacting classes.
-  Use the Java API classes as part of their programs.
-  Use the Java collection classes to store and retrieve data appropriately.
-  Use recursion to solve new problems
-  Read data from keyboard and files, and write data to screen and files.
-  Use exception-handling techniques in programs.
-  Use UML to design an object-oriented program.
At the completion of this unit, students will be able to:
-  Document a program correctly
-  Produce appropriate documentation for designing and testing a program
-  Explain how parts of a program work
Assessment
 Assignments, possibly tutorial/laboratory based practical exercises and/or unit tests: 40%
Examination: 60%
Prerequisites
GCO9805 or FIT9008 or equivalent
Prohibitions
GCO9808 (Translation Unit: GCO9808)