Courses - Faculty of Science


Computer Science

Stage I

COMPSCI 101
15 Points

Principles of Programming

An introduction to computers and computer programming in a high-level language. The role of computers and computer professionals in society is also introduced. The course is intended for students who may wish to advance in Computer Science or in Information Systems and Operations Management.

Restriction: COMPSCI 107

COMPSCI 105
15 Points

Principles of Computer Science

Extends the programming skills of COMPSCI 101, covering more advanced data structures and their representation and manipulation. Topics include: dynamic data structures (lists, queues, stacks, trees, hashtables), recursion, sorting and searching.

Prerequisite: COMPSCI 101

Restriction: COMPSCI 107

COMPSCI 107
15 Points

Computer Science Fundamentals

The entry course to Computer Science for students with prior programming knowledge. It focuses on data structures and efficient ways to manipulate data. Topics include: a brief recap of programming concepts, recursion, regular expressions, data interchange, abstract data types, linear data structures (lists, stacks and queues), non-linear data structures (heaps, hash tables, trees), searching and sorting.

Prerequisite: Achievement Standards NCEA Level 3: Digital Technologies and Programming: 91637 Develop a complex computer program for a specified task, 91636 Demonstrate understanding of areas of computer science, or equivalent, or Departmental approval

Restriction: COMPSCI 101, 105

COMPSCI 111
15 Points

COMPSCI 111G
15 Points

An Introduction to Practical Computing

A practical introduction to computing. Topics include: web design, an overview of computer hardware and operating systems, effective use of common applications, using the internet as a communication medium, applying programming concepts, and social implications of technology.

Stage II

COMPSCI 210
15 Points

Computer Systems 1

The low level representation of data and algorithms in the computer. An introduction to computer organisation. The instruction execution model. Assembly and disassembly of instructions. Assembly language programming. How a high-level language is implemented at the machine level. Hardware support necessary to implement a secure multi-user operating system.

Prerequisite: COMPSCI 105 or 107

COMPSCI 215
15 Points

Computer Systems 2

An introduction to data communications: the OSI reference model, particularly how the lower layers combine to implement the application layer. An introduction to secure communication and computer systems. Recommended Preparation: PHYSICS 140.

Prerequisite: COMPSCI 105 or 107

COMPSCI 220
15 Points

Algorithms and Data Structures

An introduction to the analysis of algorithms and data structures. Common abstract data types and their implementations. Asymptotic complexity analysis. Sorting and searching algorithms. Depth-first and breadth-first search and applications. Graph optimisation problems.

Prerequisite: COMPSCI 105 or 107, and 15 points from MATHS 108, 110, 50, 153

COMPSCI 225
15 Points

Discrete Structures in Mathematics and Computer Science

An introduction to logic, principles of counting, mathematical induction, recursion, relations and functions, graphs and trees, and algorithms. This course is suited to students who are interested in the foundations of computer science, mathematics and logic.

Prerequisite: 15 points from MATHS 108, 110, 150, 153, COMPSCI 101, 107, PHIL 101

Restriction: MATHS 255

COMPSCI 230
15 Points

Programming Techniques

An introduction to object-oriented, concurrent and functional programming.

Prerequisite: COMPSCI 105 or 107

COMPSCI 280
15 Points

Introduction to Software Development

An introduction to software development, including processes, best practices, tools and quality assurance techniques such as testing.

Prerequisite: COMPSCI 105 or 107

Stage III

COMPSCI 313
15 Points

Computer Organisation

Modern processor architectures. Principles of modern processor design; pipelining; memory hierarchies; I/O and network interfacing; compiler and OS support; embedded processors; performance; multiprocessing.

Prerequisite: COMPSCI 210, 215 (PHYSICS 140 or 243)

Restriction: SOFTENG 363, COMPSYS 304

COMPSCI 314
15 Points

Modern Data Communications

