Showing posts with label teaching. Show all posts
Showing posts with label teaching. Show all posts

Tuesday, November 8, 2011

Somewhat Random Musings

Yes, I didn't post at all last week. I am still very much catching up on things I missed while at Integers. Next week I will be at Supercomputing and will likely miss another post or both. I don't often have the desire to pause the teaching part of the semester to get research/blogging done, but this is turning out to be one of those semesters. Mostly, I want to make sure I write good posts about the game talks at Integers (or what I understood of them). I hope I can find extra time to spend on them, but it's more likely that they'll come out a bit less-than-perfect. Hopefully some of them are readers and can comment on all the errors

While at Integers, I spent a lot of time struggling with NoGo, only to run into problems I encountered at BIRS in January. While there, I found that NoGo on a graph is NP-hard, but was neither able to show that Graph NoGo was PSPACE-complete, nor show any hardness for standard NoGo (on a grid). The same thing happened last month: no new progress. So I tried flipping it around and started looking for an efficient algorithm for NoGo. Either Neil McKay or Alex Fink (I think it was Neil) asked me about it, and I told him what I was doing. He was surprised I had given up on computational hardness so quickly. His comment made sense: I have more experience finding hardness results than showing efficient algorithms for problems (though I would argue that hardness reductions ARE efficient algorithms). Research-wise, you strive for results! So, you should spend your time conquering problems you're good at. Instead, I was trying something a bit different.

Luckily my job is far more focused on teaching than research, so the pressure to publish is less intense. It's very nice to know I can try a completely different tactic if I get frustrated with a problem!

... not that I had any luck with this!

On a related note, student presentations have started in my games class! One question that came up is: What does it mean for a game to be solved? I answered that there's an easy way to evaluate the game without drawing out all of the game tree. I hope that's a good enough answer. For myself, it means there is an efficient algorithm to solve the problem. I generally consider a completeness result to be "solving" the game, though perhaps it's the opposite: the game (probably) cannot be solved!

Tuesday, October 4, 2011

Game Tree Woes

Getting students to write proofs is an interesting pedagogical challenge. Which class in a math sequence should start requiring formal proofs? What does formal mean?

Luckily, for CGT this has a simple solution: the game tree. Want to prove something about a specific position? Just draw out the game tree and label the options appropriately. Students should learn this as soon as possible; I broke the news to my freshmen class right away.

Bad news: I'm expecting rigorous proofs in this class.

Good news: these can be a proof by picture.

Unfortunately, I didn't do a great job teaching the basic requirements. We had problems with:

* Arrows to left/right options of a position. These were sometimes nearly vertical so it was impossible to discern whether they were for right or left arrows. Other times they pointed up, which is often very difficult to read.

* Not drawing all the options. We hadn't learned about dominated options yet, so all options should have been listed.

I think that the next time I teach this sort of course, I will have to be far more explicit about what makes a game tree. Also, I've done a good job this semester of using examples to motivate, but perhaps I didn't do enough examples of game trees.

Tomorrow the students have their first exam. Dangerous! I've decided to include a question where the goal is to find errors in a given game tree. I really wish I'd included these sorts of questions in the first few homeworks! We'll see how it goes.

(Oops! I inadvertently took last week off from posting. Sorry!)

Monday, September 12, 2011

The Joy of Teaching Games

Last Wednesday was the second day we just spent playing games in class, and the first one where they had learned some of the theory (specifically, outcome classes). What a blast! I started putting up Amazons positions for them to find the outcome classes of partway through the class. They picked up on this challenge immediately, students flocking to the boards to post the class they had found, then either verifying or questioning the results of others. I had about twenty positions around the room and only a few of them remained unexplored by the end of the hour. The air is very charged, but the feeling is very positive. Students are working together to solve the problems, and this requires them to try out moves on physical boards, then confer with the people around them. Your opponent quickly becomes your best teammate as you collaborate to test all possible game tree paths. For some of the harder boards I put on the marker boards, groups had banded together to discuss their results as a bigger team. There was not an unengaged mind in the room!

