of problem solving process. We have also observed that the students, new to programming, develop a bad habit of writing the program by guesses and trials. Moreover, most of times they get to the solution by asking for hint from the lab instructor or colleague.Another important factor is the type of problems given in the exercises. The lab exercises are not effective unless one carefully selects the problem statements. Even if a student is able to complete the exercises, it actually does not ensure that student has learned suffi ciently.In this paper, we propose to design lab exercises with a focus on teaching problem solving process to students through the exercises. In the section, we discuss some problems relating to the lab exercises that we have identifi ed though our experience. In the third section, we explain the design of lab exercises. In fourth section, we discuss the results of using the designed exercise in lab of programming course. ± 2 DESIGNING PROGRAMMING EXERCISES One of the important factors that count toward the effectiveness of laboratory manual or programming assignments is the combination of programming exercises. We have used some laboratory manuals for programming courses in the last few semesters. We have experienced that some of the lab exercises did not add to improve the programming and problem solving skills of students. The following are the reasons we identifi ed. I Most of the laboratory manuals contain exercises in which students have to fi ll the missing code. According to our experience, these types of exercises do not benefi t students to develop problem-solving skills. In this type of exercises, given the problem half solved, students are only required to complete the missing syntax. The students become familiar working on small parts of problem. Thus, students skip the process of learning to analyze a problem and synthesizing their own observations into a solution.I In some lab exercises, students are required to make small programs such as fi nding averages, sums of numbers, or calculating factorials. The other exercises are also merely the application of these basic programming problems. These type of exercise also do not prove to better the programming and problem solving skills. Although students are able to solve these exercises quickly, they lack the skills to apply these solutions to larger problems. Students are able to write some of these types of common problems quickly because these problems involve common logic, which student easily identify. However, students ± 1 INTRODUCTION Laboratory exercises are included as an essential part in most of the programming courses to ensure that students are engaged in suffi cient programming practice. Some studies [1, 2] say that the main cause of student's failure in introductory programming courses is lack of practice and insuffi cient assessments. Yet, in our experience, we observed that two aspects that are more important than the amount of practice exercises are practicing the right type of exercises and following the right...