Drawing or Blackjack App Project

Due Wed, Jun 07, 2017 at Start of Class

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.

You have 2 options. See below.

Code talks

Regardless of which option you pick, come to class prepared to discuss the following aspects of your program in a 3-4 minute Code Talk:

Write up:

  • App
    • Creativity
    • Usability
  • Code
    • Organization
    • Comments
  • Process
    • Milestones
    • Design
    • Improvement

Option 1: 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
  • Go far beyond and be noticibly disctinct from the demo app in the video

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. State it in terms of a user or program capability such as “User can select a color” or “Program can draw a special shape.” These can be partially drawn from the assignment itself, but add ones specific to your implementation.

Revise your list of milestones as you go. 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 more 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

Option 2: Create a blackjack app.

See the basic requirements here. Once you satisfy the basic requirements, make a Copy of your trinket and attempt the Advanced Requirements. You can ignore Prof. Gotz’s grading criteria - I’ll use my own.

Additionally, your code should:

  • Have an entirely text-based interface
  • Utilize custom modules for readability and organization
  • Utilize custom functions for modularity
  • Utilize definite loops (i.e. for loops)
  • Utilize string methods
  • Run without errors
  • Be well-commented
  • Be well-organized and readable

No Outside Help

On this assignment, primarily use our text and Automate the Boring Stuff as references. 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 based on explanations you find elsewhere.

Using a solution found online is not only an Honor Code violation, it’s easiliy detectable. 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. State it in terms of a user or program capability such as “User can select to Hit or Stay” or “Program can add the user’s total score.” These can be partially drawn from the assignment itself, but add ones specific to your implementation.

Revise your list of milestones as you go. 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 more 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 Blackjack 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.