Teaching and learning various aspects of programming.