Competitions · Mathematics · CMIMC
CMIMC, Carnegie Mellon’s mathematics and informatics competition.
Two competitions three weeks apart: a team tournament on the Pittsburgh campus in March, and a three-day programming contest online in April. What separates CMIMC from HMMT or PUMaC is that computer science is not an afterthought here - one round scores you on how few steps your algorithm takes.
At a glance
What the competition is, and who runs it.
CMIMC has run since 2016 at Carnegie Mellon University in Pittsburgh - an institution whose school of computer science is ranked among the very top in the world, which is visible in how this contest is built.
- Organiser
- Carnegie Mellon University, which has run the competition since 2016
- Who can enter
- High-school students, in teams of up to six
- Two events
- CMIMC Math, held in person on campus in late March, and CMIMC Programming, held online across a weekend in April
- What makes it different
- Computer science is examined as a subject in its own right rather than as a source of puzzle dressing. One team round is entirely algorithmic
- Difficulty
- Comparable to HMMT and PUMaC
- Divisions
- Entrants choose a difficulty division for each individual round, which changes what their answers are worth
- Where
- Carnegie Mellon University, Pittsburgh, Pennsylvania - one of the twenty-five institutions commonly grouped as the New Ivies
- Standing in computing
- CMU’s computer science and information systems was ranked third in the world in the 2020 QS subject rankings, with statistics and operational research tenth
- Language
- English
Two competitions
The tournament and the programming contest.
These are separate events with separate formats, held three weeks apart. A team can enter one or both.
| CMIMC Math | CMIMC Programming | |
|---|---|---|
| When | Late March | A weekend in mid-April |
| Where | In person, at Carnegie Mellon | Online, streamed live |
| Length | One day, five rounds | Three days, from Friday evening to Sunday evening |
| What it asks | Two team rounds and three individual papers, mixing algebra, number theory, geometry, combinatorics and computer science | Three rounds - artificial intelligence, optimisation, and a language you have not seen before - written in Python 3 |
| Pacing | Fixed timed rounds through the day | All problems released at once; candidates manage their own weekend |
The programming contest releases everything on the Friday evening and takes submissions until Sunday evening, so it rewards planning a weekend rather than performing under a clock.
CMIMC Math
Five rounds in a day.
Every entrant sits all three individual papers. The two team rounds are worked by the squad together.
| Round | Type | Time | Questions |
|---|---|---|---|
| Algebra and Number Theory | Individual | 60 minutes | 8 fill-in |
| Geometry | Individual | 60 minutes | 8 fill-in |
| Combinatorics and Computer Science | Individual | 60 minutes | 8 fill-in |
| Team Round | Team | 60 minutes | 15 fill-in |
| TCS Round | Team | 90 minutes | 3 problems, marked on the algorithm |
The TCS round is the one with no equivalent at the other university tournaments - it is described below.
The two decisions
What actually shapes a CMIMC score.
Two things here reward thinking in advance: the division a student picks, and how a team approaches the algorithmic round.
Division 1 or Division 2
A student chooses a difficulty division for each individual paper. Division 1 is harder and its questions carry more marks. Division 2 sits roughly at the level of the first five questions on a past paper, and its scores are multiplied by 0.5.
What the half-multiplier really asks
Halved marks means Division 2 only pays if you solve more than twice as many questions there as you would in Division 1. Solving five of eight in Division 2 beats solving two of eight in Division 1; matching three against two does not.
The TCS Round is about efficiency
Three problems in ninety minutes, where the score depends on designing an algorithm that runs in fewer steps - and on proving that it does. A working solution is the starting point here, not the finish.
A genuine computer science round
Because the TCS round marks the quality of an algorithm rather than a numerical answer, a team with a strong programmer who cannot compete on olympiad geometry still has somewhere to contribute.
CMIMC Programming
Three rounds across a weekend.
The programming contest runs entirely online, in Python 3, with all problems released on Friday evening and due on Sunday.
Artificial intelligence
Problems requiring an agent or model rather than a closed-form answer. This is the round furthest from anything a mathematics competition asks, and the one where prior project experience shows.
Optimisation
Finding the best solution rather than a correct one, which is where the contest most resembles the TCS round in the March tournament - efficiency is the measurement.
A new language
A round built around a language candidates have not used before. It tests how quickly a programmer can read a specification and work in something unfamiliar, which is a different skill from knowing Python well.
Awards
Where the cut-offs fall.
Recognition goes to individuals in the subject papers and to teams on the team round and overall standing.
Preparation
How Hanlin prepares a CMIMC team.
CMIMC rewards a squad that has thought about its own composition, because the computer science content genuinely changes who is useful.
Settling the division honestly
The half-multiplier makes the division choice arithmetic rather than a matter of pride. Students work a past paper at both levels and pick on the result, not on which sounds more impressive.
Algorithms, and proving them
The TCS round asks for a step count and an argument that the count holds. That is closer to a first algorithms course than to contest mathematics, and it is prepared for separately.
Building a team with a programmer in it
A squad of six pure mathematicians leaves marks on the table in the TCS round, and cannot enter the April contest at all. Team composition is planned around both events rather than one.
Eight questions, sixty minutes, three times
Three individual papers back to back in one day is an endurance problem as much as a mathematical one. Full-length practice days are run before the tournament for exactly that reason.
Why Hanlin
Preparation for CMIMC at Hanlin is taught by full-time subject tutors, on a course tier chosen by placement paper rather than by year group.
Programme formats
Five ways this is taught.
Group size is the whole difference between these. It decides how much of the tutor's attention a student gets and how far the course can bend to them, so it is worth choosing rather than accepting.
| Format | Group size | What it suits |
|---|---|---|
| One-to-one | One student | Content, pace and emphasis set by what this student actually needs rather than by a syllabus. The only format that can be rebuilt mid-course. |
| Small group | Three to eight | Opens at three. Frequent discussion, and the tutor can slow down or move on according to what the group has absorbed. Most students chasing a higher award are taught in this one. |
| Class | Eight to twelve | Taught by the subject lead or a medal coach. Less back-and-forth, so it suits a student who will say when something is unclear. |
| Large class | Ten to twenty | For students in the middle of the placement range, and a way to try a competition before committing. Students often move to a small group or to one-to-one afterwards. |
| Past-paper class | No cap | Past papers worked through in sequence in the weeks before the sitting. Free to students already enrolled. |
Course length for CMIMC is set after a placement paper. The gap between where a student is and what the paper asks for is what the course has to close, and that gap is not the same for two students in the same year group.
How it runs
Six steps, four people on your side.
The same process for every student, so that nothing depends on one tutor remembering to do it.
Step 1Pre-course assessment
A placement paper before anything is booked, so the course tier is chosen on evidence rather than on a year group.
Step 2Tutor matching
A subject tutor is matched to the result, and their full background is provided before you agree to it.
Step 3Plan and group
A study group opens with four people on one student: the tutor, a planner, a supervisor and an academic manager.
Step 4Scheduled teaching
The teaching office sets the timetable around the competition date and school term, and teaching begins.
Step 5After-class reports
What was covered, and how the student handled it, reported after every lesson.
Step 6Homework follow-up
The teaching assistant and the form teacher both check that homework is done, which is where most preparation quietly fails.
Free resource pack
Past papers and preparation pack
The same material our own CMIMC students work from. Scan the code, say what you need, and an advisor sends it.

