Skip to content

UFCEQC 15 M

UFCEQC-15-M Programming Data Intensive Applications

Overview

This module explores the principles and practices of building scalable data-intensive applications, covering distributed architectures, storage and processing frameworks, optimisation, and deployment.

This module develops students’ ability to design and build robust, maintainable data applications beyond scripting level. It focuses on software engineering best practices, the use of frameworks and architectural patterns, and integration with diverse data sources. Students will also gain experience in creating APIs, dashboards, and visualisation tools, preparing them to deliver high-quality data-intensive applications in research and industry contexts.

Objectives

  1. Apply software engineering best practices to the development of robust, maintainable data-intensive applications.
  2. Design and implement data applications using appropriate frameworks, architectural patterns, and data integration techniques.
  3. Integrate and present data through APIs, dashboards, or visualisation tools, with consideration for usability and maintainability.

Curriculum

Topics may vary, but indicative subjects will include:

Software Engineering for Data Applications:

  • Principles of software engineering best practice (modularity, reusability, maintainability).
  • Version control workflows and collaborative development (e.g. Git, GitHub/GitLab).
  • Test-driven development and automated testing for data applications.
  • Code quality assurance, documentation, and maintainability considerations.

Frameworks, Patterns, and Data Integration:

  • Architectural patterns for data applications (e.g. Model-View-Controller MVC, layered architectures).
  • Object-relational and object-document mapping (ORM/ODM).
  • Use of Python frameworks (e.g. Flask, FastAPI, Django) for building data applications.
  • Data integration techniques for Structured Query Language (SQL)/NoSQL databases and external services.

Data Access, Presentation, and Interaction:

  • Designing and implementing Application Programming Interfaces (APIs) for data access and integration.
  • Building interactive dashboards and visualisations (e.g. Plotly Dash, Streamlit).
  • Usability considerations in presenting data to end-users.
  • Case studies of maintainable, user-oriented data applications.

N.b. Specific languages and tools are indicative and may be replaced by similar alternatives

Assessment

Group Work (100%)