CSC-20004 - Advanced Programming Practices
Coordinator: Marco Ortolani Room: CR102 Tel: +44 1782 7 33264
Lecture Time: See Timetable...
Level: Level 5
Credits: 15
Study Hours: 150
School Office: 01782 733075

Programme/Approved Electives for 2023/24

None

Available as a Free Standing Elective

No

Co-requisites

None

Prerequisites

CSC-20037 Programming II - Data Structures and Algorithms (or equivalent experience).

Barred Combinations

None

Description for 2023/24

This module provides a deeper understanding of object-oriented programming, and to the concept of concurrent programming, using Java as a working language.

Aims
To provide a deeper understanding of object-oriented programming, and to the concept of parallelism and concurrent programming.

Intended Learning Outcomes

apply object-oriented concepts in Java making use of reference-based data structures and Java Collections: 1
1
2
analyse the fundamental issues that need to be addressed as a result of the application of concurrent patterns: 2
apply common design patterns to effectively structure software projects: apply the programming language structures to guarantee appropriate synchronisation of concurrent code and mutually exclusive access to shared data:

Study hours

20 hours lectures
20 hours practicals
40 hours assessment preparation
70 hours private study

School Rules

None

Description of Module Assessment

1: Coursework weighted 50%
Programming assignment - structuring sequential code
Apply appropriate concepts and techniques to create sequential programming applications. The programming applications require selection, design and use of advanced programming constructs seen during the module. A program summary should describe and explain the principles and concepts used. This should take around 20 hours of preparation.

2: Coursework weighted 50%
Programming assignment - structuring concurrent code
Apply appropriate concepts and techniques to create concurrent programming applications. The programming applications require appropriate access to shared data structures, synchronisation of concurrent code and liveness checks when appropriate. A program summary should describe and explain the principles and concepts used. This should take around 20 hours of preparation.