Tell an advisor which competition and year group, and the material comes back the same day. Free, and you do not have to enrol in anything. If we do not already hold what you need, we will go and find it.
- PDFPast papers, every year the organiser has released
- PDFWorked solutions, where the organiser publishes them
- PDFThe syllabus on one page - every topic, and how heavily it is examined
- PDFEntry checklist and the dates for the current cycle
Teaching team
Who would teach it.
Three of the twenty-two tutors on the published Hanlin roster - the ones whose subject this is.

Dr Zhang
PhD in theoretical mathematics from the University of Rochester and a postdoctoral fellow at the Shanghai Center for Mathematical Sciences at Fudan. An AMC-accredited coach, ASDAN-accredited for DMM and ITCCC, and an accredited UKMT BMO2 and PUMaC coach. His students have gone on to read mathematics and physics at Harvard, MIT, Princeton, Caltech and Cambridge.

Dr Zhuang
PhD in mathematics from the University of Denver, working in mathematical logic, after a first degree in applied mathematics at Southeast University. A repeat conference speaker on his research, with three years lecturing and assisting on undergraduate mathematics at Denver.

He
A Cambridge master's after a computer science degree with a mathematics minor at the University of Nebraska-Lincoln, and a US high school GPA of 4.13. Six years overseas and teaches entirely in English, across AMC, Math League, AP Computer Science and AP Calculus.
Where it is taught
Hanlin learning centres.
Teaching runs from Hanlin's own centres in Shanghai, Shenzhen, Chengdu and Hangzhou, and online for students elsewhere.







