Project 3 - Due Tue Sep 24 at 23:00
Reading
- Slides and notebooks from The functions lecture.
- Problems and solutions from Lab 2 and Lab 3.
- Turtle reference documentation or
wavesynth
reference documentation. - Think Python, Chapter 3 covers functions, and Think Python, Chapter 6 covers fruitful functions, although sections 6.4 through 6.6 are material that we'll cover later.
- If you prefer an audio format, our podcast The Path to Programming has an episode for this week on Defining Functions.
Tasks
The instructions for each task:
-
Task 1: Time Profiler — Practice writing an entire interactive program from scratch that uses
input
andprint
. You'll be able to calculate how much time you spend on different activities each week. For this task, having a partner is optional but recommended. -
Task 2: Tree Parts — Practice with custom functions and invariants in the context of
turtle
graphics by drawing trees. You may complete EITHER this task or the musicalMeasures task, but you don't have to complete both. For this task, having a partner is optional but recommended. - Task 3: Musical Measures —
Practice with custom functions and invariants in the context of
wavesynth
audio by creating a song using multiple functions together. You may complete EITHER this task or the tree parts task, but you don't have to complete both. For this task, having a partner is optional but recommended.
About this Project
These tasks will give you more practice with custom functions, including
functions which use turtle
or wavesynth
and which maintain
invariants.
You must do timeProfiler
, and then you can choose to do either
treeParts
or musicalMeasures
depending on whether you want to work
with graphics or audio.
If you want to find a partner to work with for this project, use this Google Sheet to do so.
Reminders
- Remember to download the starter code for each task from the Potluck server.
Time Estimate
Our per-task estimate for this project is 2-4 hours, plus up to an hour of reading.
How to turn in this Project
-
Upload your tasks via the Potluck server by the deadline (Tue Sep 24 at 23:00).
- For timeProfiler, each team member must submit
timeProfiler.py
. - For treeParts, each team member must submit
treeParts.py
. - For musicalMeasures, each team member must submit
musicalMeasures.py
.
- For timeProfiler, each team member must submit
-
Double-check the status of your submitted tasks, since there may be warnings.
-
Reminder: you can submit as many times as you like, and only the most recent submission will count for your grade.
-
If you run into trouble with the submissions server, contact Peter Mawhorter, and include a copy of the file(s) you were trying to submit.
- Check your score for each task and submit revisions if you need to.