Link Search Menu Expand Document

Project 01 - Getting an A!… or a B!

Due Date: Monday Sept 14 @ 6am Uploaded to Canvas


In class last week, we wrote a program that would allow the user to enter 4 exam grades and then display the average of those grades. For this week’s programming assignment, you’ll modify that program to help the user figure out what grade on the final exam they need to get an A or a B in the class. Also, you’ll be adding homework grades into the mix.

Assume the user is enrolled in a class with the following grade-breakdown:

  • Test 1: 10%
  • Test 2: 10%
  • Test 3: 10%
  • Final Exam: 30%
  • 4 Homework assignments: 10% each

Your Implementation

Write a Python Program that will:

  1. Greet the user with a Welcome message that should include the purpose of the program.
  2. Ask the user to enter the scores on the 3 tests and the 4 HW assignments. Store each of those values in a separate variable. The use should be prompted for each score individually.
  3. Calculate the lowest grade the user can get on the final exam to still maintain an average of 90% … an A.
  4. Calculate the lowest grade the user can get on the final exam to still maintain an average of 100% … a B.
  5. Display the calculated values from the previous two steps in a nicely formatted way. Only print 1 place after the decimal.
  6. Thank the user for using your program.

You should place the code for this program in a Python file named 1340-pa01-<lastname>.py where you replace <lastname> with your last name in all lowercase letters. For example, if I was writing this project, my file would be named

Submission and Grading

Your project (single Python file) should be submitted to Canvas in the appropriate PA01 location.

It will be graded according to the following rubric:

  • Source Code Quality: 50%
    • Proper use of vertical white space
    • Proper use of horizontal white space
    • Understandable variable names
    • File header comments with your name, SMU ID, and a brief explanation of the project.
  • Correctness: 25%
    • Does your project produce the right values for getting an A and a B based on the values entered by the user?
  • User Interface: 25%
    • Are the steps under Your Implementation followed?
    • Are the prompts to the user helpful?
    • Are the values printed correctly formatted (only 1 decimal place of precision)?