These activities are designed to give insight into the purposes for and alternatives to programming with mutable state.
In this activity, students will be divided into three groups, One group will represent the global scope, another group will represent the class scope, and the third group will be the class method scope.
the groups will separate over a large distance, and the class method group will have a visual obstruction between themselves and the global scope group. Students will write down requests for information and commands onto index cards, and they will be able to read eachothers' cards using binocculars.
The activitiy will
TODO What will the program information and processes for this activity be?
In this activity, a brief explanation of the lambda calculus is given, and the instructor defines True and False functions. After this, the instructor constructs a Not operator and walks through its use with the class.
Then, the students are asked to try to create And and Or operations.
To wrap up, the instructor explains the omega cominator, followed by an explanation of the Y-combinator.
IN this activity, the six possible operations of a touring machine are explained, and then the students are handed a ribbon, a frame, a marker, and an instruction booklet. The instruction booklets will function like a choose-your-own-adventure book, with each open page functioning as a particular state. The waxpaper ribbons will be divided into cells, and the students will run the ribbon through the frame (pictured right), and read the value of each cell, following the instructions in the book, which might indicate that the students should change the value of a cell and move to an adjacent cell, and move to a different page in the book.
TODO I have considered using an algorithm which increments a binary number by one, regardless of what the original number was.