Course syllabus

Lecturers  

  • Robert Sheehan

r.sheehan@auckland.ac.nz
Room 303.488 
Office hours: whenever I am around or email me for appointment

  • Xinfeng Ye 

xinfeng@cs.auckland.ac.nz
Room 303.589
Office hours: whenever I am around or email me for appointment

Tutor

  • Paul Freeman

pfre484@aucklanduni.ac.nz
Office hours are held in the First Floor Science Computer Lab (303S-191):

    • Monday 15:00-16:00
    • Tuesday 11:00-12:00
    • Wednesday 14:00-15:00
    • Thursday 12:00-13:00

 

Topics Covered

  • Integer representation
  • Character and string representation
  • Arithmetic operations
  • Logic operations
  • Logic gates
  • Combinational logic
  • Storage elements
  • Sequential logic
  • The von Neumann model
  • An Instruction Set Architecture (ISA)
  • Assembly language
  • Input and Output including interrupts
  • Traps
  • Subroutines
  • Memory stack
  • Introduction to programming in C
  • Mapping C variables and operators to an ISA
  • Mapping C Control Structures to an ISA
  • Mapping C functions to an ISA
  • Handling C function calls
  • Mapping C pointers and arrays to an ISA
  • Mapping C structures to an ISA
  • Handling C’s dynamic memory allocation
  • User/kernel mode
  • Hardware support for context switching
  • Hardware support for synchronisation
  • Exceptions
  • MMU and virtual memory

 

Learning Outcomes

A student who successfully completes this course should be able to:

  • describe elemental data structures, including characters, strings, signed & unsigned integers (various sizes), and pointers
  • convert between various representations of a number
  • describe the range and limitations of representations of numbers
  • describe the execution of basic instructions at the instruction set architecture level
  • write simple assembly language programs
  • describe the assembly process, and the information that is contained in assembly language instructions
  • explain the concept of a pointer and distinguish between the value of a pointer and the entity pointed to 
  • write simple programs in C
  • describe how an operating system and high-level languages provide abstractions that simplify the programming of complex systems
  • describe how the features of virtual memory, user/kernel mode, interrupts and exceptions make it possible to implement a secure multi-user system

 

Practical requirements

In order to pass the paper, you must:

  • Pass the assignment work
  • Pass test and exam combined The pass marks in each part and in total are not going to exceed 50%. If you have not achieved 50% in the assignments you are still advised to sit the exam.

 

Assessment

 

Course summary:

Course Summary
Date Details Due