Courses – Faculty of Science
Computer Science
Stage I
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.
Principles of Computer Science
Extends the programming skills of COMPSCI 101, covering more advanced data structures and their representation and manipulation. Topics include: pointers, dynamic data structures (lists, queues, stacks, trees, hashtables), recursion, sorting and searching.
Prerequisite: COMPSCI 101
Mastering Cyberspace: 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
Computer Systems 1
The low level representation of data and algorithms in the computer. An introduction to computer organisation. The instruction execution model. Assembly language programming. Study of a high-level language and how it is implemented at the machine level. Assembly and disassembly of instructions.
Prerequisite: COMPSCI 101 and 105
Computer Systems 2
Interacting with the operating system via a command line interface and use of a scripting language. Hardware support necessary to implement a secure multi-user operating system: user/kernel mode, exceptions and interrupts, virtual memory, context switching, synchronisation, interrupt driven input/output. An introduction to data communications: the OSI reference model, particularly how the lower layers combine to implement sockets.
Recommended preparation: Prior or concurrent enrolment in COMPSCI 210
Prerequisite: COMPSCI 101, 105
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 101, 105, and 15 points from MATHS 108, 150, 153
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.
Prerequisites: 15 points from MATHS 108, 150, 153, COMPSCI 101, PHIL 101
Restriction: MATHS 255
Software Construction
Students will develop a software application of reasonable complexity through the application of established software development techniques. In doing so, students will demonstrate fundamental skills in object-oriented software development, GUI programming and application-level multithreading. In addition, students will learn established techniques to ensure that their software satisfies quality criteria.
Prerequisite: COMPSCI 101, 105
Enterprise Software Development
Develop a distributed application using an Enterprise technology. Demonstrate skills in data modelling, manipulating and querying; and accessing a remote database server. Model system requirements and design using established notations, to leverage a component-based Enterprise technology, and to use tools to support their activities. Collaborative work experience through pair programming.
Prerequisite: COMPSCI 101 and 105
Restriction: INFOSYS 280
Stage III
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
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 internetworking, routing, transport and security protocols. Basic application protocols as the foundation for distributed computing.
Prerequisite: COMPSCI 210 and (COMPSCI 215 or INFOSYS 224)
Restriction: SOFTENG 364
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
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
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 215, 230
Restriction: SOFTENG 370
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
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)
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
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
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 modeling, 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 and 15 points from STATS 101-125
Computer Graphics and Image Processing
Basic geometric processes including transformations; viewing and projection; back projection and ray tracing. Graphics modeling 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
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
Special Topic in Computer Science 1
Special Topic in Computer Science 2
Special Topic in Computer Science 3
Special Topic in Computer Science 4
Diploma Courses
Special Topic
Prerequisite: Permission of the Head of Department
Special Topic
Prerequisite: Permission of the Head of Department
Graduate Diploma Dissertation (Computer Science)
Restriction: COMPSCI 380
To complete this course students must enrol in COMPSCI 690 A and B
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
Advanced Topic in Computer Science 1
Prerequisite: Departmental approval
Advanced Topic in Computer Science 2
Prerequisite: Departmental approval
Advanced Topic in Computer Science 3
Prerequisite: Departmental approval
Advanced Topic in Computer Science 4
Prerequisite: Departmental approval
Advanced Topics in Human Computer Interaction
Human aspects of computer systems, relevant to commercial solution development and computer science research. Sample topics: support of pen-based interaction on a range of devices such as digital whiteboards, tablet PCs and PDAs; technical infrastructure for pen-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
Advanced Topic in Computer Science 6
Prerequisite: Departmental approval
Advanced Topic in Computer Science 7
Prerequisite: Departmental approval
Advanced Topic in Computer Science 8
Prerequisite: Departmental approval
Advanced Topic in Computer Science 10
Prerequisite: Departmental approval
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 373, 367
Prerequisite: Departmental approval
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
BSc(Hons) Dissertation
Prerequisite: Approval of Head of Department
To complete this course students must enrol in COMPSCI 789 A and B
History of Computing and Computers
A survey of the historical context of modern computing and information technology. History of computing and computing devices prior to the computer age. Developments in computing since the introduction of electronic computers. Significant software developments and applications of computers.
Recommended preparation: 60 points from Stage III Computer Science courses
Prerequisite: Departmental approval
MSc Thesis in Computer Science
To complete this course students must enrol in COMPSCI 796 A and B
Source: The University of Auckland 2012 Online Calendar
Last updated on: Tuesday 1 November 2011
Viewed on:
- COMPSCI 101
- COMPSCI 105
- COMPSCI 111
- COMPSCI 111G
- COMPSCI 210
- COMPSCI 215
- COMPSCI 220
- COMPSCI 225
- COMPSCI 230
- COMPSCI 280
- COMPSCI 313
- COMPSCI 314
- COMPSCI 320
- COMPSCI 335
- COMPSCI 340
- COMPSCI 345
- COMPSCI 350
- COMPSCI 351
- COMPSCI 367
- COMPSCI 369
- COMPSCI 373
- COMPSCI 380
- COMPSCI 380A
- COMPSCI 380B
- COMPSCI 390
- COMPSCI 391
- COMPSCI 392
- COMPSCI 393
- COMPSCI 601
- COMPSCI 602
- COMPSCI 690A
- COMPSCI 690B
- COMPSCI 691A
- COMPSCI 691B
- COMPSCI 701
- COMPSCI 702
- COMPSCI 703
- COMPSCI 704
- COMPSCI 705
- COMPSCI 706
- COMPSCI 707
- COMPSCI 709
- COMPSCI 710
- COMPSCI 711
- COMPSCI 715
- COMPSCI 720
- COMPSCI 725
- COMPSCI 732
- COMPSCI 734
- COMPSCI 742
- COMPSCI 750
- COMPSCI 751
- COMPSCI 760
- COMPSCI 761
- COMPSCI 767
- COMPSCI 771
- COMPSCI 773
- COMPSCI 775
- COMPSCI 777
- COMPSCI 780
- COMPSCI 780A
- COMPSCI 780B
- COMPSCI 789A
- COMPSCI 789B
- COMPSCI 790
- COMPSCI 796A
- COMPSCI 796B


