pseudocode for learning