As I've mentioned, this class is a first-year-experience seminar at Wittenberg (a WittSem) and has the dual purpose of helping integrate the students into college life. After teaching the math/compsci-elective version of the class last year, I thought games could make for a nice WittSem topic. I was further spurred on by David Wolfe, who told me he had once taught a freshman-introduction class all about playing Go. (I only just played my first game of Go last week, so I wasn't ready for that!)

These new students have actually been very patient. I promised them early on we would spend entire class periods playing games, and it took over two weeks of class before we covered outcome classes; giving them something to analyze while playing.

Also on the point of teaching, I happened across an old reddit post of Joshua Biedenweg's, prior to his teaching a CGT course at UCSB. Josh finished teaching his course right as I was prepping for mine over a year ago; I took some good advice from him and unfortunately ignored some better advice! (Josh, I'm using Toads and Frogs more this year! Pictoral Evidence:

)

Next on the class agenda is Game Sums, and soon it will be time for them to find actual game values! Woohoo!

Conclusion: Teaching CGT is awesome. If you have the opportunity, take it!

Sunday, May 8, 2011

Next Semester: Combinatorial Games "WittSem"

Another semester draws to a close. Although I missed posting last week, today will be a bonus final post for the semester. There may be a few more comments during the semester as I figure out how to upload videos that my phone thinks are too big, etc. (Patrick and Ernie had an epic FLex battle a few weeks back.)

In addition, I have a bit of research to get done this summer, so there may be some mention of that. One of my big projects is to prepare for my board games "WittSem" class next semester. This will be a first-year-college-students-only class that has the dual purpose of acting as an introduction to university. I will spend time helping to impart good study habits (do I have these?) and instill a love for games and math.

These WittSems must include a multi-disciplinary spin; in addition to the math, I will talk about cultural/historical aspects of games. To this end I can cover many geographic regions with different games, but I'm not sure what the more interesting points I should definitly cover are. Some ideas:

* Follow the evolution of Chess across Asia and Europe.

* Compare rule sets of Go, which are different by country/region.

* Perhaps the same is true of Mancala?

* Look at origins of Konane as well as taboos while playing.

This last one may have a recurring theme. The name of the class is: "How to play board games: Culture and Tactics" (or something along those lines) so I was intending to talk about what was expected socially by players during the game.

Any additional help would be most excellent! If you know something interesting about the culture of games (from anywhere!) I would love to know!

Friday, April 8, 2011

Combinatorial Games: a first-year class

The past few months I have been working on some basic planning for teaching combinatorial games as a first-year college class. At Wittenberg, we have "WittSem" courses; each incoming freshman must take one. This is finally really coming together, so I will likely teach this course in the fall. Woohoo!

This is a bit of a tricky task. Last semester my course started off as too difficult because we were using a graduate-level math text and I didn't convert the book problems enough for the students. (Not to mention I was learning some of the material only slightly before teaching it.) My next batch of students will have less math background so I'm going to have to be even more careful. I will probably rely more heavily on worksheets and less on the book problems, though Lessons in Play will continue to be an excellent reference for the class.

I still plan on devoting one day per week to playing games and discovering outcome classes/values for different states. Each week we'll try to add some new evaluation tools and I'll look for great game examples of those tools.

All in all, the class will likely look a bit like the last, but without emphasis on proofs and programming. This last bit will be replaced by some discussion of cultural aspects of games throughout history. This is definitely a bigger task than I had last semester, but I'm already looking forward to it!

Once the semester starts, I'll link to the class page. Of course, if you are an incoming Wittenberg student and have any questions about how you can be allowed to play board games during class, please ask me!

Tuesday, November 23, 2010

A Homework Worksheet

I am surprised by the success of my class audiences! They continue to be unbeaten against the speaker in our presentations. The class is now 5-0!

This week is Thanksgiving; there will be no post on Friday and today's post will be light.