The structure of data communications and networks, including the internet, covering all levels of the communications architecture. The layered protocol model, data transmission and coding, link-level and local area network protocols, wide-area internet working, routing, transport and security protocols. Basic application protocols as the foundation for distributed computing.

Prerequisite: COMPSCI 210 and (COMPSCI 215 or INFOSYS 322)

Restriction: SOFTENG 364

COMPSCI 320
15 Points

Applied Algorithmics

Fundamental design techniques used for efficient algorithmic problem-solving and software development. Methods that yield algorithms that are both provably correct and efficient. Efficiency of algorithms to provide a basis for deciding which algorithm is best for the job. Limits on the power of computers and the theory of NP-completeness. An introduction to methods whose correctness or performance is not guaranteed.

Prerequisite: COMPSCI 220, 225

COMPSCI 335
15 Points

Distributed Objects, Services, and Programming

Programming introduction to distributed services and to browser based applications. Introduction to functional programming for data integration. Specific topics will include simple distributed applications, using message-based, declarative or functional programming methods. Concepts of programming with XML, SOAP and HTTP based mechanisms, and programming for dynamic web content generation.

Prerequisite: COMPSCI 230 and 15 points at Stage II in Computer Science

COMPSCI 340
15 Points

Operating Systems

Operating system principles. Multi-user systems. Virtualisation. Scheduling. Concurrent processes, threads, synchronisation and deadlock. Memory allocation and virtual memory. Managing files, disks and other peripherals. Security, protection and archiving. Distributed systems and algorithms, location, migration and replication transparency. Real-time requirements. History of operating systems.

Prerequisite: COMPSCI 210, 230

Restriction: SOFTENG 370

COMPSCI 345
15 Points

Human-computer Interaction

Human behaviour and humans' expectations of computers. Computer interfaces and the interaction between humans and computers. The significance of the user interface, interface design and user centred design process in software development. Interface usability evaluation methodologies and practice. Includes a group development and evaluation project using current implementation techniques and tools.

Prerequisite: COMPSCI 230 or SOFTENG 206

Restriction: COMPSCI 370, SOFTENG 350

COMPSCI 350
15 Points

Mathematical Foundations of Computer Science

The aim of this course is to present mathematical models for programming languages and computation, and derive some theorems regarding what can and cannot be computed. Abstract programming languages (finite automata, context-free grammars, Turing and register machines) are studied. Basic concepts for programming languages, limits on computational power and algorithmic complexity are presented. Church-Turing thesis and quantum computing are briefly and critically discussed.

Prerequisite: COMPSCI 225 and (COMPSCI 220 or PHIL 222)

COMPSCI 351
15 Points

Fundamentals of Database Systems

Database principles. Relational model, Relational Algebra, Relational Calculus, SQL, SQL and Programming Languages, Entity Relationship Model, Normalisation, Query Processing and Query Optimisation, ACID Transactions, Transaction Isolation Levels, Database Recovery, Database Security, Databases and XML.

Prerequisite: COMPSCI 220, 225

Restriction: SOFTENG 351

COMPSCI 367
15 Points

Artificial Intelligence

The cornerstones of AI: representation, utilisation, and acquisition of knowledge. Taking a real world problem and representing it in a computer so that the computer can do inference. Utilising this knowledge and acquiring new knowledge is done by search which is the main technique behind planning and machine learning.

Prerequisite: COMPSCI 220, 225

Restriction: COMPSCI 365, 366

COMPSCI 369
15 Points

Computational Science

Principles of computational science. Computational science is the development and application of computer algorithms and software to solve scientific and engineering problems including probabilistic computer modelling, computer-based statistical inference and computer simulation. Focus is on the analysis of real-world data with emphasis on Computational Biology and Computational Engineering.

Prerequisite: COMPSCI 220, 225 and 15 points from STATS 101-125

COMPSCI 373
15 Points

Computer Graphics and Image Processing

