Software Engineering (2018)
Software engineering is the scientific, disciplined and quantifiable approach to developing, operating and maintaining complex software systems. These software systems include operating systems, networks, real-time and embedded systems, distributed and parallel systems, as well as engineering, scientific and business application software. The Software Engineering programme at Waikato emphasises the software engineering process, formal methods for software engineering, and human-computer interaction. The programme starts from scratch, and teaches programming skills using C# and Microsoft Visual Studio, before moving on to Java and even further to more modern languages. The final year project assimilates material taught in the earlier years with material from related disciplines such as electronics and industrial sources. It prepares students well for professional practice as well as continuing, or further, education and research.
Software Engineering is available as a specified programme for the BE(Hons).
To complete the specified programme in Software Engineering, students must follow the following programme.
Note: Students who commenced a specified programme in Software Engineering in 2016 or prior and are undertaking their third year in 2018 will do so using existing 20 point papers. Students are encouraged to contact the Faculty of Computing and Mathematical Sciences for programme advice.
On this page
Students must take the following papers: COMPX101, COMPX102, ENGEN170, ENGEN180, ENGEN183, ENGEN184 and MATHS135.
And 15 points from the following: APHYS111, CHEMY100, CHEMY101, CHEMY102, ENGEN110, ENGEN111, ENGEN112, PHYSC100, PHYSC101.
Students must take the following papers: COMPX203, COMPX204, COMPX223, COMPX241, COMPX242, COMPX361, ENGEN201, ENGEN270 and ENGEN271.
Students must take the following papers: COMPX301, COMPX304, COMPX307, COMPX324, COMPX341, COMPX374, ENGEV342, ENGEN301, and ENGEN371.
Students must take ENGEN570 and ENGEN582, 30 points from any 500 level COMPX paper, one of COMPX526, COMPX552 or COMPX554, and one of COMPX524, COMPX539 or COMPX548.
Code Paper Title Occurrence / Location APHYS111 Physics in Context 18A (Hamilton) This is an introductory paper in physics for students who have not studied physics or mathematics at NCEA level 2 or 3. It is intended to support a major in other science subjects. Emphasis is placed on describing everyday physics concepts using correct terminology. Examples of physics in action are drawn from many science areas. T... CHEMY100 Chemistry in Context 18A (Hamilton) This is an introductory paper for students with a limited background in chemistry. There is a strong emphasis on teaching chemical concepts through real-world examples relevant to different science and engineering disciplines. CHEMY101 Structure and Spectroscopy 18A (Hamilton) & 18C (Hamilton) A theoretical and practical course covering aspects of analytical and inorganic chemistry. This course is required for the chemistry major. CHEMY102 Chemical Reactivity 18B (Hamilton) A theoretical and practical course covering aspects of physical and organic chemistry. This course is required for the chemistry major. COMPX101 Introduction to Computer Science 18A (Hamilton), 18A (Online), 18B (Hamilton), 18C (Zhejiang University City College, Hangzhou China) & 18T (Hamilton) This paper introduces computer programming in C# - the exciting challenge of creating software and designing artificial worlds within the computer. It also covers concepts such as the internals of the home computer, the history and future of computers, cyber security, computer gaming, databases, mobile computing and current researc... COMPX102 Object-Oriented Programming 18B (Hamilton), 18C (Zhejiang University City College, Hangzhou China) & 18S (Hamilton) This paper continues from COMPX101, expanding upon data organisation and algorithms, and introducing code contracts, computer architecture, Boolean algebra, assembly language, program analysis and object-oriented programming. ENGEN103 Engineering Computing 18A (Hamilton) This paper introduces computer programming in languages such as C# and Python. It provides the basis for the programming skills required in more advanced papers within the School of Engineering. ENGEN110 Engineering Mechanics 18B (Hamilton) This paper covers aspects of engineering mechanics. ENGEN111 Electricity and Electronics 18A (Hamilton) & 18T (Hamilton) Students are introduced to underlying concepts in electricity such as current, voltage and power, and apply these concepts in a laboratory by making circuits and measuring them with common laboratory instruments. ENGEN112 Materials Science and Engineering 18B (Hamilton) Introduction to engineering materials (metals, ceramics, polymers, composites, semiconductors and biomaterials) and their atomic structure and mechanical properties. Includes; elastic and plastic deformation, fracture mechanisms, failure in service, iron-carbon phase diagram, redox reactions in corrosion, production of polymers, ce... ENGEN170 Engineering and Society 18B (Hamilton) Introduction to the role of engineering in society in particular understanding of Treaty of Waitangi, history of science, engineering and technology, philosophy and ethics and public participation, participatory design, sustainability. ENGEN180 Foundations of Engineering 18A (Hamilton) Introduction to the engineering design process and computer aided design, fundamental principles of engineering analysis, open ended problem solving, engineering economics and the skills of a successful engineer. Includes a design-build-test experience. ENGEN183 Linear Algebra and Statistics for Engineers 18A (Hamilton) & 18B (Hamilton) A study of introductory statistics and the fundamental techniques of algebra including Gaussian elimination, vector and matrix algebra, complex numbers, eigenvalues and eigenvectors, as well as basic statistical notions and tools, with engineering applications. ENGEN184 Calculus for Engineers 18A (Hamilton), 18B (Hamilton) & 18S (Hamilton) A study of the fundamental techniques of calculus, including differentiation and integration for functions of one real variable, with engineering applications. MATHS135 Discrete Structures 18B (Hamilton) An introduction to a number of the structures of discrete mathematics with wide applicability in areas such as: computer logic, analysis of algorithms, telecommunications, networks and public key cryptography. In addition it introduces a number of fundamental concepts which are useful in Statistics, Computer Science and further stu... PHYSC100 General Physics 18A (Hamilton) This paper provides an introduction to the core ideas in physics. Topics covered include kinematics, mechanics, fluids, electric and magnetic forces and fields, electric circuits, optics, modern physics and relativity, taught in a problem solving context. PHYSC101 Physics for Engineers and Scientists 18B (Hamilton) This is a lecture and laboratory course covering fundamental physics concepts relevant to engineers and scientists. Topics covered include vectors, kinematics, force, work, energy, collisions, rotation, equilibrium, oscillations, waves, sound, electricity, magnetism, and light.
Code Paper Title Occurrence / Location COMPX203 Computer Systems 18A (Hamilton) & 18B (Hamilton) This paper provides an overview of the operation of computer systems. The central theme is the way in which the hardware and software co-operate to allow the execution of programs written in a high-level language. COMPX204 Practical Networking and Cyber Security 18B (Hamilton) This paper provides an overview of the technologies and protocols involved in computer communications and cyber security. Practical work includes network programming. COMPX223 Database Practice and Experience 18A (Hamilton) This paper approaches the subject of databases from a practical perspective - how do I create a database and how do I retrieve/update data. Both aspects are heavily addressed in this paper. Database creation and querying, using SQL, will be introduced in lectures as you will master practical skills associated with a commercial Data... COMPX241 Software Engineering Development 18A (Hamilton) Students will learn how to program in Java and design, analyse, and apply commonly used data structures. Broader software engineering practices will be developed through a group project. COMPX242 Software Engineering Process 18B (Hamilton) This paper covers object-oriented programming, primarily as seen in Java, but also touching on alternative approaches. It introduces software development methodologies and the use of support tools, particularly repositories and a testing framework. Project work starts with GUI develoment in Java and works through to the constructio... ENGEN201 Engineering Mathematics 2 18B (Hamilton) Calculus of Several Variables and its Applications. Vector calculus (Green's, Gauss' and Stokes' theorems). Taylor's Theorem in n dimensions. Introduction to partial differential equations. Fourier series. ENGEN270 Engineering Professional Practice 1 18A (Hamilton) Preparation for success in the engineering workplace including CV preparation, interview techniques, job seeking skills, online profile, workplace and engineering business cultures and norms, ethics, communication and management structures.
Code Paper Title Occurrence / Location COMP314 Software Engineering Project 18B (Hamilton) Students work in small groups to build a medium sized software project. They develop requirements and specification, design the system structure and user interface, carry out documentation, implementation and maintenance. COMP317 Design and Analysis of Algorithms 18A (Hamilton) A study of classical and recently developed algorithms for solving a diverse range of problems using computers. Issues of performance, scalability, applicability, adaptation and design are also discussed. COMP321 Practical Data Mining 18B (Hamilton) & 18B (Tauranga) This paper is a practical introduction to data mining. It covers important aspects of the data mining process such as feature selection, model building, parameter tuning and final evaluation. COMP325 Human-Computer Interaction 18B (Hamilton) & 18B (Tauranga) An introduction to the theory and practice of human-computer interaction, including the interface development process in the system life-cycle, software tools and architectures to support modern interface and software usability. COMPX361 Logic and Computation 18B (Hamilton) The syllabus includes: further development of predicate logic with application to program verification; mathematical induction including structural induction; finite state automata and regular languages; Kleene's Theorem; Turing machines, the Church-Turing thesis, universal Turing machines and the Halting problem; formal grammars a... ENGG372 Engineering Work Placement 2 18C (Hamilton) The second Work Placement for the Bachelor of Engineering (Honours) degree. ENGG379 Reflection on Professional Workplace Experience 18A (Hamilton) Guided reflection on professional work placements in engineering. ENGG381 Engineering Statistics 18A (Hamilton) Aimed specifically at Engineering students, this paper covers statistical models, experimentation for quality design and control, process measurement and improvement, statistical process control and capability, and reliability. FCMS396 Work Placement 18C (Block) This paper enables students to undertake work placement in an area related to their major as part of their degree. Students work in a chosen field for a period of time in order to gain valuable work experience and learn from experts in their chosen field.
Code Paper Title Occurrence / Location COMP426 Engineering Interactive Systems 18B (Hamilton) This paper introduces the topic of engineering methods for interactive systems. It provides both the background theory and practical methods for modelling and testing interactive systems. COMP439 Usability Engineering 18A (Hamilton) This paper covers the design and evaluation of interactive computer systems with a focus on users and usability. Topics covered include: designing and performing user studies, ethnography, automated usability evaluation and ethical issues involved in studying human-computer interaction. COMP448 Developing Mobile Applications 18B (Hamilton) This paper covers practical design and implementation of interactive applications for mobile devices such as smartphones and tablet computers. COMP452 Model Checking 18A (Hamilton) This paper shows how reactive systems can be modelled and analysed using finite-state machines and temporal logic, and how model checking tools can be used to verify crucial properties of safety-critical systems. It also provides an introduction into the algorithms and data structures used to model check very large finite-state sys... ENGG492 Honours Research and Management Project 18A (Hamilton), 18B (Hamilton), 18C (Hamilton) & 18Y (Hamilton) An engineering research and development project, including design philosophy, market requirements, specifications, design and analysis, component and materials selection, prototype development, documentation, quality and failure analysis, standards and codes, IP protection, and project planning and management.
2018 Catalogue of Papers information current as of : 22 August 2019 1:22pm