As I mentioned, I have been making worksheets for homeworks for my class. I just finished the last (fourth) one this week. I won't hand it out to my students until next week. In case anyone's interested in seeing what these look like, here is the first one.

For those of you in the states, have a great thanksgiving!

Tuesday, November 16, 2010

Lectures are over... how to make them better!

Thursday was our last "regular" class period. From today until the end of the semester, students will be presenting games they've researched on their own. If there is any extra time, I will fill in by attacking some of the topics we didn't cover throughout the semester.

There's a lot we didn't cover. Just on Thursday, I skipped ahead and covered Nimbers. We had only just started to cover infinitesimals: Up and Down. We hadn't quite gotten to DoubleUp = Up + Up. We were close to covering Switches.

I hope to teach this class again, but how could I improve things?

First off, Lessons in Play is an excellent text, but there are a number of things that should just be skipped. My students are not (all) math seniors, but instead a mix of computer science and math majors from sophomores to seniors. This means I should just skip more of the proofs in class. Many of the theorems are intuitive, and students are so hungry to learn how to evaluate these games, they want more statements of what is true and less explanations why. I think it's a shame I didn't get all the way to switches, these students really wanted to know what to do with {x | y} when x > y!

Second, I should use more worksheets. The last two weeks I started making worksheets for my students for their homework assignments. That worked really well. Somehow I didn't hammer it in hard enough that a game tree is the best proof. These worksheets take the students through the steps to prove the result, enforcing all the steps that are necessary.

Also, I think I need to choose better games to play during class time. Better doesn't mean more exciting, but instead more relevant to the topics we've chosen. Some games have more infinitesimals, while others are really great examples of employing the Simplest Number Theorem.

One thing that worked really well were the programming projects I assigned in class. For our last project, students must find the Grundy values of Cram games, implementing these properties straight from the definitions.

Exciting! I can't wait to teach this again!

Friday, October 22, 2010

Chickening out on Chess

I haven't played a game of Chess in years. I was recently approached by some students asking to start a Chess Club, and we're going ahead with that. I hope I'll be able to learn to play moderately from them!

Yesterday we were set to have another "Game Day" in class where students would find values (and outcome classes) of different game states. I was hoping to do Chess, and had been flipping through Noam Elkies' paper on Chess end games. A lot of stuff in there was excellent and would really get my class thinking.

But I chickened out. I know that most of my students know how Chess works, but I wasn't sure if they'd be able to see some of the acceptable moves quickly. I was nervous teams might spend half the class figuring out what was going on in one example. Worse, I was afraid I wouldn't be able to cook up new examples on the fly as I have the rest of the year. I have to really be careful with Chess to avoid instances that are not short games.

Instead, I introduced Konane (I'll write separately about this game some time; it's very nice). I played a few times with my aide the day before, then threw a bunch of boards up on the whiteboards. The students dove in immediately; writing up outcome classes, values, and questioning or confirming the results of other teams. I stopped every so often to explain how to derive some values and to switch up partners.

So far, we have only covered Nimbers (defined only via equivalence to Nim heaps) and positive and negative integers, so some of the boards were not given explicit values by the students, as expected. It is almost equally rewarding when students express frustration over not knowing the value of Up---I know they're interested to hear more from our lecture days.

We really should do Chess, though. There are only a few more weeks before we get deep into the student presentations, so I'll have to introduce it soon! Hopefully I'll have good news to report then.

Friday, October 1, 2010

Nearly Shooting Myself in the Foot with Misere Sums

Oops!

Last week, in an effort to relive my success with finding negative games by summing to zero, I tried the same thing with a new game. The plan was to add states of a new game to states of games we had already covered, then see if they sum to zero. I wrote up states of the new game, and challenged students to find states in Clobber, Amazons, Nim, etc, that summed with the original game to get zero. Unfortunately, I hadn't had a good idea for a new game, so instead I decided we would play Misere Clobber.

