Empirical Lab Repository

Title: Simulation and Volleyball Scoring

Author: Dave Reed, Creighton University, davereed@creighton.edu

Possible Courses: CS1

Empirical Concepts Introduced: simulation, analytical reasoning

Computer Science Concepts Used: loops, counters, input/output, arithmetic operations

Summary: This assignment involves simulating the play of a volleyball game between teams whose relative strengths are known. For example, if it is determined that team 1 is 10% better than team 2, then their likelihood of winning any given point will be 55% (as opposed to 45% for team 2). The student must write a program that probabilistically determines the winner of each point, keeps a running score of each game, and displays the winner. Once they have written the code that simulates a single game, they must write additional code to perform repeated simulations and then report the winning percentages of each team. Finally, they must perform repeated simulations using their program and analyze the results.

This program includes many of the main programming control structures (loops, conditionals, counters), and demonstrates how a program can be used to study a familiar yet complex system.

Variations: If desired, this assignment could be extended to include the simulation of games using the rally scoring scheme described at the end of the assignment. The students could then be asked to hypothesize which scoring scheme would tend to greater exaggerate the differences in talent, and then use the two programs to test their hypothesis. Other hypotheses could similarly be proposed and investigated, such as which scheme would tend to produce shorter games, or whether game lengths would be more or less variable under each of the schemes.