Grosso modo, voici ce qui t'attends :
* La syntaxe est cryptique pour un débutant, il y a les ";" les "*", les "{}", les "[]" et les "()"
Oui, carrément.
Le langage est fortement typé, encore une notion de plus à aborder
Non, C n'est carrément pas typé, et tu n'as carrément pas besoin d'expliquer ce qu'est un type [1] aux étudiants pour qu'ils comprennent à quoi ils servent.
Il faut expliquer comment fonctionne la mémoire, hello malloc
les trois quarts de tes étudiants se casseront les dents sur les pointeurs, tu viens de leur expliquer le principe de la variable que déjà tu introduis le concept d'une variable qui en référence une autre
Ça par contre, ça dépend vraiment de comment est abordé le langage. Tu peux parfaitement utiliser un sous-ensemble du C et apprendre aux étudiants à manipuler des tableaux (en omettant de leur expliquer ce qu'est un pointeur, et en passant par l'utilisation de typedef). Là où j'ai fini mes études, ils utilisent C+SDL en cours de prog de première année, et les étudiants ne voient jamais de malloc ou autres pendant le premier semestre. Ils découvrent le principe de la programmation structurée et impérativement tranquillement, en « voyant » ce que leurs algos produisent, graphiquement. Les makefiles sont déjà écrits pour eux, et il suffit qu'ils utilisent Geany (par exemple) pour pouvoir compiler leurs trucs. Et ils sont quand même suffisamment futés pour piger la surface de ce qu'est la compilation : la transformation d'un programme écrit dans un certain langage vers un autre langage (le binaire dans le cas de la compilation C).
Créer un concept abstrait aussi simple qu'une liste requiert l'apprentissage de quasiment tout le langage : structures, pointeurs, allocation mémoire, ...
Oui, mais j'insiste sur le fait qu'il y a déja beaucoup d'algos que tu peux apprendre à des élèves juste avec des tableaux.
Ceci étant dit, et ayant fini de jouer à l'avocat du diable, je suis d'accord avec toi. :-P C n'est sans doute pas le meilleur premier langage (sauf si tu as une formation « complète » en informatique pour accompagner son enseignement : c'est ce qui se passe dans pas mal d'IUT).
[1] Bon, pas tout à fait : il faut quand même expliquer les règles de conversion des types primitifs (int->float, float->int, etc), mais sinon normalement le compilateur est censé gueuler à chaque fois que tu essaies de mettre le contenu d'une variable là où ça n'a pas de sens.
[^] # Re: Par pitie
Posté par lasher . En réponse au journal Du livre "Premiers cours de programmation en Scheme". Évalué à 3.
Oui, carrément.
Non, C n'est carrément pas typé, et tu n'as carrément pas besoin d'expliquer ce qu'est un type [1] aux étudiants pour qu'ils comprennent à quoi ils servent.
Ça par contre, ça dépend vraiment de comment est abordé le langage. Tu peux parfaitement utiliser un sous-ensemble du C et apprendre aux étudiants à manipuler des tableaux (en omettant de leur expliquer ce qu'est un pointeur, et en passant par l'utilisation de
typedef). Là où j'ai fini mes études, ils utilisent C+SDL en cours de prog de première année, et les étudiants ne voient jamais demallocou autres pendant le premier semestre. Ils découvrent le principe de la programmation structurée et impérativement tranquillement, en « voyant » ce que leurs algos produisent, graphiquement. Les makefiles sont déjà écrits pour eux, et il suffit qu'ils utilisent Geany (par exemple) pour pouvoir compiler leurs trucs. Et ils sont quand même suffisamment futés pour piger la surface de ce qu'est la compilation : la transformation d'un programme écrit dans un certain langage vers un autre langage (le binaire dans le cas de la compilation C).Oui, mais j'insiste sur le fait qu'il y a déja beaucoup d'algos que tu peux apprendre à des élèves juste avec des tableaux.
Ceci étant dit, et ayant fini de jouer à l'avocat du diable, je suis d'accord avec toi. :-P C n'est sans doute pas le meilleur premier langage (sauf si tu as une formation « complète » en informatique pour accompagner son enseignement : c'est ce qui se passe dans pas mal d'IUT).
[1] Bon, pas tout à fait : il faut quand même expliquer les règles de conversion des types primitifs (int->float, float->int, etc), mais sinon normalement le compilateur est censé gueuler à chaque fois que tu essaies de mettre le contenu d'une variable là où ça n'a pas de sens.