School of Computing · ANU College of Systems and Society
This course is based on the foundations set by the previous course on computer organisation. It expands particularly into all forms of concurrent programming including aspects of massively parallel programming. It introduces all basic mechanisms to analyse, design, and manage concurrent, single computer-node (multicore) as well as distributed applications (e.g. as performance or dependability enhancements). Following on from the previous course, the fields of operating systems and networking will also be expanded on. On the operating system side aspects of security, scheduling algorithms and memory management are discussed. More specific networking aspects follow on from message passing as a core concurrency construct. These include the basics of routing and dependable protocols.
Assignments
Learning outcomes 1, 2, 3, 5
Lab Exam
Learning outcomes 2, 3, 4, 6, 7
Mid-Semester Test
Learning outcomes 2, 3, 4, 6, 7
Final Exam
Learning outcomes 2, 3, 4, 6, 7
The total workload for the course will be 130 hours including lectures and tutorial/lab sessions. Additional effort will be required in preparing and deepening the material of those sessions. Two major assignments require multiple days of attention each. Other Information Course Website
Textbook: Computer Systems: A Programmer's Perspective, Randal Bryant and David O'Halloran, 3rd edition, ISBN 978-9332573901. Preliminary Reading Reference: Effective C: An Introduction to Professional C Programming, Robert C. Seacord, ISBN 978-1718501041