Talk to an advisor
Everything Hanlin does for CMIMC, in one conversation.
Entry, planning, coaching and the past papers. An advisor will tell you which of these a student actually needs, including when the answer is none of them.
Competition entry and planning
Which competitions suit this student, in what order, and by when - then we handle the registration, including the ones that can only be entered through a school or a centre.
Competition coaching
Taught by full-time subject tutors, on a course tier chosen by placement paper rather than by year group.
International curriculum tutoring
IB, AP, A-Level, IGCSE and the US high school curriculum, taught alongside school and timed around the exam calendar.
Competition past papers, free
A large library of past papers, mark schemes and syllabus breakdowns across every competition on this site. No charge and no enrolment.
Scan to add an advisor

Say which competition or course you are asking about. Replies in Chinese or English.
Or call +86 21 6352 6630FAQ
CMIMC, briefly answered.
What students and families ask before entering a team.
Who can enter CMIMC?
High-school students, in teams of up to six. The mathematics tournament is held in person at Carnegie Mellon and the programming contest runs online.
How is CMIMC different from HMMT or PUMaC?
The difficulty is comparable, but CMIMC examines computer science as a subject. One team round is entirely algorithmic, one individual paper pairs combinatorics with computer science, and there is a separate three-day programming contest in April.
What are the five rounds?
Three individual papers - algebra and number theory, geometry, and combinatorics with computer science - each 8 fill-in questions in 60 minutes. Then a team round of 15 fill-in questions in 60 minutes, and the TCS round of 3 problems in 90 minutes.
What is the TCS Round?
A team round where you design an algorithm and prove how many steps it takes. The fewer the steps, the higher the score - so a correct but slow solution is only partway there.
Should a student choose Division 1 or Division 2?
Division 1 is harder with higher marks per question. Division 2 sits at roughly the difficulty of the first five questions of a past paper, and its scores are halved. Division 2 only pays off if the student solves more than twice as many questions there.
What is the programming contest like?
Three days online, in Python 3, across three rounds: artificial intelligence, optimisation, and an unfamiliar language. All problems are released on Friday evening and answers are due by Sunday evening.
What awards are given?
The top ten in the individual rounds, the top five in the team round, and the top ten teams on the overall standing.
Does a team need a programmer?
It helps considerably. The TCS round marks algorithmic quality rather than a numerical answer, and the April contest is programming throughout, so a squad of pure mathematicians leaves marks unclaimed.
Related
Other university-run tournaments.
What teams commonly enter alongside CMIMC.
CMIMC enquiries
The computer science is not decoration here.
A team without a programmer forfeits marks in the TCS round and cannot enter the April contest at all. Tell us who you have and what they can already do, and an advisor will map both events and the division choice.