ENCE464-19S2 (C) Semester Two 2019

Embedded Software and Advanced Computing

15 points
15 Jul 2019 - 10 Nov 2019


This course combines software engineering practice for embedded systems with advanced computer architectures and memory systems. State machines form a unifying mechanism to understand hardware and software. Software design procedures and methodologies are used to develop reliable coding practices used on high-performance concurrent systems with real-time constraints. Testing and debugging on high-performance concurrent systems, where inter-task communication support is required, and is analysed using industry-standard metrics and test platforms.

The goal of this course is to learn about what makes advanced computers "tick", from both hardware and software development perspectives.  The embedded system's courses you've taken so far have mostly focused on the basics of creating small programs and the details of low-level hardware interactions.  In this course, we'll look at how to design and implement more complex, large-scale programs, how to improve the quality and reliability of your programs, and how these methods are applied to execution architectures, such as superscalar, VLIW/EPIC, and DSPs.  Memory architectures and cache design instruction architectures are also discussed.

Learning Outcomes

  • At the end of this course, the student will be able to:
  • Specify, design, and implement complex embedded software using a principled approach.
  • Design, analyse and implement robust concurrent, multithreaded and distributed software.
  • Select and apply analysis and testing techniques that will help to ensure design and implementation quality.
  • Use appropriate tools and techniques to work on large software projects that involve more than one developer.
  • Develop an advanced knowledge on a subsystem of modern microprocessors.



ENCE463, ENCE462, ENEL428, ENEL429

Timetable 2019

Students must attend one activity from each section.

Lecture A
Activity Day Time Location Weeks
01 Wednesday 12:00 - 13:00 Psychology - Sociology 252 Lecture Theatre 15 Jul - 25 Aug
9 Sep - 20 Oct
Lecture B
Activity Day Time Location Weeks
01 Monday 11:00 - 12:00 Psychology - Sociology 252 Lecture Theatre 15 Jul - 25 Aug
9 Sep - 20 Oct
Lecture C
Activity Day Time Location Weeks
01 Tuesday 12:00 - 13:00 Psychology - Sociology 252 Lecture Theatre 15 Jul - 25 Aug
9 Sep - 20 Oct
Lab A
Activity Day Time Location Weeks
01 Thursday 11:00 - 13:00 Elec 204 ESL Lab 15 Jul - 25 Aug
9 Sep - 20 Oct

Course Coordinator

Steve Weddell


Michael Hayes (Elec) and Le Yang


Assessment Due Date Percentage 
Assignment 1 - Project Demo 22 Aug 2019 10%
Assignment 1 - Project Code 22 Aug 2019 10%
Assignment 1 - Individual report 23 Aug 2019 10%
Assignment 2 10 Oct 2019 20%
Exam 50%

Textbooks / Resources

Recommended Reading

Hennessy, John L. , Patterson, David A., Patterson, David A; Computer architecture : a quantitative approach; 3rd ed; Morgan Kaufmann Publishers, 2003.

Koopman, Philip; Better embedded system software; Drumnadrochit Education, 2010 (The library has a copy).

Lee, Edward Ashford. , Seshia, Sanjit A; Introduction to embedded systems : a cyber-physical systems approach; 1st ed; Lulu Enterprises, 2011 (Freely available online at http://leeseshia.org).

Magee, Jeff,1952- , Kramer, Jeff; Concurrency : state models & Java programs; 2nd ed; Wiley, 2006 (The library has a copy).

Indicative Fees

Domestic fee $1,080.00

International fee $5,250.00

* Fees include New Zealand GST and do not include any programme level discount or additional course related expenses.

For further information see Electrical and Computer Engineering.

All ENCE464 Occurrences

  • ENCE464-19S2 (C) Semester Two 2019