• Offered by Research School of Computer Science
  • ANU College ANU College of Engineering and Computer Science
  • Classification Transitional
  • Course subject Computer Science
  • Areas of interest Information Technology
  • Academic career PGRD
  • Course convener
    • Dr Benjamin Swift
  • Mode of delivery In Person
  • Co-taught Course
  • Offered in First Semester 2017
    See Future Offerings

This course lays the foundations for the understanding of CPU architectures, networking and operating systems. Additionally, it introduces topics which cut across many computer systems, such as cross-layer communication and basic concurrency (as well as basic ideas of virtualization and efficiency through proximity).

CPU architectures are discussed from first principles (digital logic) and are expanded into current day designs. This also involves assembler level programming to connect hardware circuits to the world of software. Representations of data types and high-level code at the machine level will be made clear by keeping the relations between high-level and machine-level code throughout the course. It will also look at how concurrent software constructs can or cannot be translated into parallel hardware operations. This course will cover a wide range of topics such as digital logic: transistors, gates, and combinatorial circuits; clocks; registers and register banks; arithmetic-logic units; data representation: big-endian and littleendian integers; ones and twos complement arithmetic; signed and unsigned values; Von-Neumann architecture and bottleneck; instruction sets; RISC and CISC designs; instruction pipelines and stalls; rearranging code; memory and address spaces; physical and virtual memory; interleaving; page tables; memory caches; bus architecture; polling and interrupts; DMA; device programming; assembly language; optimizations; concurrency and parallelism; and data pipelining.

Knowledge of the principles of networking and operating systems (as well as their relation to computer hardware) are essential for every computer scientist and this course will provide those foundations. The relation of assembler level building blocks (macros) to constructs in direct compiled language is demonstrated throughout the course.

While this course provides the above foundations (which stand on their own), it also prepares students for the follow-up course COMP6310 Systems, Networks and Concurrency, which rounds off the knowledge about concurrency in current computer systems of any scale, as well as expands the knowledge in networking and operating systems.

Learning Outcomes

Upon successful completion, students will have the knowledge and skills to:

Upon completion of this course the student will be able to do the following:

  1. Describe the layers of architectures in modern computer systems from hardware device levels upwards.
  2. Describe the major components of a modern computer.
  3. Explain how the major components of a CPU work together, including how data is represented on a computer.
  4. Explain the basics of computer memories, and their abstractions on modern computer systems. 
  5. Design, implement and analyse programs at the machine code and assembly language levels, using a relatively simple computer, including the use of virtual I/O and traps
  6. Construct small programs in the C programming language, and analyse their behavior.
  7. Describe the relationship between high-level procedural languages and assembly/machine language in the conventional machine layer, including how a compiled program is executed on a modern computer
  8. Posess a skills and knowledge base upon which compiler, network and operating systems implementation studies can be built.

Indicative Assessment

Assignments (40%); Examinations (60%)

The ANU uses Turnitin to enhance student citation and referencing techniques, and to assess assignment submissions as a component of the University's approach to managing Academic Integrity. While the use of Turnitin is not mandatory, the ANU highly recommends Turnitin is used by both teaching staff and students. For additional information regarding Turnitin please visit the ANU Online website.

Workload

Thirty one-hour lectures and nine two-hour laboratory sessions

Requisite and Incompatibility

To enrol in this course you must be studying a Master of Computing or completed or currently studying COMP6700.

Fees

Tuition fees are for the academic year indicated at the top of the page.  

If you are a domestic graduate coursework or international student you will be required to pay tuition fees. Tuition fees are indexed annually. Further information for domestic and international students about tuition and other fees can be found at Fees.

Student Contribution Band:
2
Unit value:
6 units

If you are an undergraduate student and have been offered a Commonwealth supported place, your fees are set by the Australian Government for each course. At ANU 1 EFTSL is 48 units (normally 8 x 6-unit courses). You can find your student contribution amount for each course at Fees.  Where there is a unit range displayed for this course, not all unit options below may be available.

Units EFTSL
6.00 0.12500
Domestic fee paying students
Year Fee
2017 $3660
International fee paying students
Year Fee
2017 $4878
Note: Please note that fee information is for current year only.

Offerings, Dates and Class Summary Links

The list of offerings for future years is indicative only.
Class summaries, if available, can be accessed by clicking on the View link for the relevant class number.

First Semester

Class number Class start date Last day to enrol Census date Class end date Mode Of Delivery Class Summary
2758 20 Feb 2017 27 Feb 2017 31 Mar 2017 26 May 2017 In Person N/A

Responsible Officer: Registrar, Student Administration / Page Contact: Website Administrator / Frequently Asked Questions