Z - OLD - The - Discipline - Monitor - Approach
Z - OLD - The - Discipline - Monitor - Approach
Problems Decomposition
• No magic - matter of discovering sub-problems you experienced
• Just Practice as much as you could
Effective Training
• Just practice and practice is not enough
• Tough problems requires thinking out of the box
• Work on hard problems, think NOT memorize sub-problems
Back to Juniors
Problem Solving Phases?
For example:
Or
BUT NOT
Discipline
• Establishing guidelines, rules, or checklist to follow during performing a task.
• It is matter of behaving systematically
• Develop discipline for everything!
o Problem phases (Reading, thinking, solving...)
o Training phases
o Contest Strategy
o etc
• It is tough to do mentality shift. You need to enforce yourself till it be your main behavior
Monitor
• What if we have discipline but we don't follow?
• What if we have discipline but it doesn't achieve its targets?
• We need to setup goals from the discipline
• We need to review the result of the discipline
• We need to criticize the discipline and update again
• We need to monitor time for tasks to detect the bottlenecks.
Log analysis
Followed discipline for each phase?
Yes
Which phases are Long?
Performed well?
No, How to update discipline to avoid that?
…. Whatever possible analysis to be better
No, Need more enforcing!
Training Principles
• Pump up the challenging spirit
• Work Smart not Hard
• Never to Memorize
• Never to use library during training
• Don't let time stress corrupt your training
• Practice as if you are in a contest
• Depend on variety of training source (TC, UVA, IOI, CodeForces, ...)
• Balance the training among different solving skills
• Recognize your weakness points, and attack them
• Selective problems to match your Zone of proximal development
Flat Training Hierarchy
• Training might be layered to 3 levels: Juniors, Semi-Seniors and Seniors
• Coaches manage seniors. Each senior manage 2-3 semi-seniors. Also Seniors & Semi-
Seniors manage the juniors training. We might remove the semi-senior layer.
• When some juniors are good enough, they become semi-seniors. When some semi-
seniors are good enough they become seniors. "Good Enough" is a criteria defined by
coaches and the top seniors.
• Coaches should define what are the training plans for all layers. What are the expected
short/long term achievements of the plan?
• Coaches should build software tools to measure different statistics for contestants. E.g.
who fast is the coder? How many submissions needed for code to be accepted?...
• Coaches should define & announce the criteria to select the teams sharing in the formal
contests. They should strictly follow what is announced. When it is about criteria for
technical issues (e.g. teams selection).
• Monitoring meeting is done once or twice yearly to review the teams status, different
criteria, training strategies and update the plans if required.
Junior Training
• Introduce the ICPC competitions and the future benefits from sharing
• Guide them to the judges and how to use them
• Training is 2 levels.
o In level 1, run an online qualification to select the ones who solve some trivial
problems
o In level 2, qualification is based on a stable performance in online contests (e.g.
green in TC)
• Define for each level its targets and divide it to set of phases to achieve targets
• Level 1 Targets could be: basic think skills, coding skills. Don't explain any algorithms.
• Level 2 Targets could be: basic think skills, coding skills, basic techniques (E.g. DP,
BS..)
• Problems should be well selected, to achieve the targets.
• Define Expectations: E.g. Level 1 Expectation is a stable green in top coder. Level 2
Expectation is a stable blue in top coder. Or similar measures in code forces
Semi-Senior Training
• Survivals from level 2 should be ordered based on performance. Seniors should pick 2-3
contestants to work hard on them
• Training style could be: Pairing
o Pairing styles could be: Enemies, Twins, Semi-Twins or Guide-Review style.
o "Enemies" Style: 2 members work against each other
o "Twins" Style: Both work together in all problem phases, Typically, applied on
hard problems
o "Semi-Twins" Style: Both work together in finding the idea only, then both work
individually on coding the problem
o "Guide-Review" Style:
Contestant1 solves the problem from A-Z. Prepare good hints for the
problem
Contestant2 starts to solve the problem
Phase by phase, Contestant1 reviews the application of the Discipline-
Monitor approach over Contestant2
Whenever Contestant2 is stuck, Contestant1 gives him a hint
• Training targets might be
o Apply Monitor-Disciple approach extensively
o Solving process important than the acceptance of a problem
o 75% is hard ad-hocks and techniques according to their levels. 25% for
knowledge: Techniques, Data Structures then algorithms
• Intended to be long term training
Seniors Training
• In this training, remaining important knowledge and experience transferred to seniors
• Hard problems on algorithms
• Working on seniors weak points
• Individual contests to measure seniors levels
• Teams constructions - Establish discipline for contest strategy
• Start to solve 2 contests weekly in the start, 3 when near to formal competition
• After contest
o Revising the performance of every team. Monitor applying the discipline
o Discuss possible solutions for unsolved problems
o Solving form the unsolved problems as possible