Basic geometric processes including transformations; viewing and projection; back projection and ray tracing. Graphics modelling concepts: primitives, surfaces, and scene graphs, lighting and shading, texture mapping, and curve and surface design. Graphics and image processing fundamentals: image definition and representation, perception and colour models, grey level and colour enhancement, neighbourhood operations and filtering. Use of the OpenGL graphics pipeline.

Prerequisite: COMPSCI 210, 230

Restriction: COMPSCI 372, 375

COMPSCI 380
15 Points

COMPSCI 380A
7.5 Points

COMPSCI 380B
7.5 Points

Undergraduate Project in Computer Science

Each student taking one of these courses will be expected to do an individual practical project under the supervision of a member of staff. Only students with excellent academic records will be allowed to take these courses, and only after a supervisor and topic have been agreed upon by the Head of Department.

Prerequisite: Approval of Head of Department

Restriction: COMPSCI 690

To complete this course students must enrol in COMPSCI 380 A and B, or COMPSCI 380

COMPSCI 390
15 Points

Special Topic in Computer Science 1

COMPSCI 391
15 Points

Special Topic in Computer Science 2

COMPSCI 392
15 Points

Special Topic in Computer Science 3

COMPSCI 393
15 Points

Special Topic in Computer Science 4

Diploma Courses

COMPSCI 601
15 Points

Special Topic

Prerequisite: Permission of the Head of Department

COMPSCI 602
15 Points

Special Topic

Prerequisite: Permission of the Head of Department

COMPSCI 690A
15 Points

COMPSCI 690B
15 Points

Graduate Diploma Dissertation (Computer Science)

Restriction: COMPSCI 380

To complete this course students must enrol in COMPSCI 690 A and B

COMPSCI 691A
15 Points

COMPSCI 691B
15 Points

PG Diploma Dissertation (Computer Science)

Restriction: COMPSCI 780

To complete this course students must enrol in COMPSCI 691 A and B

Postgraduate 700 Level Courses

COMPSCI 701
15 Points

Advanced Topic in Computer Science 1

Prerequisite: Departmental approval

COMPSCI 702
15 Points

Security for Smart-devices

Survey of the most popular platforms for smart-devices (smartphones and tablets), with a focus on their security features and usability. Study of the security limitations of each platform, and of the vulnerabilities that have been exploited in recent attacks. Characterisation of malware families and categories of attacks performed by different malicious samples. Contemporary research on overcoming security limitations of the different mobile platforms. Recommended preparation: COMPSCI 340.

Prerequisite: Departmental approval

COMPSCI 703
15 Points

Advanced Topic in Computer Science 3

Prerequisite: Departmental approval

COMPSCI 704
15 Points

Advanced Topic in Computer Science 4

Prerequisite: Departmental approval

COMPSCI 705
15 Points

Advanced Topics in Human Computer Interaction

Human aspects of computer systems, relevant to commercial solution development and computer science research. Sample topics: advanced evaluation methods; support of pen and touch-based interaction; trends with domain specific user interface design, such as interfaces for enterprise systems. Recommended preparation: COMPSCI 345 or SOFTENG 350.

Prerequisite: Departmental approval

Restriction: SOFTENG 702

COMPSCI 706
15 Points

Advanced Topic in Computer Science 6

Prerequisite: Departmental approval

COMPSCI 707
15 Points

Advanced Topic in Computer Science 7

Prerequisite: Departmental approval

COMPSCI 709
15 Points

Advanced Topic in Computer Science 8

Prerequisite: Departmental approval

COMPSCI 710
15 Points

Advanced Topic in Computer Science 10

Prerequisite: Departmental approval

COMPSCI 711
15 Points

Parallel and Distributed Computing

Computer architectures and languages for exploring parallelism, conceptual models of parallelism, principles for programming in a parallel environment, different models to achieve interprocess communication, concurrency control, distributed algorithms and fault tolerance. Recommended preparation: COMPSCI 335.

Prerequisite: Departmental approval

COMPSCI 715
15 Points

