Partage
  • Partager sur Facebook
  • Partager sur Twitter

Refonte du cours C

19 avril 2017 à 18:05:40

Merci Pico tu m'as évité de devoir pondre un pavé pour me justifier :D

XxEric, ce qui est drôle c'est que ton argumentation va dans mon sens (c'est de la faute des dev' déjà en place qui recommandent / font des cours de C, pas de la faute des débutants qui recherchent un langage). Eux n'ont pas le recul nécessaire pour savoir si il est adapté à ce qu'ils veulent faire.

Quand je parle d'interdiction c'est bien évidement (comme précisé dans les parenthèses) une exagération.

PS : "Qui peut le plus peut le moins" c'est marrant c'est exactement ce que nous disait notre prof de C++. Mais je ne suis absolument pas d'accord avec ça.

Certes qui peut le plus peut le moins, mais le problème c'est que tu ne peut pas "le plus" en ayant lu que des cours sur internet. Du coup tu ne peut que "le moins", avec le risque d'être dégoûté (comme l'a souligné Pico) en attendant de pouvoir faire "le plus". 

PS'' : Node.Js n'est pas un langage.

-
Edité par arno21 19 avril 2017 à 18:13:42

  • Partager sur Facebook
  • Partager sur Twitter

Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

19 avril 2017 à 18:33:02

Ah bah pour Node.js je savais pas c'est pas moi qui l'ai utilisé et on me la présenter en tant que langage m'enfin ce n'est qu'un détail. Après si tu cherches un minimum tu peux avoir le plus, bon je suis d'accord tous le monde ne cherche pas tous le temps,mais je ne suis absolument pas d'accord pour déconseiller le langage C au mineur ! Non et non. C'est un très bon langage de début je trouve,il y a plus simple mais en même temps je cite le cours du C : "Vous aimeriez apprendre à programmer, mais vous ne savez pas par où commencer ? Ce cours de programmation en C pour débutants est fait pour vous !

Le C est un langage incontournable qui en a inspiré beaucoup d'autres. Inventé dans les années 70, il est toujours d'actualité dans la programmation système et la robotique. Il est plutôt complexe, mais si vous le maîtrisez vous aurez des bases de programmation très solides !"

Il est peut-être difficile pour certaines personnes (Même si sa n'a pas été le cas pour moi) mais une fois appris et compris on avance plus rapidement, et votre professeur de C++ à raison :p

  • Partager sur Facebook
  • Partager sur Twitter
19 avril 2017 à 18:57:58

XxEric a écrit:

Mauvaise exemple, la c'est lui qui a décidé et si c'est trop dur il partira tous seul sans continuer si vraiment sa lui déplaît, a moins qu'il soit sadomasochiste, la on ouvre un nouveau volet que je préfère fermer. Et d'après les nombreux site qui vérifie en gros tous ce que concerne les langages( Les jeux,les forums qui en parlent et tous) il serait premier,bon Après je sais pas trop s'il fait ce fier.

-
Edité par XxEric il y a environ 1 heure


Il n'a rien décidé, il a envie ou il est obligé ... et je t'assure qu'il n'y a quasiment que ce genre de personnes ici. Et c'est normal, ceux qui n'ont pas besoin d'un forum n'y viennent pas en général.

Comme la grande question : le «nouveau cours C» doit-il être prévu pour le total noob ou pas ?
On lui prend la main pour tout ou considère-t-on qu'il a un minimum de background. 

Perso je suis pour la seconde solution, en gros le cours doit s'adresser à une personne sachant se débrouiller avec un pc … installer un logiciel, comprendre ce qu'est une console, etc …

Si des questions d'un niveau inférieur tombent bah on peut légitimement se dire que l'apprentissage du C n'est pas fait pour cette personne (à ce moment donné peut-être), pour apprendre la programmation il faut savoir se démerder parfois un peu seul. Et ce n'est pas le cas de la majorité des personnes ici qui prennent simplement le forum ou pour un debuger géant ou comme un moyen de ne pas chercher sur google ou lire la doc.

  • Partager sur Facebook
  • Partager sur Twitter
First solve the problem. Then, write the code. ~ John Johnson
19 avril 2017 à 19:16:21

Tous le monde sait comment installer un logiciel voyons on est en 2017...
  • Partager sur Facebook
  • Partager sur Twitter
19 avril 2017 à 19:21:56

XxEric a écrit:

Tous le monde sait comment installer un logiciel voyons on est en 2017...


Parcours un peu ce forum :)
  • Partager sur Facebook
  • Partager sur Twitter
First solve the problem. Then, write the code. ~ John Johnson
19 avril 2017 à 19:25:14

Je vais pas refaire un pavé pour m'expliquer sur les raisons pour lesquelles je déconseille le C comme premier langage pour les personnes qui veulent apprendre la programmation, je l'ai déjà fait par ici et par là. La raison numéro 1 c'est avant tout que C est un langage où un programme buggé jusqu'à la moelle peut fonctionner "sans soucis" à cause des comportements indéterminés. Or, un langage qui ne te casse pas la gueule à chaque fois qu'il a un pet de travers ne te forcera pas à bosser correctement. Cela et le fait qu'en plus les tutoriels sont généralement trop simplifiés et font faire du C incorrect.

Avec le recul que je peux avoir depuis, notamment à force d'enseigner, j'ajouterai également que C n'aide pas l'apprenant à abstraire son raisonnement à propos d'un problème puisqu'il force constamment à s'accrocher à vérifier beaucoup de points de détails qui ne font pas parti du problème qu'il cherche à résoudre, seulement des contraintes techniques du langage. Et apprendre à s'abstraire de son problème pour y fournir une solution correcte est le point le plus difficile à assimiler pour un débutant.

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

19 avril 2017 à 19:47:12

S'il était aussi compliqué je me demande pourquoi on continue à l'enseigner en masse
  • Partager sur Facebook
  • Partager sur Twitter
19 avril 2017 à 20:02:03

Bien sûr que c'est compliqué :)

On pourrait pinailler en disant que c'est complexe car il y a beaucoup de notions à comprendre avant de vraiment maîtriser le C, mais comme dans tous les autres domaines. Ensuite on ne fait pas un cours débutant pour produire de gourous :)
Mais il faut un minimum de connaissances au préalable. Bien souvent ces connaissances qui viennent d'autres domaines sont apprises en même temps que «la programmation C» et c'est ce qui rend encore plus difficile l'apprentissage de n'importe quel langage pour un débutant.

Savoir manipuler une boucle for et créer des structure, connaître la différence entre tableau et pointeurs, certains idiomes, les bonnes pratiques, … c'est connaître C, il en faut plus pour pouvoir faire de la programmation.

À quoi bon avoir un tournevis si on a que des clous ?

  • Partager sur Facebook
  • Partager sur Twitter
First solve the problem. Then, write the code. ~ John Johnson
19 avril 2017 à 20:43:21

XxEric a écrit:

S'il était aussi compliqué je me demande pourquoi on continue à l'enseigner en masse

Apprendre la programmation, c'est déjà compliqué. D'office. Alors l'apprendre avec un des langages (si ce n'est le langage) où les erreurs peuvent passer le plus inaperçues, avec des programmes pourris de bugs qui s'exécutent "correctement" quand même ...

