The James Robertson Memorial Programming Competition is a national academic initiative to promote the Smalltalk programming language in Canada. The event is open to all Canadian high school students. Teams of four students representing their schools will compete for scholarship prizes.
First Prize — $6,000 (4 x $1,500)
Second Prize — $4,000 (4 x $1,000)
Third Prize — $3,000 (4 x $750)
The contest is intended to be a model for similar competitions in other countries. Its goal is to encourage the widespread use of Smalltalk.
Who was James Robertson?
The late James Robertson was a tireless advocate of Smalltalk. He gave many presentations, wrote many blogs, and produced many videos about Smalltalk. His infectious enthusiasm for the language inspired everyone around him. This competition honours the man and his body of work.
Good question. Smalltalk is an object-oriented, dynamically typed, reflective programming language. It is widely regarded as the best object-oriented language in the world. It is also one of the simplest and most concise programming languages ever created, even simpler than Python. Smalltalk was created by the brilliant visionary team of Alan Kay, Dan Ingalls, and Adele Goldberg at Xerox PARC for teaching programming to children. At the same time, Smalltalk is a wonderfully powerful language used in industry, government, and academia.
Read all about Smalltalk here.
Format: The competition is conducted entirely online. It is based on a game of strategy. You are working on a grid of numbers. You have a “robot” which occupies one square (shown in black) and you can move it in one of four directions into adjacent squares (the robot “wraps around” the board if it’s at the edge).
Each time you enter a square, the value of that square is added to your score and the value of the square is reset to zero. The score is simply the total of captured cells in the game within a certain time period (e.g., 60 seconds).
Moves are scheduled every 100 ms. During this time period, you can calculate the best move.
The program has access to the values of all the squares on the board, the location of the robot, the value of the robot, and the amount of time available to run.
For graphical representation, zero-value squares are white, red squares have the highest values, and light red squares have lower values.
In every round, contestants must submit their Smalltalk classes to us. We will run the simulations on our systems for scoring purposes.
There are five rounds, one per week. Round 1 is as described above. Round 2 will introduce a twist to challenge you. Round 3 will introduce another wrinkle, as will Round 4. Round 5, the final round, is the only one that counts for the prize.
You can download and install Smalltalk (Pharo dialect) from here. You have at least three months to familiarize yourselves (the whole team) with the programming tools. But don’t worry, Smalltalk is really, really easy.
Registration begins on: Friday, September 6, 2019
Registration closes on: Friday, November 1, 2019
Register here: teams.jrmpc.ca
Parental approval will be required. A teacher supervisor must manage the team’s legitimacy to compete.
Competition starts on: Friday, January 31, 2020
Competition ends on: Friday, March 6, 2020
The first 100 registered teams will receive T-shirts. So register early!
A minimum of 30 teams are needed in order for the competition to proceed. A maximum of 500 teams allows us to adequately administer the competition.
How to learn Smalltalk programming
The competition is using the modern Smalltalk dialect called Pharo. To give you a leg up on learning Pharo, here are some resources…
Basic introduction to Smalltalk: Prof Stef
(In the Prof Stef tutorial, pay particular attention to this instruction: Select the text below and click on the ‘DoIt’ button.
This often escapes readers.)
Here’s a Pharo Quick Start guide.
- James Robertson on the basics of Pharo
- Pharo Video Tutorial
- Introduction and simple example of Smalltalk/Pharo
- 7 minutes of Pharo Smalltalk for Rubyists
Free books on Pharo programming:
- Pharo By Example 5
- Learning Object-Oriented Programming, Design and TDD with Pharo
- Pharo’s Tips and Tricks
There is also a Pharo MOOC (massive open online course).
This Pharo tutorial series may also be of interest to you: Learn How To Program.
I suggest you try writing a real program with Pharo. This is truly the only way to learn.
LabWare is the industry leader in laboratory automation software and their sole focus is on laboratory informatics. They’ve been in business for over 30 years.
LabWare is also a major supporter of the Pharo Consortium, whose goal is to continue the industrial development of Pharo, the modern Smalltalk.
Simberon is a leading Smalltalk house specializing in VisualWorks, VA Smalltalk, GemStone/S, ObjectStudio and Visual Smalltalk Enterprise. They also provide training for Smalltalk programming. Headquartered in Ottawa, Canada, they’ve been in business for over 23 years.
Ryerson is a prominent university centrally located in Canada’s technology hub. They are minutes away from Sidewalk Labs, a district for urban innovation at Toronto’s waterfront, as well as Microsoft’s new Canadian headquarters.
The world-leading vendor in object databases, GemTalk uses a Smalltalk variant called GemStone/S which excels at concurrency, distributed computing and high-volume transaction processing.
TSUG is one of the largest Smalltalk user groups in North America. Based at Ryerson University, which engages in important Pharo research and development, TSUG monitors the state of Smalltalk and of the programming industry in general.