Unit 00 Drawing Project
In this project you will make an animated drawing (or a GIF!) using Python’s turtle library and Superturtle. It’s up to you to make a drawing you actually care about making. Chris will help you choose a project that’s a good level of challenge.
Requirements
- Submit your work by pushing the contents of your
project_drawing
repository. This repo should contain:drawing.py
, which should generate the drawing when run.- Optionally, additional Python files containing functions used in your drawing. (If you had a file called
shapes.py
, thendrawing.py
would import shapes using something likefrom shapes import triangle
.) - The final image or animation produced by your drawing, saved as
drawing.png
if it’s static ordrawing.gif
if it’s animated. README.md
should contain a subheading called Project (## Project
) which describes the final product and a subheading called Process which describes your process of planning, developing, and debugging the project.
- Commit your work after each major change. Your repo should have at least five commits.
Process
Planning
This is a big project, and you will get lost or frustrated if you don’t do some planning up front. You are required to write a project design document and get it approved by a teacher. Planning can take multiple forms:
- You might want to start by collecting some inspiration images
- Create one or more sketches of the drawing you want to make
- Plan out the code. Are there parts of your drawing which could be dealt with on their own as sub-problems? Are there features which will need to be repeated? You could write functions to deal with these.
✅ CHECKPOINT:
Get your design document approved by a teacher before you start programming.
Milestone
It’s easy to underestimate the complexity of a project and end up not getting as far as you wanted to–or worse, end up with half a project which doesn’t work at all. To avoid this, it’s important to set a milestone.
What would it mean to be halfway finished with your project? Describe something that would be easy to observe, such as a certain function being complete and drawing part of the project.
Debugging
You are going to get stuck on this project, and you’re probably going to feel incredibly frustrated at some point. We will discuss strategies for debugging, but for now, please remember to take a break when you feel frustrated and to ask for help.
Assessment criteria
👾 💬 Independent study
You won’t receive assessments during the independent study. If you want, you can use this rubric to reflect on what you learned in the first unit.
Approaches expectations | Meets expectations | Exceeds expectations | |
---|---|---|---|
Concepts: Control flow | BUT your project doesn’t benefit much from the use of control flow. Constructs may be used incorrectly or in ways which don’t have much effect on the project. Your project may contain repetitive code which could have been simplified using control flow. | Your project reduces the complexity of the drawing using control flow. The project contains at least one loop to repeat commands and at least one context manager to affect the execution of a code block. | AND Your project achieves a complex effect which would have been difficult to do using control flow, |
Concepts: Decomposition | BUT the sub-functions don’t help break down the complexity of the project. They may be irrelevant to the project’s drawing, or they may simply cut-and-paste lines of code from the main program. | Your project breaks down the complexity of the drawing by defining and using new functions. | AND each function is responsible for its own work. At least some functions are generalized, accepting parameters and not making prior assumptions about the state of the turtle. |
Practices: Planning | BUT you might be missing required components of the README, not have enough commits, or not have enough detail in your commit messages. | Between your README and your commit messages, a reader can understand the process by which you designed, developed, and debugged your drawing project. | AND your process documentation contains evidence of reflection, showing what you have learned or how your thinking has changed over the course of this project. |