The Fundamental Programming Modules project will develop a blended learning basic programming course particularly targeted to courses where entry levels of students and learning objectives are quite different, directed both to informatics students and to students in other technical domains requiring programming skills. For this purpose, the course is conceived as a set of self-contained modules which can be used, according to the target students, at three different levels (beginners, intermediate and advanced). This allows also the instructor to individually assign modules (at different levels) from students with different entry requirements. Each module will be adopted in blended learning scenario, where however self-study of concepts, using also animations and practical applications, and a self-evaluation test precede the classroom lecture and discussion; this will greatly enhance the quality of face-to-face interaction thanks to levelling of previous knowledge of students. An on-line assignment will then allow students to test their ability to enforce concepts in practical applications.