Advanced Computer Graphics

An advanced look at current research issues in computer graphics. Typical topics include: ray-tracing acceleration methods; radiosity; subdivision surfaces; physically-based modelling; animation; image-based lighting and rendering; non-photorealistic rendering; advanced texturing. The precise content may vary from year to year. Consult the department for details. Recommended preparation: COMPSCI 373 or equivalent, and 15 points at Stage II in Mathematics.

Prerequisite: Departmental approval

COMPSCI 718
30 Points

Programming for Industry

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 language features, and contemporary APIs, frameworks and tools.

COMPSCI 719
30 Points

Programming with Web Technologies

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. Students will build a Web-based application that dynamically generates content involving relational database access.

COMPSCI 720
15 Points

Advanced Design and Analysis of Algorithms

Selected advanced topics in design and analysis of algorithms, such as: combinatorial enumeration algorithms; advanced graph algorithms; analytic and probabilistic methods in the analysis of algorithms; randomised algorithms; methods for attacking NP-hard problems. Recommended preparation: COMPSCI 320.

Prerequisite: Departmental approval

COMPSCI 725
15 Points

System Security

Data security: confidentiality, integrity, availability. System security: prohibitions, permissions, obligations, exemptions. The gold standard of dynamic security: authentication, audit, authorisation. Governance: specification, implementation, assurance. Three-layer defence: prevention, detection, response. Control modalities: architectural, economic, legal, normative. System-centric analyses: attacks, threats, vulnerabilities, information flows. Owner-centric analyses: functionality, security, trust, distrust. Data-centric analyses. Security techniques: encryption, obfuscation, tamper resistance. System designs. Recommended preparation: 30 points from COMPSCI 313, 314, 320, 335, 340, 351, 702, 734, 742.

Prerequisite: Departmental approval

COMPSCI 726
15 Points

Network Defence and Countermeasures

Focuses on the use and deployment of protective systems used in securing internal and external networks. Provides a detailed understanding of technologies such as intrusion detection systems, firewalls, anti-virus responses, secure patch deployment, virtual desktop protection, and a host of other security mechanisms. This includes an examination of the infrastructure platform protocols in use today such as ATM, MPLS, RSVP, IPv6, and network switching. The course also looks at national and international standards in network security and explores the current research and developments in this area. Recommended preparation: COMPSCI 314 or equivalent.

Prerequisite: Departmental approval

COMPSCI 727
15 Points

Cryptographic Management

Focuses on the use and deployment of cryptographic systems used in securing communications and data storage. Provides an overview of encryption algorithms and the technologies and systems that support them including symmetric key cryptography, public key infrastructure, digital signatures and certificate technologies. As a part of this overview, this course will concentrate on the management issues of algorithm selection; encryption key generation, distribution, and revocation; and strategies for overcoming encryption security vulnerabilities and their associated breaches. The course also discusses best-practices and compliance with national and international standards and explores the current research and developments in this area.

Prerequisite: Approval of the Head of Department of Computer Science

COMPSCI 732
15 Points

Software Tools and Techniques

An advanced course examining research issues related to tools and techniques for software design and development. Typical topics include: techniques for data mapping and data integration, software architectures for developing software tools, issues in advanced database systems. The precise content may vary from year to year. Consult the department for details. Recommended preparation: COMPSCI 335.

Prerequisite: Departmental approval

COMPSCI 734
15 Points

Web, Mobile and Enterprise Computing

Examines advanced and emerging software architectures at the confluence of XML, web services, distributed systems, and databases. Includes advanced topics in areas such as: mobile computing, remoting, web services for enterprise integration, workflow orchestrations for the enterprise, peer-to-peer computing, grid computing. Recommended preparation: COMPSCI 335.

Prerequisite: Departmental approval

COMPSCI 742
15 Points

Advanced Internet: Global Data Communications

