Candidates should have knowledge of basic principles of one of the fundamental programming languages. These principles include basics of syntax, variables, conditional expressions, loops, arrays, functions, recursion, dynamic memory, stacks, reading/writing to a file, and working with standard input/output streams. Candidates should also have a solid understanding of big O / little o notation and program complexity.
Candidates should be able to write code for the above-mentioned elementary algorithms.