This book is written for readers with no computer skills and willing to learn to program a computer. The principles of procedural programming are detailed, showing in particular how the work is split up between several software entities, named sub-programs or procedures. It then examines how these principles are applied to the C language: the types of data, elementary operations, structures that control the flow of a program, the preprocessor. The role, structure and use of functions (sub-programs of the C language) are discussed. The meaning, use and applications of pointers are carefully detailed. The composite data types (arrays, structures, unions) are described and analyzed. The input/output library, which allows exchanges between the program and its environment, is reviewed. Finally, a chapter is devoted to the lists and their manipulation.