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
- Final Exam 60%; Test 20%; Assignments 20%
- Information about what is and isn't permitted in assignments etc. can be found at https://www.auckland.ac.nz/en/about/learning-and-teaching/policies-guidelines-and-procedures/academic-integrity-info-for-students.html
- If your exam or test is affected by personal circumstances, you can apply for aegrotat https://www.auckland.ac.nz/en/for/current-students/cs-academic-information/cs-examination-information/cs-aegrotat-and-compassionate-consideration.html
Course summary:
Date | Details | Due |
---|---|---|