Computer Science 101 at Penn State University provides an introduction to fundamental techniques of problem solving using a procedural computer programming language: C++. Since no prior computer programming experience is assumed, one major problem observed in the course is that students learn about programming in a somewhat passive pattern. This paper proposes to create a blended learning environment utilizing a Case-Based Reasoning (CBR) approach to improve students' programming skills. CBR is an innovative instructional approach that utilizes the specific knowledge of previously experienced problem situations (cases). A new problem can be solved by finding a similar past case and reusing it in the new problem situation. Then a new case is retained each time when a problem has been solved, making it immediately available for future problem.