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
This problem set is a bit different than most, in that we are more interested in representing a problem, and then thinking about how to solve the problem.
At our school every student in the high school (350 students) has a locker. Every locker has a unique number. The lockers are scattered around the school, on the top floor and the bottom floor.
Our school has different sports teams. When it comes time for a big game, posters are placed on every locker for each athlete. For example, if the girls volleyball team is having a big game, those players will have a poster placed on their locker wishing them good luck.
Because lockers are scattered around the school, finding the locker of an athlete takes time.
We can easily get a list of lockers for each student athlete. For example, the girls volleyball team might be: [122,121,134,12,155,178,180,199].
Your job is to:
- Make a program that describes how to most efficiently place posters around the school.
- In general, we want to MINIMIZE THE TIME we need to place the posters on each student locker.
- In order to do this, you will need to somehow represent a map of the lockers.
- you should see HOW MUCH TIME it takes to walk from one locker to another locker, and represent this on a map.
- Represent this problem visually, using a diagram.
- Construct a pseudocode program to solve this problem.
How you will be assessed
Your solution will be graded using the following axis:
- To what extent does your code implement the features required by our specification?
- To what extent is there evidence of effort?
- To what extent did your code meet specifications?
- To what extent did your code meet unit tests?
- To what extent is your code free of bugs?
- To what extent is your code written well (i.e. clearly, efficiently, elegantly, and/or logically)?
- To what extent is your code eliminating repetition?
- To what extent is your code using functions appropriately?
- To what extent is your code readable?
- To what extent is your code commented?
- To what extent are your variables well named?
- To what extent do you adhere to style guide?
A possible solution
Click the expand link to see one possible solution, but NOT before you have tried and failed!