The goal is to provide a comprehensive introduction to the programming in the ANSI C language with many examples and supervised practical sessions in computer labs. No previous programming experience is assumed, but students with no experience will need to do more homework to keep in line with others. The language is introduced in a structural manner, beginning with the simple constructs and working up to more complex issues, for example, pointers and dynamic data structures, file manipulations or recursive functions.