Skip to main content

Unit information: Computer Systems A in 2020/21

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Computer Systems A
Unit code COMS20008
Credit points 20
Level of study I/5
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. Hannuna
Open unit status Not open
Pre-requisites

COMS10016 Imperative and Functional Programming and COMS10017 Object-Oriented Programming and Algorithms I or equivalent.

COMS10014 Mathematics for Computer Science A and COMS10013 Mathematics for Computer Science B or equivalent.

COMS10012 Software Tools or equivalent.

Software development using low-level languages (e.g., C and assembly language, per Prog. Paradigms A and Computer Systems A) and tools.

Computer architecture (e.g., properties of instruction execution).

Co-requisites

None

School/department School of Computer Science
Faculty Faculty of Engineering

Description including Unit Aims

Using a set of fundamental techniques and technologies, the Computer Systems theme broadly explains how computing platforms work: it does so a) at various levels of abstraction, including both software and hardware, and by bridging between theory and practice, and b) both in isolation, and in combination, i.e., considering large, diverse, complex systems vs. individual platforms.

Forming part of said theme, this unit delivers an integrated introduction to two related sub-fields:

  • Concurrency, i.e., the coordination of multiple parties, each simultaneously performing computation in order to achieve a collective task or goal, and
  • Communication, i.e., the transfer of data between said parties.

The aim is to equip students with understanding and skills that enable use (i.e., design, implementation, deployment, and analysis) of these sub-fields within computer systems, when addressing real-world (e.g., industrially relevant) problems. The content spans both small- (e.g., a single multi-core processor, using a network-on-chip) and large-scale (e.g., a collection of clients and servers, using the Internet) instances; for the latter sub-field, the content offers a segue into the wider field of distributed computing.

Intended Learning Outcomes

Within the context of and challenges related to concurrency and digital communication, successful completion of this unit will enable students to:

  1. Identify and understand relevant constraints and requirements, such as the need for efficiency, scalability and robustness.
  2. Demonstrate understanding of specific techniques and technologies that are relevant, plus any more general, fundamental concepts or theory which underpin them.
  3. Apply appropriate formalisms to analyse problems and potential solutions, making an appropriate selection based on associated metrics and trade-offs between them.
  4. Apply appropriate techniques, technologies, and tools in releasing concrete, effective solutions to said problems.

Teaching Information

Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures, practical activities supported by drop-in sessions, problem sheets and self-directed exercises.

Assessment Information

20% January Timed Assessment, 80% coursework

Reading and References

TBC

Feedback