Software Engineering (2020)

Software engineering is the scientific, disciplined and quantifiable approach to developing, operating and maintaining complex software systems. These software systems include operating systems, networks, real-time and embedded systems, distributed and parallel systems, as well as engineering, scientific and business application software. The Software Engineering programme at Waikato emphasises the software engineering process, formal methods for software engineering, and human-computer interaction. The programme starts from scratch, and teaches programming skills using C# and Microsoft Visual Studio, before moving on to Java and even further to more modern languages. The final year project assimilates material taught in the earlier years with material from related disciplines such as electronics and industrial sources. It prepares students well for professional practice as well as continuing, or further, education and research.

Software Engineering is available as a specified programme for the BE(Hons).

To complete the specified programme in Software Engineering, students must follow the following programme.

Note: Students who commenced a specified programme in Software Engineering in 2016 or prior and are undertaking their third year in 2018 will do so using existing 20 point papers. Students are encouraged to contact the Faculty of Computing and Mathematical Sciences for programme advice.


On this page


  • Year 1

    Students must take the following papers: COMPX101, COMPX102, ENGEN101, ENGEN102, ENGEN170, ENGEN180 and MATHS135.

    And 15 points from the following: APHYS111, CHEMY100, CHEMY101, CHEMY102, ENGEN110, ENGEN111, ENGEN112, PHYSC100, PHYSC101.

  • Year 2

    Students must take the following papers: COMPX203, COMPX204, COMPX223, COMPX241, COMPX242, COMPX361, ENGEN201, ENGEN270 and ENGEN271.

  • Year 3

    Students must take the following papers: COMPX301, COMPX304, COMPX307, COMPX324, COMPX341, COMPX374, ENGEN301, ENGEN370 and ENGEN371.

  • Year 4

    Students must take ENGEN570 and ENGEN582, 30 points from any 500 level COMPX paper, one of COMPX526, COMPX552 or COMPX554, and one of COMPX532, COMPX539 or COMPX548.

  • 100 Level

    Code Paper Title Occurrence / Location
    APHYS111Physics in Context20A (Hamilton)
    This is an introductory paper in physics for students who have not studied physics or mathematics at NCEA level 2 or 3. It is intended to support a major in other science subjects. Emphasis is placed on describing everyday physics concepts using correct terminology. Examples of physics in action are drawn from many science areas. T...
    CHEMY100Chemistry in Context20A (Hamilton) & 20B (Tauranga)
    This is an introductory paper for students with a limited background in chemistry. There is a strong emphasis on teaching chemical concepts through real-world examples relevant to different science and engineering disciplines.
    CHEMY101Structure and Spectroscopy20A (Hamilton) & 20C (Hamilton)
    A theoretical and practical course covering aspects of analytical and inorganic chemistry. This course is required for the chemistry major.
    CHEMY102Chemical Reactivity20B (Hamilton)
    A theoretical and practical course covering aspects of physical and organic chemistry. This course is required for the chemistry major.
    COMPX101Introduction to Programming20A (Hamilton), 20A (Online), 20B (Hamilton), 20G (Hamilton) & 20X (Zhejiang University City College, Hangzhou China)
    This paper introduces computer programming in C# - the exciting challenge of creating software and designing artificial worlds within the computer. It also covers concepts such as the internals of the home computer, the history and future of computers, cyber security, computer gaming, databases, mobile computing and current researc...
    COMPX102Object-Oriented Programming20B (Hamilton), 20B (Tauranga), 20S (Hamilton) & 20X (Zhejiang University City College, Hangzhou China)
    This paper continues from COMPX101, expanding upon data organisation and algorithms, and introducing code contracts, computer architecture, Boolean algebra, assembly language, program analysis and object-oriented programming.
    ENGEN101Engineering Mathematics 1A20A (Hamilton), 20A (Tauranga) & 20B (Hamilton)
    A study of the fundamental techniques of algebra and calculus with engineering applications.
    ENGEN102Engineering Mathematics 1B20B (Hamilton), 20B (Tauranga), 20C (Hamilton) & 20G (Hamilton)
    A further study of the fundamental techniques of algebra and calculus with engineering applications. Includes an introduction to relevant statistical methods.
    ENGEN103Engineering Computing20A (Hamilton), 20A (Tauranga) & 20G (Hamilton)
    This paper introduces computer programming in languages such as Python. It provides the basis for the programming skills required in more advanced papers.
    ENGEN110Engineering Mechanics20A (Tauranga), 20B (Hamilton), 20B (Tauranga) & 20X (Hamilton)
    Statics and dynamics of rigid bodies. Application of freebody diagrams and equations of equilibrium to calculate internal and external forces and moments on/in structures and mechanisms. Kinetics and kinematics of particles. Geometric properties of areas.
    ENGEN111Electricity and Electronics20A (Hamilton), 20A (Tauranga), 20B (Tauranga) & 20X (Hamilton)
    Students are introduced to underlying concepts in electricity such as current, voltage and power, and apply these concepts in a laboratory by making circuits and measuring them with common laboratory instruments.
    ENGEN112Materials Science and Engineering20B (Hamilton) & 20B (Tauranga)
    Introduction to engineering materials (metals, ceramics, polymers, composites, semiconductors and biomaterials) and their atomic structure and mechanical properties. Includes; elastic and plastic deformation, fracture mechanisms, failure in service, iron-carbon phase diagram, redox reactions in corrosion, production of polymers, ce...
    ENGEN170Engineering and Society20B (Hamilton) & 20B (Tauranga)
    Introduction to the role of engineering in society in particular understanding of Treaty of Waitangi, history of science, engineering and technology, philosophy and ethics and public participation, participatory design, sustainability.
    ENGEN180Foundations of Engineering20A (Hamilton) & 20A (Tauranga)
    Introduction to the engineering design process and computer aided design, fundamental principles of engineering analysis, open ended problem solving, engineering economics and the skills of a successful engineer. Includes a design-build-test experience.
    ENGEN184Calculus for Engineers20S (Hamilton)
    A study of the fundamental techniques of calculus, including differentiation and integration for functions of one real variable, with engineering applications.
    MATHS135Discrete Structures20B (Hamilton) & 20B (Tauranga)
    An introduction to a number of the structures of discrete mathematics with wide applicability in areas such as: computer logic, analysis of algorithms, telecommunications, networks and public key cryptography. In addition it introduces a number of fundamental concepts which are useful in Statistics, Computer Science and further stu...
    PHYSC100General Physics20A (Hamilton)
    This paper provides an introduction to the core ideas in physics. Topics covered include kinematics, mechanics, fluids, electric and magnetic forces and fields, electric circuits, optics, modern physics and relativity, taught in a problem solving context.
  • 200 Level

    Code Paper Title Occurrence / Location
    COMPX203Computer Systems20A (Hamilton) & 20B (Hamilton)
    This paper provides an overview of the operation of computer systems. The central theme is the way in which the hardware and software co-operate to allow the execution of programs written in a high-level language.
    COMPX204Practical Networking and Cyber Security20B (Hamilton)
    This paper provides an overview of the technologies and protocols involved in computer communications and cyber security. Practical work includes network programming.
    COMPX223Database Practice and Experience20A (Hamilton)
    This paper approaches the subject of databases from a practical perspective - how do I create a database and how do I retrieve/update data. Both aspects are heavily addressed in this paper. Database creation and querying, using SQL, will be introduced in lectures as you will master practical skills associated with a commercial Data...
    COMPX241Software Engineering Development20A (Hamilton)
    Students will learn how to program in Java and design, analyse, and apply commonly used data structures. Broader software engineering practices will be developed through a group project.
    COMPX242Software Engineering Process20B (Hamilton)
    This paper covers object-oriented programming, primarily as seen in Java, but also touching on alternative approaches. It introduces software development methodologies and the use of support tools, particularly repositories and a testing framework. Project work starts with GUI develoment in Java and works through to the constructio...
    ENGEE233Digital Electronics and Microprocessors20A (Hamilton)
    This paper provides students with an introduction to digital electronics and microprocessors. It covers combinatorial and sequential logic, hardware description languages, and processor architecture and construction.
    ENGEN201Engineering Mathematics 220B (Hamilton)
    Calculus of Several Variables and its Applications. Vector calculus (Green's, Gauss' and Stokes' theorems). Taylor's Theorem in n dimensions. Introduction to ordinary differential equations and methods to solve them.
    ENGEN270Engineering and Business20A (Hamilton)
    This paper focuses on empowering students to become “business savvy” and prepared to enter the workplace and solve real-world problems. Topics covered include; team formation, design thinking, Lean Canvas, project management, Agile, risk management, project finance, professional ethics, preparing for the workplace, and business...
    ENGEN271Engineering Work Placement 120X (Hamilton)
    First work placement involving 400 hours of work experience at an approved engineering organisation relevant to your studies. Typically undertaken during the summer semesters at the end of second year.
    ENGEN272Engineering Work Placement 120X (Hamilton)
    First work placement for the DipEPP involving 400 hours of work experience at an approved engineering organisation relevant to your studies. Typically undertaken during the summer semesters at the end of second year.
  • 300 Level

    Code Paper Title Occurrence / Location
    COMPX301Design and Analysis of Algorithms20A (Hamilton)
    This course gives a survey of advanced algorithms and analysis of their performance, along with heuristic methods that include basic Artificial Intelligence techniques.
    COMPX304Advanced Networking and Cyber Security20B (Hamilton)
    A study of computer networks with a focus on Internet protocols and security. The aim of this paper is to develop a practical understanding of the operation and programming of core internet protocols, application protocols, and transmission technologies.
    COMPX307Functional Programming20B (Hamilton)
    The design, implementation and use of programming languages, in particular the use of functional languages to implement imperative languages will be studied. Assignments will involve challenging programming problems.
    COMPX324User Experience Design20B (Hamilton), 20B (Tauranga) & 20X (Zhejiang University City College, Hangzhou China)
    An introduction to the field of human-computer interaction (HCI) where students develop skills and techniques for the design and evaluation of modern computer interfaces.
    COMPX341Software Engineering Methodology20A (Hamilton)
    This paper introduces the central ideas of risk analysis and testing as ways of developing high quality of software leading to good practice in test development.
    COMPX361Logic and Computation20B (Hamilton)
    The syllabus includes: further development of predicate logic with application to program verification; mathematical induction including structural induction; finite state automata and regular languages; Kleene's Theorem; Turing machines, the Church-Turing thesis, universal Turing machines and the Halting problem; formal grammars a...
    COMPX374Software Engineering Industry Project20B (Hamilton)
    Students work in small groups to build a medium sized software project. They develop requirements and specification, design the system structure and user interface, carry out documentation preparation, implementation, and maintenance. This paper includes a component on professional interaction skills within the workplace and CV pre...
    ENGEN301Engineering Mathematics 320A (Hamilton)
    Introduces numerical methods and statistical ideas relevant to Engineering.
    ENGEN370Engineering and Environment20A (Hamilton)
    This paper covers sustainability in engineering design within the context of environmental impact, risk and resilience, emissions and standards, carbon accounting and life cycle analysis.
    ENGEN371Engineering Work Placement 220X (Hamilton)
    Second work placement involving 400 hours of work experience at an approved engineering organisation relevant to your studies. Typically undertaken during the summer semesters at the end of third year.
    ENGEN372Engineering Work Placement 220X (Hamilton)
    Second work placement for the DipEPP involving 400 hours of work experience at an approved engineering organisation relevant to your studies. Typically undertaken during the summer semesters at the end of second year.
  • 500 Level

    Code Paper Title Occurrence / Location
    COMPX502Cryptography20A (Hamilton)
    An introduction to cryptographic methods.
    COMPX514Carrier and ISP Networks20B (Hamilton)
    One or more special topics in computer communications, at an advanced level.
    COMPX515Security for Advanced Networks20B (Hamilton)
    Networks have evolved considerable in the last decade, leading to new technologies. Changes in the attack surface make network security a permanent concern. Novel approaches to protect them are required.
    COMPX518Cyber Security20A (Hamilton)
    This paper introduces the key topics in the important field of cyber security. It will cover a range of topics relating to defensive security (e.g. malware analysis, social engineering, intrusion detection and prevention), offensive security (e.g. pen testing, Web app security) and preventative security (e.g. cryptography, applied ...
    COMPX519Malware Analysis and Penetration Testing20B (Hamilton)
    This paper goes through two important aspects of Cyber Security. It first covers the defensive security techniques of malware analysis and then examines the offensive security techniques of penetration testing.
    COMPX521Advanced Machine Learning20A (Hamilton)
    This paper exposes students to more advanced topics in machine learning. Rule induction, numeric prediction, clustering and state-of-the-art ensemble learning methods are among the topics covered.
    COMPX523Data Stream Mining20A (Hamilton)
    Data streams are everywhere, from F1 racing over electricity networks to news feeds. Data stream mining relies on and develops new incremental algorithms that process streams under strict resource limitations.
    COMPX527Cloud Computing Technologies and Security20B (Hamilton)
    This paper explores cloud computing's underlying enabling technologies (e.g. virtualisation) and business models. It also covers key research topics in cloud computing security, trust and data privacy.
    COMPX529Engineering Self-Adaptive Systems20B (Hamilton)
    Software needs to manage itself to fullfill dynamic requirements in a changing environment. Self-adaptive software is currently employed in clouds, networks, IoT, autonomous robots, etc. Adaptation challenges include self-configuration, self-optimization, self-healing and selfprotection.
    COMPX532Information Visualisation20A (Hamilton)
    This paper aims to provide an awareness of the potential offered by information visualisation techniques, a familiarity with the underlying concepts, and an understanding and ability to effectively design and apply information visualisations in a given context.
    COMPX539Usability Engineering20B (Hamilton)
    This paper covers the design and evaluation of interactive computer systems with a focus on user studies. Topics covered include: scenarios, ethnography, designing and performing user studies, and ethical issues involved in studying human-computer interaction.
    COMPX542Web Search: Technical and Social Issues20A (Hamilton)
    This paper covers the operation of web search engines, the development of web spam and techniques for combating it, and social issues raised by centralised search engines.
    COMPX552Model Checking20A (Hamilton)
    This paper shows how reactive systems can be modelled and analysed using finite-state machines and temporal logic, and how model checking tools can be used to verify crucial properties of safety-critical systems. It also provides an introduction into the algorithms and data structures used to model check very large finite-state sys...
    COMPX553Extremely Parallel Programming20A (Hamilton)
    This paper covers advanced parallel programming for large-scale parallelism. A variety of programming techniques will be covered, with application to cluster computers, GPU computing, many-core computing and cloud computing.
    COMPX554Specification Languages and Models20B (Hamilton)
    This paper deals with various aspects of modelling systems using advanced best practice methods from the software engineering field. It will introduce at least one of the main software modelling languages, Z, including its semantics, logic and associated tools.
    COMPX555Bioinformatics20B (Hamilton)
    An introduction to bioinformatics, open to students majoring in computer science or biology. It includes an overview of molecular biology, genomics, script language programming, algorithms for biological data, an introduction to machine learning and data mining, and relevant statistical methods.
    COMPX560Turing Topics in Computer Science20X (Hamilton)
    One or more special topics in computer science, at an advanced level.
    ENGEN570Engineering and the Profession20D (Hamilton)
    The roles and responsibilities of professional engineers are examined. Topics include; project management, leadership, negotiation, ethical responsibilities, legal duties, Treaty of Waitangi, intellectual property and professional communication.
    ENGEN582Honours Research and Development Project20D (Hamilton) & 20X (Hamilton)
    This is the final year Honours, research and design "capstone" project.

2020 Catalogue of Papers information current as of : 13 December 2019 11:34am

This page has been reformatted for printing.