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

    Enrolments for this paper require departmental permission. View more information about departmental permission.


    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