The protocols and performance of local area networks. The special requirements of very high speed networks (100 Mb/s and higher). Asynchronous transfer mode (ATM) and its relation to other protocols. The TCP/IP suite. Recommended preparation: COMPSCI 314.

Prerequisite: Departmental approval

COMPSCI 747
15 Points

Computing Education

An overview of topics related to how people learn Computer Science concepts, and how computers are used to enhance learning. Topics include: research methodologies in Computer Science Education; how novices learn to program; programming languages and environments for children; visualisation of computing concepts; attitudes and diversity in the computing classroom; computer as tools to communicate knowledge, engage students in active learning, and facilitate collaboration; different instructional technologies; using computer software to enhance traditional education practice. Recommended preparation: COMPSCI 345.

Prerequisite: Departmental approval

COMPSCI 750
15 Points

Computational Complexity

Definitions of computational models and complexity classes: time complexity (eg, P and NP), space complexity (eg, L and PSPACE), circuit and parallel complexity (NC), polynomial-time hierarchy (PH), interactive complexity (IP), probabilistic complexity (BPP), and fixed-parameter complexity. Recommended preparation: COMPSCI 320 or 350.

Prerequisite: Departmental approval

COMPSCI 751
15 Points

Advanced Topics in Database Systems

Database principles. Relational model, relational algebra, relational calculus, SQL, SQL and programming languages, entity-relationship model, normalisation, query processing and query optimisation, ACID transactions, transaction isolation levels, database recovery, database security, databases and XML. Research frontiers in database systems. Recommended preparation: COMPSCI 220, 225.

Prerequisite: Departmental approval

Restriction: COMPSCI 351, SOFTENG 351

COMPSCI 752
15 Points

Web Data Management

Web data modelling and management in distributed and heterogeneous environments. Sample topics include: representation languages for Web data (XML and RDF), schema languages for Web data (DTDs, XML Schema, tree automata, RDF Schema, OWL), query languages for Web data (XPath, XQuery, SPARQL), Web search (keyword queries, inverted index, PageRank), large-scale distributed computing (Hadoop, MapReduce, Pig). Recommended preparation: COMPSCI 351 or equivalent.

Prerequisite: Departmental approval

COMPSCI 753
15 Points

Uncertainty in Data

Modern applications such as data cleaning, data integration, financial risk assessment, information extraction, scientific databases, and sensor deployments generate large volumes of uncertain data. This course investigates approaches to modelling, managing and processing uncertain data. It covers the state-of-the-art in representation formalisms and querying techniques for databases where the value of some attributes, or the presence of some records, are uncertain. Concepts and methods are discussed to repair inconsistent databases, but also to extract semantically meaningful information from inconsistent databases. Principled methods are investigated that improve the quality of data in databases. Recommended preparation: COMPSCI 351 or equivalent.

Prerequisite: Departmental approval

COMPSCI 760
15 Points

Datamining and Machine Learning

An overview of the learning problem and the view of learning by search. Techniques for learning such as: decision tree learning, rule learning, exhaustive learning, Bayesian learning, genetic algorithms, reinforcement learning, neural networks, explanation-based learning and inductive logic programming. Experimental methods necessary for understanding machine learning research. Recommended preparation: COMPSCI 367.

Prerequisite: Departmental approval

COMPSCI 761
15 Points

Advanced Topics in Artificial Intelligence

The cornerstones of AI: representation, utilisation, and acquisition of knowledge. Taking a real world problem and representing it in a computer so that the computer can do inference. Utilising this knowledge and acquiring new knowledge is done by search which is the main technique behind planning and machine learning. Research frontiers in artificial intelligence. Recommended preparation: COMPSCI 220, 225.

Prerequisite: Departmental approval

Restriction: COMPSCI 365, 366, 367

COMPSCI 765
15 Points

Interactive Cognitive Systems

