159

Computer Science

159.100 Introduction to Programming15 credits
This course provides an introduction to computer programming. The language is C++ which is a "real world" language heavily used in games, real-time applications and the control of devices. The course guides students through all the steps needed to write, compile and debug simple C++ programs with lots of practical examples. No previous programming experience is required.
159.101 Technical Programming 115 credits
This course introduces the technical aspects of programming using the C language. It is an essential preparation for the advanced courses in C++. The course includes an introduction to number systems and twos complement. The focus is on problem solving and the design of logical and efficient programming solutions.
159.102 Technical Programming 215 credits
This course follows 159.101 and continues the technical aspects of programming using the C language. It is an important preparation for the advanced courses in C++. The course includes an overview of the circuits and components of a computer system and an introduction to assembler programming. It advances the programming knowledge obtained in 159.101 to include structures, pointers and bitwise operations. The focus is on problem solving and the design of logical and efficient programming solutions.
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 Programming 115 credits
The focus of this course is on problem solving and the design of logical and efficient computer-based solutions to real-world problems. This is a practical course with an emphasis on software construction using basic data structures and algorithmic methods that are common to many programming languages. The programming language used will be a high level, multi-paradigm, programming language, such as Python. The course is intended as preparation for advanced courses in object-oriented, functional and scientific programming. Students will gain an appreciation of simple software design principles and the ability to create useful custom-built programs.
159.172 Computational Thinking and Programming 215 credits
This course follows on from 159.171 by extending programming ability and putting the developed methods into context. It advances the programming knowledge obtained in 159.171 to include recursion, abstract data types and basic foundations of functional and object-oriented programming. It introduces elements of algorithm design and analysis. The programming language used will be a high level, multi-paradigm, programming language, such as Python. The course is intended as preparation for advanced courses in object-oriented, functional and scientific programming. Students will gain an appreciation of aspects of computer science theory and the ability to program using a range of computational techniques and data structures.
159.201 Algorithms and Data Structures15 credits
An introduction to the analysis and implementation of algorithms and data structures including abstract data types, linear data structures, trees, graphs, hash tables, searching algorithms, sorting algorithms, optimisation problems and complexity analysis. The course includes a significant practical component covering the implementation and application of important data structures and algorithms.
159.202 Declarative Programming15 credits
This course continues the study of computer programming with an introduction to declarative programming languages. The principles of the declarative programming paradigm are explored through practical examples. Key topics include recursion, list processing, lazy evaluation and higher-order functions.
159.233 Computer Architecture15 credits
Digital logic. Architecture. Processor organisation, analysis and design. Assembler programming.
159.234 Object-Oriented Programming15 credits
A key course that introduces the principles of object-oriented programming. It covers both object-oriented programming techniques and their application to program design including classes, objects, abstraction, encapsulation, inheritance, polymorphism and generic programming. The course includes a significant practical component involving the implementation of object-oriented programs in Java and C++.
159.235 Graphical Programming15 credits
An introduction to the programming principles, methods and techniques of computer graphics. The course covers general graphics methods and techniques alongside the practical considerations for developing graphical applications and includes programming graphical user interfaces with event-driven models, graphics transformations, drawing algorithms and 3D rendering.
159.236 Embedded Programming15 credits
A study of embedded programming using low-level programming languages. The course covers the hardware architecture of an embedded system and the techniques needed to write programs for simple peripherals such as switches, LEDs, timers and accelerometers.
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.261 Games Programming15 credits
An exploration of a range of essential topics for implementing computer games including fundamental computer graphics, games software architecture and game physics systems. The course contains a significant practical computer lab component where students are guided through the games development process.
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
An advanced study of the principles and techniques used in developing Artificial Intelligence applications. The course includes the implementation and application of a range of AI methods including state-space representation and search, knowledge representation, constraint satisfaction, game playing, logic systems and machine learning.
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
The course covers many practical aspects of designing, creating, testing and publishing mobile applications. Students will develop mobile applications using a real software development toolkit and have the option of publishing their applications to an app marketplace.
159.339 Internet Programming15 credits
An advanced study in programming Internet applications and modern web technologies including scripting, HTML, client- and server-side programs, web request/response mechanism and Internet security.
159.341 Programming Languages, Algorithms and Concurrency15 credits
Advanced study in models of computation, programming languages and algorithms with a specific focus on concurrent programming. The course includes models of computation, programming language paradigms, programming language design, algorithm analysis, processes, threads, synchronisation and parallel programming.
159.342 Operating Systems and Networks15 credits
A detailed study of operating systems and network communication protocols. The course covers the technologies that underpin modern computer systems including the architecture of operating systems and their structures and methods along with computer network design, protocols and associated technologies.
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 the security 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.361 Advanced Games Programming15 credits
This course continues the study of games programming by exploring the development of computer games using a modern game engine. The development of games and specific game systems within a modern architecture are covered with a significant practical component.
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