My wife and I started coaching ACSL from 2019, and ACSL Junior Division teams from 2020 onwards. This year (2024-2025) is our sixth year of coaching ACSL clubs.
American Computer Science League (ACSL) Junior Division
Before You Start
To maximize the chances of and participate in the ACSL Junior Division, the student should have studied ACSL Elementary topics the previous year.
If your students are not aware of the core topics, it would be best to spend a month or two getting familiar with ACSL Elementary topics. This is my previous blog post containing more information about ACSL.
Programming Languages
It would also help if the students have basic programming knowledge about one of these languages - Python 3, C++ or Java. These are the languages of choice in ACSL Junior.
Topics for Short Problems (CS Math)
There are four core topics in ACSL Junior Division. And then, there are additional topics for each topic. All of these are a part of mathematics used in Computer Science, or CS math.
Completing every topic takes about 4-5 weeks.
These are the core topics that you find in every division:
- Number Systems
- Prefix/Postfix Notation
- Boolean Algebra
- Graph Theory
Additionally, there are a few extra subjects for each contest.
Contest 1 Syllabus
- Computer Number Systems (binary, decimal, octal, hexadecimal)
- Recursive Functions
- Pseudocode: What Does This Program Do? - Branching
Contest 2 Syllabus
- Prefix/Infix/Postfix Notation
- Bit-String Flicking (AND, OR, NOT, XOR, NAND, NOR)
- Pseudocode: What Does This Program Do? - Looping
Contest 3 Syllabus
- Boolean Algebra
- Data Structures (stacks, queues and their operations PUSH and POP)
- Pseudocode: What Does This Program Do? - Arrays
Contest 4 Syllabus
- Graph Theory
- Digital Electronics (AND, OR, NOT, LSHIFT, RSHIFT, LCIRC, RCIRC)
- Pseudocode: What Does This Program Do? - Strings
ACSL Contests by HackerRank
At the end of each topic, there is a Contest scheduled by the team coach. The coach logs into their portal and sends out email invites to all students. Usually, for each Contest, there are two emails sent by HackerRank, the platform on which the Contests happen.
For ACSL Junior Division, there is a Short Problems exam and a Programming Problem exam.
In the 30-minute Short Problems exam, the student gets to answer 6 questions (it used to be 5 questions until 2023).
In the 72-hour long Programming Problem exam, the student reads a problem and has to come up with working code within 72 hours, test the code against the ACSL test cases for that problem, and submit the code. Once you view the problem on HackerRank, the clock timer for 72 hours starts ticking.
After all the 4 ACSL Contests are completed, there is a Finals Contest for high scorers. This Final Contest usually lasts the whole day and involves all the topics and two programs.
Timeline and Number of Hours
The first ACSL Contest starts in November and ends in January. A good time to start coaching for ACSL Junior Division is around September or October, especially if the students have not learned a programming language or have lost touch with whatever they knew over the summer vacation.
If you start coaching ACSL Junior Division in November, your students should either already have a basic knowledge of Python, Java or C++, and ACSL core topics Number Systems, Prefix/Postfix/Infix, Boolean Algebra and Graph Theory. If they do not, they should spend a few extra hours every week to catch up.
In my experience, kids who have a basic knowledge of all these four topics and are at beginner level with Python would need to on ACSL a minimum of 2 hours a week.
Conclusion
This blog post is an introduction and review of ACSL Junior Division from a coach point of view. I will add more blog posts on each topic and subject, with tips, whenever I have time. You will also see a bunch of blog posts with solved ACSL programming problems with Python in this blog section.
Related Posts
If you have any questions, please contact me at arulbOsutkNiqlzziyties@gNqmaizl.bkcom. You can also post questions in our Facebook group. Thank you.