12 Prove Milestone: Student Chosen Program

Purpose

Prove that you can write a significant Python project that solves a real-world problem and is well organized with functions.

Assignment

Continue developing the program that you started in the prove assignment for lesson 11. Your program must include multiple functions that you verify are correct with test functions and pytest.

Submission

At the end of this lesson and lesson 13, you must submit a description of your work, and your teacher or teaching assistant will grade your work according to the following rubrics.

Lesson 12 Rubric

  1. Time—50%: Did you spend at least three hours on your Python program or test functions during the current lesson?
  2. Organization—20%:
    1. Is your program organized into multiple functions?
    2. Does each function in your program perform just one task?
  3. Progress—20%: Did you complete some significant part of your program during the current week?
  4. Description—10%: Is the description of your work for this lesson complete and easily understandable? Your description should include the following:
    1. A list of the function names in your program.
    2. A list of the test function names in your test code.
    3. A list of the documentation that you read, the videos that you watched, and the coding experiments that you tried.
    4. A description or list of the work that you finished on your program.

Lesson 13 Rubric

  1. Time—50%: Did you spend at least six hours on your Python program or test functions during the current lesson?
  2. Description—10%: Is the description of your work for this lesson complete and easily understandable? Your description should include the following:
    1. A list of the function names in your program.
    2. A list of the test function names in your test code.
    3. A list of the documentation that you read, the videos that you watched, and the coding experiments that you tried.
    4. A description or list of the work that you finished on your program.
  3. Python program file—25%: Upload your Python program. Your teacher will evaluate it according to these criteria:
    1. Your program is divided into functions and each function performs one task only.
    2. Your program effectively uses existing Python modules such as math, random, requests, pandas, and tkinter.
    3. Your program performs a significant real world task.
  4. Python test file—15%: Upload your Python test file. Your teacher will evaluate it according to these criteria:
    1. Each testable program function is covered (tested) by one test function. (Some functions, especially main and those that create GUIs are difficult to test and don’t need to have a corresponding test function.)
    2. Each test function completely exercises (tests) its corresponding program function. In other words, the test function calls the program function multiple times with different arguments, including unusual or unexpected values.