Computer Science (2019)

Computer Science involves the study of all aspects of computers: their technology, algorithms and programming, underlying theory, and their application.

Computer Science is available as a major for the Bachelor of Computing and Mathematical Sciences with Honours, the Bachelor of Science, and the Bachelor of Science (Technology). Computer Science may also be included as a second major or minor in other undergraduate degrees, subject to the approval of the Faculty in which the student is enrolled.

To complete Computer Science as a single major for the BCMS(Hons), BSc, or the BSc(Tech), students must gain 135 points from papers listed for Computer Science, including 105 points above 100 level, and 45 points above 200 level. Students must complete COMPX101, COMPX102, COMPX201, COMPX202, COMPX203, COMPX204, COMPX361 and at least 15 points from List A. Students in the BCMS(Hons) will also need to take at least 60 points in the subject of Computer Science at 500 level, including COMPX520.

To complete Computer Science as part of a double major for the BCMS(Hons), BSc or other undergraduate degree, students must gain 120 points from papers listed for Computer Science, including 90 points above 100 level, and 30 points above 200 level. Students must complete COMPX101, COMPX102, COMPX201, COMPX202, COMPX203, COMPX204, COMPX361 and 15 points from List A. Students in the BCMS(Hons) will also need to take at least 60 points in the subject of their first major at 500 level including COMPX520 if Computer Science is the first major.

To complete a minor in Computer Science, students must complete 60 points from the papers listed for the Computer Science major, including at least 30 points above 100 level, and including COMPX201.

Note: Students who commenced a major in Computer Science in 2017 or prior are encouraged to contact the Faculty of Computing and Mathematical Sciences for programme advice.


