It is widely accepted that developing the ability to solve problems is essential. Computational thinking is based on problem solving using basic concepts of computing. An introductory course to programming is a direct way to develop the ability to solve problems using computer concepts. This paper presents our thinking about initiating students into the field of computer programming. This work does not detail the contents to be taught, but focuses on methodological aspects, including experiences and specific examples, which are general and extensible to any programming course. Although programming languages are been developed to be increasingly closer to human language, computer programming using formal languages is not intuitive and easy to be understood by our students. It may seem a simple task for an experienced programmer, but it is not for a neophyte. Moreover, mastering the art of programming is complex. For this reason it is essential to use all possible techniques and tools that facilitate this work.