Computers are the leading technology of the 21st century. Programming, the development of software is thus a fundamental activity in which many people are engaged worldwide. Therefore programming courses are included as a part of the curriculum. In these courses, students are primarily introduced to language features. Traditionally, the students practice by applying the acquired knowledge to solve some logically straightforward problems giving less scope for the programming skills. This paper focuses on application of coding standards, coding techniques, debugging, code review, refactoring, code optimization, test driven programming and pair programming based learning to master not only programming language features, but also an integrated approach to gain problem solving and programming skills. The subject is introduced as a first year course where the students are without any or with smaller amount of background or experience in computer programming. Taking this into consideration, activities like programming were designed. These activities enhanced the learning ability, problem solving skills programming skills and debugging skills.