In this section

Computer Science (2020)

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.

BCMS(Hons) and BSc students must complete COMPX101 or ENGEN103, COMPX102, COMPX201, COMPX202, COMPX203, COMPX204, COMPX361 and at least 15 points from List B. 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.

BSc(Tech) students must complete COMPX101 or ENGEN103, COMPX102, COMPX201, COMPX202, COMPX203, COMPX204, COMPX301 or COMPX361 and at least 15 points from List B.

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 or ENGEN103, COMPX102, COMPX201, COMPX202, COMPX203, COMPX204, COMPX361 and 15 points from List B. 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.

The papers ENGME585 and LEGAL526 would not normally be considered papers in the subject of Computer Science.

The papers COMPX568 and COMPX569 are available for only the PGCertInfoTech and the 240 point MInfoTech. The papers CSMAX570, CSMAX596, and RPLCR570 are available for only the MInfoTech. The papers COMPX577 and COMPX520 are normally available for only the BCMS and BCMS(Hons) degrees, respectively.

To complete a PGCert(CompSc), students must complete 60 points at 500 level consisting of 60 points from papers listed in the subject of Computer Science.

To complete a PGDip(CompSc), students must complete 120 points at 500 level including at least 90 points from papers listed in the subject of Computer Science.

To complete a PGDip(CyberSec), students must complete 120 points at 500 level including COMPX518, COMPX527, LEGAL526, and COMPX514 or other approved paper.

Enrolment in papers towards the BSc(Hons) is only by invitation of the Chairperson. 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 in the subject of 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, COMPX514 or other approved paper.

To complete an MSc in Computer Science, students admitted under section 2(a) of the MSc regulations must complete 180 points at 500 level including COMPX592 and at least 60 points from papers listed in the subject of Computer Science.

To complete an MSc (Research) in Computer Science, students admitted under section 2(a) of the MSc (Research) regulations must complete 180 points at 500 level consisting of COMPX594 and 60 points from papers listed in the subject of Computer Science.

To complete an MSc(Tech) in Computer Science, students admitted under section 2(a) of the MSc(Tech) regulations must complete 180 points at 500 level consisting of COMPX593, 30 points of professional practice papers and 60 points from papers listed in the subject of Computer Science.

Candidates for these graduate qualifications should select their papers in consultation with the Graduate Adviser of the Department of Computer Science.

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 CSMAX570 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 CSMAX570, ENGME585, 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 CSMAX570, ENGME585, 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

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...

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.

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 mathematical sci...

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.

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.

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

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.

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 development in Java and works through to the constructi...

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.

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...

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...

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.

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.

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.

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.

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.

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.

This paper introduces Machine Learning (ML) 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.

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.

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 ...

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...

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. This paper includes a component on professional interaction skills within the workplace and CV preparation.

A directed study investigation and report on an approved project or study topic under the supervision of a lecturer. Student's should obtain the lecturer's approval and signature on an enrolment sheet (available from the Department of Computer Science office).

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.

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...

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.

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.

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.

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...

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...

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...

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.

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.

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.

Recognition of Prior Learning - Professional Learning in an ICT Setting

20A (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.

Stay connected

NB: Your browser has JavaScript disabled or does not support JavaScript.Elements of this website require JavaScript, and will not function unless you enable it or use another browser with JavaScript support.