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 |