Some of the work I’ll do with your student will be solving “challenge problems.” This kind of coding is different than creating an application or game; instead the goal is to write code to solve a puzzle or mathematical problem. Many students enjoy this kind of programming.

I encourage all my students to dive right in and start working problems, but we can also work together.

When your student works with me on a problem, I can do the following:

- I can show them more compact and elegant ways of writing code, which increases their ability to solve more complex problems
- I can help them learn to solve problems of greater and greater difficulty
- I can tie these problems into computer science topics which they may encounter in later courses such as AP Computer Science A, programming competitions, and college CS classes

### Project Euler

This is a list of problems which you solve by writing a program to produce a large number. You check your work by plugging that number into the website. These problems provide a good workout for your programming skills and they include some fun ideas. They are presented in order of difficulty, so if your child wants to jump in, I suggest starting with problem 1 and working upwards from there.

### Codewars

This is a website which provides problems of ranked difficulty. It’s modeled on a martial-arts philosophy in which you get ranked with a “belt” of increasing difficulty as you do harder problems. Note that the easiest belt is called “8 kyu” and the hardest belt is “1 kyu” (so it goes backwards numerically).

Despite having “wars” in the name, you are only really competing with yourself.

This website has many easier problems which are great places to start a 7th or 8th grader.

### USA Computing Olympiad

The USA Computing Olympiad (USACO) is the premier US-based programming competition for Junior High and High School students. The competition is divided into four levels of increasing difficulty: Bronze, Silver, Gold, and Platinum. Many of my students take a great deal of pleasure from competing in USACO or challenging themselves to solve past USACO problems. For most students, Bronze is the most realistic level to start; USACO gets very hard in the upper levels.

### Codeforces

This is a website that runs regular programming competitions. The problems here vary in difficulty a lot, from quite easy to extraordinarily difficult problems meant for the highest level of competition. Fortunately there is a practically unlimited supply of the easy ones that are appropriate for students starting out.

When you go to the link above, you’ll see an option on the right side of the page to filter problems by difficulty. The easiest problems have difficulty 800. Your student may wish to set this filter to 800 to find interesting problems to get started on.

### Sphere Online Judge

This website is run very much like an official competition, but it’s oriented more towards the easier problems and provides a supportive community.

### Kattis

Kattis is an endless source of engaging problems, again with plenty for beginners.