Breadcrumbs

Map NZ Map World

BSc - Computer Science as a major

If you're intrigued by the natural world around you, or enjoy understanding how things work, Waikato's Bachelor of Science (BSc) is what you're looking for. Putting into practice what you learn in your lectures is a major part of this degree. You will gain hands-on experience with some of the most up-to-date and high-tech computing facilities and laboratory equipment.

Computer Science is rapidly changing the world we live in. Studying Computer Science at the University of Waikato, you'll learn about software systems and how people and computers interact. You’ll also learn how to create new software, and ensure it's easy for people to use.


Apply to enrol

Key information

Years: 3
Points: 360
Start Dates: Semester A (February) and Semester B (July)
Fees (Domestic): $7,130 (approx) per year
Fees (International): $29,705-$31,795 per year
Entry Requirements: Undergraduate International
Faculty:
*Tuition fees shown are indicative only and may change. There are additional fees and charges related to enrolment please see the Table of Fees and Charges for more information. You will be sent an enrolment agreement which will confirm your fees.

Career opportunities

  • Web Architect
  • Business Analyst
  • Software Developer
  • Network Architect
  • Computer Animator
  • Mobile App Master
  • Data Miner
  • Usability Architect

Degree Planner

Degree planner — BSc in Computer Science

If no point value is listed, papers are worth 15 points.  This structure applies to study starting in 2019.

Year 3

List B Paper

300 Level
COMPX Paper

List A Paper

300 Level
Science Paper

Elective

Elective

Elective

  • Major
  • Elective
  • Compulsory
This information is provisional and subject to change.

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 List B papers are: COMPX301, COMPX304, COMPX307, COMPX310, COMPX318, COMPX322, COMPX323 and COMPX341.

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.

100 Level

