Due to COVID-19 restrictions, a selection of on-campus papers will be made available via distance and online learning for eligible students.
Find out which papers are available and how to apply on our COVID-19 website
Tools that optimise the development of software; the software that builds software, and how it works; techniques for managing large-scale software projects. Programming languages and their roles in software development.
Software development is a team activity and needs good support from the tools that you use. In this paper you will learn how to work in a team with a range of these tools in order to develop a larger piece of software.
|Paper title||Software Development|
|Teaching period||Semester 1 (On campus)|
|Domestic Tuition Fees (NZD)||$1,110.75|
|International Tuition Fees||Tuition Fees for international students are elsewhere on this website.|
- COMP 160 or COMP 162
- COSC 241
- Recommended Preparation
- COMP 101
- Schedule C
- Arts and Music, Commerce, Science
- Teaching staff
- Paper Structure
Topics covered will include:
- Teamwork, ethics, and software development
- Shell scripting and version control
- Programming languages and software libraries
- Build tools, automation, and continuous integration
- Testing and debugging
- Software licensing and open source
- Internal Assessment (group software project): 60%
- Final examination: 40%
- Teaching Arrangements
Two 1-hour lectures and two 2-hour laboratory sessions per week.
No set textbooks are required for this paper.
- Graduate Attributes Emphasised
- Lifelong learning, Communication, Critical thinking, Cultural understanding, Ethics,
Information literacy, Self-motivation, Teamwork.
View more information about Otago's graduate attributes.
- Learning Outcomes
By completion of this paper students are expected to:
- Be able to compare and contrast the strengths and weaknesses of some key, popular programming languages
- Understand how software is transformed from human-readable source code into machine-readable, executable code
- Demonstrate mastery of tools that optimise the reliability and efficiency of software development
- Gain confidence in approaching unfamiliar programming language environments
- Be able to manage a software development team producing a project