11th grade retreat: Difference between revisions

From Computer Science Wiki
(Created page with "right|frame|This a problem set for you to work through <ref>http://www.flaticon.com/</ref> This is a problem set. Some of these are easy, others are far m...")
 
 
(6 intermediate revisions by the same user not shown)
Line 13: Line 13:
== The Problem ==
== The Problem ==


The 11th grade has a two-day retreat. This retreat will help them learn about CAS (Creativity, activity, service). There are 8 activities for the 11th grade retreat. Each activity can only have 10 students. Each student can make a primary request and a secondary request.  
The 11th grade has a two-day retreat. This retreat will help them learn about CAS (Creativity, activity, service). There are 10 activities for the 11th grade retreat. Each activity can only have 8 students. Each student can make a primary request and a secondary request. Students can only be in one activity at one time.


Your solution must make the best possible match for all students. An example of the INPUT data is provided below:
Your solution must make the best possible match for all students. An example of the INPUT data is provided below:
Line 23: Line 23:
# student 2 wants to be in activity 7 and 8
# student 2 wants to be in activity 7 and 8
# and so on...
# and so on...
1:5,4
#
2:7,8
choices={"1":"4,5",
3:1,6
"2":"7,8"
4:2,4
"3":"1,6"
"4":"2,4"}
</syntaxhighlight>
</syntaxhighlight>


== Unit Tests ==
== Unit Tests ==


If you accept the choices as input, your program must output (as an example):


<syntaxhighlight lang=python>
#
# in the example below, activity 1 has students 1,5,7,8,9,12,17 and 75 (8 students)
#
activities = {
"1":"1,5,7,8,9,12,17,75",
"2":"3,22,29,33,31,45,50,80"}
</syntaxhighlight>


== Hacker edition ==
== Hacker edition ==


Demonstrate  
Demonstrate you have made the best match. Essentially, you are providing information that most of the students had their first choice.


== How you will be assessed ==
== How you will be assessed ==
Line 73: Line 82:
Click the expand link to see one possible solution, but NOT before you have tried and failed!  
Click the expand link to see one possible solution, but NOT before you have tried and failed!  
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<syntaxhighlight lang="python" >
# track every first choice and every second choice (how many total choices are there for activity 1,2,3....)
# First of all, just try to get everyone into their first choice
# Then count how many students are in choice 1,2,3,4 etc
# Count the number of open / free spots in remaining activities
# If any activity has more than 10 students, look at the second choice of everyone in activity 1
# If any of the people in activity 1 have a second choice that is open, move them to that choice.
 
 


not yet!


</syntaxhighlight>


</div>
</div>

Latest revision as of 13:41, 27 August 2018

This a problem set for you to work through [1]

This is a problem set. Some of these are easy, others are far more difficult. The purpose of these problems sets are:

  1. to build your skill applying computational thinking to a problem
  2. 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]

The 11th grade has a two-day retreat. This retreat will help them learn about CAS (Creativity, activity, service). There are 10 activities for the 11th grade retreat. Each activity can only have 8 students. Each student can make a primary request and a secondary request. Students can only be in one activity at one time.

Your solution must make the best possible match for all students. An example of the INPUT data is provided below:

#
# in the example below:
# student 1 wants to be in activity 4 and 5
# student 2 wants to be in activity 7 and 8
# and so on...
#
choices={"1":"4,5",
"2":"7,8"
"3":"1,6"
"4":"2,4"}

Unit Tests[edit]

If you accept the choices as input, your program must output (as an example):

#
# in the example below, activity 1 has students 1,5,7,8,9,12,17 and 75 (8 students)
#
activities = {
"1":"1,5,7,8,9,12,17,75",
"2":"3,22,29,33,31,45,50,80"}

Hacker edition[edit]

Demonstrate you have made the best match. Essentially, you are providing information that most of the students had their first choice.

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?
  • To what extent is there evidence of effort?

Correctness

  • 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?

Design

  • 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?

Style

  • 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?

References[edit]

A possible solution[edit]

Click the expand link to see one possible solution, but NOT before you have tried and failed!

  1. track every first choice and every second choice (how many total choices are there for activity 1,2,3....)
  2. First of all, just try to get everyone into their first choice
  3. Then count how many students are in choice 1,2,3,4 etc
  4. Count the number of open / free spots in remaining activities
  5. If any activity has more than 10 students, look at the second choice of everyone in activity 1
  6. If any of the people in activity 1 have a second choice that is open, move them to that choice.