Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Assessment Task Information

Key details:

Assessment title:

Programming Assignment Part 2

Module Name:

Information Technology

Module Code:

FC308

Assessment will be set on:

5th March 2024

Feedback opportunities:

Peer feedback on class, tutor feedback

Assessment is due on:

24th April 2024

Assessment weighting:

40%

Assessment Instructions

What do you need to do for this assessment?  

In this assessment you are required to develop and test a Python program and then write up a report about your solution. This document contains two scenarios, but the student only needs to provide a program and essay about one of the scenarios. Students can choose either Scenario A or Scenario B, but not both. You are encouraged to speak with your tutor about which of these Scenarios you are best suited to solve, and how best to progress.

Students should complete the task based on the scenario chosen and provide evidence to meet all the criteria. Evidence must be provided to show key elements of this assessment:

· Analysis of the scenario and the application of computational thinking skills.

· Technical understanding of the data structures, algorithms, functions, and data types.

· Development of a programming solution in Python.

· The testing and evaluation of the solution during the development process and at the end of the development.

The following sections should be included in the report submitted:

1. Analysis

2. Design (Using an algorithm)

3. Technical Overview

4. Developing the Codded Solution

5. Testing to Inform Development

6. Testing to Inform Evaluation

7. Evaluation of Solution

8. References

The sections are described on the following page.

It is recommended that you consult the marking rubric and marking check list to identify the weighting that goes with each of the categories and the scores for each category. This page and the following page contain a short description of what each of the sections.

1. Analysis

The analysis section should contain an analysis of the scenario which is being worked on. In this section students should identify what is important about the scenario. It is important that this section contain a set of success criteria which indicate what features the solution should have and can be used later in the report to assess how well the final program fulfils the success criteria. In this section students should consider the requirements that all stakeholders have and anticipate any likely features that are complimentary to the ones identified in the scenario. The analysis can also draw upon research into other applications and into the needs of the stakeholders.

2. Design (Using an algorithm)

The design section should include a description and representation of the algorithms that are going to be used in the making of the final project. The algorithms that are designed should be represented using either flowcharts or pseudocode, and the correctness and completion of these representations will be considered in the awarding of marks. If there are elements that are key for the final program missing from the representations of the algorithms this will negatively impact this section. Hence, it is recommended that these algorithms be as complete as possible and contain comments where appropriate.

3. Technical Overview

The technical overview section should contain a detailed description of the data structures, programming techniques and methods used in programming the final solution. This means that students should identify and describe the use of things like iteration, selection, and the use of sub functions in the code (built in Python functions or ones that are defined in the code). It also means that students should describe the nature of the data structures that are used in the project. In other words, the variable ‘name’ should be identified, and the type of data should be given (i.e., a string) and the purpose of that variable should be identified. The same should be done for complex data structures. It is also recommended to include a justification for the use of the type of variable for storing the data in the program.

4. Developing the codded solution

This section should contain a complete list of the final python code, and that code should contain comments which describe that code. If there are elements in the final Python project which are not planned in the design section or technical overview, this will likely reduce the grade awarded. The omission of an explanation for the use of programming techniques indicates that the student may not fully understand the reason for using such programming techniques. If the student has used code from other sources such as the internet or a textbook, the code should be cited, and a reference should be included at the end of the report.

A note about data storage:

Students are reminded that only data storage methods that have been taught on the module should be used in the development of the program. If you are in doubt about whether the storage type that you have chosen is on the course, please speak with your tutor.

5. Testing to inform development

This section should contain a description of the testing that went on during the development of the solution. Testing is an important part of the development process. For example, if data is to be stored in a text file for use in the program, the function for storing and retrieving the data from the file needs to be tested for it to work within the program as expected. It is also recommended that this section contain a description of how any code was changed to fix any problems encountered. Therefore, it is important that students record the changes that they have made to the code.

6. Testing to inform evaluation

This section should contain a description of the systematic testing of the final project that is produced. It is recommended that the students use the success requirements identified in the analysis part of the report to direct their testing, although testing should not be limited to those areas identified in the analysis. Through the testing it is important that students assume that the user will not always input the required information or the required type of information into the program. The program should not fail or stop if the user does not enter the required data in the correct format so it is important for the student to test for edge cases and type errors etc that would raise exceptions or stop the program running as expected.

7. Evaluation of Solution

In this section the final solution should be evaluated against the scenario that was presented to the student and against the success criteria that was identified in the analysis section of the report. The evaluation should draw upon the analysis section and consider the needs of all the stakeholders. The evaluation should also consider possible additions to the program that would add additional features or functionality that would be complementary to the program.

8. References

A list of references that are in the Harvard referencing style should be provided along with citations in the text of the report to reference the materials used in the project.