Code Paper Title Occurrence / Location
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.
COMPX151The Computing Experience20A (Hamilton), 20B (Hamilton) & 20S (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.
COMPX161Introduction to the Web20B (Hamilton), 20I (Zhejiang University City College, Hangzhou China) & 20X (Zhejiang University City College, Hangzhou China)
This paper introduces the core Web technologies of HTML, CSS and JavaScript. Students will learn how to combine these technologies with design principles to produce effective web content.
CSMAX170Foundations in Computing and Mathematical Sciences20A (Hamilton), 20A (Tauranga) & 20B (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 mathematical sci...
DSIGN125Introduction to Communication Design Production20A (Hamilton) & 20X (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 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.
ENGEN111Electricity and Electronics20A (Hamilton), 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.
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...

200 Level

Code Paper Title Occurrence / Location
COMPX201Data Structures and Algorithms20A (Hamilton), 20G (Hamilton) & 20X (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 Architecture20B (Hamilton), 20S (Hamilton) & 20X (Zhejiang University City College, Hangzhou China)
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...
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.
COMPX221Programming for Creative Industries20A (Hamilton)
A fundamental grounding in object-oriented programming that uses Processing software to creative visual outputs for creative industries.
COMPX222Web Development20B (Hamilton) & 20X (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 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...
COMPX251Applied Computing Tools 120A (Hamilton), 20A (Tauranga), 20B (Hamilton), 20S (Hamilton) & 20X (Zhejiang University City College, Hangzhou China)
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 220A (Hamilton), 20B (Hamilton), 20B (Tauranga) & 20S (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 Sciences20B (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 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.

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.
COMPX305Practical Data Mining20B (Hamilton) & 20B (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 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.
COMPX310Machine Learning20A (Hamilton) & 20A (Tauranga)
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.
COMPX318Mobile Computing and the Internet of Things20B (Hamilton)
This paper teaches how to develop software for mobile devices and its interaction with the Internet of Things
COMPX322Advanced Web Development20A (Hamilton), 20A (Tauranga) & 20X (Zhejiang University City College, Hangzhou China)
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 Concepts20A (Hamilton) & 20A (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 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...
COMPX371Computer Science Work Placement20X (Block)
This paper provides a full-immersion, authentic work experience that is relevant to a student's study, in a professional workplace.
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...
COMPX375Information Systems Industry Project20B (Hamilton) & 20B (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. This paper includes a component on professional interaction skills within the workplace and CV preparation.
COMPX390Directed Study20A (Hamilton), 20B (Hamilton), 20X (Hamilton) & 20X (Tauranga)
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.
COMPX397Work-Integrated Learning Directed Study20A (Hamilton), 20A (Tauranga), 20B (Hamilton), 20B (Tauranga), 20X (Hamilton) & 20X (Tauranga)
Students carry out an independent work-related project on an approved topic under staff supervision.
COMPX398Work-Integrated Learning Directed Study20A (Hamilton), 20A (Tauranga), 20B (Hamilton), 20B (Tauranga), 20X (Hamilton) & 20X (Tauranga)
Students carry out an independent work-related project on an approved topic under staff supervision.

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.
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 ...
COMPX520Dissertation20D (Hamilton), 20I (Hamilton) & 20X (Hamilton)
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).
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.
COMPX568Programming for Industry20A (Hamilton) & 20X (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 Technologies20A (Hamilton) & 20X (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 120A (Hamilton) & 20B (Hamilton)
A paper in programming techniques applicable to a range of research applications in Computer Science.
COMPX576Programming for Research 220A (Hamilton) & 20B (Hamilton)
A paper where research programming techniques are applied to a specific (elective) field in Computer Science.
COMPX577Report of an Investigation20A (Hamilton) & 20B (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 120A (Hamilton) & 20B (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 220A (Hamilton) & 20B (Hamilton)
A paper that puts into practice core research skills to plan, conduct and report research in a specific (elective) field of computer science.
COMPX591Dissertation20I (Hamilton) & 20X (Hamilton)
A report on the findings of a theoretical or empirical investigation.
COMPX592Dissertation20X (Hamilton)
A report on the findings of a theoretical or empirical investigation.
COMPX593Computer Science Thesis20X (Hamilton)
An externally examined piece of written work that reports on the findings of supervised research.
COMPX594Computer Science Thesis20X (Hamilton)
An externally examined piece of written work that reports on the findings of supervised research.
CSMAX570Preparing for the ICT Internship20A (Hamilton) & 20B (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 Internship20A (Block), 20B (Block) & 20X (Block)
This internship enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry.
ENGEE531Advanced Signal Processing20A (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 Projects20A (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 Systems20X (Block)
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 Modelling20X (Block)
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 Planning20A (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 Security20A (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 Setting20A (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.

800 Level

Code Paper Title Occurrence / Location
COMPX800Computer Science MPhil Thesis20X (Hamilton)
No description available.

900 Level

Code Paper Title Occurrence / Location
COMPX900Computer Science PhD Thesis20I (Hamilton), 20X (Hamilton) & 20X (Tauranga)
No description available.
COMPX901Computer Science Creative Practice PhD Thesis20X (Hamilton)
No description available.

New to Waikato? The International Excellence Scholarship is worth up to $10,000.

CMS International Exchange Scholarship  Closed

For students who have completed at least one year of study in the Faculty of Computing & Mathematical Sciences, applied for a University of Waikato exchange programme, and who will be enrolled full-time in FCMS in the year of tenure.

Computer Science Undergraduate Scholarship  Closed

For students who are currently in Year 12 or Year 13 at a New Zealand secondary school. Candidates must be intending to enrol full-time in a BCMS(Hons), BSc, BSc(Tech), BE(Hons) or BDes degree, in one of the computing streams, at the University of Waikato. Candidates will sit a Scholarship exam, which will be held on 25 and 26 October 2019.

Sir William Gallagher Cyber Security Scholarship  Closed

For students intending to enrol full-time in the Master of Cyber Security. The successful applicant will be required to enrol in either COMPX592, COMPX593 or COMPX594 and undertake an industry-based research project with Gallagher. International students must have completed at least 120 points of study at a NZ university in order to be eligible to apply for this Scholarship.

Smartrak Software Development Scholarship  Closed

For students enrolled full time in the second to last year of study towards a BE(Hons) majoring in software engineering or a BCMS with a focus on software development or a BSc(Tech) majoring in computer science with an emphasis on software development. The scholarship will have a value of $4,000.

Looking for more scholarships?

Visit our Scholarship Finder


Subject links


Documents


Contacts

Faculty of Computing & Mathematical Sciences

Phone: 0800 924 528 ext: 4322 or +64 7 838 4322
Email: cms@waikato.ac.nz
Website: cms.waikato.ac.nz
Facebook: facebook.com/WaikatoFCMS