Example Problem Set: Difference between revisions

From Computer Science Wiki
 
(7 intermediate revisions by the same user not shown)
Line 13: Line 13:
== The Problem ==
== The Problem ==


At a prestigious international school, we have  
At a prestigious international school, we have only 5 administrators, Michael, Carol, Jen,  Constance and TJ. Your program should ask the user to type in their name. If their name matches one of our administrators, your program must output a special greeting. If the user input is any other name (does not match the list of administrators) your program should simply output a simple greeting.


== Unit Tests ==
There is no testing for user input. That is, if a user enters a number, an integer, or nothing, your program should not evaluate the input.


== Unit Tests ==


* '''User Input:''' Name: Bill
* '''Expected output:''' Hello Bill


== Take This Further ==
* '''User Input:''' Name: TJ
* '''Expected output:''' An administrator! Hello TJ
* '''User Input:''' Name: 123
* '''Expected output:''' Hello 123


# add in a condition that players only have a certain number of turns to win
== Hacker edition ==
# 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!!
 
In the hacker version:
 
* Your program should test for valid user input. The user input should be only allow for strings
 
THIS PART ISNT DONE YET


== How you will be assessed ==
== How you will be assessed ==


Your solution will be graded using the following axis:  
Your solution will be graded using the following axis:  


'''Scope'''
'''Scope'''
# To what extent does your code implement the features required by our specification?
* To what extent does your code implement the features required by our specification?
# Did the student try?
* To what extent is there evidence of effort?
# Evidence of effort? Even if the student fucked up, if they tried, they get assessed.
 


'''Correctness'''
'''Correctness'''
# Did code meet specifications?  
* To what extent did your code meet specifications?
# Did code meet unit tests?  
* To what extent did your code meet unit tests?
# If it passes all unit tests, it earns a 5 
* To what extent is your code free of bugs?
# Check50: output is suggestive not determinative. 
 


'''Design'''
'''Design'''
# Is this code efficient?
* To what extent is your code written well (i.e. clearly, efficiently, elegantly, and/or logically)?
# Are you you eliminating repetition?
* To what extent is your code eliminating repetition?
# Are you using functions when you should?
* To what extent is your code using functions appropriately?
# Code that is short is often a proxy for good design
 


'''Style'''
'''Style'''
# Is your code formatted?
* To what extent is your code readable?
# Variables well named?
* To what extent is your code commented?
# Adhere to clean code
* To what extent are your variables well named?
* To what extent do you adhere to style guide?


== References ==
== References ==

Latest revision as of 06:40, 14 March 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]

At a prestigious international school, we have only 5 administrators, Michael, Carol, Jen, Constance and TJ. Your program should ask the user to type in their name. If their name matches one of our administrators, your program must output a special greeting. If the user input is any other name (does not match the list of administrators) your program should simply output a simple greeting.

There is no testing for user input. That is, if a user enters a number, an integer, or nothing, your program should not evaluate the input.

Unit Tests[edit]

  • User Input: Name: Bill
  • Expected output: Hello Bill
  • User Input: Name: TJ
  • Expected output: An administrator! Hello TJ
  • User Input: Name: 123
  • Expected output: Hello 123

Hacker edition[edit]

In the hacker version:

  • Your program should test for valid user input. The user input should be only allow for strings

THIS PART ISNT DONE YET

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!

not yet!