Guidance:

For this assessment you should make use of the following formative activities and summative assessments that you have already completed. These activities have been designed to support this summative assessment:

• Programming Assignment Part 1 Feedback

• Formative Assessments for topics in the Programming and Computational Thinking Themes.

Please note:

This is an individual assessment so you should not work with any other student.

Your tutor will also ask for a draft copy of your report and provide written feedback.

Before you submit this assessment, you will have an opportunity to receive feedback from your peers (other students in the class). Your tutor will arrange a time for you to share and discuss your progress with your classmates. You do not have to act on their feedback, but you may find it useful to enhance your final submission.

The task has been designed to encourage you to develop more sophisticated programs which can showcase your programming skills and allow you to develop more complex algorithms. The complexity and originality of your work will be considered in the awarding of a grade for this piece of work.

The following pages contain Scenario A and Scenario B

Scenario A: Vocabulary Builder

Program Specification

Introduction

Abdullah works for an educational company that produces books and other materials to help school children study for their school subjects. Abdullah has been asked to produce a program in Python that helps children develop their vocabulary and learn the definitions of the words they learn in their classroom. The skills that Abdullah has been asked to quiz are remembering words, as well as their definitions, and the subjects that he can draw upon could be any subject that student’s study in school such as Maths, Science, History, Art, Computer Science etc.

It has been suggested to Abdullah that he try to make a word game in which the user guesses the letters in a word and is then given a chance to guess what that word is or can simple guess the word given the number of characters it contains. Other suggestions include, testing to see if students can match the definitions of words with the words themselves. Abdullah thinks that it will be engaging to award points to students, or to keep track of the progress users make using the completion of tasks.

Abdullah wants to create a user interface that allows students to login to the system and to do quizzes or word games that are designed to engage students in learning vocabulary, and to keep track of her progress through small quizzes or games that can be completed over a short time. Keeping track of the progress of that the user is making can be done through the awarding of points for completion of tasks, and these points can be shared or displayed in a high score list.

Storage

It is recommended that the vocabulary builder program should store:

· A username and password for each user.

· Either the score of the user or the progress the user is making with the games (or both).

· A comprehensive word list alongside their definitions that should be stored in an appropriate file.

· Student level or difficulty setting to tailor the learning experience to different levels or stages.

· Personalisation of the application can be achieved through the storage of incorrect guesses, or a list of mastered words to avoid repetition.

Minimal Requirements

You have been asked to analyse the requirements for this system and to design, develop, test and evaluate a program that Sophie to at least:

· Login with a username and password.

· Access a menu system that allows the user to pick a game.

· The user should be able to play a game that is suited to their level or learning.

· The user’s progress should be stored either through the scores or through the record of the completion of games.

· At least two types of vocabulary games (Suggestions include word guessing or definition matching).

As the designer of the application, it is your responsibility to add functionality to the program which you can justify according to the scenario. In other words, this specification page details the minimum requirements for the programming project. The final solution will be awarded marks based on the complexity and the use of programming techniques that are developed on the course. You are recommended to go beyond this specification and try to showcase your programming skills and technical understanding.

Scenario B: Budget Tracker

Program Specification

Introduction 

Sophie works for a bank committed to helping customers achieve their financial goals. She's tasked with developing a simple budget tracking application to encourage responsible saving habits. This app will be promoted to bank customers of all ages and technical backgrounds.

Sophie's project is all about making budgeting easy. She wants to create an application that allows users to track their income, categorize their expenses (like bills, groceries, entertainment, etc.), and visualize their spending patterns. The goal is to help users understand where their money goes and identify areas where they could potentially save more.

Sophie is thinking about including features like setting up savings goals, providing tips on cutting down unnecessary expenses, and maybe even incorporating some fun challenges that encourage users to save more.

Sophie wants to create a user interface that is welcoming and easy to use. Users should be able to easily create an account and input their financial information. The application should provide clear visualizations of spending habits and offer insights to empower users to make informed financial decisions.

Storage

It is recommended that the vocabulary builder program should store:

· A username and password for each user.

· The income or allowances of the user (amount and frequency – e.g. weekly, monthly etc)

· Expenses (broken down by category, e.g., housing, food, transportation, entertainment) with their amounts and dates.

· Current balance.

· Savings goals (for example target amounts to be saved and the desired time frame to save it.)

Minimal Requirements

You have been asked to analyse the requirements for this system and to design, develop, test, and evaluate a program that Sophie to at least:

· Login with a username and password.

· Access a menu system that allows the user to: add income, add expense entries, view current balance and recent transactions, and set up a simple savings goal.

· A savings overview which shows the current balance after subtracting the expenses from income. This could display how much is potentially available for saving.

