This project addresses student learning obstacles and low motivation in introductory programming courses. This project utilizes two effective instruction methodologies, the cognitive apprenticeship learning (CAL) model and cognitive tutors (CT), to improve student problem solving skills with fundamental programming concepts, such as basic statements, if/switch statements, loops, and functions. There are two steps involved. First, task analysis of expert problem solving process is conducted and scaffolding techniques are developed. Second, computer tutor programs are constructed and delivered online. These tutoring programs interact with students as their personal coaches. They utilize explicit expert problem-solving processes and scaffolding techniques to guide students through their problem-solving practice. The tutors can accommodate multiple solution paths that students might choose for solving a problem. As students work through program-writing problems, the tutors provide step-by-step feedback and upon the student's request will provide advice on what to do next. Therefore, the student can always reach a successful conclusion to problem solving. Evaluation is conducted based on collected test scores for students in the first introductory programming course over a four-semester period. Pretest-posttest two-group control group design methodology is used for evaluation.