Fundamentals of Computer Architecture
| Unit code | COMP15111 |
|---|---|
| Credits | 10 |
| Unit level | Level 1 |
| Teaching period(s) | Semester 1 |
| Offered by | Department of Computer Science |
Overview
The module introduces fundamental concepts involved in Computer Architecture, which is the study and design of Computer Systems. Among others, the module discusses:
• how to talk about computer systems,
• how to think about computer systems,
• how are computers structured,
• what is the language that computers natively speak,
• how programs are executed by the hardware,
• how to make programs faster and smaller,
• how data (whether numbers, text, colours, or polygons) are represented in hardware using only binary digits,
• how high-level program structures (like loops, functions, and objects) are translated into operations the computer understands,
• how to build complex systems out of the simple operations provided by the computer, and what is the system software that allows us to run high-level programs
Understanding the Fundamentals of Computer Architecture is essential for being able to reason about what exactly happens when we run a program. This is critical not only for students who are interested in hardware and low-level software, but also to any software developer who wants to be able to produce high performing programs and/or work across multiple software stack layers. In particular, business, finance, scientific programming, and AI frameworks rely on programmers that understand how programs actually work.
Aims
This unit aims to introduce how computers and computer programs actually work. Much of the focus of the unit is on the language that computer hardware natively understands, the instruction set, and on how all types of information are represented in binary, using ones and zeros. The unit uses Python and the RISC-V processor to demonstrate the relationship between high-level programs and what happens in the processor when such programs are executed. Practical experience is gained in the laboratory through exercises which progressively expose features of the RISC-V instruction set.
Learning outcomes
ILO 1: Analyse the suitability of different computer architectures for data processing
ILO 2: Explain the transition of source code into machine code and compare the different ways for organising machine code
ILO 3: Propose and evaluate methods of representing different classes of data in a digital computer
ILO 4: Implement high-level code and data structures in assembly language and reason about the relative benefits of different design choices
ILO 5: Illustrate how the processor architecture enables and supports building a complete computing system
Syllabus
- Introduction: Processors, simple RISC-V programs, binary representations, fetch-execute cycle, registers.
- RISC-V code for imperative constructs: Basic data types and expressions, data structures, control structures, functions, input/output, interrupts.
- System software: Operating Systems, Assemblers, Compilers, Libraries, Loaders, Interpreters.
Teaching and learning methods
- Pre-recorded Lectures: 11 sets in total, 1 per week
- Live Lectures: 11 in total, 1 per week
- Laboratories: 4 labs in total, 1 per fortnight
- Example Exercises: 4 in total, 1 per fortnight
- Canvas Quizzes: A set of questions with each pre-recorded lecture
- Mentimeter Quizzes: 1 in each Live Lecture
Employability skills
- Project management
- Oral communication
- Problem solving
- Research
- Written communication
Assessment methods
| Method | Weight |
|---|---|
| Other | 15% |
| Written exam | 50% |
| Practical skills assessment | 35% |
Written Exam: 50%
Practical Exam: 35%
Laboratory Coursework: 15%
Feedback methods
Considering that different students respond and process feedback in different ways, this module implements several different approaches for giving feedback.
Students receive personalised feedback (one-to-one) mainly in the context of the lab exercises. Students can directly ask the instructors or the Teaching Assistants (typically post-graduate researchers in Computer Architecture) any question about the lab exercises and receive immediate high-quality feedback. If the teaching staff have time, they might also be able to provide feedback on any student question, even if it is not related to the lab. On top of that, the student will receive detailed written individual feedback for every submitted lab coursework. Another way for students to receive personalised feedback is by asking questions during the Live Lecture. To lower the barrier for asking questions, the Live Lectures allow anonymous questions submitted through Mentimeter. A final way is by asking questions in the module’s Discussion Board. The lecturers aim to answer questions within one working day, but typically within a few hours.
Additionally, the unit offers several opportunities for group feedback (one-to-many). Canvas quizzes allow students to get immediate feedback on their understanding of the material, including detailed answers explaining the correct answers. Live Mentimeter quizzes provide similar feedback opportunities with the added benefit that the lecturer can elaborate more if the students request that. For each set of Example and Lab Exercises, we release detailed group feedback explaining what the correct answers were and what common mistakes we found in student submissions. We compile similarly detailed group feedback for the exam, which we release soon after we have completed marking. To help students prepare for the exam and get early feedback about their expected exam performance, we also give them a mock exam quiz which follows a similar structure and question difficulty as the actual exam.
Recommended reading
- Borin, Edson. (2023). An Introduction to Assembly Programming with RISC-V. Independently published (11 Oct 2023). ISBN: 9786500158113
- Clements, Alan, 1948-. (2006). Principles of computer hardware. Oxford University. ISBN: 9780199273133
- Patterson, David A. (2021). Computer organization and design RISC-V edition: the hardware software interface. Morgan Kaufmann. ISBN: 9780128245583
- Harris, Sarah L. (2022). Digital design and computer architecture. Morgan Kaufmann is an imprint of Elsevier.
- Furber, Stephen B. (2000). ARM system-on-chip architecture /. Addison-Wesley, an imprint of Pearson Education,. ISBN: 0201675196
Study hours
| Scheduled activity hours | |
|---|---|
| Assessment practical exam | 2 |
| Assessment written exam | 2 |
| Lectures | 22 |
| Practical classes & workshops | 12 |
| Independent study hours | |
|---|---|
| Independent study | 62 |
Teaching staff
| Staff member | Role |
|---|---|
| Pavlos Petoumenos | Unit coordinator |
Additional notes
For Independent study hours:
- Pre-recorded Lectures: 11 hours
- Other: 60 hours
