COMP0035 Coursework 02 specification

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

COMP0035 Coursework 02 specification

1. Table of contents

Introduction

Coursework specification

General requirements and constraints

Getting started

Coursework content

Submission Marking

Module learning outcomes Mark allocation

Grading criteria Appendices

Guidance on Moodle Code quality

Code that does not fully function

Version: 2.0. 19/11/24 Summary of changes:

• Version 2.0: Explicit statement that exclude the use of Jupyter notebook files.

2. Introduction

The aim of the combined coursework in this module is for you to select and apply some of the relevant software development and data science techniques that are used in a typical project lifecycle.

Coursework 1 focused on data preparation and database design.

Coursework 2 continues from coursework 1, focusing on requirements analysis, design, and testing.

In coursework 2 you will design a web application that centres on the use of the database that you

prepared in coursework 1. You will need to come up an idea of the application to develop based on the data.

You will submit a single written document (report) and a repository of code files that combined meet the requirements detailed in the “Coursework Content” section.

You should make progress each week of term. There are weekly activities and checkpoints in Moodle.

For IEP minor students, the application that you design in this coursework will be developed and tested in COMP0034 in Term 2.

3. Coursework specification

3.1. General requirements and constraints

• Compile all written work into a single report in either PDF or Markdown format. Name the document coursework2.

• There are no word limits; though the report is not an essay, so be succinct. Use relevant diagrams.

• Continue to use the repository you created for coursework 1. Keep the repository private. Keep the repository in the ucl-comp0035 organisation.

• You must use the data set allocated to you on Moodle.

• This is an individual coursework. Do not collude with other students using the same data set.

• Use of code AI tools is permitted. UCL recommends using Microsoft Copilot (https://

liveuclac.sharepoint.com/sites/Office365/SitePages/Bing-Enterprise-Chat.aspx) using your UCL credentials. This must be stated in the ‘References’ section.

• Use relevant techniques from the course, or from data science and/or software engineering processes. Provide references for techniques not included in the course material.

• Diagrams can be hand-drawn and scanned. Using software to draw them does not increase marks.

• Python code must be submitted as python files (.py). Jupyter notebook files are not appropriate or acceptable for this coursework.

3.2. Getting started

Continue using the same GitHub repository that you used for coursework 1. Continue to use the same data that you used for coursework 1.

Before you start, you need to come up with an idea of the application to develop based on the database you designed in coursework 1. Any idea, so long as it uses the data in some way, is acceptable. You can  include features in the app that collect data for new entities and attributes. These are some of the apps previous students’ have designed:

• Employment data: web app for job-seekers to search for job adverts as well as charts based on the data. Employers could post job adverts.

• Film box office data: web app for movie enthusiasts with functions to search for movies and exchange comments on them (blog/comment feature).

• House sales data: web app for potential homebuyers and sellers that deployed a machine learning model that predicted house prices for different house sizes in areas of London.

• Volcano eruptions data: a web app that showed map with volcano locations and provided pages with info related to the activity of each and integrated a news feed API to provide relevant stories.

• Cherry tree flowering in Kyoto: a web app that allowed researchers to get a prediction about the future dates that the cherry trees would flower, and provided an admin interface to manage the   data set.

• Emissions data: a web app for London residents to check on the air quality in different areas of London.

Avoid features that require login/authentication unless it is essential to enable the app’s behaviour. Authentication is well documented and easy to copy, so lacks challenge as an app feature to design.

Machine learning (ML) is not taught in COMP0034. Previous students who designed apps with machine learning already knew how to create the models. You are welcome to design a feature based on an ML model if you have the knowledge to do so.

3.3. Coursework content

This lists the sections to be included in the coursework:

1. Requirements analysis

2. Design (interface, application and database)

3. Testing (query code and unit tests)

4. References (references, statement of AI use, dataset attribution)

The content for sections 1, 2 and 4 must be combined in a single report. The content for section 3 will be in code files.

Section 1: Requirements analysis

The purpose of this section is to demonstrate that you can apply relevant software engineering techniques to define a product; and capture, document and prioritise requirements.

Section 1.1: Overview of the product and who will use it

Select and apply appropriate techniques to provide an overview of the app you will design, and who is intended to use it (i.e. the target audience).

