Skip to content

Latest commit

 

History

History
 
 

curriculum

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

ACM Curriculum

This is a training plan for anyone who wants to excel in competitive programming regardless of their knowledge and experience. The plan is currently under development and being tested by the GUC ACM community. This plan is meant to be sufficient for anyone. Some communities may offer sessions to explain topics. However, links will be provided for online material. If you want to contribute to the plan to improve it, you can send me an email.

We will divide ACMers into three different levels (inspired by Codeforces):

  • Pupil: beginner with no prior knowledge or experience in competitive programming. The target of this plan to be able to solve CF-div2 AB(C)

  • Specialist: has basic knowledge in most of the topics and good implementation skills. The target of this plan to be able to solve CF-div2 ABC(D)

  • Expert: masters basic algorithms/data structures and has good knowledge in most of the topics. The target of this plan to be able to solve CF-div2 ABCDE

Problems without brackets should be solved regardless of their difficulty. Problems with brackets should be solved if they are the easy or medium ones.

Let's define our own units, so the plan seems reasonable and fits our schedules. An acm day is a day at which you do nothing but practice, typically spending 16 hours in practice and sleeping/eating/doing other stuff in 8 hours. For sure, this is not reasonable for our daily lives, but we need to define such a day as it is suitable for feeling progressive. We will use this definition of day in the plan, however, it depends how it will be interpreted ([extreme] 1-4 [amateur] normal days).

Attached with each plan, there will be a google spreadsheet. As you benefit from this plan, it would be nice if you can help others benefit from this plan. So, you can request access to the spreadsheet and a column will be assigned to you to fill with the time you spent on solving problems and finishing the reading tasks to make good estimates for the plan.