ITC205 Professional Programming Practice (8)
CSU Discipline Area: Computing (COMPU)
Duration: One session
Abstract:
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 Locations
| Session 1 | |
|---|---|
| Internal | Bathurst |
Continuing students should consult the SAL for current offering details: ITC205
Where differences exist between the Handbook and the SAL, the SAL should be taken as containing the correct subject offering details.
Prerequisite(s):
Enrolment restrictions:
Only for students enrolled in the following courses:
Bachelor of Information Technology
Bachelor of Information Technology (Business Services)
Bachelor of Computer Science
Bachelor of Computer Science (Games Technology)
Not available to students who have completed ITC515 Professional Programming Practice
Objectives:
Upon successful completion of this subject, students should:
- be able to explain the purpose and limitations of software testing
- be able to analyse and correct logical errors in a program
- be able to plan and implement a suite of software tests
- be able to assemble and utilise a unit testing framework
- be able to conduct and evaluate integration, system, and deployment testing
- be able to explain the purpose of, and demonstrate the correct use of assertions
- be able to explain the purpose of, and demonstrate the correct use of exceptions
- be able to refactor a computer program
- be able to plan for and organise software version control
- be able to explain the purpose of in-line documentation tools and demonstrate their correct use
Syllabus:
The subject will cover the following topics:
- Introduction - the need for quality software, quality frameworks
- Approaches to Programming - defensive programming, test first development, programming by contract, continuous delivery
- Basic Debugging - trace statements, error messages, stack traces
- Intermediate Debugging - walkthroughs, inspections, breakpoints
- Basic Testing - requirements and acceptance criteria, limitations, selection of test data, types of testing
- Intermediate Testing 1 - unit test frameworks, unit testing
- Intermediate Testing 2 - integration, system, deployment, and user acceptance testing
- Basic Version Control - the need for version control, version control systems
- Intermediate Version Control - update-commit, branching, merging, snapshots
- Coding Techniques 1 - assertions and exceptions, memory management
- Coding Techniques 2 - refactoring and patterns
- Coding Techniques 3 - conventions and coding standards, language idioms, in-line documentation
The information contained in the 2013 CSU Handbook was accurate at the date of publication: 24 April 2013. The University reserves the right to vary the information at any time without notice.
