Abstract: Computer programming is considered a very difficult
course by many computer science students. The reasons for the
difficulties include cognitive load involved in programming,
different learning styles of students, instructional methodology and
the choice of the programming languages. To reduce the difficulties
the following have been tried: pair programming, program
visualization, different learning styles etc. However, these efforts
have produced limited success. This paper reviews the problem and
proposes a framework to help students overcome the difficulties
involved.