Pretty quickly, students asked me: "Wait, how do we add a normal play game to a misere game?"

Oops!

Somehow I did some quick thinking (I usually can never seem to do this in front of a class) and reminded myself of how to make this "legitimate". I wound up writing two options on the board:

Either players are not allowed to make the last play in the misere game, or whenever a player makes the last move in the misere game, they immediately lose.

Whew! Things progressed pretty nicely at that point. Still, I was wary of teaching them that games can have the misere property instead of attaching that property to the method for playing a game. At least this took care of covering all the mechanics we needed to find negative games.

I took a number of wonderful pictures of the boards and of my students playing, but my new phone seems to have trouble with its camera and the pictures were never stored. Instead, enjoy these pictures one of my art-minded students drew on my whiteboard after we covered the definition of a game negative. :)





Tuesday, September 28, 2010

Searching for Games

There is no final exam in my combinatorial games class. Instead, the last four or so weeks will consist of student presentations. Each student is tasked with choosing a combinatorial game (that we haven't covered heavily in class) and researching "something interesting" about that game. Students will then present their findings.

The interesting thing does not need to be something super heavy, but should be non-trivial. So far I have three students who have chosen their games: Flume, Reversi and Hex. Of those three, two students have picked their "interesting things": one will code a playable version of Hex, while the other will describe the first-player winning strategy in Flume. In addition to these sort of options, students could write a program to determine the outcome class of their game, or just describe some interesting property (for example, that Hex cannot end in a tie or that the first player has a winning strategy in Chomp).

Part of my hope here is to learn more combinatorial games myself. I continue to work on expanding this table of games.

The other ten students have yet to choose a game. I have directed them to check out some resources such as Mark Steere's extensive list of creations, as well as the long appendix of games in our text, Lessons in Play.

Do you know of any other places I can point them to to find games? Certainly there is also a degree of procrastination, but it would also be great to give my students more resources. Also, it might come down to the point where I am forcing games upon the students. In that case, suggestions will be very helpful! Perhaps you've developed a game you'd like someone to check out!

Monday, September 27, 2010

Two turning points in my Games Class

Teaching this combinatorial games class has been tough. I am simultaneously teaching Software Engineering and Algorithms, and while both are challenging courses for students, they are going pretty smoothly. I know what I can expect from those students and know what I need to get across to them.

Combinatorial Games, on the other hand, is an adventure into some tricky territory. Since I have a wide variety of math and computer science students, I'm having a hard time making the correct assumptions about what my students already know. Since this is a new-fangled elective, I also don't have specific goals I need to communicate.

The structure of the course has been to spend one of the two class periods each week focusing on playing a new game. (Here is the class schedule so far.) The first week we played Domineering, then Clobber, then Toppling Dominoes. Students would play a bit amongst themselves, and do a great job answering questions I posed. But, after a few games and a few opponent-switches, they would get a bit bored. The 1.5 hour class started to drag on and a few students would actually ask me to return to lecturing. (Luckily, I brought some notes with me!)

Then, in the fourth week, we played Amazons. Wow. The students responded to this by actively getting into the game and trying to figure out good moves. The idea of outcome classes started to click and when I called for a change of opponents, very few people got up in the first minute.

Last week, we did something even better. I had the students play game sums (Note to me: I should have done this sooner!) and try to find different games that summed to zero. The base game was Amazons, and I drew different instances on the whiteboard and challenged the students to find different Domineering, Clobber and Toppling Dominoes games that, when added to the Amazons board, summed to zero. The result was possibly the best class period I have ever taught... even though I personally did very little. Students quickly took to their game boards, reasoned about some sums, then started filling up the marker board. Almost immediately some things written on the board were challenged (though no one was brash enough to erase another student's work without permission) and some excellent discussion began to take place.

Wow.

It's hard to describe that level of engagement by students. Everyone was knee-deep in advanced mathematical material, experiencing it first-hand. We haven't yet defined many possible game values (I'm not sure we've defined anything rigorously yet) but students were quickly clamoring for an explanation of different fuzzy games and non-number values.

As I continue this semester, I think I need to make sure that every topic is motivated, and perhaps play games in each class (instead of every other). These last two game days have made an amazing argument for that!

Tuesday, September 7, 2010

UGrad Course Update and a Mini Course in Amsterdam

So far, things are going well with the combinatorial games course I am teaching this semester. This is an undergraduate level course, aimed at both Math and CS students, and includes sophomores, juniors and seniors. Today it came up that the class feels both like a graduate-level course and the third grade. We are covering advanced material, but at a reasonable pace and with a very excited audience.

The class meets two days a week for 90 minutes. I try to spend the majority of one day letting students play a new game, asking them questions while they are playing. So far, this has gone very smoothly, alternating between game-playing days and note-taking days. I keep track of the games we've played on our class schedule. (Notice I haven't chosen anything in advance!)

I have assigned programming assignments as well as written homework. The students will end the semester giving oral presentations covering games not studied in class. I'm already looking forward to this!

I've already gotten some advice, but I'd naturally love to get more. If you've taught or attended a CGT course (even if you're one of my current students) any comments would be welcome.

