Skip to Content

Technical Software Development

Unit code: HIT3181

Credit points12.5 Credit Points
Duration
1 semester or equivalent
Contact hours48 hours
CampusHawthorn, Sarawak
Prerequisites

HIT2080 Introduction to Programming or HES1300 Robotics and Mechatronics Project 1

CorequisitesNil

Aims and objectives

This unit of study aims to develop the basic skills, both in understanding the underlying domains and in understanding the fundamentals of the programming process itself, required for programming scientific and engineering applications. This understanding includes what constitutes a “good” program and what an algorithm is. In particular, this unit is concerned with when to apply a specific solution approach, how to manage program complexity, and how to maintain healthy software solutions for scientific and engineering
problems.

Learning Outcomes
 
After successfully completing this unit, you should be able to:
  • Apply function decomposition, modularization, and object-oriented software development techniques in order to create maintainable programs.
  • Interpret the tradeoffs and issues involved in the requirements, design, and implementation with respect to a given problem. 
  • Assess and compare the impact of algorithms on program performance and resource consumption.
  • Design, implement, evaluate, and apply unit testing and documentation strategies to programs.
  • Design and implement a sustainable code base for scientific and engineering problems.
Swinburne Engineering Competencies for this Unit of Study
 
This Unit of Study will contribute to you attaining the following Swinburne Engineering Competencies: 
  • Basic Science: Proficiently applies concepts, theories and techniques of the relevant natural and physical sciences. 
  • Maths and IT as Tools: Proficiently uses relevant mathematics and computer and information science concepts as tools. 
  • Discipline Specific: Proficiently applies advanced technical knowledge of the specific discipline within that context. 
  • Professional Practice: Appreciates the principles of professional engineering practice in a sustainable context. 
  • Engineering Methods: Applies engineering methods in practical applications. 
  • Problem Solving: Systematically uses engineering methods in solving complex problems. 
  • Design: Systematically uses engineering methods in design. 
  • Project Management: Systematically uses engineering methods in conducting and managing projects. 
  • Communication: Demonstrates effective communication to professional and wider audiences. 
  • Information Management: Demonstrates seeking, using, assessing and managing information.

Teaching methods

Lecture (24 hrs), Tutorials (labs) (24 hrs)

Assessment

Assignments, Tests, Examination

Generic skills outcomes

Students will be provided with feedback on the attainment of the following generic skills:
· analytical skills
· problem solving skills
· tackle unfamiliar problems
· Work independently

Content

  • Program design for scientific and engineering problems 
  • Object-oriented programming
  • Modular program decomposition
  • Memory management
  • Unit testing and debugging strategies
  • Program documentation
  • Version control
  • Measuring algorithm performance and program resource consumption

References

Gary Bronson: C++ for Engineers and Scientists, 3rd Edition

Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo: C++ Primer. 4th Edition

Nicolai M. Josuttis: The C++ Standard Library - A Tutorial and Reference

Gary J. Bronson: Program Development and Design Using C++, 3rd Edition

Kenneth H. Rosen: Discrete Mathematics and Its Applications