ITC515 Professional Programming Practice (8)


This subject introduces students to aspects of professional programming practice related to the production of quality software. The subject covers techniques of debugging and testing, along with advanced programming topics such as the correct use of exceptions, assertions and refactoring. It also addresses modern approaches to programming such as 'test first programming' and 'programming by contract'. Finally, it introduces sound development practices such as version control and the use of in-line program documentation utilities.

+ Subject Availability Modes and Location

Session 2
InternalCSU Study Centre Melbourne
DistanceBathurst Campus
Continuing students should consult the SAL for current offering details: ITC515
Where differences exist between the Handbook and the SAL, the SAL should be taken as containing the correct subject offering details.

Subject information

Duration Grading System School:
One sessionHD/FLSchool of Computing and Mathematics

Enrolment restrictions

Available only to students enrolled in:
Graduate Certificate in Information Technology;
Graduate Certificate in Systems Development;
Graduate Diploma in Information Technology;
Master of Information Technology;
Master of Systems Development.

Not available to students who have completed ITC205 Professional Programming Practice.
Incompatible subject(s)

Learning Outcomes

Upon successful completion of this subject, students should:
  • be able to demonstrate autonomy, expert judgement, adaptability, and responsibility in applying specialised and technical knowledge and skills to professional programming practice;
  • be able to synthesise complex information regarding the purpose and limitations of software testing in order to generate, design and implement an appropriate suite of software tests to support the complete system development life cycle;
  • be able to critically analyse software programs and apply theories of debugging together with specialised and technical skills to generate solutions to complex debugging problems;
  • be able to critically evaluate and apply principles of advanced Object Oriented Design;
  • be able to work effectively in a team environment.


The subject will cover the following topics:
  • Introduction and Overview: the need for quality software, quality frameworks, code standards.
  • Teamwork: basic principles and mechanisms for effective teamwork.
  • Version Control: basic principles and mechanisms of version control. Use of version control in team settings.
  • Software Testing: testing throughout the software development lifecycle. User acceptance, unit, integration, and system testing.
  • Debugging: principles and techniques of scientific debugging.
  • Advanced Object Oriented Programming Techniques: refactoring and patterns, use of assertions and exceptions.


The information contained in the 2015 CSU Handbook was accurate at the date of publication: 24 December 2014. The University reserves the right to vary the information at any time without notice.