On another note, I saw this announcement for a Mini-course in positional games next week in Amsterdam. I have the sudden desire to be in Amsterdam! :)

Tuesday, August 31, 2010

Mentionables

A few nice things to note as we head into the weekend!

First, wouldn't it be nice to have all your board games played on an electronic surface? Apparently the iPad might be able to handle this task! I'm not sure whether this is entirely feasible for a few reasons, but it might be good for enforcing playing by the rules for many games.

Also, it's nice to see some engineering sites mentioning board games. In this Ars Technica article, the game Drakon is reviewed. I am a bit easily influenced; perhaps I should add this game to my collection! I wonder if they would ever review a bad game...

My papers didn't make it into FUN 2010, and it was so close to my wedding I couldn't otherwise attend. Sad! I wish I'd been around to hear about these papers!

On a very happy note, I am overjoyed by my students attitude in our games class. This week we learned Clobber, and I encouraged my students to try to work out a strategy based on symmetry. Every student was engaged trying to play this game well! Also, even though we are only in the second week, students have already begun selecting games for their final project. Very exciting!

Tuesday, April 13, 2010

Teaching with a Game

Someday I will be asked to teach a class about logic gates. At that point, I will (want to) use bOOleO as a teaching tool.

bOOleO is a card game where two players race to be the first to complete a logic "pyramid". Each card is either an AND, OR or XOR gate and an output of 0 (False) or 1 (True). This means that a player can't use an OR-1 card on two 0-inputs.

The base row of cards are just randomly either 0 or 1, and a player has to build a triangle down from this until they have just one card at the end.

I've only played with a few students, but they already have made excellent comments I won't be able to ignore when it is my turn to teach. First, the deck comes with two "cheet sheat" cards that list all the input-output combinations for each gate. This is a useful aid for those new to boolean logic. After a couple bOOleO games, however, these reference cards are no longer necessary.

Considering strategies leads to a stronger understanding of logic gates. One facet of the game are NOT cards, which invert one of the base row of cards, switching a 0 to a 1 and vice versa. Any gate cards that then have incorrect outputs for their inputs are discarded. Some gates are more susceptible to this than others. OR-0, AND-1 and both XOR cards will always be destroyed when their input changes. For OR-0 and AND-1, this occurs because they have only one working input combination. XOR, on the other hand, changes values with a change in any input.

AND-0 and OR-1 are a bit more robust: one in four input combinations are safe! Because of this, I usually find these cards to be more valuable than the other gates. Between the two of them, I favor the OR-1 cards, since a player has more flexibility with more 1s in their circuit.

Why is that? Well, since there are no NOR or NAND cards (NOT cards are not used as gates, but as the inverters as described above) there is no way to have a gate take two 0-inputs and output a 1, though XOR-0 will do the opposite.

