Core Module Information
Module title: Principles of Programming Languages

SCQF level: 07:
SCQF credit value: 20.00
ECTS credit value: 10

Module code: SET07112
Module leader: John Owens
School School of Computing, Engineering and the Built Environment
Subject area group: Computer Science
Prerequisites

There are no pre-requisites for this module to be added

Description of module content:

This module covers areas of software development that are related to low level systems and machine programming. The individual units will focus on particular aspects and considerations when compiling and linking programs that produce native code. The following subjects will be covered:• Compiling and linking programs• Data sizes and data representation on different architecture targets• Inline assembly• Includes and declaration order• Call conventions – pass by value, reference and pointer• Memory management – stack and heap• Low level debugging• Object orientation• Virtual function calls and function tables• Operator overloading• Data structures using pointers• Secure coding practices

Learning Outcomes for module:

Upon completion of this module you will be able to

LO1: Design, develop and test computer programs in a suitable systems programming language.

LO2: Develop applications that utilise low-level machine programming techniques.

LO3: Understand the concepts required to undertake low-level systems programming.

LO4: Develop problem solving skills involving low-level machine considerations.

LO5: Knowledge of secure coding standards as specified by appropriate certificating body.

Full Details of Teaching and Assessment
2024/5, Trimester 2, In Person,
VIEW FULL DETAILS
Occurrence: 001
Primary mode of delivery: In Person
Location of delivery: MERCHISTON
Partner:
Member of staff responsible for delivering module: John Owens
Module Organiser:


Student Activity (Notional Equivalent Study Hours (NESH))
Mode of activityLearning & Teaching ActivityNESH (Study Hours)NESH Description
Face To Face Lecture 20 Lectures demonstrating programming skills and practices and discussing areas of low level programming
Face To Face Practical classes and workshops 20 Practical classes and workshops where students can practice and extend the skills covered in the lectures
Face To Face Tutorial 7 Students will work in groups to better understand and practice areas such as designing algorithms.
Online Guided independent study 151 Guided independent study where students will reinforce the skills covered in the lecture, practicals and tutorial. Students will be provided with material to work through in their own time.
Face To Face Centrally Time Tabled Examination 2 Half of the exam will be based on the material covered in the lectures and reinforced in the practicals. The second half of the exam will be based on material studied in the tutorials.
Total Study Hours200
Expected Total Study Hours for Module200


Assessment
Type of Assessment Weighting % LOs covered Week due Length in Hours/Words Description
Practical Skills Assessment 36 1~2~4 Week 13 HOURS= 36 hours Students will demonstrate C++ programming skills with other low level programming skills such as memory management and searching techniques.Students can get feedback on progres during the practical session
Practical Skills Assessment 24 1~2~4 Week 8 HOURS= 24 hours Students will demonstrate C programming skills and file manipulation knowledge by writing a small C program.Students can get feedback on progress during the practical session
Centrally Time Tabled Examination 40 3~4~5 Exam Period HOURS= 2 Hours Half of the exam will be based on the material covered in the lectures and reinforced in the practicals.The second half of the exam will be based on material studied in the tutorials.
Component 1 subtotal: 60
Component 2 subtotal: 40
Module subtotal: 100

Indicative References and Reading List - URL:
Contact your module leader