Academic Handbook Course Descriptors and Programme Specifications

LDSCI5206 Advanced Programming with Data Course Descriptor

Course code LDSCI5206 Discipline Computer & Data Science
UK credit 15 US credit 4
FHEQ level 5 Date approved November 2022
Core attributes None
Pre-requisites LDSCI4210 Intermediate Programming with Data
Co-requisites None

Course Overview

This course offers a deep dive into the design and implementation of enterprise-grade software systems with an emphasis on software architectures for more complex data-driven applications. It covers extensible architectures that support testing, data provenance, reuse, maintainability, scalability, and robustness – i.e., how to build software for wide-scale adoption and ease of use.

Students learn to design, implement, and test complex, loosely-coupled, service-oriented architectures using distributed processing, stream-based data processing, and inter-process communication via message passing. They also explore the features, capabilities, and underlying design of popular data analysis and visualisation frameworks.

Learning Outcomes

On successful completion of the course, students will be able to:

Knowledge and Understanding

K1b Demonstrate knowledge and critical understanding of software design paradigms.
K2b Create, refine and express a software design in graphical notation such as UML class diagrams.

Subject Specific Skills

S1b Choose, include, and implement design patterns appropriately to design solutions to problems and understand the impact of the design decisions on the technical, social and management dimensions of software.
S2b Develop well-documented, understandable, reusable and extensible code in an object-oriented programming language, accompanied with appropriate unit testing, to solve small to moderately-sized computing problems.

Transferable and Employability Skills

T2b Review and defend the design choices made in existing software libraries and frameworks to a group of peers, identify limitations and propose ways for improvement.
T3b Demonstrate a sound technical proficiency in written English and skill in selecting vocabulary so as to communicate effectively to specialist and non-specialist audiences.
T4b Work in a proactive and effective manner as part of a team in a data-driven application project, assuming significant responsibility in the design and implementation of software for that project.

Teaching and Learning

This course has a dedicated Virtual Learning Environment (VLE) page with a syllabus and range of additional resources (e.g. readings, question prompts, tasks, assignment briefs, discussion boards) to orientate and engage students in their studies.

The scheduled teaching and learning activities for this course are:

Lectures/labs. 40 scheduled hours – typically including induction, consolidation or revision, and assessment activity hours:

  • Version 1:All sessions in the same sized group

OR

  • Version 2: most of the sessions in larger groups; some of the sessions in smaller groups

Faculty hold regular ‘office hours’, which are opportunities for students to drop in or sign up to explore ideas, raise questions, or seek targeted guidance or feedback, individually or in small groups.

Students are to attend and participate in all the scheduled teaching and learning activities for this course and to manage their directed learning and independent study.

Indicative total learning hours for this course: 150

Assessment

Both formative and summative assessment are used as part of this course, with purely formative opportunities typically embedded within interactive teaching sessions, office hours, and/or the VLE.

Summative Assessments

AE: Assessment Activity Weighting

(%)

Duration Length

(words)

1 Set Exercises 70 24-32 hours  
2 Written Assignment – Group 30   2,500

Further information about the assessments can be found in the Course Syllabus.

Feedback

Students will receive formative and summative feedback in a variety of ways, written (e.g. marked up on assignments, through email or the VLE) or oral (e.g. as part of interactive teaching sessions or in office hours).

Indicative Reading

Note: Comprehensive and current reading lists are produced annually in the Course Syllabus or other documentation provided to students; the indicative reading list provided below is for a general guide and part of the approval/modification process only.

  • Harry J. W. Percival and Bob Gregory. 2020. Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices. O’Reilly Media.

Indicative Topics

Note: Comprehensive and current topics for courses are produced annually in the Course Syllabus or other documentation provided to students; the indicative topics provided below are used as a general guide and part of the approval/modification process only.

  • Object-oriented program design with classes
  • Testing, debugging, and profiling
  • Handling exceptions
  • Event-driven software architectures
  • Microservices
Title: LDSCI5206 Advanced Programming with Data

Approved by: Dr Alison Statham

Location: academic-handbook/programme-specifications-and-handbooks/undergraduate-programmes

Version number Date approved Date published Owner Proposed next review date Modification (as per AQF4) & category number
1.0 November 2022 January 2023 Dr Alexandros Koliousis November 2027  
Print/Save PDF