Touchstone 4: Python Journal Project
ASSIGNMENT: For this project, you will learn how to effectively plan, design, develop, and test an original program of your choosing. This program is your choice and it can be as complex as you wish. The goal is to start with an idea for your program and then step through the process of most phases of the development lifecycle to turn your idea into an actual program. This includes planning out the algorithm using pseudocode, coding your program using everything you learned from Units 1-3, and finally testing and debugging your program to make sure it fulfills your intended purpose. Being able to create your own program can be beneficial in any career field. Anything that can be programmed or automated in any industry could make your work a lot easier. Even as a hobby, it can give you a reference point to have a better understanding of how to deal with common issues. Using basic Python to automate menial tasks can save you time and money! Whether you were in this class to learn programming at a professional level or if it’s just for fun, you will benefit from learning coding as a foundation of your technical skills.
For this Touchstone, you will fill out a journal (template link below) which has five sections that correspond to the five steps you will complete for your final project. Use this template to write your journal responses for each section of the project. When you have finished, you will submit this journal as a Word /docx.
Python Journal Template
Directions: Follow the directions for each part of the journal template. Include in your response all the elements listed under the Requirements section. Prompts in the Inspiration section are not required; however, they may help you to fully think through your response.
Remember to review the Touchstone page for entry requirements, examples, and grading specifics.
Name:
Date:
Final Replit Program Share Link:
Complete the following template. Fill out all entries using complete sentences.
PART 1: Defining Your Problem
Task
State the problem you are planning to solve.
Requirements
· Describe the problem you are trying to solve for.
· Describe any input data you expect to use.
· Describe what the program will do to solve the problem.
· Describe any outputs or results the program will provide.
Inspiration
When writing your entry below ask yourself the following questions:
· Why do you want to solve this particular problem?
· What source(s) of data do you believe you will need? Will the user need to supply that data, or will you get it from an external file or another source?
· Will you need to interact with the user throughout the program? Will users continually need to enter data in and see something to continue?
· What are your expected results or what will be the end product? What will you need to tell a user of your program when it is complete?
PART 2: Working Through Specific Examples
Task
Write down clear and specific steps to solve a simple version of your problem you identified in Part 1.
Requirements
Complete the three steps below
for at least two distinct examples/scenarios.
· State any necessary input data for your simplified problem.
· Write clear and specific steps in English (not Python) detailing what the program will do to solve the problem.
· Describe the specific result of your example/scenario.
Inspiration
When writing your entry below ask yourself the following questions:
· Are there any steps that you don’t fully understand? These are places to spend more time working out the details. Consider adding additional smaller steps in these spots.
· Remember that a computer program is very literal. Are there any steps that are unclear? Try giving the steps of your example/scenario to a friend or family member to read through and ask you questions about parts they don’t understand. Rewrite these parts as clearly as you can.
· Are there interesting edge cases for your program? Try to start one of your examples/scenarios with input that matches this edge case. How does it change how your program might work?
PART 3: Generalizing Into Pseudocode
Task
Write out the general sequence your program will use, including all specific examples/scenarios you provided in Part 2.
Requirements
· Write pseudocode for the program in English but refer to Python program elements where they are appropriate. The pseudocode should represent the full functionality of the program, not just a simplified version. Pseudocode is broken down enough that the details of the program are no longer in any paragraph form. One statement per line is ideal.
Help with writing pseudocode
· Here are a few links that can help you write pseudocode with examples. Remember to check out part 3 of the Example Journal Template Submission if you have not already. Note: everyone will write pseudocode differently. There is no right or wrong way to write it other than to make sure you write it clearly and in as much detail as you can so that it should be easy to convert it to code later.
·
https://www.geeksforgeeks.org/how-to-write-a-pseudo-code/
·
https://www.wikihow.com/Write-Pseudocode
Inspiration
When writing your entry below ask yourself the following questions:
· Do you see common program elements and patterns in your specific examples/scenarios in Part 2, like variables, conditionals, functions, loops, and classes? These should be part of your pseudocode for the general sequence as well.
· Are there places where the steps for your examples/scenarios in Part 2 diverged? These may be places where errors may occur later in the project. Make note of them.
· When you are finished with your pseudocode, does it make sense, even to a person that does not know Python? Aim for the clearest description of the steps, as this will make it easier to convert into program code later.
PART 4: Testing Your Program
Task
While writing and testing your program code, describe your tests, record any errors, and state your approach to fixing the errors.
Requirements
· For at least one of your test cases, describe how your choices for the test helped you understand whether the program was running correctly or not.
For each error that occurs while writing and testing your code:
· Record the details of the error from Replit. A screenshot or copy-and-paste of the text into the journal entry is acceptable.
· Describe what you attempted in order to fix the error. Clearly identify what approach was the one that worked.
Inspiration
When writing your entry below ask yourself the following questions:
· Have you tested edge cases and special cases for the inputs of your program code? Often these unexpected values can cause errors in the operation of your program.
· Have you tested opportunities for user error? If a user is asked to provide an input, what happens when they give the wrong type of input, like a letter instead of a number, or vice versa?
· Did the outcome look the way you expected? Was it formatted correctly?
· Does your output align with the solution to the problem you coded for?
PART 5: Commenting Your Program
Task
Submit your full program code, including thorough comments describing what each portion of the program should do when working correctly.
Requirements
· The purpose of the program and each of its parts should be clear to a reader that does not know the Python programming language.
Inspiration
When writing your entry, you are encouraged to consider the following:
· Is each section or sub-section of your code commented to describe what the code is doing?
· Give your code with comments to a friend or family member to review. Add additional comments to spots that confuse them to make it clearer.
PART 6: Your Completed Program
Task
Provide the Replit link to your full program code.
Requirements
· The program must work correctly with all the comments included in the program.
Inspiration
· Check before submitting your touchstone that your final version of the program is running successfully.
Python Journal Template 1