Most importantly, this is an involved game, but with enough randomness to prevent it from being too serious. Interacting this way with logic gates can really help to bring the point home.

If I used this in class, though, I might try to create some more complex boards for game play that more closely resembles circuitry.

What other games are great as examples for teaching "non-game" subjects?

Friday, March 5, 2010

Undergrad CGT Course

I have good news for next semester! The CGT course has been approved and I am already preparing material. The course will be cross-listed in math and computer science. The broad goal of this course is to explore combinatorial game theory as deep as is feasible with extra attention paid to programming and algorithm design.

Some games, even if they defy the proper definition of "combinatorial", may have special purpose here. One of these is RoboRally.

About a month ago, I played RoboRally for the first time. It was advertised to me as a game that "used programming". I did not believe this at all (I was hoping to play a game of Kingsburg that night) but then after playing for a just a few minutes, I was hooked. In the game, you have a robot to move around the board. Each round, everyone is dealt a hand of cards, each of which is an atomic command for your robot (move or turn a certain direction) and you immediately choose a subset of those cards, then order them. Your robot then makes those moves in that order, but might interact with the orders of other robots. It's great because you have to think very carefully about the "program" you give your robot.

Additionally, I do want to be able to get into some of the details of complexity classes, but without going through an entire algorithms/complexity course. The only prereqs for this course are Programming I and Discrete Math. Somehow I will have to convince the students that you "probably can't" solve some of these games.

If anyone has any good suggestions for games or other resources, I would love to hear them!

Also, has anybody played this game? I can't seem to find any information about it anywhere, but it looks like it could be cool!

Updates to the game table have been slow, but I continue to make them!

Wednesday, December 9, 2009

CGT Class description

There were some issues and comments from Monday's post that I still have to look into. I will! Fear not!

I wanted to run the latest iteration of a game class description here:

Combinatorial Games are an avenue to model basic decision-making and computation. In this course, we will look at computational and mathematical basics of combinatorial game theory, analyzing such games as Chess, Go, Checkers, Domineering and Amazons as well as many others! Topics will include basic algorithm design, strategy analysis, games as a number system, impartiality, parity and a dip into computational complexity.


I mentioned in a previous post that this class is intended for undergrads, and will only require both basic programming and discrete math pre-requirements. Is this a good description?

Monday, November 2, 2009

Best Intro Game?

I just had a wonderful visit this weekend with my soon-to-be-in-laws and they described playing Candy Land with their grandkids. Although I never played much as a kid, I think it's a good introductory board game. The game has good visuals, both using the imagery of delicious candy, but also using colors instead of words or numbers to describe moving around the board. This definitely appeals to 3-5 year olds---whatever that age range is called---and is likely the first board game many American children play.

What about when it's time to play games in the classroom? What should a student's first game be then?

I'm focused on impartial games, and versions of Nim had popped up in my elementary and middle school classes. Basic Nim is a candidate for a good introductory game: it is both simple and (surprisingly) has a very sneaky trick to determine who is winning. This gives it a very satisfying quality: we learn about the rules of a game and some of it's underlying details and then, happily, we find a strategy to play the game well! This is unlike some other games that are more fun to play but might be disappointing to students because they don't reach this step.

The text Lessons in Play decides not to introduce impartial games until much later, instead beginning with Domineering. This is another nice game, due partly to its simplicity. Another key point here, though, is that this game uses pieces from other known games: a checkerboard and dominoes. This can lend a sense of creativity to students. "Use your imagination to create your own games from the pieces around you!"

I've also heard from people who swear by Hackenbush. This is a game where your turn consists of erasing an edge of a graph (usually drawn on a whiteboard) that corresponds to your color. After your turn, if there are any subgraphs not connected to a ground node, those are also erased. This game has the excellent feature that it is super customizable and doesn't need to use a parallel-to-the-ground board at all. Again, this sort of thinking outside the box can be very beneficial to students!

Note that both Domineering and Hackenbush have easy extensions to impartial games. Thus, that transition can be made easily.

