track ip addresses, lookup mac addresses, etc

ACSL Intermediate Division

Published on January 27, 2022

ACSL American Computer Science League

This academic year 2021-2022, I am coaching two ACSL teams - my fourth grader's ACSL Elementary Division team and my seventh grader's ACSL Intermediate Division team. This is my third year teaching ACSL.

Table of Contents

Before you enroll

Previous Year's ACSL topics:

To understand and participate in the ACSL Intermediate Division, the student should have studied ACSL Elementary or Junior topics the previous year. If he/she has no idea about the topics, it would help to study some of the Elementary Division topics beforehand. These are my previous blog posts about coaching ACSL Elementary kids and coaching ACSL Junior kids.

Programming Language:

It would also help to have a basic working knowledge about one of these languages - Python 3, C++ or Java. I personally prefer to teach Python to my students because of the short learning curve. Others may prefer Java.


There are four topics in ACSL Intermediate Division. Each topic is about 4-5 weeks long.

At the end of each topic, there is a 30-minute Short Problem exam, where the student gets to answer 5 questions.

There is also a 72-hour long Programming Problem exam. Once started, the clock timer starts ticking.

After all the ACSL exams are completed, there is a final exam for high scorers. This final exam usually lasts the whole day and involves all the topics and two programs.


The four main topics are:

  • Number Systems
  • Prefix-Postfix-Infix Notation
  • Boolean Algebra
  • Graph Theory

Extra sections:

  • What Does This Program Do? This section contains pseudocode. The student is asked to compute the output of this program or the value of variables upon execution.
  • Recursion This section contains recursive pseudocode and the student is asked to compute the output of the program.
  • Bitwise operations This section contains bitwise expressions such as LSHIFT, RSHIFT, LCIRC, RCIRC. The student is asked to evaluate the bitwise expression.
  • LISP - This section contains evaluating LISP expression. The LISP version used here appears to be the original 1958 version (and not more recent versions such as Common Lisp).

I am writing a future blog post to list the important concepts to learn Python from the ACSL Junior, Intermediate and Senior perspective.

{ % include 'ajrwd' %}

Disclaimer: Our website is supported by our users. We sometimes earn affiliate links when you click through the affiliate links on our website.

Published on January 27, 2022

← Previous Post Kill A Watt Energy Monitor Review

Working with JSON in Python Next Post →

{ % include 'footer' %}