Competitive Programming

Our proprietary curriculum is developed by industry and domain experts investing hundreds of hours in research and development to create the best technology program for your child.

Special Offer!! Pay for 2 programs, attend all 4.

Plus a 2 week money back guarantee.

What is Competitive Programming

The goal of our Competitive Programming classes is to build strong algorithmic thinking in students and prepare them for the USA Computing Olympiad (www.usaco.org).

The journey takes time, which is why we start early. In addition to learning a Coding platform like JAVA or Python, the more important skill students need to develop is deep algorithmic thinking.

In the Junior and Intermediate levels, we use a combination of the following platforms: Scratch, MIT App Inventor, JavaScript, Python, JAVA but the focus is on deep problem solving with the backdrop of Game & Application Development. In other words, students develop deep problem solving skills while developing various Games & Applications but go much deeper than our regular track.

Check out a sample problem of the USA Computing Olympiad (for our Level Zen students):

==========Sample=============

The cows have come up with a creative new game, surprisingly giving it the least creative name possible: "Moo".

The game of Moo is played on an N×N grid of square cells, where a cow claims a grid cell by yelling "moo!" and writing her numeric ID number in the cell.

At the end of the game, every cell contains a number. At this point, a cow wins the game if she has created a region of connected cells as least as large as any other region. A "region" is defined as a group of cells all with the same ID number, where every cell in the region is directly adjacent to some other cell in the same region either above, below, left, or to the right (diagonals don't count).

Since it is a bit boring to play as individuals, the cows are also interested in pairing up to play as teams. A team of two cows can create a region as before, but now the cells in the region can belong to either of the two cows on the team.

Given the final state of the game board, please help the cows compute the number of cells belonging to the largest region that any one cow owns, and the number of cells belonging to the largest region that can be claimed by a two-cow team. A region claimed by a two-cow team only counts if it contains the ID numbers of both cows on the team, not just one of the cows.

INPUT FORMAT

The first line of input contains N (1≤N≤250). The next N lines each contain N integers (each in the range 0…106), describing the final state of the game board. At least two distinct ID numbers will be present in the board.

OUTPUT FORMAT

The first line of output should describe the largest region size claimed by any single cow, and the second line of output should describe the largest region size claimed by any team of two cows.

SAMPLE INPUT:

4

2 3 9 3

4 9 9 1

9 9 1 7

2 1 1 9

SAMPLE OUTPUT:

5

10

=============================

As you will see there is no standard formula for solving these problems. Instead, students learn to excel through years of developing strong  problem solving skills and algorithmic thinking.

Why Competitive Programming

We have FOUR reasons why:

  1. Very simply, if your child is a hungry problem solver and has a analytical bent of mind - they will love this. It's an excellent food for the curious mind.
  2. While this may not be in their near horizon but many job interviews by Google, Microsoft, etc are algorithmic in nature.
  3. Many top universities value performance in the USACO.
  4. It is a lot of fun.

Is the Competitive Programming track the right option for your child (versus the Regular Coding track):

If your child (Grades 3 and higher)  displays most of the following, they will love Competitive Programming:

  • A hunger for problem solving.
  • Fast learner.
  • Persistence to go multiple steps deep into problems to figure out a solution.
  • A strong aptitude in Math.
  • Comfortable with intermediate failures to eventually succeed.

No prior coding knowledge required for the Junior & Intermediate Level.

Approach

Junior / Intermediate

Our Junior and Intermediate Programs are designed to use different coding projects for students to develop deep algorithmic thinking. The projects spanning classwork and home assignments are designed to teach algorithm fundamentals through deep problem solving. Many projects will be pre designed Code with pre-planned errors that students have to identify and solve.

Students will build games and animations as they learn various Coding platforms, however in the Competitive Programming track - they will go much deeper into exploration and problem solving.

In the Junior and Intermediate levels, we use a combination of the following platforms: Scratch, MIT App Inventor, JavaScript, Python, JAVA.

Example using a Pong Game

Game Functionality: Make the ball bounce upon hitting the paddle.

Basic Approach: Code the ball to bounce at a random direction above the paddle.

Expected Approach for Competitive Programming Juniors: Make the ball bounce exactly following the laws of physics where incidence angle = reflected angle.

A video example of a Debugging project

Zen: Our Pro students (currently by invitation only)

The Zen Students already have a strong handle on JAVA (our choice for USACO) and are ready for advanced algorithms & data structures like Binary Sort, 2D/3D Array Sorting, Greedy Algorithms, Data Trees, Stacks, etc.

Our Coaches:

All our coaches bring a diverse expertise in Coding & Tech

Mr. Dan (expertise in Game Dev & Web Technologies)

Mr. Dalton (expertise in Game Dev & Object Oriented Programming)

Mr. Dutt (expertise in Algorithms, Game Dev, Object Oriented Programing)

Fall Schedule

Level Junior

​Grades: 3rd - 5th

​Sundays 2PM - 3PM

Starting Oct 10th 2021.
  • Platforms:
    • MIT Scratch (3 months - Intermediate)
    • MIT App Inventor (2 months - Intermediate - Advanced),
    • MIT Scratch (3 months - Advanced)
    • JavaScript (3 months - Beginner)
  • Coding Focus
    • Conditional Loops
    • Repeat Loops
    • Nested loops
    • Parallel & Sequential processing of code
    • Deep Debugging

Level Intermediate

Pre-requisite: None

​Grades: 5th - 8th

Sundays 3:15PM - 4:15PM

Starting Oct 10th  2021.
  • Platforms:
    • JavaScript (3 months - Advanced)
    • Python (3 months - Advanced)
    • JAVA (4 months - Advanced)
  • Coding Focus
    • Conditional Loops
    • Repeat Loops
    • Nested loops
    • Function Calls
    • Array manipulation
    • Simple Search, Sort algorithms
    • Object Oriented Programming
    • Recursion
    • Deep Debugging

Level Zen

Pre-requisite: 24 months of prior programming experience OR Completed Level Intermediate

Min Grade: 6th

Currently by invitation, after assessment. Asynchronous learning.

  • Platforms:
    • JAVA
  • Coding Focus
    • Loops
    • 2D, 3D Arrays, Array Lists
    • Tree structures
    • Advanced Recursions
    • Complex Classes and Inheritance
    • Greedy Algorithms
    • Advanced Sort algorithms including Binary Sort.
    • Deep Debugging

Pricing (per 4 weeks):

Junior & Intermediate (one hour a week): $135/4 weeks

  • 2 week money back guarantee (Try it for two weeks, full refund if your child does not continue).
  • 12 week payment & commitment required. Billing every 3 months.

Eligible for 'Pay for 2, do all 4' promotion.

 

Thinking Feet’s main learning center is located in the Ballantyne area in Mecklenburg county. We are just minutes away from nearby Blakeney, Weddington, Marvin, Waxhaw, Pineville, Matthews, Wesley Chapel, Piper Glen and Fort Mill, SC.​​