Computer Systems
Course offerings
Why should I study Computer Systems?
Up until now, your experience of computers has probably been
obtained through a high-level language, such as Java,
that cannot be directly executed by a computer.
Computer Systems takes you 'under the hood', and shows you
what a computer is really like.
Inside a computer, everything is stored as a binary number:
- Integers are stored as binary numbers;
- Characters are stored as numbers;
- Pictures are stored as numbers;
- Sounds are stored as numbers;
- Even the program is stored as a binary number.
All the type-checking you are familiar with in high-level languages
exists only within the compiler.
After you compile your program into machine instructions, the type
information is discarded, and the computer just processes binary
numbers within your program, with no understanding of what they mean.
One consequence of this is that the underlying machine is a lot more
flexible than any programming language you have used before.
Just as a good knowledge of the engine and transmission of a racing car
enables a racing driver to get the most from his car, so a knowledge
of computer hardware will enable you to improve the performance of
your programs.
What will I learn?
You will learn what the hardware of a typical computer system is
really like, from the viewpoint of a programmer, including:
- The important characteristics of memory systems;
- The structure of a typical modern CPU;
- How instructions are encoded as numbers, and how the machine
executes them;
- How to translate simple C or Java programs into a equivalent
machine-code programs
- How the typical software-development tools work;
- How Input/output operations are accomplished,
and the operation of a number of typical I/O devices.
In addition, we will revise and consolidatate your understanding
of binary numbers, and the way data is stored in computer memory.
What should I know before I enrol?
The exercises in this course require you to write programs using
the raw instructions of the DLX machine.
This forces you to manage many details of a program that are normally
handled by a language compiler.
You will find the exercises much easier if you are already
able to program confidently in a high-level language,
such as C, C++, or Java.
The required knowledge can be obtained from the course Object-oriented programming
which teaches programming
Prior experience of binary and hexadecimal numbers and elementary
machine-hardware concepts would be also be helpful, but is not essential.
Many students take the course Algorithm-design and Data-structures
concurrently with this course, and achieve good results.
However, you will likely perform better in Computer Systems if you are
able to arrange your timetable so that you complete Algorithm-Design and
Data-structures before enrolling in Computer systems.
How will my performance be assessed?
Your performance in the course will be assessed in three ways:
- Practical exercise marks will contribute between
20% and 30% to your final score.
- The final exam usually contributes the remainder of
the marks.
- Tutorials are not usually assessed.
However, we do record your attendance.
The precise details of assessment vary from year to year, and will
be explained at the first lecture.
What comes next?
There are a number of courses that follow on from Computer Systems:
- Computer Architecture
extends the material from Computer Systems and looks more closely
at modern computer hardware, to see the numerous clever techniques
that are used to improve the execution speed of all programs.
- Operating Systems
looks at the special hardware that is needed to run a modern operating
system (such as Windows, Linux, or OS-X), and describes a number of subtle
programming issues that arise inside operatings systems.
- Distributed Systems
examines the interesting problems that arise when computer programs
are executed on a number of computers connected together in a network.
- Computer Networks
takes a close look at how computer-to-computer communications networks
operate.
What do students think of this course?
From time-to-time, we ask students to give their opinion of this course,
and allow the lecturers to respond to the evaluation.
The most recent results, labelled "courseEvaluation", and "courseResponse"
are here:
Handy links
Disclaimer
The information presented here should apply to most students.
It is possible, however, that special conditions may apply to you.
You can find out by reading the
University Calendar program rules
|