Project 3 - Due Tue Sep 26 at 23:00
Reading
- Slides and notebooks from Lec 3/4/5.
- 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 Tops — Review custom fruitful functions in the context of
turtle
graphics by drawing trees based on user input, and computing their height. You may complete EITHER this task or the high notes task, but you don't have to complete both. For this task, having a partner is optional but recommended. - Task 3: High Notes —
Review custom fruitful functions in the context of a new
wavesynth
module by creating a song controlled by user input, and computing its highest-pitch note. You may complete EITHER this task or the tree tops 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
fruitful functions which use turtle
or wavesynth
.
You must do timeProfiler
, and then you can choose to do either
treeTops
or highNotes
depending on whether you want to work with
graphics or audio. Both are complex, but treeTops
may be a bit easier
to figure out overall.
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.
- You can also use the server to take a 24-hour extension on this project if you need to.
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 26 at 23:00).
- For timeProfiler, each team member must submit
timeProfiler.py
. - For treeTops, each team member must submit
treeTops.py
. - For highNotes, each team member must submit
highNotes.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.