Question

Assessment Task Information Key details: Assessment title: Module Name: Module Code: KAPLAN INTERNATIONAL PATHWAYS Programming assignment Part 1 Information Technology FC308 Assessment Instructions What do you need to do for

this assessment? This assignment consists of two tasks. The first task involves the use of iteration and selection structures in Python, while the second task adds the use of different data structures and file handling in Python. For both tasks it is important to design the algorithm using a Flow Chart or Pseudocode. Please see the Structure part of this document to see an outline of the report that needs to be produced. Task 1. Simple Interest Calculator Objective: Your task is to create a Python program that acts as a simple interest calculator for a bank deposit. This program should be capable of calculating the interest accrued on a bank account over a specified number of years. It is essential that the program be user-friendly, catering to individuals without technical expertise, and robust enough to handle various user inputs without unexpected termination or erroneous output. The program should guide users through the process of inputting their deposit amount, the interest rate, and the duration of the deposit in years, calculating, and displaying the balance at the end of the period. Kaplan International Pathways SAVING TS 1 V INTIING! 5$4 SATUTRENTS 2850 ANM This assignment is an opportunity to apply the planning and programming techniques discussed in class, focussing on user interaction as well as iterative and selection structures in Python. The program should employ selection structures and iteration structures to validate inputs from the user (i.e. to make sure that the inputs from the user are in the correct range, or type). Iteration should also be used in the process if calculating the final amount plus the interest accrued. SS kaplanpathways.com It is not expected in this task for students to use error handling techniques in Python, user defined functions or to use more advanced data structures that have not be taught. The requirements on the next page are a guide for the development of the program. Requirements: 1. User Input Collection: O O O 2. Input Validation and Error Handling: O O O O 3. Simple Interest Calculation: Prompt the user to input the principal amount (The amount deposited in the account). Request the user to enter the interest rate. Ask the user to specify the time period for the interest calculation. O 4. User-Friendly Interface: O Implement selection structures (like if-else statements) to validate user inputs. Ensure that the principal amount, interest rate, and time period are positive numbers. Provide error messages and prompt for re-entry if inputs are invalid (e.g., negative numbers, non-numeric values). Design the program to be intuitive and easy to use for individuals without technical expertise. O Provide clear and concise prompts and instructions for inputting data. Display outputs (interest and feedback) in an easily understandable format. O Calculate the interest added to the account after each year. Ensure the calculation adheres to correct mathematical principles. Compound interest should be applied (i.e. interest is added yearly and is added to the balance of the account.) O 5. Adherence to Programming Techniques: Follow the planning and programming techniques discussed in class. Ensure the code is well-organised, commented, and uses the full range of Python skills that have been taught on the course so far. Task 2. A high Score Manager Objective: Your task is to design and code a High Score Manager in Python that interacts with a text or CSV file to maintain a record of high scores for a computer game. The program must enable users to add new scores with a name, search existing names, and update the score list based on player scores. It should ensure that the high scores are always sorted and stored in order of highest to lowest and ensure that there are no duplicate names. Whenever a player scores a higher score, their lower score gets replaced. The program should be user-friendly, even for those with no technical background. For this task you are required to choose the relevant data structure and to work with files. Kaplan International Pathways 16 a KERE 2 HIGH SCORES PLAYER NAMES GIL SRDEER 41 3 37 43 673 SCOBER 33 3 05 03 043 3SOEER 47 3 41 33 380 SCORER 38 3 39 39 393 SAOEER 03 3 35 40 843 SCORER 30 4 30 31 833 SABEER 33 3 23 41 020 GTL Only the data structures and the file handling skills that are taught on this course are expected in the Python program. Solutions that involve more advanced techniques that are not on this course (such as spreadsheets, databases, JSON files etc) are not permitted. However, students are encouraged to use their validation skills that they have developed in the first task as well as using user defined functions that can be reused in the program. -23 kaplanpathways.com The requirements on the next page are a guide for the development of the program. 1. File Interaction: O O 2. Adding New Scores: O O O O 3. Search Functionality: O O 4. Updating the Score List: O O The program must interact with a text or CSV file to maintain a record of high scores. It should be capable of reading from and writing to this file. 5. Sorting Scores: O Users must be able to add new scores to the system. Each score entry should include a player name and the score. The program should perform validation to ensure that the name and score are in a valid format. O The program should allow users to search for scores by player names. This should be able to handle cases where the name is not found. O 6. Duplicate Name Handling: The program should enable the update of scores. It should handle the addition of new scores and the updating of existing scores. O O The program must automatically sort the high scores in descending order (highest to lowest). This sorting should occur whenever a new score is added, or an existing score is updated. 7. Data Structures: The program must ensure that there are no duplicate player names. In case of a duplicate name, the program should update the existing score or prompt the user for a different action. Scores should only be replaced with higher scores that the exiting scores on the high score board. Use only the data structures that have been taught in the course. The choice of the appropriate data structure for managing the scores is left to the student. 8. User Interface: The program should have a user-friendly interface. It must be navigable and usable by individuals with no technical background. 9. File Type and Advanced Techniques: O The program should only use text or CSV files for data storage. O Techniques not covered in the course, like using spreadsheets, databases, JSON files, etc., are not allowed. 10. Documentation: The program should include comments explaining the code. Kaplan International Pathways 3 kaplanpathways.com Please refer to the structure section on the next page for a complete description of the parts that are necessary for the assignment write-up. 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: From Sessions: ● From the textbook: ● Introduction to Python Weeks 7 & 8 Lessons, Labs & tasks Data Types Week 9: Lessons, Labs & Tasks Algorithm Design Week 11 & 12: Lessons, Labs & Tasks ● Abstraction & Decomposition Week 13: Lessons, Labs & Tasks Further Programming & Assessment Support: Weeks 14 (and onwards): Lessons, Labs & Tasks Chapter 1: What's Programmig? (Designing algorithms etc.) Chapter 2: Introduction to Python Chapter 3: Designing and Using Functions Chapter 4: Working with Text (Strings), Chapter 5 (Selection) Chapter 8: Lists Chapter 9: Iterations (Loops). Chapter 10: Reading and Writing Files Chapter 11: Storing Data Using Other Types Collection Types Chapter 15: Testing and Debugging 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: Your report must include: Title page, contents page, page numbers and declaration of ownership For each task the report must include the following sections: Section 1: Algorithm - The algorithm used expressed as a flowchart, pseudo code or other recognised nomenclature. Section 2: Technical Overview - A description of the all the variables, functions and data structures used needs to be included. Section 3: Python Code with Comments (or annotations) - The complete working Python programme which has comments in the code describing what it does or is annotated with descriptions. Section 4: Testing- The program should be tested as it is being developed (testing for development), and at the end of the development process (testing for evaluation). Students are recommended to: Kaplan International Pathways 4 kaplanpathways.com Testing for development: Keep a record of the development process, taking note of important developments or problems solved. ● ● ● Take screenshots of code during the development stages and use those to describe how the program was developed. Testing for Evaluation: Give a description of the cause of the problem that was overcome and how it was solved in the code. This must include a description of how the final program was tested. The final program must be tested with different user inputs to test the validation strategies and to ensure that the program does not stop unexpectedly. Results from the testing for evaluation can be presented in a table that outlines the purpose for the test, how the test that was carried out, and the outcome from that test. Section 5: Evaluation and Summary - a short (no more than one page) and accurate reflection of how well you think the solution works and what improvements are needed or could be made. The evaluation should use the testing that was carried out to evaluate the functionality of the programs created. Section 6: References Theory and/or task resources required for the assessment: You need a good understanding of numerical Fundamentals of Numeric Data, Data Types, Algorithms and Abstraction and Decomposition and File Handling in Python for both tasks. Referencing style: ● Literary references should be in the Harvard style, and any resources used must be referenced in a bibliography. Expected word count: There is no word count for the assessment. Learning Outcomes Assessed: Identify the following accurately: integer, real/float, Boolean, character, string, date/time, recorders (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 font 11 or greater, with single spacing. 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. Kaplan International Pathways 5 kaplanpathways.com