Systems Programming COMPSCI2030

  • Academic Session: 2024-25
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 2 (SCQF level 8)
  • Typically Offered: Runs Throughout Semesters 1 and 2
  • Available to Visiting Students: No
  • Collaborative Online International Learning: No

Short Description

This course is intended for Graduate Apprenticeship students only.

 

Throughout this course students will be introduced to low level development concepts like memory management and task sequencing, and what role these concepts play in the running of a low-level system. Students should develop a rich understanding of challenges faced in operating systems programming and what implications these challenges have for applications that run on a higher level. By understanding these low-level concepts, students are expected to develop a more thoughtful approach to their day-to-day programming.

Timetable

None

Requirements of Entry

Entry to Level 2 is guaranteed to students who achieve a GPA of D3 or better in their level 1 courses at the first sitting.

Excluded Courses

None

Assessment

Written examination 60% and course work 40% (25% and 15%).

Main Assessment In: April/May

Course Aims

This course aims to strengthen the student's understanding of operating systems and their development. Students should understand the particular issues faced in operating systems programming and how these issues differ from those in higher level programming. They should also understand these issues to the degree that they will inform their development on other platforms.

Intended Learning Outcomes of Course

By the end of this course, students will be able to: 

1. Explain the behaviour of low-level programs written in a systems language. 

2. Explain the concepts of memory management and concurrency, including issues and problems faced in these domains. 

3. Explain how data structures are represented, and how this interacts with caching and virtual memory, and to be able to demonstrate the performance impact of such issues. 

4. Recognise the impact of memory and machine specifics on the performance of a system. 

5. Discuss and reason about concurrency and race conditions. 

6. Describe the differences between hardware platforms and operating systems and the impact these have on system programming. 

Minimum Requirement for Award of Credits

Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment.