Module Details

The information contained in this module specification was correct at the time of publication but may be subject to change, either during the session because of unforeseen circumstances, or following review of the module at the end of the session. Queries about the module should be directed to the member of staff with responsibility for the module.
Title PRINCIPLES OF C AND MEMORY MANAGEMENT
Code COMP281
Coordinator Dr FA Oliehoek
School of Electrical Engineering, Electronics and Computer Science
Frans.Oliehoek@liverpool.ac.uk
Year CATS Level Semester CATS Value
Session 2016-17 Level 5 FHEQ Second Semester 7.5

Aims

  1. To introduce the issues of memory and memory management within the context of a system-level procedural programming language (C), and debugging tools that facilitate the inspection of state, stack and heap usage during code execution.
  2. To familiarise students with a contemporary system-level procedural programming language (C).
  3. To demonstrate principles, provide indicative examples, develop problem-solving abilities and provide students with experience and confidence in the use of algorithms with consideration and management of memory usage within a contemporary software setting.

Learning Outcomes

At the end of the module the student should be able to analyse and explain the use of memory resources within software applications, including memory usage on the stack during function calls and heap-based dynamic memory management;

At the end of the module the student should be able to use debugging tools to inspect memory usage, and to assist in the development of software;

At the end of the module the student should be able to  develop applications within the C programming language, including use of command-line driven C development tools;

At the end of the module the student should be able to  deal with underlying memory-based issues in using dynamic data-structures through the implementation and management of at least one familiar datastructure using the C programming language.


Syllabus

  • Walkthrough of various elements of the C programming language, by example.
  • Understanding of functions and how they interact via the stack mechanism. 
  • Exploration of the use of heap-based memory in C through the use of arrays, pointers, and strings, and exploring their representation in memory.
  • Dynamic data structures in C: structs and the dynamic creation and destruction of structs. 
  • Advanced issues, including function pointers and the C pre-processor. 
  • Hand-on experience with black-box testing, and the use of debugging tools.

Teaching and Learning Strategies

Lecture - Two 1-hour lectures per week, based on slides and interactive demonstrations.

Laboratory Work - Two lab sessions per week, in which students work individually supported by demonstrators.


Teaching Schedule

  Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other TOTAL
Study Hours 10
Two 1-hour lectures per week, based on slides and interactive demonstrations.
    10
Two lab sessions per week, in which students work individually supported by demonstrators.
    20
Timetable (if known)              
Private Study 55
TOTAL HOURS 75

Assessment

EXAM Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
             
CONTINUOUS Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
Coursework  30 hours expected fo  Semester 2  30  Yes  Standard UoL penalty applies  Programming Assignment 
Coursework  30 hours expected fo  Semester 2  30  Yes  Standard UoL penalty applies  Programming Assignment 
Coursework  30 hours expected fo  Semester 2  40  Yes  Standard UoL penalty applies  Programming Assignment Notes (applying to all assessments) 3 (sets of) assessment tasks This work is not marked anonymously. Resit-arrangements: Each re-sit assessment task will be different from the original assessment, except in the case of a skills-based assessment task, but the type of assessment will be the same; the deadline for the submission of work for each re-sit assessment task will be set by the module co-ordinator and will be part of the description of the assessment task; the deadline will typically fall within the re-sit period; the description of a re-sit assessment task will be provided at least four weeks before the deadline for the submission of work for the the task.  

Recommended Texts

Reading lists are managed at readinglists.liverpool.ac.uk. Click here to access the reading lists for this module.
Explanation of Reading List: