2018 Contest:

The 5th Annual Cornell University High School Programming Contest will be held on the afternoon of Friday April 6th, simultaneously at the Ithaca Cornell campus and the New York City CornellTech campus.  If you would like to participate, please fill out the sign-up form.  If you have any questions, please contact Vanessa Maley (vsm34 -at- cornell -dot- edu).

The schedule is approximately as follows:

  • 11:30 - noon: arrival at Gates Hall (Ithaca) / Tata Innovation Center (NYC)
  • 12:15 - 12:30: introduction / presentation of the rules
  • 12:45 - 3:45: contest
  • 4:15 - 4:45: technical presentation
  • 4:45 - 5:00:  award ceremony

Teams are allowed to bring in books, paper, etc., but no electronic equipment. 

This year, Cornell is running three week-long online warm-up contests, and if you are interested in competing we strongly urge you to participate in this contest.  To be able to compete, students should individually sign up at HackerRank and fill in the following form: https://goo.gl/forms/CVV9aZgSKGkIGTX82

After each round Cornell will release solutions to the problems with explanations on why these solutions are correct. These rounds are optional but we highly recommend participating in them. Students can still try to solve the problems after the solutions are released, to get extra practice.

The warm up rounds will be held on Feb 18 - Mar 1 (extended!), Mar 4 - Mar 10, and Mar 18 - Mar 24 (deadlines at 11:59pm EST).  To participate, click on the following links:

Please note that problems in these rounds are not in order of difficulty, and neither will they be at the actual contest.  In this kind of competition teams are not expected to solve all problems. Don't worry if the problems seem too hard, the idea is to keep you busy for the whole time.

Solutions will be posted here after each warmup round completes.  If you have any questions about the solutions, you can contact Daniel Fleischman (df288 -at- cornell.edu).

Although the first two rounds have now completed, you can still post solutions!

The Cornell Team will read your programs!  Remember that these rounds are supposed to be done individually. Students with very similar programs will be contacted!

Practicing:

The teams may use the following programming languages: Java, Python, C, C++, Haskell (others available upon request). The teams will be using an X86 Linux environment.  So you can practice in this environment ahead of time, the environment is available as a VirtualBox virtual machine appliance image.  VirtualBox can be run under Windows, Mac OS X, and Linux.  After you start VirtualBox, go to Import Appliance under the File menu and import the OVA image.  Once the virtual machine is up and running, you can log in: the username and password are both 'contest'.

2017 Contest:

The 4th Annual Cornell University High School Programming Contest was held Friday April 7th. As always, we follow a similar format as the ACM International Collegiate Programming Contest (ICPC).  The rules are posted here. 

This year we had the following schools competing (with a total of 22 teams):

  • Allendale Columbia (1 team)
  • Bishop Hendricken (1 team)
  • Brighton (2 teams)
  • Dalton (1 team)
  • Fairport (3 teams)
  • Half Hollow Hills East (3 teams)
  • Ithaca (3 teams)
  • McQuaid Jesuit (1 team)
  • Nichols (2 teams)
  • Pittsford Sutherland (2 teams)
  • Webster Schroeder (1 team)
  • Webster Thomas (2 teams)

This year we also had a team of three high school teachers (for fun, not for the big prize).

A link to the contest, where you can see the problems, is here.

First prize went to an Ithaca High School team, second prize to a Bishop Hendricken team, and third prize to an Allendale Columbia team.  The teachers team came in fourth:

  1. Ithaca High: Vivek Myers, Jacob Silcoff, and Mrinal Thomas
  2. Bishop Hendricken: Fred Choi, Tony Jiang, and Paarth Tandon
  3. Allendale Columbia: Jingjong (Daniel) Xiang and Rui (Tony) Zhou 

Right after the contest, Prof. Kavita Bala gave a short talk on recognition and deep learning.

WHCU provided some nice coverage.

2016 Contest:

The 3rd Annual Cornell University High School Programming Contest took place on Thursday April 7th.  Programming contest veteran Daniel Fleischman started the event with some stories about participating and team coaching in programming contests.    This year we had 19 teams:

  • Bishop Hendricken (2 teams)
  • Fairport (3 teams)
  • Ithaca (4 teams)
  • McQuaid Jesuit (2 teams)
  • Nichols (2 teams)
  • Pittsford Central Schools (3 teams)
  • Webster Schroeder (1 team)
  • Webster Thomas (2 teams)

First prize went to an Ithaca High School team, second prize to a Pittsford team, and third prize to another Ithaca High School team:

  1. Ithaca High:  Jonathan Gomes-Selman, Jacob Silcoff, Zachary Stillman
  2. Pittsford High: Yiyou Chen, Yizuo Chen, Peng Sun
  3. Ithaca High: Daniel Halpern, James Park, Mrinal Thomas

This year we used Hackerrank to run the contest: https://www.hackerrank.com/contests/cornell-university-high-school-programming-contest/challenges

The solutions, including test cases, are available here.

We got some nice press from WHCU, Cornell Chronicle.

2015 Contest:

In 2014 we organized our second contest on Tuesday April 7th.  With 17 teams we had almost triple the participation of last year:

  • Brighton (two teams)
  • Byram Hills (two teams)
  • Dalton (two teams)
  • Fairport (three teams)
  • Ithaca (three teams)
  • McQuaid Jesuit (two teams)
  • Webster Thomas (one team)
  • Webster Schroeder (two teams)

First prize went to one of the Dalton teams, second prize to a Byram Hills team, and third prize to the other Dalton team.  We also gave prizes for the first three teams to solve any problem.  A team from Webster Schroeder was the first team to solve a problem, followed by teams from Dalton and Byram Hills (tied).  Some stats:

  • All teams used Java exclusively.
  • Two teams solved all 7 problems, one team solved 6, one team solved 5, three teams solved 4, five teams solved 2, four teams solved 1, and one team solved no problems.  Participants can receive feedback on their failed attempts.
  • Problem 1 (Making the Grade) was solved by 13 teams.  Problem 2 (Eakspay...) was solved by 9.  Problem 3 (Frame by Frame) was solved by 4.  Problem 4 (Crushing Confections) was solved by 7.  Problem 5 (Waiting for Change) was solved by 7.  Problem 6 (Cornell Party) was solved by 4.  Problem 7 (Cornell Party -- Retry) was solved by 7.

The programming problems are posted here.  Solutions, test input and corresponding output are posted here, courtesy of Daniel Fleischman.  Feel free to contact Daniel (df288 at cornell dot edu) with questions.

During lunch, Prof. David Bindel gave a talk on difficulties in calculating decimals of pi and various applications.

We got some nice press from Cornell Chronicle.

2014 Contest:

In 2014 we organized our first contest on Thursday April 3rd.  The contest was held in the new Gates Hall on Cornell campus.  Weeks prior to the contest, all participants were provided with a virtual machine image (Ubuntu 12.04, pre-installed with C, C++, Java, Python, Eclipse, and various documentation.  Six teams of two to three programmers competed for a first, second, and third prize.  They were

  • One team from Brighton High School
  • Three teams from Ithaca High School
  • Two teams from West Irondequoit High School

First prize went to a team from Ithaca High, second prize to a team from West Irondequoit High, third prize to a team from Ithaca High, and an Honorable Mention to the other team from West Irondequoit High as they finished close behind the third.

The rules and programming problems are now available, as are solutions provided by Daniel Fleischman (df288 at cornell dot edu)  Daniel is an expert on competitive programming and is happy to provide feedback to the teams.  Here are some stats:

  • All teams used Java exclusively.
  • "Great Expectations" was solved by all 3 teams that attempted it.
  • Three teams solved "Student Identifiers".  A fourth team was very close, but they unfortunately skipped the modulus 1 as a possibility, and the test input had a class of size 1 in it.
  • "Pancakes" was solved by two teams.  A third team made an attempt.
  • "Can you build it" was solved by one team.  Two other teams attempted it.
  • "Postfix Calculator" was solved by one team.  One other team attempted it.
  • "Seek-a-Word" turned out to be tricky.  Four teams attempted it.  A lot of attempts were close but threw "array-out-of-bounds" exceptions.
  • "Roman Numerals" also is a bit tricky to get right.  Lots of cases to think about.  Two teams tried to solve it.
  • "Eating M&Ms" was attempted by just one team, but the solution was too inefficient to run within the required 5 seconds.

Participants can receive feedback on their failed attempts.

During lunch, Professor Sirer presented an introduction to Bitcoin, demonstrating a wonderful application of computer science concepts and also pointed out some problems with the approach.

We got some nice press from Cornell Chronicle.

Organizing Team

  • Gordon Campbell: Chair of Computer Science Dept., Dalton School, NYC
  • Fred Deppe: Ithaca High School Computer Science teacher
  • Daniel Fleischman: Operations Research Scientist at Amazon.  Cornell University Operations Research and Information Engineering Grad
  • Christopher Fouracre: Cornell University CIS IT Support Consultant
  • Diane Levitt: Senior Director of K-12 Education, CornellTech
  • Vanessa Maley: Cornell University Computer Science Event Coordinator
  • Haobin Ni: Cornell University CS Grad student
  • Robbert van Renesse: Cornell University Computer Science Faculty

Steering Committee

  • Gordon Campbell: Chair of Computer Science Dept., Dalton School, NYC
  • Emma Clark: Cornell University CS undergrad, rep. Women in Computing at Cornell
  • Fred Deppe: Ithaca High School Computer Science teacher
  • Daniel Fleischman: Operations Research Scientist at Amazon.  CU ORIE Grad
  • Diane Levitt: Senior Director of K-12 Education, CornellTech
  • Chair: Robbert van Renesse: Cornell University CS Faculty

Sponsors

The event is sponsored by the Department of Computer Science at Cornell University and the Institute for Computational Sustainability at Cornell University.