Skip to content
COMP10001Playground

COMP10001 · The University of Melbourne · 2019 Semester 2

My first programming subject, rebuilt as a playground.

In 2019 I learnt to program in COMP10001 Foundations of Computing. Its three Python projects asked me to count an election, lead a hero through a dragon's cave and score a card game. Here they are again, running in your browser, with the working shown at every step.

seeded caves replayed through my original 2019 file
230
seeded caves replayed through my original 2019 file
elections cross-checked against reference Python
300
elections cross-checked against reference Python
card groups scored identically to the Python oracle
500
card groups scored identically to the Python oracle
servers: everything runs in your browser
0
servers: everything runs in your browser

The playground

Three projects, three toys

Each project was a set of Python functions, auto-marked against hidden tests. Each demo below runs those functions on input you control, and shows its working.

  1. Project 1 · eVoting

    Ballot Box

    Rebuilt from the task (original lost)

    The task. Act as the programmer for an electoral commission: count votes under first past the post, a second-preference runoff and full instant-runoff voting, and check whether a ballot is a valid ranking.

    Try it. Edit or generate ballots, then step through each elimination round and see exactly where every transferred vote lands.

    3 winners

    from one set of 13 ballots

    Open
  2. Project 2 · Toy World

    Falca's Cave

    Ported from my 2019 code

    The task. Model a square cave with walls, up to three treasures, a sword and a dragon. Check a route, find the shortest path between two squares, and find the cheapest way to collect every treasure and get out alive.

    Try it. Paint your own cave, watch breadth-first search flood outwards, and compare my 2019 code with a version that applies the dragon rule properly.

    23 & 14

    moves on the two sample caves, as in 2019

    Open
  3. Project 3 · COMP10001-Go

    Card Table

    Rebuilt from the task (original lost)

    The task. Score groups of playing cards (singletons, N-of-a-kind and alternating-colour runs with wild Aces), check a grouping is legal, and, for bonus marks, find every best-scoring grouping of up to ten cards inside a strict time limit.

    Try it. Deal a hand, drag cards into groups to see the score update live, then let the solver check every possible grouping for the best one.

    115,975

    groupings searched for a 10-card hand

    Open

How it was revived

Faithful first, pretty second

New in 2026: property-based tests against brute force, an evaluation of whether a language model can find the best card grouping (on your own key, with 95% intervals), and the decision records behind the whole revival.

About this project

Where it all started

COMP10001 was my first programming subject at the University of Melbourne, and these were the first programs I wrote that had to work on inputs I had never seen. Only the Project 2 file survived; the other two submissions were lost. This site keeps what survived, rebuilds what did not, and labels which is which.

Academic integrity

This is my own work for a subject I completed in 2019. The original submission is kept unchanged in the repository for reference. If you are taking COMP10001 now, please do not copy it.

What is original and what was rebuilt
Subject
COMP10001 Foundations of Computing
University
The University of Melbourne
When
2019 Semester 2
Format
Three individual projects in Python 3, written and auto-marked on the Grok Learning platform
Author
Sunchuangyu (Rin) Huang (all three projects were individual work)
Task design
The COMP10001 teaching team. Tasks are paraphrased here; the specifications are not reproduced.
Original stack compared with the revived stack
Aspect2019 original2026 revival
LanguagePython 3TypeScript (strict)
RuntimeGrok Learning sandboxYour browser, plus a Web Worker
Interfaceprint() and hidden test casesNext.js 16, React 19, Tailwind CSS v4, shadcn/ui
TestingGrok's auto-markerVitest parity suites against the original Python