What else do people prefer? Are these two the most common? Is there anyone out there who advises doing impartial games first?

Wednesday, October 14, 2009

Programming Hex

Oops!

Two weeks ago I assigned my software engineering students a new project: they were to add Hex to their collection of combinatorial games. To this point they had only implemented impartial games; this was to be a bit of a wrench in the mix.

Unfortunately, I picked a poor partisan game. Hex itself is an excellent game, but I forgot that it was a bit difficult to determine whether the game is over. The obvious approach to determine this comes down to graph connectivity, something beyond the scope of the project. Oops!

Luckily, I quickly recalled the proof of the Hex Theorem: when all hexes are colored, there will be exactly one winner of the game. The late David Gale does an excellent job of describing the theorem in this paper, showing the link between Hex and Brouwer's Fixed-Point theorem. I explained to the students that they should follow the boundaries from one of the corners of the board and see which corner it ends up at. For example, if they choose a corner where the blue side is on the left and red on the right, they can hug either the blue or red boundary (this might be the same if most of the board is colored).

First note that this path created by the boundary cannot end; it will exit through one of the other board corners. Note next that it cannot exit through the corner exactly opposite; the colors there are on the opposite sides! Thus, the path will veer either right or left (from the point of view of the entering corner). If, like we said, blue is on the left and red the right and while hugging the blue boundary we exit to the left, it means blue has not yet won the game. If, on the other hand, the path exits to the right, then there are blue hexes connecting the two sides of the board: blue wins! The opposite is true for red.

My students coded up their project and it works very nicely! Still, next time I think I'll assign Clobber instead!

Wednesday, October 7, 2009

Too much competition?

One of the great facets I find in studying game theory is that I am naturally competitive. I am never good at sitting down to play a game and not actively trying to win. I don't always strategize with the same ferocity, but rarely do I throw a game on purpose---even if doing so would be a social victory for me. It's easy to be too competitive!

I still hope to teach a combinatorial games course, and a big part of that would be playing different games during class time. Despite the fact that I would not keep track of wins and losses, I am afraid that some students may believe they are losing too often. Whether or not they are a "sore loser" this can still be very emotionally degrading. How can I do well in this course if I can't even play the games well?

Of course, you can still gain a really strong understanding of the game while losing. It's not true that being a good player is equivalent to being a good game theorist. This is likely not something that is immediately clear, though. So far I have no actual experience teaching this sort of course, so I don't know how to drive this point home.

Does anyone have any good suggestions? How can I convince students it is okay to play poorly?

People in general are competitive, and this lends well to taking a good interest in games. Unfortunately, that could play against the study if the competitive aspect becomes too great.

Monday, October 5, 2009

Algorithms and Game Rules

Most of my posts have had the underlying theme of writing algorithms to play games well, but coming up with the rules for games is also a good exercise in algorithms.

In fourth and seventh grades we were asked to create board games for school. A big difference between the two assignments was that in seventh grade we were asked to actually write out the rules. Although this was for a social studies class, our teacher made it plain that we needed to be very clear with these rules; don't assume the players automatically know how to do everything. She also stressed making it clear that the rules should repeat: after one person's turn, the game should move on to the next player.

Combinatorial games are beautiful in part for the simplicity of the unifying design. To describe a new game, it is enough to describe what the left and right children of any state are. Moving to the next person's turn and when the game ends are all built into the overriding definition. For generic board games, however, enough is going on during one turn that algorithmically describing the steps is more worthwhile.

Roll the dice,
move your piece clockwise around the board that many spaces,
if you land on unowned property, you may buy it
otherwise, if you land on owned property, you must pay that player the appropriate amount
otherwise, if you land on...

If I ever get teach a freshman seminar on board games, I will definitely integrate creating our own board games. Creating rules and the prototype has a lot to do with software design, and that process would be very useful!

Thank you, Mrs. Pasco. Your social studies course gave me the best computer science lesson of that school year!