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 |
---|---|
Paper code | COSC202 |
Subject | Computer Science |
EFTS | 0.1500 |
Points | 18 points |
Teaching period | Semester 1 (On campus) |
Domestic Tuition Fees (NZD) | $1,141.35 |
International Tuition Fees | Tuition Fees for international students are elsewhere on this website. |
- Prerequisite
- COMP 160 or COMP 162
- Restriction
- COSC 241
- Recommended Preparation
- COMP 101
- Schedule C
- Arts and Music, Commerce, Science
- Contact
- 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
Assessment
- Internal Assessment (group software project): 60%
- Final examination: 40%
- Teaching Arrangements
Two 1-hour lectures and two 2-hour laboratory sessions per week.
- Textbooks
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