Skip navigation
The Australian National University

Software Construction for Software Engineers COMP2500

Learning outcomes

More information may be available for enrolled students on the course website on Wattle

More information may be available for enrolled students on the course website at http://cs.anu.edu.au/courses/info/comp2500

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)
  5. Reading knowledge of UML class diagrams as a design notation.
  6. Communications skills for software enginers
    as a member of a small team, research and present on an issue in contemporary software development or services

Responsible Officer:  JavaScript must be enabled to display this email address. / Page Contact:  JavaScript must be enabled to display this email address.