Computational Problem-Solving, Competitive Programming, Cows, and the USA Computing Olympiad Brian C. Dean Director, USA Computing Olympiad Associate Professor of Computer Science, Clemson University ingenius, San Diego October 25, 2015 My Background I studied math and computer science (undergraduate through PhD) here. I m now a computer science professor here. 1
My Research is in Applied Algorithms Example: Algorithmic Brain Analysis Austistic: Non-autistic: fmri / DTI data Structural/functional network 2
But I Also Spend a Lot of Time on Educational Outreach Much of My Educational Outreach Involves Competitive Programming Quickly solving problems of an algorithmic nature. Competitive programming is now a popular computing sport, supported by a large and vibrant community. Benefits of competitive programming: Improve your problem-solving and programming skills. Job offers / college admissions / scholarships. Some contests offer cash prizes. Fun! 3
I ve Been Involved in Competitive Programming for Some Time Now First programming contest 1987. Member of USA team attending the International Olympiad in Informatics in 1994. Member of MIT team attending world finals of ACM International Computer Problem-Solving Contest, 1995 and 1996. I ve been working with the USA Computing Olympiad for almost 20 years; currently serving as director. My Experience with Competitive Programming had a Profound and Overwhelmingly Positive Impact on my Life and Career Helped me develop strong problem-solving skills that make me a better researcher and teacher. Vastly improved my programming ability. Helped convince MIT to accept me (and to excel in my coursework); helped convince Clemson to hire me. Exposed me to amazing role models who inspired me to want to follow in their footsteps and teach computing. Intellectually stimulating and tons of fun! 4
Fun Problems with Serious Applications Fun Problems with Serious Applications Based on a technique I learned from competitive programming, we published a novel algorithm that finds bugs in computer programs. I.e., it finds lines of code that are executed, or expressed more often when a program fails. We are now applying it to the human genome (your operating system ), to look for the genetic origin of several prominent diseases. I.e., it finds lines of code locations in the genome that are executed, or expressed more often when a program fails when a person has a particular disease. 5
The International Olympiad in Informatics The premier / most prestigious international computing competition at the high-school level. Computer science analog of other well-known international math / science Olympiads (e.g., the IMO). Focus on algorithmic problem solving. Top students win gold/silver/bronze medals. Participation at the 2015 IOI in Almaty, Kazakhstan: 82 countries, 4 students / country. Only Russia and China have more total gold medals than the USA. The USA Computing Olympiad Supports high-school computing (specifically, algorithmic problem solving). Provides on-line training materials and programming contests at multiple levels. Top 24 students in USA invited to summer training camp, where IOI team is selected. Founded 1992. Non-profit, volunteer-run. 6
The USA Computing Olympiad Free and open to all (separate rankings for K-12 versus observers ). Bronze, silver, and gold levels; we plan to add a prebronze division this year. Everyone starts in bronze and earns promotion to higher levels with good scores. ~4 contests per year, all on-line (usaco.org). Schedule to be posted shortly. Contests usually 3..5 hours, to be taken any time within a 4-day window. Many old problems / solutions and training materials available on our website. In academia: Alums Having Impact Percy Liang (Stanford): Machine learning Richard Peng (Georgia Tech): Novel algorithms for solving linear systems Eric Price (U. Texas at Austin): Compressive Sensing, sparse Fourier transforms In industry: Alums at many top startups/companies characterized by cutting-edge tech (e.g., Google, Dropbox, NVidia, Ksplice) and in many sectors (e.g., finance). Adam D Angelo: founder Quora, CTO Facebook 7
Sample Problem #1: Cow Photography Farmer John lines up his N cows in a specific ordering and tries to take a picture of them. E.g. Bessie, then Elsie, then However, right before he can snap the picture, some of the cows move to a different place in the lineup! Undeterred, Farmer John again lines up his cows in the intended order, but again, some of them move right before he snaps his second photo. This happens for five iterations, then Farmer John gives up. If each cow moved in at most one photo, help him reconstruct the intended correct order given only the five photos he took. Solution #1 For any pair of cows (say, X and Y), X could have moved in at most one of the 5 photos, and similarly for Y. Therefore, X and Y must be ordered properly in at least 3 of the 5 photos. We can therefore compare X and Y (testing whether X<Y or X>Y in the correct ordering) by taking a majority vote among all 5 photographs. And if we can compare elements, we can sort them! 8
Sample Problem #2: Hanging a Picture the Fun Way 1 2 1 2 Solution #2 1 2 1 2 1 CW 2 CW 1 CCW 2 CCW 9
Solution #2 1 2 1 2 1 CW 2 CW 1 CCW 2 CCW Solution #2 1 2 3 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 10
Solution #2 1 2 3 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW Now what about 10 nails? 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 Solution #2 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 6 CCW 7 CW 6 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CCW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 7 CCW 8 CW 7 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 6 CCW 7 CCW 6 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CCW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 8 CCW 9 CW 8 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 6 CCW 7 CW 6 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CCW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 7 CCW 8 CCW 7 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 1 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 6 CCW 7 CCW 6 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CCW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 9 CCW 10 CW 9 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 6 CCW 7 CW 6 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CCW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 7 CCW 8 CW 7 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 6 CCW 7 CCW 6 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CCW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 8 CCW 9 CCW 8 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 6 CCW 7 CW 6 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CCW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 7 CCW 8 CCW 7 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 6 CCW 7 CCW 6 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 5 CCW 6 CCW 5 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 4 CCW 5 CCW 4 CW 1 CW 2 CW 1 CCW 2 CCW 3 CW 2 CW 1 CW 2 CCW 1 CCW 3 CCW 4 CCW 3 CW 1 CW 2 CW 1 CCW 2 CCW 3 CCW 2 CW 1 CW 2 CCW 1 CCW 10 CCW 1 CW 2 CW 1 CCW 2 2 CW 1 CW 2 CCW 1 CCW 3 CCW Now what about 10 nails? 11
Sample Problem #3: Rafting Farmer John s cows want to build a circular raft that can navigate the river below (from left to right), avoiding the circular rock obstacles. What is the maximum size if the raft they can build? Solution #3 To see if a raft of radius 10 can fit, this problem is equivalent to Checking if a raft of radius 9 can fit, when all rocks are inflated in radius by 1. Checking if a raft of radius 8 can fit, when all rocks are inflated in radius by 2. Checking if a point-sized raft can fit, when all rocks are inflated in radius by 10. (and this is impossible only if it is possible to walk from the lower to upper bank while keeping feet dry, which we can check with a recursive search). 12
Why all the Cows?... Kazakhstan, 2015 Taiwan, 2014 Mexico, 2006 Thailand, 2011 Australia, 2013 At USACO Camp, We Study Hard But Also Make Sure to Have Fun! 13
Dispelling Myths About Computing and Computational Problem-Solving Computing isn t socially relevant, dealing with pressing problems that really matter. Computing jobs don t involve collaboration, and are socially isolating. Computer scientists are all nerds with beards and ponytails. Computing jobs are boring. Good computing jobs are scarce. Most computing jobs don t require knowledge of algorithms. Career Opportunities 14
Why Algorithms?... Algorithms are the heart and sole of computing! Use critical thinking and problem solving to address challenging real-world applications. For those who like math and also want to change the world Algorithmic prowess differentiates a true computer scientist from a run-of-the-mill programmer, and provides the foundation for a long-term career in computing that can thrive as technology changes. If programming is the new literacy, algorithms help you write elegantly and proficiently. Young field much still to do and discover. Why Algorithms?... Algorithms play a key role in almost every modern business (e.g., Google, Amazon, etc.) Also, big data / data science positions becoming widespread at many companies. Computer science + X : Proficiency in algorithmic computing plus other domains offers very exciting possibilities Science Engineering Arts Algorithms are fun! (Algorithmic) CS Commerce Health Society 15
Challenges Facing USACO Participation has doubled in the last 5 years, but still sits only in the low thousands per contest. (For comparison, the math Olympiad contests and high-school robotics contests each draw 100,000+ students) Difficulty engaging younger / novice students Working on producing more accessible training materials and easier entry-level contests. Hard to find good mentors in most geographic regions in the USA. Female participation alarmingly low. Funding / staffing (alums are excited about contributing back to the program, but they are also all out changing the world and have little time to spare). Thanks for your Time! Any Questions? 16