In the fall last year I started my master's degree at the University of Alberta. This program means I spend a full two terms of masters level courses and then I get to work on a research project in preparation of writing a thesis. My first semester of courses saw me take CMPUT 603 (Teaching and Research methods), CMPUT 642 (Network Protocol Design), and CMPUT 657 (Heuristic Search). It was a pretty cool semester - particularly 657 where the course had us write a program to play lose-checkers. A variant of checkers where each player tries to make the opponent win. We also wrote a program to solve a solitaire game of cards. The course took over my life for that semester - but it was really rewarding. I learned a lot :) Networks was not as exciting, but it did teach me that I didn't want to do networks research (a valuable lesson - its hard to shave off areas of potential interest when trying to pick out a research topic). 603 was not a fun course, but it was required so I made it through it.

The second semester is the one that just finishe a couple weeks ago. I only had two courses - CMPUT 672 (Graph Theory) and CMPUT 681 (Parallel and Distributed Systems). 672 was difficult (as any computer science theory course tends to be). 681 was a really good course where we spent a lot of it reading research papers of the prof's selection and then discussing them in class. Our project was to try and solve hex positions in parallel. While we got something working with decent speedup on a small number of processors, there's a lot more work to be done to make it work well. For those who don't know, hex is a 2 player game that I've done some previous research on. Its a very interesting game, and you can read about it at Jack's hex page.

So now I'm finished my courses requirement for my master's degree and I've started working on my research project. Get ready for a big surprise here ... I picked the poker project! The UofA has had a strong poker group, which has given rise to several impressive outcomes towards the goal of creating a poker bot capable of beating world champion caliber poker players. The AI that they've worked on are now integrated into the commercial product Poker-Academy.

My role in the project is to work on expanding some of the ideas that the group has come up with for 2 player poker and apply them to the multiplayer case. It should be very interesting - particularly since the ideas that they came up with for heads up play are much stronger than previously known. So if these ideas are adaptable, then there is potential to have an extremely strong multiplayer bot. That's what I'm working for.