The Scientific Community Game (SCG) for CS 4800 (Algorithms and Data)

Karl Lieberherr

Let's try. Revised: December 2010.

We want to encourage interaction between software development learners by having them refute each others' software development claims. We want to give learners some control over their learning experiences. Choose your game (claim) in an area where you want to refine your skills. Adults strive for control over their learning experiences.

Software development claims. You cannot solve this problem better than I can. You cannot improve the modularity (adaptability, flexibility, resource consumption) of my solution to this problem. You cannot build more maintainable software for this problem.

We learn about algorithms using a high-level "algorithm" executed by humans to improve their learning experience about algorithms. The high-level "algorithm" we call SCG Scientific Community Game = Specker Challenge Game (SCG). The key concept in SCG is a claim. In this course we focus on algorithmic claims. A claim is defined by a refutation protocol which is a little algorithm involving two players to decide whether the claim is "right" or "wrong". Here "right" does not necessarily mean "true" and "wrong" does not necessarily mean "false". The game is played as a "board" game with the two players jointly enforcing the rules of the game.

The refutation protocols we use are usually defined by the instructor to guide the student in a specific direction.

With SCG, we create a learning environment that provides opportunities for collaboration with other algorithm learners. What learning objectives are covered by playing the game? (1) recognizing incorrect algorithms (2) finding inputs that show why the algorithm is incorrect (3) recognizing algorithms with a wrong performance analysis (4) finding inputs that show why the algorithm analysis is incorrect (5) solving algorithm design problems and predicting the resource consumption of the algorithms. (6) describing algorithms at various levels of abstraction (7) distinguishing true algorithmic statements from false algorithmic statements

While the game creates a productive learning environment, only your active engagement with the topic area can realize the skills described in the above learning objectives.

Short High-Level Definition

Concepts: Claim, Problem, Solution. Problem and Solution can have many different interpretations. For example, a problem may be an algorithm.

SCG is a two-player game where each player, called Scholar, proposes and opposes claims about algorithms.

Students form teams of two, each one acting as Scholar.

Choose a claim with your partner scholar. Scholar 1 will first propose the claim and Scholar 2 must oppose it. Then the roles change: Scholar 2 will propose the same claim or a strengthened version of the claim and Scholar 1 opposes.

Claim selection takes two forms:

1. You choose from one of the claims that I put into the claim market for the current assignment.

2. You come up with your own claims using material that we covered in class. Notify the instructor when you design your own claims.

Note that the claim should not be refutable; but this is not so important for this version of the game because you play in both roles, as proposer and opposer.

Opposition engages two scholars in an opposition protocol which has a success or failure outcome. The opposition protocol for a claim involves the scholars providing problems legal by the claim and solving them to substantiate the claim.

The game will often end in a tie when Scholar 1 and 2 sucessfully defend or when they both successfully refute. For the opposition role: When Scholar 2 successfully refutes, but Scholar 1 does not then Scholar 2 wins. In other words: For the proposition role, When Scholar 2 successfully supports the claim, but Scholar 1 does not then Scholar 2 wins. In summary, when the outcome of both rounds is the same, we have a draw. If the outcome is different, one of them wins: In the proposition role the supporter and in the opposition role the refuter.

At the end of the game, the scholars get together and propose an improved claim which is "close" to the given claim. Ideally it should be a theorem.

Game Rules

Scholars mutually agree on Claim, Problem and Solution languages to be used. You may use a formal notation defined by a grammar (see Theory of Computation) or an informal notation.

The scholars, through mutual agreement, play the role of the administrator which makes sure the game rules are followed.

Game steps to follow:

Choose claim H
Scholar 1 proposes H
Scholar 2 opposes H following the refutation protocol

Reverse roles of Scholar 1 and Scholar 2

============
Game in a nutshell:
claim, problem, solution
claim = claim about problems and solutions, together with a refutation protocol

Claim Design

Claim design is a non-trivial activity. It is about learning to learn. If you need to explore a domain from an algorithms perspective, it is good to team up with someone and design claims in that domain. Ideally, claims are true statements about the algorithms. If not, they must be efficiently refutable, in general.
Shapes of claims:

mathematical claims
E: exists a problem
A: for all solutions
(EA)

A: for all problems
E: exists solution
(AE)

algorithmic claims
E: exists an algorithm
A: for all inputs
Examples: Network flow claims for second half of course
Mathematical claims:

Flow networks: G=(V,E), with each edge a capacity c(e),
non-negative number
single source node s in V
single target node t in V

definition of flow with capacity and conservation constraints.

based on (7.9)
for all network flow problems G=(V,E) such that f is an s-t-flow
  such that there is no s-t path in the residual graph G[f]
there exists an s-t cut (A*, B*) in G for which v(f) = c(A*, B*).

Algorithmic claims:

C = sum [e out of s] c(e).
m = |E|.

based on (7.10)
There exists an algorithm FF 
for all network flow problems nfi FF(nfi) computes a maximum flow
in time O(mC).

based on (7.11)
There is an algorithm that computes
for all network flow problems G with maximum flow f
 an s-t cut of minimum capacity in time O(m).

Mathematical claim:

based on (7.12)
For all flow networks G,
there exists a flow f and a cut (A,B), so that v(f) = c(A,B).