Red X iconGreen tick iconYellow tick icon


    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.

    About this paper

    Paper title Software Development
    Subject Computer Science
    EFTS 0.1500
    Points 18 points
    Teaching period Semester 1 (On campus)
    Domestic Tuition Fees ( NZD ) $1,173.30
    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

    Computer Science Adviser

    Teaching staff

    Professor David Eyers

    Associate Professor Steven Mills

    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


    Semester 1

    Teaching method
    This paper is taught On Campus
    Learning management system

    Computer Lab

    Stream Days Times Weeks
    Attend one stream from
    A1 Tuesday 09:00-10:50 9-13, 15-22
    A2 Tuesday 12:00-13:50 9-13, 15-22
    A3 Tuesday 14:00-15:50 9-13, 15-22
    AND one stream from
    B1 Friday 09:00-10:50 9-12, 15-22
    B2 Friday 12:00-13:50 9-12, 15-22
    B3 Friday 14:00-15:50 9-12, 15-22


    Stream Days Times Weeks
    A1 Monday 11:00-11:50 9-13, 15-22
    Thursday 11:00-11:50 9-13, 15-16, 18-22
    Back to top