EEEN301 (2023) - Computer Architecture and Embedded Systems


The course develops an understanding of the structure of computers, how they execute programs and how they interface to the real world. The course first covers ARM assembly language programming, data representation, computer arithmetic, microprocessor architecture at the hardware level and a comparison with GPU, DSP and FPGA architectures. The course then explores the design flow and application of embedded computers in real-world engineering problems. Practical experience is gained using microprocessors, techniques to interface them with the physical world, development tool chains, debugging and embedded Linux operating systems.

Course learning objectives

Students who pass this course should be able to:

  1. Explain the main components of a typical computer and their interconnections, standard ways of representing data in hardware, the arithmetic and logic unit (ALU), data paths, pipelining, caches, and I/O. (BE graduate attribute 3(a))
  2. Analyse the effects of the hardware logic designs in a computer on the basic operations in programming languages and the performance of computer programs. (BE graduate attribute 3(a))
  3. Use an embedded computer to solve a variety of real-world problems, with and without the linux embedded operating system.  (BE graduate attribute 3(b) 3(f))
  4. Identify and explain the advantages and disadvantages of low-level programming versus using an embedded operating system. (BE graduate attribute 3(b) 3(f))
  5. Effectively communicate in a written manner the methodology, design compromises, results and evaluation of embedded computer-based solutions to real-world problems. (BE graduate attribute 2(b) 3(f))

Course content

This course is designed for in-person study, and students are strongly recommended to attend lectures, tutorials and labs on campus. In particular, some assessment items or practical hands-on labs will require in-person attendance, although exceptions can be made under special circumstances.
Queries about any such exceptions can be sent to

Withdrawal from Course

Withdrawal dates and process:


Dr Robin Dykstra (Coordinator)

Hamish Colenso

Teaching Format

Dates (trimester, teaching & break dates)

  • Teaching: 27 February 2023 - 02 June 2023
  • Break: 10 April 2023 - 23 April 2023
  • Study period: 05 June 2023 - 08 June 2023
  • Exam period: 09 June 2023 - 24 June 2023

Class Times and Room Numbers

27 February 2023 - 02 April 2023

  • Friday 13:10 - 14:00 – 119, Cotton, Kelburn
27 February 2023 - 09 April 2023

  • Tuesday 13:10 - 14:00 – 119, Cotton, Kelburn
  • Thursday 13:10 - 14:00 – 119, Cotton, Kelburn
24 April 2023 - 04 June 2023

  • Tuesday 13:10 - 14:00 – 119, Cotton, Kelburn
  • Thursday 13:10 - 14:00 – 119, Cotton, Kelburn
  • Friday 13:10 - 14:00 – 119, Cotton, Kelburn


There are no required texts for this offering.

Mandatory Course Requirements

If you believe that exceptional circumstances may prevent you from meeting the mandatory course requirements, contact the Course Coordinator for advice as soon as possible.


Assessment ItemDue Date or Test DateCLO(s)Percentage


Work submitted late will incur a 10% penalty per late day or part thereof. Students expecting to submit work late should use the extension system that is part of the submission system.


Teaching Plan

Communication of Additional Information

The ECS course wiki ( will be the main source of information for the course. Some information, notably video of the lectures and course feedback forms will be available on Nuku.

Offering CRN: 34002

Points: 15
Prerequisites: EEEN 202 (or ECEN 202), NWEN 241
Restrictions: ECEN 301, NWEN 342
Duration: 27 February 2023 - 25 June 2023
Starts: Trimester 1
Campus: Kelburn