Course syllabus

Lecturers  

  • Ian Watson

     ian [at] cs dot auckland dot ac dot nz
     Room 303-393
     Office hours semester 2 2016: Wednesdays 11-12

  • Xinfeng Ye 

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

 

Tutors

  •  Josh Hill

     jhil955@aucklanduni.ac.nz
     Room: 303.461 - 4th Floor Lunch Area Computer Science Building
     Office hours: Monday 12 - 1 & Wednesday 11 - 12

  •  Ben Wang

     ywan769@aucklanduni.ac.nz
     Room: 303.461 - Research Room, the corner of 4th Floor, Computer Science Building
     Office hours: Tuesday 2 - 3 & Thursday 12 - 1

 Class Rep

  • Matt Lai <klai670@aucklanduni.ac.nz>

 

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:

Date Details Due