Section 1.2: Prioritised requirements

Select and apply techniques that document the requirements for the app. The requirements describe what the app should do, and any constraints on how it should operate.

Document the requirements using a relevant software engineering format, e.g. User Stories. Include the prioritisation of each requirement.

Section 2: Design

The purpose of this section is to demonstrate that you can apply relevant design techniques to describe the structure to the proposed Python web application.

Produce diagrams that represent the design of your application’s interface and application logic. Review your database design (ERD) from coursework 1.

The design should cover most of the requirements that you documented in section 1.2 - there may be lower priority requirements that you do not consider.

Section 2.1: Interface design

The “interface” is the web pages that the intended audience will use in the app.

Design the structure of the interface as wireframes. Focus on the requirements and the data that needs to be presented or captured in each “page” or “view” in the interface. Do not consider visual aspects such as   colours, fonts, etc.

Section 2.2: Application design

Design the application logic i.e. the Python package(s), module(s), functions and classes. Do not write the Python code, the design should be a diagram.

Section 2.3: Database design

You designed a database in coursework 1 and drew this as an Entity Relationship Diagram. Review the design against your requirements. If changes are required, update the ERD.

Include the ERD from coursework 1 and if you made changes, the revised version for coursework 2 in the report.

Section 3: Testing

The primary purpose of this section is to demonstrate that you can write and run unit tests using pytest. A secondary assessment objective is to demonstrate that you can write SQL queries as Python code.

Section 3.1 Write Python code to run database queries

Write Python code to execute 6 SQL queries that interact with the database you have designed.

You can either use the database you created in coursework 1, or use an updated version based on the design you created for section 2.3.

Aim to provide at least one of each type of query if possible:

1. A query that selects data from a table

2. A query that adds data to a table

3. A query that deletes a row of data from a table

4. A query that amends an existing row of data in a table

Try to structure the code as Python functions (or Python class with methods).

Section 3.2 Unit testing

Unit test the database query code. Use the pytest library. Write 2 unit tests for each of the 6 queries.

To run the tests, the marker requires that your code be installed used pip install -e . and the marker will run the tests using pythom -m pytest. If you wish the tests to be run using a different command,

please provide the command in the report.

Make sure that you:

• update requirements .txt by adding pytest and any other python libraries used

• update pyproject .toml so that your test directory and your coursework2 code directory can be located by pytest

Code quality is considered.

Optionally, consider reporting and commenting on test coverage; and/or automating the running of the

unit tests in a GitHub Actions workflow.

Section 4: References

Include code references in comments the code files close to where it is used. Include all other references, if used, in the report.

Section 4.1: Use of AI

State either that you used AI, or state that you did not.

If you used AI, include the details stated in the UCL guidance (https://library-guides.ucl.ac.uk/ referencing-plagiarism/acknowledging-AI#s-lg-box-wrapper-19164308).

Section 4.2: Dataset attribution

Include a statement to acknowledge your dataset (attribution) to comply with any license condition required for your data set (given in the data set link in Moodle > Resources > Data sets).

Each license is different and tells you what has to be cited; e.g. see open government licence v3 (https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/).

3.4. Submission

Refer to Moodle > Assessment for the deadline date and time.

Submit your work on Moodle as a single .zip in the assignment submission.

GitHub is not an acceptable alternative for submission. However, it allows you to download files as a .zip file, this .zip file can then be uploaded to Moodle.

Make sure all files are in the zip. URLs linking to external files cannot be marked as they could be changed after the submission time.

DO NOT include your virtual environment, e.g. .venv, folder in the zip file, this creates unnecessarily large zip files.

Table: Submission checklist

Section

Report

Code files

1.

Requirements analysis

1.1 Overview of the product and who will use it

1.2 Prioritised requirements

2.

Application design

2.1 Interface design

2.2 Application design

2.3 Database design

3. Testing

3.1 Database queries

3.2 Unit test code

Updated requirements .txt,

pyproject .toml and README .md.

4. References

4.1 Statement of AI use

4.2 Data set attribution

4.4 Other references (optional)

4.3 Code references within code files


发表评论

电子邮件地址不会被公开。 必填项已用*标注