Quant à pourquoi on continue à faire comme ça. La réponse est la même depuis la nuit des temps, elle n'est pas propre à l'informatique, mais à l'humain : l'habitude.

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

20 avril 2017 à 8:27:00

Ksass`Peuk a écrit:

XxEric a écrit:

S'il était aussi compliqué je me demande pourquoi on continue à l'enseigner en masse

Apprendre la programmation, c'est déjà compliqué. D'office. Alors l'apprendre avec un des langages (si ce n'est le langage) où les erreurs peuvent passer le plus inaperçues, avec des programmes pourris de bugs qui s'exécutent "correctement" quand même ...

Quant à pourquoi on continue à faire comme ça. La réponse est la même depuis la nuit des temps, elle n'est pas propre à l'informatique, mais à l'humain : l'habitude.

L'an dernier on a organisé un concours " 24h des iut info" et j'en ai profité pour faire le tour des participants pour ma petite enquête sur le premier langage enseigné pour commencer.

Il devait y avoir une 30 aine d'equipes. Vaste majorité de Java et C#. Du python. Quelques C++. Des originaux : ada, pascal, basic. Un seul C si je me souviens bien.

Par contre C est généralement  vu plus tard pour la "programmation de bas niveau". Une fois qu'on a appris les bases de la programmation.

PS c'est pas juste l'habitude. C'est aussi que moderniser un cours en changeant de langage est un gros investissement, qui demande du travail et coute de l'argent. Quand le but est de gagner de l'argent, on fait comme l'année précédente, et on raconte des bobards pour faire gober que c'est incontournable.

-
Edité par michelbillaud 20 avril 2017 à 8:36:27

  • Partager sur Facebook
  • Partager sur Twitter
20 avril 2017 à 10:25:22

Oui c'est bien ce que je disais XxEric. Ce n'est pas de la faute des débutants qui choisissent mal, mais des dev' / profs en place qui recommandent le C parsqu'ils maîtrisent le cours depuis 15 ans et qu'ils ont la flemme de s'adapter (la encore, je pousse un peut le trait).

Pour vous donner un exemple, j'étais en école d'ingé, avec un niveau nul en prog étant donné que je sortais de prépa. Une fois la bas, on a eu des cours de C pendant 2 mois, et 2 mois de cours de C++. Au bout de ces quatre mois, le projet était de faire un moteur 3D basique en C++, sachant qu'on avait jamais fait autre chose que des algos en console. Je peux vous dire que ça a du dégoûté 35% de la promo de la programmation.

Voilà comment on fabrique des fonctionnels :D

-
Edité par arno21 20 avril 2017 à 10:28:52

  • Partager sur Facebook
  • Partager sur Twitter

Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

20 avril 2017 à 18:11:18

Je suis tout à fait d'accord, il manque beaucoup de choses à ajouter dans les cours, étant un débutant du C, je m'en passe plus, mais depuis quelques jours je m'en lasse, et je ne veux plus avancer, manque trop de détails, je veux pas en arriver à dire que nous sommes pas assez guidés, mais c'est bien le cas.

Shodan.

  • Partager sur Facebook
  • Partager sur Twitter
Si les ouvriers construisaient les bâtiments comme les développeurs écrivent leurs programmes, le premier pivert venu aurait détruit toute civilisation.
Anonyme
20 avril 2017 à 22:20:38

ShodanQuaranteDeux a écrit:

Je suis tout à fait d'accord, il manque beaucoup de choses à ajouter dans les cours, étant un débutant du C, je m'en passe plus, mais depuis quelques jours je m'en lasse, et je ne veux plus avancer, manque trop de détails, je veux pas en arriver à dire que nous sommes pas assez guidés, mais c'est bien le cas.

Shodan.


Peut-être aussi le manque d'exercice . L'apprentissage du réseaux cet a dire l'utilisation des socket ce serait un exelent moyen par exemple pour les chaine de caracteres faire comme si t'avait un formulaire de connection et ta base de données c'est un .txt un exercice a inscrire sur le marbre :')
  • Partager sur Facebook
  • Partager sur Twitter
20 avril 2017 à 23:57:37

Madz_frMadz_al a écrit:

ShodanQuaranteDeux a écrit:

Je suis tout à fait d'accord, il manque beaucoup de choses à ajouter dans les cours, étant un débutant du C, je m'en passe plus, mais depuis quelques jours je m'en lasse, et je ne veux plus avancer, manque trop de détails, je veux pas en arriver à dire que nous sommes pas assez guidés, mais c'est bien le cas.

Shodan.


Peut-être aussi le manque d'exercice . L'apprentissage du réseaux cet a dire l'utilisation des socket ce serait un exelent moyen par exemple pour les chaine de caracteres faire comme si t'avait un formulaire de connection et ta base de données c'est un .txt un exercice a inscrire sur le marbre :')

Tout à fait d'accord avec toi :')



  • Partager sur Facebook
  • Partager sur Twitter
Si les ouvriers construisaient les bâtiments comme les développeurs écrivent leurs programmes, le premier pivert venu aurait détruit toute civilisation.
21 avril 2017 à 9:39:56

Les réseaux, c'est un sujet à part entière. Et ça va déborder sur le système : processus, signaux, etc.

-
Edité par michelbillaud 21 avril 2017 à 9:49:41

  • Partager sur Facebook
  • Partager sur Twitter
21 avril 2017 à 10:10:09

Oui, il serait d'ailleurs intéressant d'avoir un cours sur POSIX séparé du cours de C. Lucas-84 avait commencé ça mais c'est très incomplet et ça n'a jamais été mis à jour.

-
Edité par Mad scientist 21 avril 2017 à 10:16:41

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
21 avril 2017 à 13:00:13

À lire les dernières pages, j'ai l'impression que tout le monde est d'avis qu'il faut refaire un cours à partir de zéro. Vous êtes sûrs qu'il ne serait pas préférable de juste mettre à jour le cours existant ? Je vois deux bonnes raisons :

  • Le cours de M. Nebra n'est peut-être pas à jour, mais il a des qualités, notamment pédagogiques (bien adapté à des « zéros ») qu'il serait dommage de perdre avec un nouveau cours.

  • Plus un projet est ambitieux, moins il a de chance de se réaliser. Moins il y a de travail à faire, plus il y a de chance qu'il sera fait. Juste modifier des bouts de chapitres ça et là, ça a plus de chance d'aboutir que refaire tout un cours à partir de zéro.

Il me semble que le plus urgent, c'est ce qui concerne la SDL (je ne l'utilise pas, mais je sais qu'il y a pas mal de questions sur le forum qui lui sont consacrés).

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
21 avril 2017 à 14:47:25

robun a écrit:

À lire les dernières pages, j'ai l'impression que tout le monde est d'avis qu'il faut refaire un cours à partir de zéro. Vous êtes sûrs qu'il ne serait pas préférable de juste mettre à jour le cours existant ? Je vois deux bonnes raisons :

  • Le cours de M. Nebra n'est peut-être pas à jour, mais il a des qualités, notamment pédagogiques (bien adapté à des « zéros ») qu'il serait dommage de perdre avec un nouveau cours.

  • Plus un projet est ambitieux, moins il a de chance de se réaliser. Moins il y a de travail à faire, plus il y a de chance qu'il sera fait. Juste modifier des bouts de chapitres ça et là, ça a plus de chance d'aboutir que refaire tout un cours à partir de zéro.

Il me semble que le plus urgent, c'est ce qui concerne la SDL (je ne l'utilise pas, mais je sais qu'il y a pas mal de questions sur le forum qui lui sont consacrés).

Non reprendre un cours de 0 si il se réalise pas sa sert a rien !

Je préfére qu'il y'a des modification sur des chapitres que de tout refaire a 0 sa sert a rien si sa se réalise pas .

Le plus important est la SDL Oui ! et il faut plus d'exercice !

  • Partager sur Facebook
  • Partager sur Twitter
21 avril 2017 à 14:54:17

Le problème, c'est que plus on s'enfonce et on pointe les détails, plus on se rend compte de la masse de choses à réadapter. C'est typiquement ce qui s'est passé avec le tutoriel C++. Il a beau être pédagogique, la masse de choses à refaire dedans (y compris sur l'organisation générale) est telle que ça n'a aucun sens d'essayer de garder l'existant, ce serait plus une gageure qu'autre chose de composer avec plutôt que de tout lâcher.

En ce qui concerne SDL, je ne suis franchement pas convaincu. Le problème n'est pas tant dans les explications fournies à propos de SDL qu'à propos de la compréhension plus générale de comment on programme en C. Dans la plupart des questions que je vois passer à propos de SDL sur le forum, le problème n'est pas que la personne ne sait pas manipuler SDL. Le problème est que la personne ne sait pas manipuler C tout court (typiquement des fonctions de plus de 50 lignes sans contrôle d'erreurs, etc ...).

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

21 avril 2017 à 16:10:12

Le problème c'est aussi que la partie SDL propose de faire un jeu vidéo il me semble. Ça attire tous les débutants qui sautent beaucoup de chapitre pour aller directement à ce chapitre.

C'est dommage parsque ça attire les débutants sur le C juste pour ça, et en plus le fait de zapper 30% du cours n'est pas une bonne chose non plus :p

-
Edité par arno21 21 avril 2017 à 16:10:38

  • Partager sur Facebook
  • Partager sur Twitter

Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

21 avril 2017 à 16:37:22

robun a écrit:

À lire les dernières pages, j'ai l'impression que tout le monde est d'avis qu'il faut refaire un cours à partir de zéro. Vous êtes sûrs qu'il ne serait pas préférable de juste mettre à jour le cours existant ?


ça dépend uniquement des ressources mises à disposition, donc entre du niveau de qualité que OCR désire obtenir, du temps et de l'argent que OCR désire dépenser, du retour attendu, etc.

  • Partager sur Facebook
  • Partager sur Twitter
First solve the problem. Then, write the code. ~ John Johnson
23 avril 2017 à 16:11:03

Personnellement je pense qu'une évolution est mieux qu'une révolution ...
  • Partager sur Facebook
  • Partager sur Twitter
Architecture SDL                     Multithreading         
23 avril 2017 à 16:35:38

Je pense en effet que ce sera la voie choisie étant donné le peu de retour et le peu d'intérêt manifesté. Sans doute une couche de verni ?
  • Partager sur Facebook
  • Partager sur Twitter
First solve the problem. Then, write the code. ~ John Johnson
Anonyme
23 avril 2017 à 16:44:16

PicoDev a écrit:

Je pense en effet que ce sera la voie choisie étant donné le peu de retour et le peu d'intérêt manifesté. Sans doute une couche de verni ?

Bonne idée sans doute, voici ce qui me passe par la tête:

1)Expliquer l'utilisation du débogueur(priorité)!

2) Expliquer l'initialisation des tableaux de constantes (ou de variables) avec la syntaxe 

char tableau[]= {'a','b'};
//Après... Je ne sais pas trop, je suis débutant. Je m'en remets à l'expérience des plus doués que moi.


  • Partager sur Facebook
  • Partager sur Twitter
23 avril 2017 à 16:46:01

Bah, je préférerais un cours vivant qui évolue de l'intérieur (un vernis c'est pour embellir les choses mortes) :)
  • Partager sur Facebook
  • Partager sur Twitter
Architecture SDL                     Multithreading         
6 mai 2017 à 23:57:30

Bonjour,

Je pense qu'il serait judicieux d'integrer progressivement dans le deroulement du cours, l'utilisation du "debogueur" qui est un outils que l'on est souvent amener a utiliser dans le monde professionnel, particulierement lorsque l'on debute.

Peut-etre qu'il serait egalement interessant de faire d'autres cours traitants de la securite et ce qui y est lie ? (comment securiser et optimiser son code, debordements tampons, cryptographie, etc...)

  • Partager sur Facebook
  • Partager sur Twitter
14 mai 2017 à 11:04:35

Bonjour, je ne comprends pas réellement le fonctionnement de l'initialisation du pointeur
  • Partager sur Facebook
  • Partager sur Twitter
14 mai 2017 à 12:13:52

AlbertMichov a écrit:

Bonjour, je ne comprends pas réellement le fonctionnement de l'initialisation du pointeur


  • avant d'utiliser le contenu d'une variable (sa valeur), il faut que ce contenu soit défini. Donc qu'on ait initialisé la variable.
  • Un pointeur est une variable
  • Socrate est un chat.

-
Edité par michelbillaud 14 mai 2017 à 12:14:25

  • Partager sur Facebook
  • Partager sur Twitter
18 mai 2017 à 1:46:15

vraiment Socrate est un chat??
  • Partager sur Facebook
  • Partager sur Twitter
18 mai 2017 à 9:23:05

socrate est mortel, les chats sont mortels, ça ne peut pas être une coincidence
  • Partager sur Facebook
  • Partager sur Twitter