For Beginners
Unlock Your Programming Potential: Students in Our ACSL Competition Preparation Class Are More Likely to Secure Awards
1. Build a Personal Portfolio Website
Create a simple website that introduces yourself, your interests, and your projects. Design it using HTML and CSS, and add some JavaScript to make it interactive. This project helps you practice the basics of web development.
You can also explore web-building platforms like Webflow, WordPress, Wix, or Squarespace. These often provide ready-made templates to get you started, but try adding small bits of custom code to personalize your site and make it truly your own!
2. Create a Calculator
Program a basic calculator that can do addition, subtraction, multiplication, and division. This is great for learning how to handle user input and write clean, organized code.
Use a simple text editor like VS Code to start writing your code. Build functions for each math operation, capture user input (buttons or command line), and display the result. Test your calculator with different numbers and edge cases, like dividing by zero. For guidance, check out W3Schools tutorial or Python’s input/output beginner guide to help you get started.
3. Solve Coding Puzzles
If you’re unsure where to start, try beginner-friendly puzzles on platforms like Codewars and LeetCode. These sites present challenges that enhance your logical thinking and problem-solving skills.
LeetCode is ideal for hackathons, competitions, and interview prep with a vast problem library and guided learning paths. It includes contests and mock interviews.
Tip: Begin with “Easy” problems and use the “Discuss” section to explore different solutions. If you want to build a streak, check the “Daily Problem” Section on the calendar to the right.
NeetCode offers curated LeetCode problems with clear tutorials and video explanations. Perfect for structured, step-by-step learning.
Tip: Follow the “Top 150” list and watch videos before coding to gain a better understanding.
HackerRank offers a broad range of challenges, including algorithms and domain-specific topics. It features a built-in code editor with instant feedback and certification options.
Tip: Try the “30 Days of Code” challenge to build consistent coding habits.
Codewars is great for quick, bite-sized challenges ranked by difficulty (8 kyu to 1 kyu). It boasts a strong community for sharing solutions and learning multiple languages.
Tip: Start with 8 kyu problems and review others’ code to pick up new techniques.
For Intermediates
4. Create a Quiz Game
Build a quiz app that asks questions, collects answers, and shows scores at the end. You can start simple with JavaScript or Python, and add extra features like timers or hints as you get more confident.
Get started with tutorials like JavaScript Quiz Game on freeCodeCamp or Python Quiz Game Tutorial.
5. Develop a To-Do List App
Make a to-do list where you can add, delete, and mark tasks as done. This helps you practice manipulating the webpage (DOM) using JavaScript or building basic GUIs with Python libraries, such as Tkinter.
If you prefer Python, try building a simple GUI to-do list using Tkinter. This will teach you how to manage data dynamically and create interactive apps.
Check out the JavaScript To-Do List Tutorial or Python Tkinter To-Do List.
6. Make a Weather App
Use a free weather API, such as OpenWeatherMap, to build an app that retrieves and displays current weather info for any city. This project is perfect for learning how to work with external APIs, handle JSON data, and update your app in real-time. You can build it using JavaScript and HTML or Python with libraries like Requests.
Try tutorials like JavaScript Weather App or Python Weather App.
For Advanced Students
7. Build a Simple Chatbot
Try creating a chatbot that can answer questions or chat with users. Use Python libraries like NLTK for natural language processing or beginner-friendly platforms like Dialogflow to design conversational bots without heavy coding. This project introduces you to artificial intelligence concepts and helps you understand how computers process human language.
Start with tutorials like Building a Chatbot with Python or the Dialogflow Getting Started Guide.
8. Ready? Participate in a Hackathon!
Hackathons are exciting events where you team up with others to build projects quickly, try out new technologies, and solve real-world problems—all while having fun and learning tons. If you’re an intermediate coder ready to level up, joining a hackathon is one of the best ways to challenge yourself and gain hands-on experience.
Some popular hackathons and coding competitions in the U.S. that welcome high school students include:
Major League Hacking (MLH): The largest student hackathon league, offering online and in-person events throughout the year. MLH hackathons are beginner-friendly and have a strong community of supportive coders.
TechTogether: Focused on inclusivity and diversity, TechTogether runs hackathons that welcome high schoolers and beginners to explore tech, build projects, and connect with mentors.
Hack Club: A global network of high school hackathons and coding clubs, Hack Club hosts regular hackathons that emphasize learning and collaboration for students at all skill levels.
High School Hackathon Series by CodeDay: These events are designed specifically for high school students to build creative projects in a 24-hour sprint, featuring workshops and mentorship.
Google’s Code Next: Though more of a program than a single hackathon, Code Next offers workshops, coding sessions, and hackathon-style events aimed at empowering high school students from underrepresented backgrounds.
Local University Hackathons: Many colleges and universities (like MIT, Stanford, and the University of Washington) host annual hackathons open to high school students. These are often advertised locally or on platforms like MLH.
Aralia Students Are 3x More Likely to Place Top Computer Science Competitions
Tips to Maximize Learning
- Always take notes! It helps you build problem-solving strategies and spot common patterns.
- Good code isn’t just code that works. Focus on writing clean, efficient, and easy-to-read code.
- See different ways people solve the same problem. Check out multiple solutions.
- Start easy and level up gradually as you get more comfortable.
- Connect! Join a team to collaborate and learn from other student coders.
No matter where you start, the key is to keep trying, learning, and enjoying the process. Every CS project you complete is a step closer to becoming a skilled coder.
Further reading:
Ready to Start?
At Aralia, the ACSL Competition Prep program helps students build the skills and confidence needed to excel in the American Computer Science League. The course includes two weeks of foundational programming followed by focused sessions on all 12 ACSL topics, with off-topic problems before each contest to boost problem-solving skills. Taught by a former Computer Science teacher at The Dalton School and an award-winning ACSL coach, the program offers expert instruction and proven mentorship to help students strengthen their problem-solving abilities and prepare them for success.

ACSL Competition Prep
The program begins with two weeks of dedicated programming practice to provide participants with an opportunity to enhance their skills. Subsequently, each of the 12 ACSL topics is allocated a two-week period, allowing ample time for in-depth exploration and understanding. Prior to each contest, participants are presented with two programming problems that are intentionally unrelated to the current topics. These problems are designed to enhance the coder’s skills and foster comfort in tackling diverse challenges.