On this page


  • Prescriptions for the GradCert(CompSc) and GradDip(CompSc)

    A Graduate Certificate and Graduate Diploma are available to graduates who have not included Computer Science at an advanced level in their first degree.

    For further details, contact the Faculty of Computing and Mathematical Sciences Office.

  • Prescriptions for the BCMS(Hons), PGCert(CompSc), PGDip(CompSc), BSc(Hons), MCS, MSc, MSc (Research) and MSc(Tech)

    Most 500 level papers correspond to papers taught at 400 level. Students attend the same lectures, but additional assessment may be prescribed for 500 level students. Students in masters degrees are normally required to take a thesis and a selection of papers. Enrolment in papers towards the BSc(Hons) is only by invitation of the Chairperson. Candidates for these graduate qualifications should select their papers in consultation with the Graduate Adviser of the Department of Computer Science.

    To complete a BSc(Hons) in Computer Science, students must complete 120 points at 500 level, including at least 60 points from the papers listed for Computer Science, of which at least 30 points must be in research (normally COMPX591).

    The compulsory papers for the Master of Cyber Security degree are COMPX518, COMPX527, either COMPX592 or COMPX593, LEGAL526, and one of COMPX501, COMPX513 or COMPX514.

  • Prescriptions for the PGCertInfoTech and MInfoTech

    Candidates enrolled in the PGCertInfoTech must complete 60 points from COMPX568 and COMPX569.

    Candidates enrolled in the 120 point MInfoTech must complete 60 points from CSMAX596, 15 points from either COMP587 or ENMP585, or other approved paper, and at least 45 points from the 500 level Computer Science or Geography papers listed below (excluding COMPX568 and COMPX569), or courses listed in the University of Auckland Master of Information Technology Schedule.

    Candidates enrolled in the 180 point MInfoTech must complete 60 points from CSMAX596, 30 points chosen from COMP587, ENMP585, or other approved papers, and at least 90 points from the 500 level Computer Science or Geography papers listed below (excluding COMPX568 and COMPX569), or courses listed in the University of Auckland Master of Information Technology Schedule.

    Candidates enrolled in the 240 point MInfoTech must complete 60 points from COMPX568 and COMPX569, 60 points from CSMAX596, 30 points chosen from COMP587, ENMP585, or other approved papers, and at least 90 points from the 500 level Computer Science or Geography papers listed below, or courses listed in the University of Auckland Master of Information Technology Schedule.

  • Prescriptions for the MPhil

    The Master of Philosophy is a one year research-based degree in which students undertake a programme of approved and supervised research that leads to a thesis which critically investigates an approved topic of substance and significance, demonstrates expertise in the methods of research and scholarship, displays intellectual independence and makes a substantial original contribution to the subject area concerned, and is of publishable quality.

  • Prescriptions for the PhD

    The Doctor of Philosophy is a three year research-based degree in which students undertake a programme of approved and supervised research that leads to a thesis which critically investigates an approved topic of substance and significance, demonstrates expertise in the methods of research and scholarship, displays intellectual independence and makes a substantial original contribution to the subject area concerned, and is of publishable quality.

  • 100 Level

    Code Paper Title Occurrence / Location
    COMPX101Introduction to Computer Science19A (Hamilton), 19A (Online), 19B (Hamilton) & 19C (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 Programming19B (Hamilton), 19C (Zhejiang University City College, Hangzhou China) & 19S (Hamilton)
    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.
    COMPX151The Computing Experience19A (Hamilton), 19B (Hamilton) & 19S (Hamilton)
    This laboratory-based paper introduces a range of computer tools for application in the sciences, the arts and other disciplines. Students tailor the paper to their own needs by selecting sets of exercises to extend their prior knowledge.
    COMPX161Computing Media19B (Hamilton), 19C (Zhejiang University City College, Hangzhou China) & 19D (Zhejiang University City College, Hangzhou China)
    In this paper students will create multimedia web content using appropriate software packages. Web design concepts will be introduced for the effective use of text, images and sounds. Students will be introduced to relevant computing concepts and provided with software tutorials and related exercises.
    CSMAX170Foundations in Computing and Mathematical Sciences19A (Hamilton) & 19B (Hamilton)
    The objective of this paper is to provide students with the academic foundations for computing and mathematical sciences. The paper will cover the following areas: - Effective academic reasoning and communication - Information literacy and research skills - Academic integrity - Techniques and tools in the computing and mathematica...
    DSIGN125Introduction to Communication Design Production19A (Hamilton) & 19C (Zhejiang University City College, Hangzhou China)
    This paper enables students to perform basic computing operations and to operate software packages for the manipulation of visual images and text for use in print and screen-based applications. Students will be introduced to basic computing concepts and provided with software tutorials and related exercises.
    ENGEN103Engineering Computing19A (Hamilton), 19A (Tauranga) & 19T (Hamilton)
    This paper introduces computer programming in languages such as C# and Python. It provides the basis for the programming skills required in more advanced papers within the School of Engineering.
    ENGEN111Electricity and Electronics19A (Hamilton), 19A (Tauranga) & 19T (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.
    MATHS135Discrete Structures19A (Hamilton)
    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...
  • 200 Level

    Code Paper Title Occurrence / Location
    COMPX201Data Structures and Algorithms19A (Hamilton) & 19C (Zhejiang University City College, Hangzhou China)
    This paper introduces programming with data structures using Java. Students learn how to program in Java and become familiar with the design, analysis, and application of commonly used data structures, including stacks, queues, lists, trees, and sets.
    COMPX202Mobile Computing and Software Architecture19B (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...
    COMPX203Computer Systems19A (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 Security19B (Hamilton)
    This paper provides an overview of the technologies and protocols involved in computer communications and cyber security. Practical work includes network programming.
    COMPX221Programming for Creative Industries19A (Hamilton)
    A fundamental grounding in object-oriented programming that uses Processing software to creative visual outputs for creative industries.
    COMPX222Web Development19B (Hamilton) & 19C (Zhejiang University City College, Hangzhou China)
    This paper provides a broad overview of the principles and technologies used in Internet Applications, with practical experience of client-side and server-side programming
    COMPX223Database Practice and Experience19A (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 Development19A (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 Process19B (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...
    COMPX251Applied Computing Tools 119A (Hamilton), 19A (Tauranga), 19B (Hamilton), 19C (Zhejiang University City College, Hangzhou China) & 19S (Hamilton)
    This paper enables students to widen their experience of computer software using an intensive laboratory programme. Students select from a variety of themes, including video editing, website design, digital library development, computer game construction, animation and 3D modelling.
    COMPX252Applied Computing Tools 219A (Hamilton), 19B (Hamilton) & 19S (Hamilton)
    This paper provides an opportunity to explore several software applications in depth. It is based on an intensive laboratory programme, where students tailor their choices to their own needs and interests by selecting two themes from a set of modules.
    CSMAX270Cultural Perspectives for Computing and Mathematical Sciences19B (Hamilton)
    The paper provides students with an understanding of scientific and culture-specific perspectives on computing and mathematical science issues and the ability to apply these in diverse contexts.
    ENGEE233Digital Systems19A (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.
  • 300 Level

    Code Paper Title Occurrence / Location
    COMPX301Design and Analysis of Algorithms19A (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 Security19B (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.
    COMPX305Practical Data Mining19B (Hamilton) & 19B (Tauranga)
    This paper introduces students to techniques for automatically finding and exploiting patterns in datasets, covering basic techniques applied in data analytics, data mining, machine learning, and big data. The well-known, locally-made Weka software will be used as the software environment for this paper.
    COMPX307Functional Programming19B (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.
    COMPX310Machine Learning19A (Hamilton) & 19A (Tauranga)
    This paper introduces Machine Learning which is the science of making predictions. ML algorithms strive to be fast and highly accurate, while processing large datasets. This paper will use standard Python-based ML toolkits to teach the fundamentals of ML.
    COMPX318Mobile Computing and the Internet of Things19B (Hamilton)
    This paper teaches how to develop software for mobile devices and its interaction with the Internet of Things
    COMPX322Advanced Web Development19A (Hamilton) & 19A (Tauranga)
    This paper covers a range of topics relating to the development of web applications. These include the latest developments in HTML, CSS and JavaScript; asynchronous communication using AJAX; security issues; object-oriented JavaScript; RESTful web services; XML; JSON and development libraries and frameworks.
    COMPX323Advanced Database Concepts19A (Hamilton) & 19A (Tauranga)
    This paper provides an introduction to the advanced features of database management systems. Students will learn to use and manipulate advanced features, and to understand and explore the technical background of large database management systems. They will have hand-on practice in using these features to create, query and maintain ...
    COMPX324User Experience Design19B (Hamilton) & 19B (Tauranga)
    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 Methodology19A (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 Computation19B (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...
    COMPX371Computer Science Work Placement19C (Hamilton)
    This paper provides a full-immersion, authentic work experience that is relevant to a student's study, in a professional workplace.
    COMPX372Computer Science Work Placement 219C (Hamilton)
    This paper provides a second full-immersion, authentic work experience that is relevant to a student's study, in a professional workplace.
    COMPX373Computer Science Work Placement 319C (Hamilton)
    This paper provides the third full-immersion, authentic work experience that is relevant to a student's study, in a professional workplace.
    COMPX374Software Engineering Industry Project19B (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.
    COMPX375Information Systems Industry Project19B (Hamilton) & 19B (Tauranga)
    Students address a real world problem by performing systems planning, analysis, design and implementation. Working in groups, they submit reports, conduct reviews, develop prototypes, and make formal presentations at appropriate milestones.
    COMPX379Computer Science Work Placement 419C (Hamilton)
    This paper provides the a full-immersion, authentic work experience that is relevant to a student's study, in a professional workplace.
    COMPX390Directed Study19A (Hamilton), 19B (Hamilton) & 19C (Hamilton)
    A directed study involving the design, implementation and testing of the solution to a hardware and/or software engineering problem and production of a formal report.
    FCMS396Work Placement19C (Hamilton)
    This paper enables students to undertake work placement in an area related to their major as part of their degree. Students work in a chosen field for a period of time in order to gain valuable work experience and learn from experts in their chosen field.
    RPLCR316Recognition of Prior Learning - Computer Science Placement 119A (Hamilton) & 19S (Hamilton)
    This paper requires a period of work experience in an appropriate and approved industry or applied field. Assessment is by written reports and employer feedback. This paper may be counted only towards the BSc(Tech) degree.
    RPLCR317Recognition of Prior Learning - Computer Science Placement19A (Hamilton) & 19S (Hamilton)
    For details see Computer Science COMP370.
    RPLCR318Recognition of Prior Learning - Computer Science Placement 319A (Hamilton) & 19S (Hamilton)
    For details see Computer Science COMP370.
  • 500 Level

    Code Paper Title Occurrence / Location
    COMPX502Cryptography19B (Hamilton)
    An introduction to cryptographic methods.
    COMPX514Carrier and ISP Networks19B (Hamilton)
    One or more special topics in computer communications, at an advanced level.
    COMPX518Cyber Security19A (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 ...
    COMPX520Special Topic19C (Hamilton), 19D (Hamilton) & 19Y (Hamilton)
    No description available.
    COMPX521Advanced Machine Learning19A (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 Mining19A (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 Security19B (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.
    COMPX532Information Visualisation19A (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.
    COMPX536Advanced Graphics and Computer Games19A (Hamilton)
    A lecture and laboratory based paper on the use of 3D immersive computer game engines. Topics will include 3D modelling, texturing, lighting effects, use of pixel shaders, game physics, scripting of game play, and use of games engines for non-game program development.
    COMPX539Usability Engineering19A (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.
    COMPX540Software Engineering Methodologies19B (Hamilton)
    This paper focuses on modern software design and development methodologies, with emphasis on the 'lightweight' methods. The paper will also examine safety-critical aspects of software engineering, in particular how safety analysis fits into the software lifecycle.
    COMPX542Web Search: Technical and Social Issues19A (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.
    COMPX550Location Based Systems as Context-aware Systems19A (Hamilton)
    This course will introduce techniques of location-based and context-aware systems (such as GPS and personalisation). Participants will develop a location-based system and evaluate its qualities as an information system. The lecturer has extended experience with research in location-based systems - course participants will get hands...
    COMPX552Model Checking19A (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 Programming19A (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 Models19B (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.
    COMPX555Bioinformatics19B (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 Science19C (Hamilton)
    One or more special topics in computer science, at an advanced level.
    COMPX568Programming for Industry19A (Hamilton) & 19C (Hamilton)
    An examination of object-oriented programming and design. Key principles of object-oriented programming: typing, encapsulation, inheritance, polymorphism and composition. Fundamental object-oriented modelling and design techniques. Students will develop application software of reasonable complexity that draws on object-oriented lan...
    COMPX569Programming with Web Technologies19A (Hamilton) & 19C (Hamilton)
    An examination of developing web-based applications. Client-side technologies: HTML, CSS and Javascript. Server-side technologies to support dynamic Web pages and data access. Fundamental relational database concepts and design techniques. Principles of Web-application design. HCI considerations and mobile clients.
    COMPX575Programming for Research 119A (Hamilton) & 19B (Hamilton)
    A paper in programming techniques applicable to a range of research applications in Computer Science.
    COMPX576Programming for Research 219A (Hamilton) & 19B (Hamilton)
    A paper where research programming techniques are applied to a specific (elective) field in Computer Science.
    COMPX577Report of an Investigation19A (Hamilton) & 19B (Hamilton)
    A directed study involving the design, implementation and testing of the solution to a hardware and/or software engineering problem and production of a formal report.
    COMPX585Research in Computer Science 119A (Hamilton) & 19B (Hamilton)
    A paper about how to plan, conduct and report research in the field of computer science, in which students gain skills in and understanding of reading and critiquing research materials, planning research projects and developing research proposals, carrying out literature surveys, and writing research papers.
    COMPX586Research in Computer Science 219A (Hamilton) & 19B (Hamilton)
    A paper that puts into practice core research skills to plan, conduct and report research in a specific (elective) field of computer science.
    COMPX591Dissertation19C (Hamilton) & 19D (Hamilton)
    A report on the findings of a theoretical or empirical investigation.
    COMPX592Dissertation19C (Hamilton)
    A report on the findings of a theoretical or empirical investigation.
    COMPX593Computer Science Thesis19C (Hamilton)
    An externally examined piece of written work that reports on the findings of supervised research.
    COMPX594Computer Science Thesis19C (Hamilton)
    An externally examined piece of written work that reports on the findings of supervised research.
    CSMAX570Preparing for the ICT Internship19A (Hamilton) & 19B (Hamilton)
    This paper will enable learners to develop the key soft and transferable skills and competencies important to be work-ready and prepared for the internship component of the Master of Information Technology (MInfoTech) programme at FCMS. These skills and competencies will be primarily developed through a software development projec...
    CSMAX596Computer Science Internship19A (Hamilton), 19B (Hamilton) & 19C (Hamilton)
    This internship enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry.
    ENGEE531Advanced Signal Processing19A (Hamilton)
    This paper introduces advanced methods for digitally processing signals. It covers signal transforms with applications in 1D and 2D, principles and practical methods of digital filter design, statistical signal processing.
    ENGEE580Mechatronic Projects19A (Hamilton)
    The paper brings together electronic, programming, and mechanical skills into projects where real-time systems are designed, constructed, and demonstrated. Timing of actuators and sensor inputs from fastest to slowest limits of a real-time controller imparts an appreciation of scheduling what is possible in any given mechatronic pr...
    GEOGY538Automated Spatial Analysis using Geographic Information Systems19C (Hamilton)
    Automated techniques are the most practical method for the spatial analysis of large data sets. In this paper, students are introduced to program scripts for automated GIS analysis, which is extremely powerful compared to the 'point and click' environment, and is an area of expertise expected of GIS experts. An important part of th...
    GEOGY548Advanced Geographic Information Systems Modelling19C (Hamilton)
    This paper provides a close examination of contemporary GIS modelling. GIS is used for a range of applications and in this paper students gain practical experience and understanding of many of these. Students are given the opportunity to develop GIS models in their choice of application.
    GEOGY558Applied Geographic Information Systems for Research and Planning19A (Hamilton)
    This paper is designed as an introduction to GIS for graduate students. Students learn about the use of GIS for spatial analysis and cartographic visualisation. Students gain 'hand on' experience with GIS laboratory exercises and undertake a graduate-level GIS project in an application of their choice.
    LEGAL526Legal Aspects of Cyber Security19A (Hamilton)
    This paper explores the legal aspects of cyber security and cyber crime, by analysing selected legislation and case law relevant to the area of cyber security. The paper covers the ethical and legal boundaries of rights and liability of security professionals.
    RPLCR570Recognition of Prior Learning - Professional Learning in an ICT Setting19A (Hamilton)
    This paper allows students to submit a portfolio for assessment for recognition of prior learning undertaken in a professional ICT setting, for credit towards the Master of Information technology within the Faculty of Computing and Mathematical Sciences.
    SCIE501Research Methods in the Sciences19B (Hamilton)
    This paper will enable students to develop the necessary communication skills and familiarity with research methods and practice to allow them to progress to the thesis component of a masters degree in the sciences, or to extend communication and research skills in those not taking a full research degree.
  • 800 Level

    Code Paper Title Occurrence / Location
    COMP800Computer Science MPhil Thesis19C (Hamilton)
    No description available.
  • 900 Level

    Code Paper Title Occurrence / Location
    COMP900Computer Science PhD Thesis19C (Hamilton) & 19C (Tauranga)
    No description available.
    COMP901Computer Science Creative Practice PhD Thesis19C (Hamilton)
    No description available.

2019 Catalogue of Papers information current as of : 21 September 2018 4:09pm

This page has been reformatted for printing.