
This academic year 2025-2026, I am coaching three ACSL divisions - ACSL Intermediate Division team, ACSL Senior Division team and ACSL Junior Division team. This is my seventh year coaching ACSL. My daughter is in the ACSL Senior Division and my son in the ACSL Intermediate Division. My daughter is also working on USACO Bronze.
Whom is ACSL Senior division for?
ACSL Senior Division is best for high school students grades 10-12, preferably high school juniors and seniors who want to take up a Computer Science major in college, and preferably want to take up software engineering as a profession. Participation in ACSL may be a plus point with the college admission process.
ACSL Senior Contest Schedule
There are four topics in ACSL Senior Division. Each topic will take about 4-6 weeks to study and understand. This is an estimate, and depends on the time the student can allocate and dedicate.
At the end of each topic, there is a 30-minute Short Problem exam, where the student gets to answer 6 questions.
There is also a 72-hour long Programming Problem exam. Once started, the clock timer starts ticking.
After all the ACSL contests are completed, there is what is called ACSL Finals for top scorers. This final exam usually lasts the whole day and involves all the topics and two programming problems.
What do the ACSL Senior contests contain?
The ACSL Senior division contests contain the following:
- CS math problems, involving core ACSL topics (Computer Science mathematics), plus extra topics
- Programming problems
The CS math part contest is called Short Problems contest, and the programming problem contest is called.. Programming Problem.
Core ACSL topics in Short Problems
The four main topics are:
- Number Systems
- Prefix-Postfix-Infix Notation
- Boolean Algebra
- Graph Theory
Short Problems
In Short Problems, you will get 6 questions to be answered in 30 minutes. You get questions from the corresponding core topic plus the extra topics for each contest. All contests will be taken online in the HackerRank website.
Programming Problem
In the Programming Problem, you will get a programming question that is of moderate to high level of difficulty. You can use either Python, C++ or Java to solve it and submit it. There is a total of 12 test cases. Each has a value of 1/2 a point. You get a total of 6 points if all test cases are correct. You can run your program against the HackerRank submission page and test many times. But, you can submit only once, and that is final.
I personally prefer to teach Python to my students because of the short learning curve. Others may prefer Java. My daughter also uses C++ for USACO, and loves it in addition to Python.
Preferred prerequisites
ACSL Senior division is not for everybody. There, I said it. Unless the student has a strong background or deep interest in mathematics, and prior knowledge of a programming language that is Python, Java or C++, going for ACSL Senior will be very hard.
To understand and participate in the ACSL Senior Division, the student should have at least taken in the past ACSL Elementary or Junior topics. If he/she has no idea about the topics, it would help to study some of the Elementary Division topics beforehand. What will help the student the most is if the student has previously studied the ACSL Intermediate division.
😁 Student previously studied ACSL Intermediate Division
If the student has previously studied ACSL Intermediate, the learning curve for ACSL Senior is the lowest. This is recommended.
🙂 Student previously studied up to ACSL Junior Division
If the student has previously studied ACSL Junior, the learning curve for ACSL Senior is higher. Not bad, but the difficulty level will be higher than expected.
😬 Student previously studied up to ACSL Elementary Division without knowledge of programming
If the student has only studied ACSL Elementary and does not have any knowledge of Python, C++ or Java, a jump to ACSL Senior is going to be hard.
The student will have to spend at least a month or two learning Python, C++ or Java, practice problems on websites like HackerRank and Codeforces, and also study the additional Short Problems topics for each contest.
🤔 Student has NEVER studied ACSL before, but "knows" a programming language
The "knows" part is relative. I have met students who say they "know" Python or C++ and/or may have certification, but can barely do a for loops. I'm not exaggerating.
The litmus test for the programming problem for someone who wants to do ACSL Senior is to successfully complete an ACSL Junior programming problem with 100% test cases.
In any case, the student has to work extra hard to catch up with the ACSL CS math part.
I would estimate about 3 hours a week to learn the Short Problems part. The number systems part will take up half of the time.
In addition, it will be good if the student work on previous year's ACSL Junior and Intermediate problems (Short Problems + Programming Problem) within the first month of starting ACSL Senior. The learning curve here is high.
🤯 Student has NEVER taken ACSL before and knows NO programming
Unless the student studies more than 5 hours a week, it is very hard. The learning curve is way too high at this point. I recommend not taking ACSL Senior if the student cannot put in enough hours for both Short Problems and Programming Problems. This can lead to frustration and disappointment.
Contest 1 topics
Contest 1 can be taken any time from October 20, 2025 through January 11, 2026.
These are the Short Problems / CS math topics in the first contest.
- Computer Number Systems
- What Does This Program Do? (Pseudocode)
- Recursive Functions
Computer Number Systems
This is a core topic of ACSL, from Elementary division all the way to Senior division.
There are four number systems relevant to ACSL. They are decimal (base-10), binary (base-2), octal (base-8) and hexadecimal (base-16).
Every Short Problems contest will include 2 number systems questions. If you master this, you can ensure that you get 2 points out of 6.
The questions are of these following types:
1) Convert between bases
You can get questions of this type:
- Convert 12345 to base-16
- Convert 123ABC16 to octal
- Convert 101010102 to hexadecimal
2) Evaluate math operations of different bases
You can get questions of this type:
- 12316 + F116 * 10 - 178 = ___ 16
- FAF16 - 778 * 10102 = ___ 10
- 100016 * 10108 + 1010 = ___ 8
The difficulty level can vary. Usually, you can get harder questions than the examples in this section.
What Does This Program Do? (Pseudocode)
You will get two questions of this type where you have a psedocode program and you're supposed to tell what the output of that program is.
Pseudocode looks similar to common programming languages, but are non-working.
You use logic to run through the program, figure out what values are changed, and print the output. The output printout is what you need.
Pseudocode questions in Contest 1 involve branching, that is if-then-else questions, loops involving for or while.
You can get branching questions like this:
a = 5
b = 6
c = a * 2 + b * 4 / 2
d = sqrt(196) + sqrt(169)
if a * b + 2 > 2 * c then
d = a + c
else
d = b + c
end if
output int(d)
Another question:
x = 8
y = 7
z = x + y ^ 2
if x + z > 15 * z then
output "Yep"
else
output "Nope"
end if
Question involving looping:
f = "WATERMELON"
n = 0; x = ""
for i = len(f)-1 to 0 step –1
x = x + a[j]
n = n + 2
next i
output n
Recursive Functions
A recursive function is a function that calls itself, but with different input parameters on each iteration, and conditions that decide the control flow.
For example, this is a sample question:
Find f(10) where
$$ f(x) = \begin{cases} f(x-2) + 3, & \text{if $x$ > 3} \\[2ex] 4, & \text{otherwise} \end{cases} $$
From the question, there are two conditions:
if x > 3- every other value of
x
Solution
f(10) = f(10-2) + 3 = f(8) + 3
f(8) = f(8-2) + 3 = f(6) + 3
f(6) = f(6-2) + 3 = f(4) + 3
f(4) = f(4-2) + 3 = f(2) + 3
f(2) = 4
Going backwards,
f(4) = f(2) + 3 = 4 + 3 = 7
f(6) = f(4) + 3 = 7 + 3 = 10
f(8) = f(6) + 3 = 10 + 3 = 13
f(10) = f(8) + 3 = 13 + 3 = 16
Answer = 16
Contest 2 topics
Contest 2 can be taken any time before March 1, 2026
These are the Short Problems / CS math topics in the second contest.
- Prefix / Infix / Postfix Notations
- What Does This Program Do? (Pseudocode)
- Bit-String Flicking (Bitwise operations)
- LISP
Prefix / Infix / Postfix Notations
This is a core topic of ACSL, in all divisions.
In Infix notation, an expression is written this way:
1 + 2
In Prefix notation, the same expression is written like this:
+ 1 2
In Postfix notation, the same expression is written like this:
1 2 +
The questions you can expect are similar to these:
1) Convert from Infix to Prefix
1 + 2 * 35
2) Convert from Prefix to Infix
* + - 2 3 5 8
3) Convert from Postfix to Infix
2 3 * 4 6 / +
4) Convert from Postfix to Prefix
9 2 3 * 4 6 / + *
Bit-String Flicking
Bit-string flicking is the same as bitwise operations. There are three main bitwise operators.
- AND
- OR
- NOT
The other operators are:
- XOR
- NAND
- NOR
The shift operators are:
- LSHIFT
- RSHIFT
- LCIRC
- RCIRC
You can get questions like this:
1) Evaluate this expression
(RCIRC-1 (LSHIFT-2 (LCIRC-2 (RSHIFT-1 (NOT 10101000)))))
2) Evaluate this expression
(10111110 AND NOT 10010110 OR (RSHIFT-2 10101010))
LISP
LISP is the second oldest computer language, and developed by John McCarthy as the world's first AI language. LISP stands for "List Processing Language".
Everything in LISP is a list.
The main functions in LISP are:
- ADD
- SUB
- MULT
- EXP
- CAR
- CDR
- CONS
- REVERSE
You can get questions like this:
1) Evaluate this expression
(ADD (SUB 4 1) (EXP 2 4) (MULT 3 5) (MULT (EXP 3 2) (SUB 2 4)))
2) Evaluate this expression
(CDR '((2 (3))(4 (5 6) 7)))
Contest 3 topics
Contest 3 can be taken any time before April 12, 2026
These are the Short Problems / CS math topics in the third contest.
- Boolean Algebra
- Data Structures
- FSAs and Regular Expressions
Boolean Algebra
This is a core topic of ACSL, in all divisions.
In this topic, you will have to memorize all the Boolean Algebra laws.
The basic operators in Boolean Algebra are:
- AND
- OR
- NOT
- XOR
- XNOR
You can expect questions like this:
1) Simplify this Boolean expression
$$ \overline{ \overline{A(A+B)} + B\overline{A}} $$
2) Evaluate this Boolean expression
$$ \overline{ \overline{A(A+\overline{B})} + B\overline{A}} $$
3) How many ordered pairs make this Boolean expression FALSE?
$$ A(\overline{B} + \overline{A}) + B\overline{A} $$
4) How many ordered triples make this Boolean expression TRUE?
$$ A(\overline{B} + C) + B\overline{A} + \overline{ABC} $$
Data Structures
The main data structures you will use in this topic are:
- Stack
- Queue
- Binary Search Tree
You can expect questions like this:
1) How many nodes have only one child in the binary tree for:
MISSISSIPPI
2) If a stack is made up with these commands, what will be the next poppped item?
PUSH(T), PUSH(H), PUSH(E), PUSH(K), POP(X), POP(X),
PUSH(I), PUSH(N), POP(X), PUSH(G), PUSH(A), PUSH(N)
FSA and Regular Expression
Finite State Automata (FSA) is a mathematical model consisting of these:
- finite number of states; at any point of time, exactly one is active
- transition rules to change the active state
- initial state
- one or more final state
We draw an FSA by:
- representing each state as a circle
- representing the final state as a double circle
- the start state is the only state with an incoming arrow
- the transition states are labeled-edges and connect the states
Regular expression or regex are used for identifying patterns. There are syntax rules for regexes.
You can expect questions like this:
1) Which of the following strings can be produced by the following regular expression?
a b * b a a a * b a b
followed by a bunch of choices to pick from.
2) Which strings match this regular expression?
"[P-S]+[W-Z]+[0-9]*"
followed by a bunch of choices to pick from.
Contest 4 topics
Contest 4 can be taken any time before May 17, 2026
These are the Short Problems / CS math topics in the fourth contest.
- Graph Theory
- Digital Electronics
- Assembly Language
Graph Theory
This is a core topic of ACSL, in all divisions.
In Graph Theory, you will study about vertices/nodes, edges and related terminology.
For ACSL Senior, you will be working on directed graphs and trees.
You can expect questions like this:
1) How many edges and vertices do you see in this graph below?
2) How many cycles do you see in this graph below?
3) How many paths of length 2 do you see in this graph below?
Digital Electronics
In digital electronics, you construct a diagram from boolean expressions or boolean logic. There are graphic symbols for each operators like AND, OR, NOT, NAND, NOR, XOR, XNOR.
You can expect questions like this:
1) Find all ordered triples which make the following circuit FALSE
followed by a digital circuit diagram which can be translated into a boolean expression.
2) Simplify the boolean expression from this digital circuit
followed by a digital circuit diagram.
More digital electronics questions will be posted as a separate blog post.
Conclusion
This blog post is just an overview about ACSL Senior. I will make several smaller blog posts for each topic and subtopic, with example questions. Thanks for reading.
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.