Computer Science

159.101 Programming Fundamentals15 credits
This introductory course teaches the fundamental concepts of using and programming computers through practical experience and problem-solving in a high-level language.
159.102 Computer Science Fundamentals15 credits
An introduction to computer science: the discipline, computer systems, the theory of problem-solving and computer applications. Practical laboratory work is an important part of this course.
159.103 Introduction to Games Programming and Simulation15 credits
The essentials of designing and constructing computer games; game software architecture; types of games; basic concepts of Artificial Intelligence; basic concepts of computer graphics; platform and performance issues. This course requires a significant practical programming component.


159.171 Computational Thinking and Software Development15 credits
How to structure problems to find computer based solutions to them. This is a practical course with an emphasis on software construction in a high level programming language, such as Python.
159.172 Computational Thinking and Algorithms15 credits
An introduction to computational structures and processes, building on from159.171 by extending programming ability and putting the developed methods into context. This course combines theory and practice with an emphasis on algorithm design and implementation using a high level programming language, such as Python.

Computer Science

159.201 Algorithms and Data Structures15 credits
Structured types. Array, list, tree and graph algorithms. Hash tables. Dynamic data structures. Abstract data types. Laboratory work is an important part of this course.
159.202 Declarative Programming15 credits
Basic functional programming: functions, pattern matching, types, recursion, list processing. Basic logic programming: clauses, recursion, structures, arithmetic, list processing. Programming language concepts. Programming paradigms and language selection.
159.233 Computer Architecture15 credits
Digital logic. Architecture. Processor organisation, analysis and design. Assembler programming.
159.234 Object-Oriented Programming15 credits
Introduction to Object-Oriented programming; classes, objects, templates, inheritance, polymorphism, iterators, object libraries.
159.235 Graphical Programming15 credits
Programming graphical-user-interfaces using an event-driven model. Drawing and transformation of graphical objects. Rendering in 3D. Animation techniques. Programming with graphical libraries.
159.251 Software Engineering Design and Construction15 credits
A study of techniques, methods and tools used to design and construct high-quality software systems.
159.253 Computer Systems15 credits
Computer architecture, assembler, processor organization. A case study, highlighting the decisions involved in producing a well-designed computer architecture.
159.270 Hardware-Oriented Computing15 credits
A study of programming in a hardware-oriented language such as C and the construction of object-oriented software solutions using C++. The course has a practical focus based on concepts such as pointers, memory allocation, objects, classes, operator overloading, inheritance, and polymorphism. It addresses techniques such as structuring programs, software testing and debugging techniques, and the use of microcontrollers.
159.271 Computational Thinking for Problem Solving15 credits
An in-depth study of data structures and the design and analysis of algorithms to solve real-world problems. The course has a practical focus based on the correct implementation of algorithms in a high level programming language. An introduction to computability, tractability and strategies to address issues related to intractability.
159.272 Programming Paradigms15 credits
A study of modern programming paradigms with an emphasis on object-oriented and functional languages, such as Java and Haskell, and including hybrid languages, such as Scala and Ruby. The selection of appropriate languages for real-world applications, such as user-interface construction and concurrent programming, is a focus of this course.
159.302 Artificial Intelligence15 credits
AI programming. State space representation and search. Heuristics. Planning. Game playing. Knowledge representation. Knowledge-based systems. Natural language processing. Machine learning. Reasoning under uncertainty. Philosophical issues.
159.331 Algorithms and Languages15 credits
Comparative programming languages. Programming and algorithm design using different paradigms. Algorithm analysis. Algorithm complexity.
159.333 Programming Project15 credits
An intensive computer programming project. Students will develop software as a team and design and implement either a new piece of software or upgrade and enhance an existing project. The focus will be on the algorithms and data structures required for efficient operation.
159.334 Computer Networks15 credits
A layered approach to data communications and the Internet protocols.
159.335 Concurrent Programming and Operating Systems15 credits
Task parallelism: processes, synchronisation methods. Operating systems, structures and techniques. Brief introduction to data-parallel and distributed computing.
159.336 Mobile Application Development15 credits
An introduction to mobile application design. Students will gain practical skills designing, creating and testing a mobile application. They will use a commercial software development toolkit and have the option of publishing their applications to an app marketplace.
159.339 Internet Programming15 credits
Advanced concepts of programming computers across the Internet: scripting, HTML, client and server-side programs, distributed objects, distributed object frameworks, security.
159.352 Advanced Web Development15 credits
A study of the programming and scripting languages, frameworks and tools used to develop web and distributed applications with a consideration of security and privacy issues involved in these technologies.
159.354 Data Communication Networks15 credits
The Internet is a fundamental platform for communication in our world. The architecture and protocols of this network of networks are essential to how they operate. This course focusses on the associated multi-layer protocol structure of the Internet by showing how it is constructed and how protocols underpin the variety of applications developed to support business, education and social networking.
159.355 Concurrent Systems15 credits
This course builds on concurrency theory giving practical experience in all aspects of concurrent programming, including issues of synchronisation. Operating systems, structures and techniques are presented as examples of complex, concurrent programs.
159.356 Software Engineering Capstone Project15 credits
Management of the software engineering process. A group project will form a significant component of this course.
159.360 Programming for Computer Graphics15 credits
Generating graphical images and animations involves a variety of concepts and tools, starting from basic modeling and algorithms to advanced tools for graphics programming. The course covers theory and underlying algorithms as well as practical programming exercises including games using 3D graphics.
159.372 Intelligent Machines15 credits
This course introduces fundamental techniques to create intelligent machines, including formalisms for representing knowledge and reasoning about it, methods for searching and planning, and approaches to machine learning.
159.391 Special Topic15 credits
159.392 Special Topic15 credits
159.702 Knowledge Engineering15 credits
A study of state-of-the-art techniques in knowledge engineering used in the context of the semantic web, such as ontologies, OWL, description logic, rule engines and graph databases.
159.703 Advanced Computer Systems15 credits
Advanced topics in computer systems, including concurrency, interconnection networks and technology drivers.
159.704 Systems Programming15 credits
Internet of Things, general-purpose input/output (GPIO) programming, sensor integration, cloud computing, wireless and mobile networks.
159.707 Advanced Software Design and Construction15 credits
A study of state-of-the art techniques used to design and construct complex, enterprise-level software systems, including: component-based software engineering, dependency injection, frameworks, design patterns, design analysis, aspect-oriented programming, distributed objects, meta programming and multi-paradigm programming languages.
159.709 Computer Graphics15 credits
Graphics devices. Interactive graphics systems. Drawing algorithms. Lines and polygons. Curves and surfaces. Representation of 3-D objects. Perspective. Techniques for visual realism. The course will include practical programming work.
159.710 User Interface Design15 credits
Practical techniques, models and tools to support the analysis and design of user interfaces.
159.731 Studies in Computer Vision15 credits
Selected advanced topics including: low level digital image processing, 2D/3D image processing, image transforms, pattern recognition.
159.732 Studies in Computer Programming15 credits
Selected advanced topics including: programming paradigms; procedure; functional; declarative; object-oriented; compiler techniques.
159.735 Studies in Parallel and Distributed Systems15 credits
Selected advanced topics including: Parallel computing; network security; client-server computing; compression; web applications; wireless and mobile computing.
159.736 Studies in Operating Systems and Architecture15 credits
Selected advanced topics including: Concurrency; scheduling; API programming; real-time and embedded systems; fault tolerance; computer architecture; HDLs.
159.737 Studies in Compilers and Grammars15 credits
Selected advanced topics from grammars and compilers, including: formal grammars, languages, lexical analysis, parsing, semantic analysis, optimization and code generation. This course contains significant practical programming.
159.738 Special Topic15 credits
159.739 Special Topic15 credits
159.740 Studies in Intelligent Systems15 credits
Selected advanced topics including: knowledge-based systems; AI; agents; natural language processing; search and constraint satisfaction.
159.794 Project15 credits
159.795 Project15 credits
159.870 Research Report60 credits
159.871 Thesis 90 Credit Part 145 credits
A supervised and guided independent study resulting in a published work.
159.872 Thesis 90 Credit Part 245 credits
A supervised and guided independent study resulting in a published work.
159.875 Thesis90 credits
A supervised and guided independent study resulting in a published work.
159.888 Computer Science Professional Project60 credits
Candidates will undertake a practical and/or research project including the design and production of a significant software application. This may be conducted either individually or in groups and assessment may be in a variety of ways including written and oral presentations and software demonstrations.
159.897 Thesis 120 Credit Part 160 credits
A supervised and guided independent study resulting in a published work.
159.898 Thesis 120 Credit Part 260 credits
A supervised and guided independent study resulting in a published work.
159.899 Thesis120 credits
A supervised and guided independent study resulting in a published work.
159.900 PhD Computer Science120 credits

Massey Contact Centre Mon - Fri 8:30am to 4:30pm 0800 MASSEY (+64 6 350 5701) TXT 5222 contact@massey.ac.nz Web chat Staff Alumni News Māori @ Massey