Diploma in Full Stack Software Development

Assessment Handbook

Your go to guide for all things assessment related including project ideas, assessment criteria and submission details.

Well done on getting to this point!

You've covered the content. You've absorbed the concepts and you've written the code. Now it's time to implement all your great ideas. Show the world what you can do. Build something that is useful and usable and is an expression of your abilty to solve interesting problems. Remember, the moment you begin work on your project it's no longer about you. It's about your users and what problems your solution solves for them. Keep them in mind every step of the way. By doing so, you’ll create something of real value


Table of Contents

Portfolio Project 3 - Python Essentials

Readme

Plagiarism

Portfolio Project 3

Python Essentials

Project purpose:

In this project, you'll build a command-line application that allows your users to manage a common dataset about a particular domain.

Main Technologies

Required: Python

Project Ideas

You can either choose to build the website based on Project Idea 0, or take inspiration from the other example ideas below.

Project Idea 0

Bring your idea(s) to life based on providing value to users to address a specific factual or imagined need. Use the relevant project assessment criteria as a guide to the minimum required functionality.

Project Example Idea 1

Analyse Survey Data

External user’s goal:

Site owner's goal:

Potential features to include:

Project Example Idea 2

A Battleships game

External user’s goal:

Site owner's goal:

Potential features to include:

Python Essentials

Assessment Criteria

Learning Outcomes

LO1 Implement a given algorithm as a computer program
LO2 Adapt and combine algorithms to solve a given problem
LO3 Adequately use standard programming constructs: repetition, selection, functions, composition, modules, aggregated data (arrays, lists, etc.)
LO4 Explain what a given program does
LO5 Identify and repair coding errors in a program
LO6 Use library software for building a graphical user interface, or command-line interface, or web application, or mathematical software
LO7 Implement a data model, application features and business logic to manage, query and manipulate data to meet given needs in a particular real-world domain.
LO8 Demonstrate and document the development process through a version control system such as GitHub
L09 Deploy a command-line application to a cloud-based platform

All Pass criteria must be achieved for a pass to be awarded.

LO1Implement a given algorithm as a computer program

1.1 Write Python code that passes through a linter (eg PEP8) with no significant issues.
1.2 Ensure all intended functionality works as per the critical project objectives
1.3 Write code that meets minimum standards for readability (comments, indentation, consistent and meaningful naming conventions).

LO2 Adapt and combine algorithms to solve a given problem

2.1 Write code that handles empty or invalid input data.
2.2 Clearly separate and identify code written for the application and code from external sources (e.g. libraries or tutorials)
2.3 Ensure a consistent flow of logic and data with well defined granular functions

LO3 Adequately use standard programming constructs: repetition, selection, functions, composition, modules, aggregated data (arrays, lists, etc.)

3.1 Implement standard programming constructs such as flow control, iteration, selection, functions, object-oriented programming and data structures - as appropriate - to achieve the project goals.
3.2 Implement exception/error handling to optimise the user experience

LO4 Explain what a given program does

4.1 Use consistent and effective markdown formatting that is well-structured, easy to follow, and has few grammatical errors when writing a README file.
4.2 Write a README.md file in English for the Python application that explains its purpose and the value that it provides to its users.

LO5 Identify and repair coding errors in a program

5.1 Implement basic manual testing procedures for code validation

LO6 Use library software for building a graphical user interface, or command-line interface, or web application, or mathematical software

6.1 Implement the use of external Python libraries where appropriate to provide the functionality that the project requires.

LO7 Implement a data model, application features and business logic to manage, query and manipulate data to meet given needs in a particular real-world domain.

7.1 Implement a working data model that supports the intended project functionality
7.2 Write code that queries and manipulates data to meet the identified vital project needs.

LO8 Demonstrate and document the development process through a version control system such as GitHub

8.1 Use Git & GitHub for version control of the web application up to deployment.

LO9 Deploy a command-line application

9.1 Deploy a final version of the Python Essentials application code to a cloud-based platform.
9.2 Ensure that the deployed application is free of commented out code.

All Pass criteria must be achieved for a pass to be awarded.

Merit Performance

To evidence performance at the MERIT level, a learner will, in general, demonstrate characteristics of performance at the MERIT level, as suggested below. However, the learner must achieve ALL listed merit criteria.

The learner has a clear rationale for the development of this project and has produced a fully functioning, documented application for a real-life audience. Data validation and user feedback are all evident in the code and the working application. There are no logic errors in the code, and the application functions as expected.

The finished project has a clear, well-defined purpose addressing the needs of a particular target audience (or multiple related audiences) and a specific data domain. Its purpose would be immediately evident to a new user without having to look at supporting documentation. The user is kept informed of progress and actions through feedback and, where large data sets are being loaded, progress indicators.

