Cette section concerne plus particulièrement les parties Bases de la programmation et Programmation Objet. Elle s'adresse à des lecteurs avertis, ayant déjà pratiqué la programmation procédurale et la programmation objet. Je souhaite m'expliquer ici, sur les différents choix pédagogiques que j'ai fait.
Pour comprendre la programmation objet, je pense qu'il est nécessaire d'avoir d'abord bien assimilé les concepts de bases de la programmation procédurale (variables, types, sous-programmes). Les classes sont une abstraction de la notion de type. Les méthodes sont une extension de la notion de sous-programme (déjà difficile à enseigner d'après mon expérience !). En commencant directement un cours de programmation par la programmation objet, on cummule les difficultés.
C'est pour cette raison que j'ai volontairement éludé la programmation objet dans les cours sur les bases de la programmation. Ce choix a été particulièrement difficile à mettre en oeuvre pour le langage Java dans lequel tout est classe. Cela m'a obligé de tricher un petit peu, en présentant des attributs comme étant des variables, les méthodes comme étant des sous-programmes ou certaines classes (comme String par exemple) comme étant des types. Mais ces petits 'mensonges' sont signalés au lecteur, puis corrigé dans le premier cours de programmation objet, où tous les cours précédents sont revus à l'aide des notions de classes, méthodes, etc ..
N'est-il pas préférable de savoir peu de choses en les comprenant bien que l'inverse ?
Je pense que oui.
J'ai donc mis l'accent sur les principes et la logique de la programmation. Le langage de programmation utilisé est secondaire. Par conséquent, je n'ai pas chercher à entrer dans tous les détails des langages utilisés, ni à être complet. Juste le minimum nécessaire, l'essentiel, en essayant d'être le plus clair possible.