Skip navigation

COMP2100 Software Construction

Later Year Course

Offered By Department of Computer Science
Academic Career Undergraduate
Course Subject Computer Science
Offered in First Semester, 2009 and First Semester, 2010
Unit Value 6 units
Course Description

This course is about the implementation and test phases of the software construction process. It is based around creating individual practical assignments on the small scale, and modifying a medium scale project in two major assignments over the whole semester. In this project, students work on a substantial application, relevant to their experience as computer users. The project is closely specified and designed around a strong architectural structure as an exemplar, and may involve a graphical user interface. During the semester students learn to improve their own software development practices by following the Personal Software Process, learning time-management, planning, and quality control.

The following topics are covered: working with larger software systems; code review and inspections; test planning and unit testing (derived from specification and design documents); object-oriented (Java), and scripting (Bash) languages; recursive data structures; graphical user interfaces; the Personal Software Process; build tools (Make and Ant) and version control (Subversion); use of external code libraries.

Learning Outcomes
On completing this course students are expected to be able to:

1. construct and modify
to construct and modify small to medium scale computer programs
  1. apply all aspects of software construction for a representative variety of small to medium scale object-oriented programs up to around 300 lines of code containing up to 7 classes;
  2. to make modifications (including source code design, implementation, and testing) within a moderate-sized Java program system (103 (1000) to 104 (10,000) lines of code), given a documented specification, design and implementation of the system
  3. to have elementary or better competence with standard software development tools and methods: text editor, compiler, integrated software development environment, command line scripting, automated build tools, version control, unit test design, code review
  4. to use and analyse a personal software process in constructing small computer programs
2. abstraction
to compare several forms of abstraction in object-oriented software design and construction:
inheritance, generic types, polymorphism, procedural abstraction, abstract recursive data structures (including abstract syntax trees);
and to apply them appropriately in constructing programs.
3. knowledge resources
to be familiar with common programming knowledge resources to find, understand, and apply online manuals and tutorials for software tools, programming language components, and software libraries
4. principles and practice of software construction tools
to describe the underlying principles of three major aspects of software construction and to apply the appropriate tools:
  1. version control (using the Subversion tool)
  2. unit testing (using the JUnit tool)
  3. automatic build process (using the Make or Ant tool)
Indicative Assessment

Assignments (30%); Mid Semester Exam (20%); Final Exam (50% practical 25%, theory 25%)

Workload

Thirty one-hour lectures and five two-hour tutorial/laboratory sessions 

Areas of Interest Information Technology
Assumed Knowledge and
Required Skills
Introductory programming, preferably in an object-oriented language
Requisite Statement

COMP1110 or COMP1510 and MATH1005 or MATH1014 or MATH1116

Incompatibility

COMP2500

Recommended Courses A complete reference for Java programming and language, such as Schildt, Herbert: Java: the complete reference, 7th edition, Osborne-Mcgraw Hill, 2007.
Prescribed Texts There is no required textbook for COMP2100, but a Java reference book is strongly recommended.
Science Group B

The information published on the Study at ANU 2009 website applies to the 2009 academic year only. All information provided on this website replaces the information contained in the Study at ANU 2008 website.

Updated:   13 Nov 2015 / Responsible Officer:   The Registrar / Page Contact:   Student Business Solutions