Code is well-organised and easy to follow, and the application has been fully tested, following a manual testing procedure, with no apparent errors left in the code.

The development process is evident through commit messages. The project’s documentation provides a clear rationale for the development of this project.

The application is robust and deals with external errors gracefully (user input).

1.1 Translate the intended logic into efficient code
2.1 Ensure a consistent flow of logic and data with well defined granular functions
3.1 Demonstrate a clear understanding of programming fundamental constructs. and their relationships
3.2 Implement OOP if appropriate to the project needs.
4.1 Document the work undertaken to plan this project’s logic through flow charts or diagrams
5.1 Document validation error-based fixes implemented and identify and explain any unsolved validation errors.
5.2 Document the implementation of manual testing for code validation(using PEP Validators).
6.1 Separate and identify code written for the application and code from external sources (e.g. libraries or tutorials)
7.1 Efficiently implement the intended functionality as per the key project goals
8.1 Document the rationale as to why a particular library/libraries are necessary for the implementation of the project.
8.2 Commit often for each feature/fix, ensuring that commits are small, well-defined and have clear, descriptive messages.
8.3 Demonstrate, through screenshots, what the project outcomes are and how they have been met.
8.4 Present a clear rationale for the development of the project in the README, demonstrating that it has a clear, well-defined purpose addressing the critical goals of the application for a particular target audience (or multiple related audiences).
9.1 Document the deployment procedure in a section in the README file.

All Merit criteria must be achieved for merit to be awarded.

Distinction Performance

At this level, a learner will have achieved all pass and merit criteria, as described above, and will demonstrate characteristics of high-level performance as described below:

Characteristics of performance at DISTINCTION level:

The learner has documented a clear, justified rationale for a real-world application

The development of the project has resulted in a fully-functioning Python application with a command-line interface

There are no logic errors in the code. Where there is a clear breach of accepted design/UX principles or accepted good practice in code organisation, these are fully justified, appropriate and acceptable to the target user. It matches the design and demonstrates the characteristics of craftsmanship in the code. The resulting application is original and not a copy of any walkthrough projects encountered in the unit

Amplification (craftsmanship):

Design

The design of the command line application demonstrates the main principles of imperative programming.

User Control

Consistency

Confirmation

Any design decisions that contravene accepted user interaction principles are identified and described (comments in code or a section in the README)

Development and Implementation

Code demonstrates the characteristics of ‘clean code’:

Consistent and appropriate naming conventions within code and in file naming, e.g.

Readability

Defensive design

Comments

Compliant code

Robust code

The entire design is implemented, providing an excellent solution to the users' demands and expectations and security consideration.

Real-world application

Security features and practice are evidenced.

Data is well structured

Configuration and dependencies files are kept up to date.

All noticeable errors have been corrected or documented:

Version control software is used effectively:

The entire application development process is documented:

-->

README

Recommended structure for a README.md file:


As a mandatory part of the submission, your project must have a readme file named README.md, in markdown format, that will describe all aspects of your project.

The link below provides an official example of an expected structure for your readme file

Example README.md template

NOTE:

While it is a requirement for your README to be in English, we also strongly recommend that your site is in English too. The assessment will be conducted in English so to ensure that the functionality and navigation can be fully assessed, we recommend that the site is in English. If the site is in a language other than English, at a very minimum you should ensure you have correctly set the lang attribute in the HTML to the character code of the web apps content language. This will allow the browser to attempt a translation into English.

Plagiarism


Plagiarism, as defined by the Oxford dictionary is “the practice of taking someone else's work or ideas and passing them off as one's own.” It is a serious academic offence for which there are serious consequences.

It is acceptable to use and reference others’ code however it is an academic plagiarism offence if any piece of work which is not entirely the student’s own is not correctly referenced or acknowledged. All student projects submitted will be reviewed for plagiarism. This includes checking code comparison tools, plagiarism software, review of git commit history and other mechanisms.

It is the responsibility of each student to ensure that any direct or indirect inclusion of the work of others is fully and adequately acknowledged. We appreciate that plagiarism may be unintentional however it will still be treated as an offence. The Tutoring team can answer any plagiarism related queries, but as a general rule, if in doubt, include attribution of all sources.

Students are encouraged to ask mentors, tutors and their peers for advice about their project work but any submission should not include any code written by others, unless it is explicitly credited to them. Failure to correctly credit code that a student hasn’t created themselves will be considered plagiarism and will result in a failing grade. Blatant or repeat offences of plagiarism will not be tolerated and will result in stringent penalties being applied, including removal from the course.