Be able to express the solution to a simple problem as an algorithm using pseudo-code, with the standard constructs:
sequence
assignment
selection
iteration
Be able to hand-trace algorithms.
Be able to convert an algorithm from pseudo-code into high level language program code.
Be able to articulate how a program works, arguing for its correctness and its efficiency using logical reasoning, test data and user feedback.