Many aspects of intelligence involve interacting with other agents. This suggests that a computational account of the mind should include formalisms for representing models of others' mental states, mechanisms for reasoning about them, and techniques for altering them. This course will examine the role of knowledge and search in these contexts, covering topics such as collaborative problem solving, dialogue processing, social cognition, emotion, moral cognition, and personality, as well as their application to synthetic characters and human-robot interaction.

Recommended preparation: COMPSCI 367

Prerequisite: Departmental approval

COMPSCI 767
15 Points

Intelligent Software Agents

An introduction to the design, implementation and use of intelligent software agents (eg, knowbots, softbots etc). Reviews standard artificial intelligence problem-solving paradigms (eg, planning and expert systems) and knowledge representation formalisms (eg, logic and semantic nets). Surveys agent architectures and multi-agent frameworks. Recommended preparation: COMPSCI 367.

Prerequisite: Departmental approval

COMPSCI 771
15 Points

Advanced Topics in Computer Graphics and Image Processing

Basic geometric processes including transformations; viewing and projection; back projection and ray tracing. Graphics modelling concepts: primitives, surfaces, and scene graphs, lighting and shading, texture mapping, and curve and surface design. Graphics and image processing fundamentals: image definition and representation, perception and colour models, grey level and colour enhancement, neighbourhood operations and filtering. Use of the OpenGL graphics pipeline. Research frontiers in computer graphics and image processing. Recommended preparation: COMPSCI 210, 230.

Prerequisite: Departmental approval

Restriction: COMPSCI 372, 373, 375

COMPSCI 773
15 Points

Intelligent Vision Systems

Computational methods and techniques for computer vision are applied to real-world problems such as 2/3D face biometrics, autonomous navigation, and vision-guided robotics based on 3D scene description. A particular feature of the course work is the emphasis on complete system design. Recommended preparation: COMPSCI 373 and 15 points at Stage II in Mathematics.

Prerequisite: Departmental approval

COMPSCI 775
15 Points

Advanced Multimedia Imaging

Camera calibration, image sequence analysis, computer vision, 3D visualisation, ground truth for image sequence analysis, performance evaluation (noise, accuracy). Applications in vision-based driver assistance, panoramic or 3D visualisation using recorded images, or image and video retrieval. Recommended preparation: COMPSCI 373 and MATHS 208 or 250.

Prerequisite: Departmental approval

COMPSCI 777
15 Points

Computer Games Technology

An advanced course looking at some of the computer graphics and artificial intelligence technology involved in computer games. Typical topics are: an introduction to the gaming industry; commercial modelling and animation software; maximising graphics performance, including such techniques as visibility preprocessing, multiple levels of detail, space subdivision, fast collision detection, direct programming of the graphics card; AI for computer games, including decision trees, rule-based systems, path planning, flocking behaviours, intelligent agents; research issues, such as physically-based modelling, terrain generation, computer learning. Recommended preparation: COMPSCI 367, 373.

Prerequisite: Departmental approval

COMPSCI 778
60 Points

Internship

Enables the development of practical knowledge and hands-on experience through a supervised internship in the IT industry. Students complete a research-informed project, and present both written and oral reports of their findings.

COMPSCI 780
15 Points

COMPSCI 780A
7.5 Points

COMPSCI 780B
7.5 Points

Postgraduate Project in Computer Science 1

Prerequisite: Departmental approval

Restriction: COMPSCI 691

To complete this course students must enrol in COMPSCI 780 A and B, or COMPSCI 780

COMPSCI 789A
15 Points

COMPSCI 789B
15 Points

BSc(Hons) Dissertation

Prerequisite: Approval of Head of Department

To complete this course students must enrol in COMPSCI 789 A and B

COMPSCI 791
30 Points

COMPSCI 791A
15 Points

COMPSCI 791B
15 Points

MProfStuds Dissertation

To complete this course students must enrol in COMPSCI 791 A and B, or COMPSCI 791

COMPSCI 796A
60 Points

COMPSCI 796B
60 Points

MSc Thesis in Computer Science

To complete this course students must enrol in COMPSCI 796 A and B

Top