COMPSCI 210: Computer Systems 1
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
- 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 |
|---|---|---|