Module Specification

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.
1. Module Title Principles of C and Memory Management
2. Module Code COMP281
3. Year Session 2023-24
4. Originating Department Computer Science
5. Faculty Fac of Science & Engineering
6. Semester Second Semester
7. CATS Level Level 5 FHEQ
8. CATS Value 7.5
9. Member of staff with responsibility for the module
Mr P Jimmieson Computer Science Phil@liverpool.ac.uk
10. Module Moderator
11. Other Contributing Departments  
12. Other Staff Teaching on this Module
Mrs J Birtall School of Electrical Engineering, Electronics and Computer Science Judith.Birtall@liverpool.ac.uk
13. Board of Studies
14. Mode of Delivery
15. Location Main Liverpool City Campus
    Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other TOTAL
16. Study Hours 10

    10

    20
17.

Private Study

55
18.

TOTAL HOURS

75
 
    Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other
19. Timetable (if known)            
 
20. Pre-requisites before taking this module (other modules and/or general educational/academic requirements):

 
21. Modules for which this module is a pre-requisite:

 
22. Co-requisite modules:

 
23. Linked Modules:

 
24. Programme(s) (including Year of Study) to which this module is available on a mandatory basis:

25. Programme(s) (including Year of Study) to which this module is available on a required basis:

26. Programme(s) (including Year of Study) to which this module is available on an optional basis:

27. 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.

 
28. Learning Outcomes
 

(LO1) 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.

 

(LO2) Use debugging tools to inspect memory usage, and to assist in the development of software.

 

(LO3) Develop applications within the C programming language, including use of command-line driven C development tools.

 

(LO4) 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.

 

(S1) IT skills

 

(S2) Problem solving/ critical thinking/ creativity analysing facts and situations and applying creative thinking to develop appropriate solutions.

 
29. Teaching and Learning Strategies
 

Teaching Method 1 - Lecture
Description: Two 1-hour lectures per week, based on slides and interactive demonstrations.
Teaching Method 2 - Laboratory Work
Description: Two lab sessions per week, in which students work individually supported by demonstrators.

Standard on-campus delivery
Teaching Method 1 - Lecture
Description: Mix of on-campus/on-line synchronous/asynchronous sessions
Teaching Method 2 - Laboratory Work
Description: On-campus synchronous sessions

 
30. 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.

 
31. Recommended Texts
  Reading lists are managed at readinglists.liverpool.ac.uk. Click here to access the reading lists for this module.
 

Assessment

32. EXAM Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
   
33. CONTINUOUS Duration Timing
(Semester)
% of
final
mark
Resit/resubmission
opportunity
Penalty for late
submission
Notes
  (281) Programming Assignment 1 There is a resit opportunity. Standard UoL penalty applies for late submission. This is not an anonymous assessment. Assessment Schedule (When) :Semester 2 0 50
  (281.1) Programming Assignment 2 There is a resit opportunity. Standard UoL penalty applies for late submission. This is not an anonymous assessment. Assessment Schedule (When) :Semester 2 0 50