Resources

Helpful Information For Competitive Programming.

ACSL

Contents

Introduction

Formally known as the American Computer Science League, ACSL is a computer science competition consisting of 4 contests and a final All-Star contest (if our cumulative scores are high enough). There are 5 different levels of difficulty, although this team will focus on the Intermediate and Senior levels.

Basics

ACSL is a contest that focuses on around a dozen different concepts of computer science. While many of these concepts are more abstract in nature, ACSL also provides concrete programming problems.

Contest Format

There will always be 2 parts to any contest: short answer and programming. For the short answer section, you will have 30 minutes to answer 5 questions; we do this during some of our meetings. As for the programming section, you will have 3 days to complete one program (in any programming language you want) at home. The short answer and programming sections both contribute 5 points each, thus making the highest score you can get for any given contest a 10.

For the All-Star contest, there are still 2 parts to it. However, for the programming section, you work with a team for 4 hours on a multitude of programs. As for the short answer portion, you will have 1 hour to do 12 questions instead; you will have to be proficient in all of the categories tested in the regular contests. Prizes are given to the highest-scoring teams and individuals.

Short Answer

Please click on any of the following links below to learn about the short answer subtopics in more detail:

All of these pages also include sample problems (and solutions) to help you understand the concepts better.

Here are some useful videos:

Contest 1

Contest 2

Contest 3

Contest 4

Programming

ACSL's programming questions are often very brute-forcey and vaguely defined in nature. Here are some tips to answering them.

If you have trouble with programming in general, don't worry! Each week, we will provide a programming question so that you can improve your skills. We will also hold CodeForces "contests" within our team.

If you're new to CodeForces and you want to practice on your own, great! If you click on 'PROBLEMSET' at the top, you can sort the problems based on difficulty through a few ways. A are the easier problems whereas C is harder; however, this by itself isn't a very good difficulty indicator. Instead, you can click on the lightning symbol to sort by rating (higher rating = harder) or on the checkmark symbol to sort by how many other people were able to solve the problem (so if more people were able to solve a problem, chances are the problem is relatively easier).

Some other good places to practice programming are: LeetCode, HackerRank, and CodeSignal. There are also a few other contests (check out the "Schedule" tab at the top of this website) that we highly recommend you attend; some of the contests have more difficult problems, but feel free to challenge yourself a bit.

What to Keep In Mind

  • Don't forget the general tips that apply to all code you write. Also, make sure your code is efficient.
  • MAKE SURE to include a header at the top of your submitted code. The header should look like this:
/*
 * Name: (First Name) (Last Name)
 * School: Neuqua Valley High School
 * Division: (Junior / Senior)
 * Grade: ( 9 / 10 / 11 / 12 )
 * Problem: (Full Problem Name)
 */
  • Oftentimes, ACSL's problems (more often in programming than short answer) are vague and confusing. Sometimes, you might find yourself needing to deduce the exact function of the program from the sample test cases. In this case, just try to figure the problem out.