|
|
Course Details |
Fees and Dates
Later Year Course
| Offered By: |
Department of Computer Science |
| Academic Career: |
Undergraduate |
| Course Subject: |
Computer Science |
| Offered in: |
First Semester, 2010 |
| Unit Value: |
6 units |
| Course Description: |
An introduction to the hardware and software components of a modern computer system. Introduction to procedural and assembly languages typically used for low-level programming of computer systems. Representation of data on computers. Comparisons of different types of instruction sets and corresponding addressing modes. Emphasis on the relationships among instruction sets, fetch and execute operations, and the underlying architecture. Consideration of the physical implementation of large memory systems, together with the techniques of data storage and checking. Overall concepts of virtual memory, operating system functions, file systems and networks. Virtual machines and the levels of machine organization, the assembly and linking process and software libraries.
|
| Learning Outcomes: |
Upon completion of this course the student the student will be able to do the following: - Describe the layers of architectures in modern computer systems from hardware device levels upwards.
- Describe the major components of a modern computer.
- Explain how the major components of a CPU work together, including how data is represented on a computer.
- Explain the basics of computer memories, and their abstractions on modern computer systems.
- Design and implement programs at the machine code and assembly language levels, using a relatively simple computer.
- Define and use, in an assembly language program, virtual I/O, traps and interrupts.
- Construct small programs in the C programming language.
- Describe the relationship between high-level procedural languages and assembly/machine language in the conventional machine layer, having a skills base upon which compiler and operating systems implementation studies can be built.
|
| Indicative Assessment: |
Assignments (30%); Final Exam (70%) |
| Workload: |
Thirty one-hour lectures and nine two-hour laboratory/tutorial sessions |
| Areas of Interest: |
Computer Science, Information Technology, and Software Engineering |
| Requisite Statement: |
COMP1100 and 6 units of 1000-level MATH courses. |
| Prescribed Texts: |
Randal E Bryant and David O'Hallaron.Computer Systems: A Programmers Perspective.Prentice Hall, 2003. |
| Science Group: |
B |
|