Skip to content

nicholsons/COMP0035-tutorials-2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COMP0035 2025-26 Weekly practical activities

This repository contains the activities for the COMP0035 module for the academic year 2025-26.

Instructions for using this repository

  1. Fork this repository to your own GitHub account.
  2. Clone the forked repository to your local machine (e.g. in VS Code or PyCharm).
  3. Each week, update the repository using the 'Sync fork' button in GitHub to check for changes, if it is out of date then select the 'Update branch' button.

Activity instructions and code files

The docs folder contains the activity instructions for each week.

The src package contains any starter code for each week. You can also use this package to store your own code that you create during the activities.

One solution to the week's activities will be added to the tutor_solution repository. Other solutions will be possible, and some may be better than the solution offered, so don't feel your code has to match the tutors code!

List of activity instructions

This will be updated each week with the activities for that week.

Week 1 Source code control, environment, structure

Theme: Working with code for applications

Required:

  1. Python project structure
  2. Python virtual environment
  3. Source code control (GitHub)
  4. Set up the course activities project and repository
  5. Set up the coursework project and repository

Optional:

  1. Computer setup for COMP0035
  2. Integrate your IDE with GitHub
  3. Using CoPilot in VS Code and PyCharm

Week 2 Pandas to describe, explore and prepare a dataset

Theme: Using Python to work with data

This week's activities are more than you can complete in a week. There are less in weeks 4 and 5 so you could delay some.

Week 2 instructions are in the docs/2_pandas folder:

  1. Create a package and module
  2. Open .csv and .xlsx files and create a DataFrame
  3. Describe the dataframe
  4. Identify missing values
  5. Overview of plots
  6. Plots to show distributions
  7. Plots for timeseries data
  8. Columns with categorical values
  9. Data preparation
  10. Locating rows and columns
  11. Remove columns
  12. Remove and replace values
  13. Change data types
  14. Add new data by computing
  15. Add new data by combining dataframes
  16. Save dataframe to file
  17. Check the prepared data suits the purpose
  18. Next steps

Week 3 Code quality: linting, docstrings, exception handling, project structure and imports

Theme: Working with code for applications

Week 3 instructions are in the docs/3_code_quality folder:

  1. Docstring
  2. Linting
  3. Auto-formatting
  4. GitHub Actions lint report
  5. (Optional) Static analysis: beyond linting
  6. Project structure
  7. Imports
  8. Error handling

Week 4 Database design; sqlite3

Themes: Designing applications & Using Python to work with data

This week's activities are more than you can complete in a week. There are less in weeks 4 and 5 so you could delay some.

Activity instructions are in the docs/4_database folder:

  1. Introduction to database design (lecture recap)
  2. Introduction to ERD (lecture recap) and ERD drawing tools
  3. Conceptual database design
  4. Logical design to 1NF
  5. Logical design to 2NF
  6. Logical design to 3NF
  7. Logical design - constraints
  8. Logical design - referential integrity
  9. Logical design activity
  10. Physical design - SQLite schema
  11. Physical design - Python to create SQLite database structure
  12. Database design - next steps
  13. SQL INSERT and SELECT intro
  14. Add data to tables with no FK
  15. Select data
  16. Add data to tables with an FK
  17. Normalisation and application code- A brief intro to the trade-off between database normalisation and query design

Activities after this point relate to coursework 2


Week 5 Database to Python class: ORM

Theme: Using Python to work with data

Week 5 instructionsare in the docs/5_classes_orm folder:

  1. Python classes
  2. Class relationships - inheritance, composition
  3. Pydantic
  4. ORM and SQLModel
  5. Using SQLModel to create SQLite database
  6. Using SQLModel to add data
  7. Summary
  8. Optional Using SQLAlchemy in place of SQLModel

Week 6 Requirements; interface design

Theme: Designing applications

Instructions in the docs/6_requirements folder:

  1. Introduction
  2. Identify requirements
  3. Document requirements
  4. Prioritise requirements
  5. Draw wireframes

Week 7 Application design

Theme: Designing applications

Instructions are in the docs/7_app_design folder:

  1. Introduction to application design
  2. Examples of application designs
  3. Identify classes
  4. Draw the application design diagram
  5. Review the design
  6. Draw the application design for the paralympics prediction web app
  7. Results of using genAI for the application design

Week 8 Classes and database 2

Theme: Using Python to work with data

Instructions are in the docs/8_classes_database_2 folder:

  1. Adding methods to classes
  2. Tables with relationships in SQLModel
  3. Add data using SQLModel
  4. Add data to tables with relationships
  5. Selecting data from a database with SQLModel
  6. Update data in a database with SQLModel
  7. Delete data from a database with SQLModel
  8. Reminder: code quality still matters!
  9. SQLModel queries for the paralympics database

Week 9 Unit testing, CI and coverage

Theme: Working with code for applications

Instructions and activities can be found in the docs/9_testing folder:

  1. Introduction to testing and conventions
  2. Testing with pytest
  3. Pytest fixtures
  4. Reporting test coverage
  5. Running tests with GitHub Actions
  6. Further information

Week 10 No new activities

Tutorial reserved for final coursework support

Data set

Most activities use paralympics data that was originally compiled from the IPC website in 2021.

The data may be duplicated in some instances in src/data and other sub-folders in src. This is for teaching purposes for an activity that requires a different copy or location.

External examples using similar paralympics data

Onyx data challenge 2024

About

COMP0035 2025/26 coding activities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages