Department of Computer Science
Notes for 400-Level Students

Coördinator Richard O'Keefe
Room 107B
Telephone 479 8494

These notes describe the 2016 programme of studies for 400 level in the Department of Computer Science. They include brief descriptions of the papers, including staff, textbooks, and class times. Those descriptions are tentative and may be changed. Any changes will be described at the first formal meeting of a paper for which changes are made.

We hope you have an interesting and enjoyable year in the department.


There will be a two-hour meeting for each class each week in each paper, which will be held in G34 or in a lab as appropriate. Classes are relatively informal. We expect you to take an active part in them. You should attend all of them. If you have to miss a meeting, please give your apologies in advance. Changes to class times shown below are possible but very unlikely.


Most papers have an examination worth 60% and assignments worth 40% of the final mark. Each paper involves set assignments on various topics. One of the preliminary lecture hand-outs gives the number, due dates, and exact assessment weighting of assignments. Keep that hand-out! This information will be placed in the individual course web pages.

Deadlines for submission must be observed; there is a penalty of 10% per working day for late submissions.

Formal three-hour examinations will be held at the normal examination time (end of Semester). Unless otherwise advised you should assume they will be closed book examinations. The Examinations Office will choose the locations close to exam time as usual.


Workload is always an issue for 400-level students. If you have a problem with workload in a particular paper, speak to the lecturer(s) concerned, or get your class representative to do so. The 400-level courses are always being revised, and your feedback is valued. One important aspect concerns the balance between semesters. You will find your project work demanding a lot of your time in the second semester.

All projects are worth 40 points; all semester papers are worth 20 points.


While no textbooks are formally required, some are recommended, and students are expected to make considerable use of the University Library for books and periodicals. We have electronic subscriptions to many relevant journals.


If you had a departmental user-code last year, you have the same one again this year.

If you are enrolled in one of these papers and did not have a departmental user-code, we shall give you one.

If you are not yet enrolled in one of these papers, take care of that first.

We provide access to our machines for course-work only. Using them implies that you promise to obey the departmental and University regulations; see


Much departmental communication is based on e-mail. All mail from this department to you will be sent to your university-provided student e-mail address. If you want your e-mail delivered to some other address, it is up to you to arrange this.

Please make sure you read your e-mail frequently. Coördinators will use e-mail for announcements and messages of interest to 400-level students.

We have a skilled and helpful technical support team. You should e-mail requests for help to They tend to be very busy, especially at the start of a semester.

Going Paperless

The department is trying to reduce its printing costs, so some or all materials for papers may be provided in electronic form rather than on paper. This does not mean that it is any less important for you to read anything we direct your attention to. Assume that even electronic material is examinable unless you are told otherwise. If you find reading on-screen particularly difficult, let your lecturer(s) know so that special arrangements can be made.

Weekly Seminars

We expect our students to attend our seminar programme. Seminars are normally held on Fridays at 1 pm in Owheo G34. The atmosphere is informal and many interesting topics are discussed. This is your chance to learn about things we cannot include in the lectures, and to question and argue with the experts.

Students with disabilities

Students with enquiries about disabilities of any kind, including temporary ones, should contact Kaye Saunders (; 479 8397) for further information.

Māori and Pacific students

