Example Problem Set
This is a problem set. Some of these are easy, others are far more difficult. The purpose of these problems sets are:
- to build your skill applying computational thinking to a problem
- to assess your knowledge and skills of different programming practices
What is this problem set trying to do[edit]
This is example problem set. In this example we are learning about lists, conditionals, and processing user input.
The Problem[edit]
At a prestigious international school, we have
Unit Tests[edit]
Some Code to Get You Started[edit]
# This program asks a user what is important
# it THEN asks a user to tell us how much TIME they spend
# the purpose of the program is to force users to REFLECT on
# what they SAY is important vs what is really important.
what_is_important = []
time_spent_doing = []
important_thing = "foo"
time_in_a_day = 24
print('''
============| Part 1 | =======================
Think about what is important to you.
Type something specific that is important to you,
such as sleep, video games, talking with friends,
sports, or school.
When you are done, please type done.
==============================================
''')
while not important_thing == "done":
important_thing = raw_input("Please type something that is important to you: ")
if important_thing != "done":
if important_thing not in what_is_important:
what_is_important.append(important_thing)
print("Thank you. You have " + str(len(what_is_important)) + " things in your list of important things.")
else:
print("Error: it looks like you already have that in your list. Try again.")
print('''
============| Part 2 | =======================
Now that we know what is important to you,
let's see how much time you spend doing them.
There are 24 hours in a day.
==============================================
''')
for i in range(0,len(what_is_important)):
time_item = input("How much time in 24 hours do you spend on: " + what_is_important[i] + "? ")
time_spent_doing.append(time_item)
time_in_a_day = time_in_a_day - time_item
print("There are " + str(time_in_a_day) + " hours left. ")
for i in range(0,len(what_is_important)):
print("Your spend " + str(time_spent_doing[i]) + " hours on " + str(what_is_important[i]) + "\n")
# your tasks for todays class:
#
# 1. sort both lists so we know what people spend MOST of their time doing
# 2. offer advice to them how they can improve their lives by focusing on truly important things
# 3. offer at least three suggestions about what is actually truly important to be happy (please don't be silly)
# 4. ask the user what their goals are
# 5. ask the user if what they are doing is helping them achieve their goals
Take This Further[edit]
- add in a condition that players only have a certain number of turns to win
- add in a difficulty level; easy, medium and expert. If a player has easy, they have 8 tries, medium, they have only 4 tries, and expert, only 2 tries!!
How you will be assessed[edit]
Your solution will be graded using the following axis:
Scope
- To what extent does your code implement the features required by our specification?
- Did the student try?
- Evidence of effort? Even if the student fucked up, if they tried, they get assessed.
Correctness
- Did code meet specifications?
- Did code meet unit tests?
- If it passes all unit tests, it earns a 5
- Check50: output is suggestive not determinative.
Design
- Is this code efficient?
- Are you you eliminating repetition?
- Are you using functions when you should?
- Code that is short is often a proxy for good design
Style
- Is your code formatted?
- Variables well named?
- Adhere to clean code
References[edit]
A possible solution[edit]
Click the expand link to see one possible solution, but NOT before you have tried and failed!
not yet!