Drawing App Project

by elliott

25 Feb 2016

This is the first major development project we’ll complete together. It is designed to encourage you to utilize the knowledge and skills you’ve developed, as well as the problem solving strategies and attitudes we’ve been talking about.

Create a Drawing App, written in Python and using Trinket.

Specifically, your app should:

  • Have an entirely graphical user interface (i.e. no printed text input besides what turtle.write())
  • Allow the user to select a drawing mode that changes the program’s repsonse to clicks and/or keys
  • Display the current mode and other relevant information to the user
  • Allow the user to choose and draw shapes, lines, and colors depending upon the selected mode
  • Allow the user to clear the drawing and start over

Additionally, your code should:

  • Utilize custom modules for readability and organization
  • Utilize custom functions for modularity
  • Utilize definite loops (i.e. for loops)
  • Utilize multiple Turtle objects
  • Utilize a named Screen object
  • Run without errors
  • Be well-commented
  • Be well-organized and readable

No Outside Help

On this assignment, primarily use our text and my video as a reference. Do not seek direct help from another person. Googling for small syntax information, etc. is fine but do not copy and paste any code from the internet. All code used in this exercise should be your own or heavily adapted.

Please review the university’s honor code and my stance on honor as stated in the syllabus. See me with any questions.

Milestones

It’s imperative that you break this assignment down into small, acheivable pieces! For instance, how will the user select a mode? It’s probably a good idea to get the basics of user interface up and running before working on the specifics of each mode.

When you identify an element of your program that can be developed independently, think of it as a milestone. The various intermediate assignments you’ll have will coach you through developing a list of milestones. Include your revised list of milestones with your submission. Remember to use markdown’s checkbox notation and it’s OK to include incomplete milestones as long as you satisfy the requirements above. We all have to scale back scope on software projects.

Reflection

You guessed it: the reflection is an important piece of the puzzle. For this reflection the minimum lengeth I’m looking for is 250 words. Quality is less importnat than quanity, of course, but this is intended to help you understand my expectations for this assignment.

To be able to properly reflect as well as complete the assignment, start early!

What to submit

  • A well-formatted pull request containing a post…
  • …with your drawing app embedded
  • …with your 250+ word reflection included
  • …with your revised milestone list included
Elliott Hauser is a PhD Student in information science at UNC Chapel Hill. He's hacking education as one of the cofounders of Trinket.io. Find Elliott Hauser on Twitter, Github, and on the web.