American Computer Science League

ACSL is the American Computer Science League, an international computer science competition among more than 200 schools. Each round consists of two parts: a written section and a programming section. Written topics tested include "what does this program do?", digital electronics, boolean algebra, computer numbering systems, recursive functions, data structures (primarily dealing with binary search trees, stacks, and queues), lisp programming, regular expressions and Finite State Automata, bit string flicking, graph theory, assembly programming and prefix/postfix/infix notation.

Divisions: There are four divisions in ACSL: Classroom, Junior, Intermediate, and Senior. Junior is recommended for middle school students (no students above the ninth grade may compete in it). Intermediate and Senior divisions are for secondary school students, Intermediate being easier and Senior being more difficult. At the "All-Star" (final) competition, the Junior teams consist of 3 members each while the Senior and Intermediate teams can consist of 3 or 5 members. Each team competes against other same-sized teams in its division.

Preliminary Competition: The preliminary competition, in which individual students compete to get their school team qualified for the All-Star competition consists of four rounds. These rounds consist of a programming and a written part. In the programming part, students have 72 hours to complete a program in any computer language to perform a given task. In the written part, students have a total of 30 minutes to answer 5 questions based on given topics. Students then receive a score of up to 10 points (5 for written and 5 for programming). For the Classroom division, students receive 45 minutes to solve 10 written problems.

All-star Competition: The All-Star Competition is held at a different location every year. Teams are given 3 hours to earn up to 60 (40 for Junior Division) points by successfully completing various programs. Individuals are then given 1 hour(45 minutes) to take a 12 (8 for Junior Division) question multiple choice test based on the subjects of the written questions in the preliminary rounds. The scores of the programming and the team's individual scores are added together to determine the winners. Prizes are given to teams with the highest scores and individuals based on their performance on the multiple choice test.