Alistair Knott ( is the department's Māori support person (kaiāwhina), and also has links with the Pacific Island centre. If you would like information about support or mentoring, or have any questions, please contact Alistair.

Special Consideration/Impairment of Performance

If you need to claim special consideration (e.g., due to impairment of performance) in a final examination you should apply through eVision ( within five days of your last examination.

If you have a problem that affects your internal assessment, inform this department. If possible, discuss it with your lecturer(s) beforehand.

Description of whole-year papers

Projects are research supervised by a staff member. They last for two semesters. Every project requires a written interim report at the end of the first semester, an oral presentation at the beginning of the second semester, and a written final report at the end.

The written reports are expected to conform to guidelines described in the document “Notes on the Preparation of Theses” (available from the reference section of the library) and to the guidelines supplied by the department. You should read the 2016 Project Guide: see

COSC480 — Project

If you are enrolled in the first year of a two-year Masters degree (MA or MSc), you must take a project paper, and it would normally be COSC480. If you are enrolled in a Postgraduate Diploma (PGDipArts or PGDipSci), you do not have to take a project paper unless you intend to carry on to the one-year MSc or MA by thesis. If you do decide to take a project paper it would normally be COSC480.

A COSC480 project could be a critical literature survey (especially suitable for MSc students) or some software development (especially suitable for Post-graduate Diploma students). It is up to you and your supervisor to work out a suitable workload. We recommend that you select a project topic from our list, but you can suggest another topic, if you can find a staff member who is willing to supervise it. For MSc students the project may lead into next year's thesis; these students will need to arrange a thesis topic and supervisor. We very strongly recommend regular and frequent meetings with your supervisor, whatever kind of project you are doing. We do not enforce this, but your supervisor is there to help and you do not want to fail.

COSC490 — Research Project

If you are enrolled in an Honours degree (BA Hons or BSc Hons), you must take COSC490.

A COSC490 project could be a critical literature survey or some other kind of research. It is up to you and your supervisor to work out a suitable workload. We recommend that you select a project topic from our list, but you can suggest another topic, if you can find a staff member who is willing to supervise it. We very strongly recommend regular and frequent meetings with your supervisor, whatever kind of project you are doing. We do not enforce this, but your supervisor is there to help and you do not want to fail.

Description of papers Offered in Semester 1

Monday 10:00–11:50 COSC430
Tuesday 9:00–10:50 COSC420
Wednesday 9:00–10:50 TELE402 lecture
Wednesday 2:00–3:50 TELE402 lab (in Lab E)
Thursday 11:00–12:50 COSC410
Friday 9:00–10:50 COSC450

COSC410Logic for artificial intelligence

This paper involves the study of interpreted formal languages in the context of reasoning agents that may or may not be human, an emphasis which has evolved from the use of logic as a modelling tool in artificial intelligence. Since logic is also central to the study of program correctness, it forms an important building block in any advanced understanding of computer science. We shall also examine Description Logics, which underpin the RDF and OWL “semantic web” technologies.

Time Thursday 11:00–12:50
Lecturers Willem Labuschagne and Richard O'Keefe
Assessment 30% internal and 70% examination.

COSC420Neural Networks

This paper explores the nature of computation, the capabilities of computational systems inspired by the workings of the brain, and the application of such systems to complex topics such as vision, language, learning and memory. Exploring these topics draws on research in several disciplines, such as computer science, neuroscience and psychology.

Time Tuesday 9:00–10:50
Lecturer Anthony Robins
Assessment 40% internal and 60% examination.

COSC430Advanced Database Topics

This paper examines the theory and practice of database design and administration. It also provides a survey of research in the database field, such as data mining, multidimensional indexing, temporal databases, and distributed database architectures. Practical work setting up and administering an Oracle database is an important part of this paper; this part of the paper will be held in a lab, not G34.

Time Monday 10:00–11:50
Lecturers David Eyers, Cathy Chandra, and Richard O'Keefe
Assessment 40% internal and 60% examination.

COSC450Computer Vision and Graphics

A selection of topics from computer vision and computer graphics. Computer vision is the use of algorithms to understand the world from images and video, while computer graphics creates images and video from models of real and virtual environments. These two areas can be viewed as inverses of each other, but are increasingly intertwined. In this paper we shall look at several topics in vision and graphics from both a practical and theoretical perspective.

Time Friday 9:00–10:50
Lecturer Steven Mills
Assessment 40% internal and 60% examination.


This paper covers advanced network theory, network programming techniques, and protocol development skills that are useful in both industry and applied research. Topics include socket programming over TCP and UDP, network programming over client-server architecture, concurrent server implementation, name and address resolution, programming over IPv6, multicasting and broadcasting, advanced routing in the Internet, wireless sensor networks, and programming in wireless networks.

The overall aim is to provide students with sufficient background in advanced network theory and to equip students with necessary skills in network programming. This paper will also give students practice in creative thinking about computer networks.

Time Wednesday 9:00–10:50 (lecture)
Lab Wednesday 2:00–3:50 (lab, in Lab E)
Lecturers Haibo Zhang and Yawen Chen
Assessment 40% internal and 60% examination.

Description of papers Offered in Semester 2

Monday 11:00–12:50 COSC431
Tuesday 9:00–10:50 COSC421
Tuesday 11:00–12:50 COSC441
Wednesday 9:00–10:50 COSC440 (lecture)
Wednesday 11:00–12:50 COSC412
Wednesday 2:00–3:50 COSC440 (laboratory in 127)

COSC412Complexity and Cryptography

This covers complexity classes and their relationships, and the basic theory of cryptography including public key systems. We shall take an “applied” approach.

The overall aim is to provide students with an understanding of the rôle played by various aspects of complexity in modern computing theory, and to explore the modern theoretical bases of cryptography — a central aspect of contemperary computing both in theory and in practice.

Time Wednesday 11:00–12:50
Lecturers Michael Albert and David Eyers
Assessment 40% internal and 60% examination.

COSC421Neural Models of Language

This paper addresses the question of how language works in the human brain. Answering this question draws on research in several disciplines: neuroscience, psychology, linguistics, and computational modelling. The aim of the course is to provide an accessible introduction to the relevant topics for students from each of these disciplines. We will approach the topic by focussing on the interface between language and the sensorimotor system. We consider an observer perceiving a simple concrete event (a man grabbing a cup), and examine what is involved in converting the sensorimotor representation of this event to a linguistic representation — for instance, the English sentence “The man grabbed a cup”.

You will learn about: the key empirical methods employed in psychology and neuroscience (behavioural experiments, neuroimaging, single-cell recording, lesion studies); some of the influential computational models of sensorimotor cognition and language processing (saliency maps, convolutional networks, motor control, the mirror system, competitive queueing networks, Elman networks, cross-situational word learning); and the basics of two influential syntactic theories (Chomsky's Minimalism and Goldberg's Construction Grammar).

Time Tuesday 9:00–10:50
Lecturer Alistair Knott
Assessment 60% internal and 40% examination.

COSC431Information Retrieval

This paper will enhance the understanding of concepts, principles, and algorithms in Information Retrieval and bring students to the frontiers of research in the topic.

This paper will cover those aspects of Information Retrieval necessary to understand and implement a simple relevance ranking search engine. It will start with parsing and simple natural language processing as it applies to indexing and then move on to the advanced data structures seen in searching the index. Methods of improving the performance of the search engine will be introduced. Such methods include relevance feedback, link-mining, and so on.

By the end of the course students will understand how and why search engines work, will have implemented a simple scalable search engine and will be familiar with current research in the topic.

Time Monday 11:00–12:50
Lecturers Andrew Trotman and Richard O'Keefe
Assessment 40% internal and 60% examination.

COSC440Advanced Operating Systems

This paper covers process management, memory management, I/O systems, and file systems in a real operating system (Linux). It will enable students to write modules working in Linux kernel. Issues such as process management, interrupts and exceptions, device drivers, concurrency, memory management, file systems, interrupt handling, security, and performance optimisations will be discussed and experienced through programming. Modern operating systems research such as microkernels will be exposed through reading materials. This paper will also cover the Windows Research Kernel as a case study and for comparison purposes in a few lectures.

Time Wednesday 9:00–10:50 a.m. (lecture);
Wednesday 2:00–3:50 p.m. (laboratory in 127)
Lecturer Zhiyi Huang
Assessment 100% internal

COSC441Concurrent Programming

This paper presents theory and practice of concurrent programming, including locks, transactional memory, and message passing; multicore and distributed systems; and specification and testing of protocols.

Concurrent programming is about building programs in which many activities are taking place, and the existence of and collaboration between these activities is essential to the program's design. In distributed systems, like credit card systems and telephone networks, the activities happen on physically separate machines communicating by sending messages over wires or radio channels. In multicore computers, the activities may take place on one or many cores and they may communicate through shared memory. The difficulties and principles are similar.

Time Tuesday 11:00-12:50
Lecturer Richard O'Keefe
Assessment 40% internal and 60% examination