Practice in programming; debugging testing and improving performance; compatibility robustness and reliability; structure programming; program subroutine; recursive; graphics; file processing and communication; skill practice in working on their own code and in group projects