F28HS Hardware-Software Interface

Dr Hans Wolfgang LoidlDr Adam SampsonKayvan Karim

Course co-ordinator(s): Dr Hans Wolfgang Loidl (Edinburgh), Dr Adam Sampson (Edinburgh), Kayvan Karim (Dubai), Rosalind Deena Kumari (Malaysia).


  • To gain an understanding of low-level, hardware-oriented and systems programming.
  • To develop skills in resource-conscious programming.
  • To develop programming skills in such languages.

Detailed Information

Pre-requisite course(s): F27CS Introduction to Computer Systems .

Location: ALP, Dubai, Edinburgh, Malaysia.

Semester: 2.


  • Low-level, assembler programming
  • Low-level, C programming
  • Advanced computer architecture issues impacting software performance (caches, multi-cores, etc)
  • Operating system interfaces for low-level software
  • Operating system concepts such as device handling, interrupts, BIOS etc
  • Embedded systems programming
  • Resource-conscious programming techniques (memory, performance; programming techniques, tools, monitoring)

Learning Outcomes: Subject Mastery

Understanding, Knowledge and Cognitive Skills Scholarship, Enquiry and Research (Research-Informed Learning)

  • Critical understanding of computer architecture concepts and their performance implication for low-level software.
  • Detailed theoretical and practical understanding of hardware and operating system concepts, interfacing to low-level software.
  • Ability to develop efficient, resource-conscious code, interfacing to hardware components.
  • Practical skills in low-level, systems programming, with effective resource management.

Learning Outcomes: Personal Abilities

Industrial, Commercial & Professional Practice Autonomy, Accountability & Working with Others Communication, Numeracy & ICT

  • Ability to articulate system-level operations and to identify performance implications of given systems

SCQF Level: 8.

Credits: 15.