· A way of displaying the spending habits of the user either according to the categories, or the otherwise. This can be displayed as a percentage or some other way.

As the designer of the application, it is your responsibility to add functionality to the program which you can justify according to the scenario. In other words, this specification page details the minimum requirements for the programming project. The final solution will be awarded marks based on the complexity and the use of programming techniques that are developed on the course. You are recommended to go beyond this specification and try to showcase your programming skills and technical understanding.

Guidance:

For this assessment you should make use of the following formative activities that you have already completed.  These activities have been designed to support this summative assessment:

Programming Assignment part 1 feedback

Please note:

This is an individual assessment so you should not work with any other student.

Your tutor will also ask for a draft copy of your task and provide written feedback.  

Before you submit this assessment, you will have an opportunity to receive feedback from your peers (other students in the class).  Your tutor will arrange a time for you to share and discuss your progress with your classmates.  You do not have to act on their feedback, but you may find it useful to enhance your final submission.

Structure:

Structure: Your report must include a Title page, contents page, page numbers and declaration of ownership. There is no word count for the assignment, but there are some guidelines for each section:

Section 1: Analysis

· The analysis needs to be no more than one page of text.

Section 2: Design (Using an algorithm)

· The design of the algorithm can take up multiple pages.

Section 3: Technical Overview

· It is recommended that this should be a detailed description which can take multiple pages.

Section 4: Developing the codded solution.

· This section will contain all code and will take up multiple pages.

Section 5: Testing to inform development.

· This section will contain a detailed description of the testing during the development process and will take up multiple pages.

Section 6: Testing to inform evaluation.

· This section will contain a detailed description of the testing of the final project and will take up multiple pages.

Section 7: Evaluation of Solution

· This section will contain an evaluation of the final program that has been produced. It can contain multiple pages.

Section 8: References

Theory and/or task resources required for the assessment:

You will need to use Python programming language.  This will be available on the university computers and can also be downloaded and installed free of charge to your home PC/laptop.  Your tutor will advise you on this. 

Referencing style:

As well as any literary references you should include references to any Python code used that is not sourced from the taught material (e.g. labs/lectures).  Code references MUST BE referenced within the code. E.g. 

# The following 3 lines of code were taken from https://stackoverflow.com/questions/2960772/how-do-i-put-a-variable-inside-a-string-in-python 

Or 

# The following lines of code were adapted from https://stackoverflow.com/questions/2960772/how-do-i-put-a-variable-inside-a-string-in-python 

You are also strongly encouraged to add a link to any conversations that you have with any LLMS (e.g. ChatGPT OR Google Gemini).

Literary references should be in the Harvard style.  You do not need to include a bibliography. 

Expected word count:

There is not word count for this assessment.

Learning Outcomes Assessed:

· Identify the following accurately: integer, real/float, Boolean, character, string, date/time, records (or equivalent), arrays (or equivalent)  

· Demonstrate a theoretical understanding of conditions and iteration structures  

· Apply the fundamentals of number systems to computational data  

Submission Requirements:

You must include the following paragraph on your title page:

I confirm that this assignment is my own work.  

Where I have referred to academic sources, I have provided in-text citations and included the sources in the final reference list.

You must type your assessment in Arial with at least a font size of 11.

You must submit the assessment electronically via the VLE module page.  Please ensure you submit it via Turnitin.

Assessments submitted after the submission deadline may incur penalties or may not be accepted.

Addition submission information – check you have done the following:

Formatting

Consistent font, spacing, page numbers, formatting and subheadings

Citations

Correct format and location throughout the report

Referencing

Harvard referencing system used correctly in the reference list

Summarising

Summarising the results of research

Paraphrasing

Paraphrasing the contents of research findings

Spell check

Spell check the report

Proof-reading

Proof-reading completed

Grammar

Grammarly has been used to check the report

How will this assessment be marked?

The assessment will be marked using the following areas and weightings (please refer to the assignment checklist for further details):

Continued on next page…

· Analysis (Total 10%)

· Design Using an Algorithm (20%)

· Technical Overview (10%)

· Developing the Codded Solution (20%)

· Testing to Inform Development (10%)

· Testing to Inform Evaluation (10%)

· Evaluation of solution (10%)

· References and Academic Integrity (10%)

You will receive marks for each section between 0 and 5 depending on the evidence provided. Five marks is the highest ratting while zero marks is the lowest. The final mark will be calculated using the weights on this page and the formula found on the assignment checklist. A final percentage grade will be provided for the overall mark. You should examine the checklist that accompanies this assignment.

How will you get feedback?

Your tutor will mark the assessment and provide you with a written feedback sheet.  You can use this feedback to guide your further learning on the module.