Discussion utilisateur:Sub/brouillons/Informatique

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Je suis d'accord avec toi que le livre "programmation" et l'accueil/informatique sont à revoir. Pour ta page, j'ai qq remarques (livrées en vrac) :

  • il faudrait ajouter l'algorithmique/programmation parallèle ou distribuée (threads, processus, problèmes de section critique/interblocages, bibliothèques MPI, PVM...)
  • Dans "Algorithmique, optimisation et paradigmes", je ne vois pas pourquoi "algorithmes" et "structures de données" sont séparés... Les deux vont ensemble, non ? (ou alors tu pensais à un "recueil" d'algo particuliers ?)
  • J'approuve l'existence d'une partie "Standards et normes", mais le cas de (X)HTML me semble être spécifique... Il peut aussi être listé dans une autre partie "Développement Web" (qui reste à créer), par exemple. Par contre, ok pour mettre XML dans cette liste ;)
  • Puisque j'y pense, il manque une partie sur les principes et technologies Web (pas seulement TCP/IP, je veux dire). Dans le désordre, ce qui me vient en tête:
    • HTTP
    • (X)HTML (et les recommandations du W3C sur l'accessibilité)
    • CSS
    • JavaScript / EcmaScript
    • ASP
    • J2EE (JSP, Servlets...)
    • PHP
    • AJAX (?)
    • ... sûrement d'autres auxquels je n'ai pas pensé (Ruby on Rails ?)
  • J'ai remarqué dans le livre PHP un article sur des méthodes de codage "de qualité". Il faudrait dans ce sens un paragraphe, probablement dans "Développement et modélisation", sur des règles de conception, de codage ou d'organisation générales (définition et documentation d'interfaces, commentaires, modularité, suites de tests (cf. jUnit, par exemple), outils...) qui servent à la "qualité" logicielle (qu'on peut comprendre comme la maintenabilité, la portabilité, la stabilité, l'extensibilité, l'absence de régressions durant un développement...). À mon avis, il y a pas mal qui est déjà écrit à ce sujet dans les livres de programmation, mais je n'en ai pas encore assez lu pour savoir ce qui existe de ce qui n'existe pas encore.

Mais ce sont des idées en vrac... À débattre, donc. Comme c'est une page dans ton namespace, je ne l'ai pas modifiée et je suis resté dans la page de discussion, mais si tu es ok, je pourrais mettre mes suggestions directement dedans. Alveric 2 août 2006 à 14:36 (CEST)

je suis content que quelqu'un aie remarqué mon travail. Tout d'abord : je précises que j'ai fait exprès de ne pas tout mettre (par exemple pour la liste des cycles). La page n'est pas complète et ne donnes qu'un aperçu. J'ai essayé de n'inclure que ce qui est déjà disponible. Je vais répondre point par point :

  • Ce dont tu parles à sa place dans Architecture des ordinateurs et systèmes d'exploitations : jettes un oeil à Programmation POSIX par exemple. Effectivement je suis d'accord avec toi pour qu'une doc recourvre les processus, les communication inter processus.etc... celà fait partie intégrante d'"Architecture des ordinateurs et systèmes d'exploitations" reste à voir ou ça va se mettre.
  • Ils doivent être séparés. La partie structures de données n'explique pas d'algorithmique mais présente des structures de données et les technologies liées. Par exemple, il ya aura une page sur les piles, une sur les files, une sur les arbres binaires. On pourra expliquer ce qu'est un pointeur et comment stocker des données de façon dynamique. Les algos sur ces structures peuvent avoir leur place ailleurs sans que ce soit un manque. Pas besoin de savoir comment implémenter une file avec des piles pour comprendre le concept de piles. J'ai effectivement pensé à un receuil d'algo connus : c'est la Catégorie:Algorithme où on mettra l'algo d'euclide, le A*, etc...
  • effectivement il faut créer "Développement Web". La page Création de site web présente les différentes façon de créer les pages : une des façon est évidemment de faire du dev pur en PHP/HTML. Cette page pourrait expliquer comment faire une arborescence propre par exemple. Pour Standard et normes mon objectif est en fait de lister les technologies standard pour que les gens ne se lancent pas dans un truc sans prendre en compte les standard déjà existant. Par exemple, créer un système de messagerie instantannée sans utiliser Jabber serait une abération.
  • la page Création de site web peut parfaitement acceuillir cette liste de technos. une exception peut-être pour HTTP qui irait plus dans Réseaux.
  • Oui ce serait indispensable de concatener tout ces conseils dans une doc. Elle aurait effectivement sa place de Développement. Ca pourrait s'appeller Développement logiciel qui présente le tout étape par étape analyse, modélisation, choix techologiques, .... jusqu'à quel licence choisir.

Merci de ta participation, n'hésites pas à modifier ma page, à m'envoyer d'autres remarques et à commenter les miennes. Je vais déjà faire quelques modifs. Sub 2 août 2006 à 16:44 (CEST)


Je comprends bien que ta page n'a pas vocation à être exhaustive...

  • Pour le premier point, je pense que l'algorithmique parallèle (celle qui sert surtout aux programes de calcul scientifique parallèle) a sa place dans la partie "Algorithmique" - l'utilisation précise des implémentations (MPI, PVM...) étant plus pour la partie "Informatique appliquée". Un développeur qui doit créer un logiciel de calcul pour un physicien n'aura pas le réflexe de chercher les infos dans la partie "Architecture des ordinateurs et systèmes d'exploitations"... Par contre, threads, processus, interblocages... ont leur place dans cette dernière partie (avec POSIX comme exemple d'implémentation).
  • Pour la séparation "structure de données" et "algorithmique", je comprends ton raisonnement, mais ce n'est pas celui auquel je suis habitué ;) Quand on apprend une structure de données comme une pile, une file ou autre, il faut bien étudier des algorithmes adaptés à cette structure pour comprendre son intérêt, ses avantages et désavantages par rapport aux autres structures. Enfin, c'est comme ça que je vois les choses. (et je note bien que c'est différent de ton idée d'un recueil d'algo)
    Je peux aussi comprendre ton raisonnement, en faisant un wikibook qui liste les structures, et un wikimodule qui étudie en détail chaque structure avec les algo liés... Mais bon, là il vaudrait mieux continuer sur la page de discussion du livre Algorithmique, vu qu'il s'agit d'un choix de pédagogie assez précis.
  • On est d'accord pour la partie développement Web (et pour l'exception HTTP ;) ).
  • Pour la partie "Standards et Normes", je comprend bien l'idée, et j'approuve, je voulais juste remarquer que, comme c'était présenté sur une seule page, une techno pouvait se voir citée dans le chapitre technologique où elle est utile, et aussi dans la partie "Standards", avec pour exemple XHTML.
    Une fois qu'elle sera mise en place, on pourra faire passer un message pour demander à qui veut bien de rajouter tout ce dont il a connaissance (vu l'étendue du domaine couvert, et le nombre de standards et normes, c'est le genre de liste qui va être long...).
    Un exemple qui me vient : pour programmer en C, il faut suivre la norme ISO qui définit le C, mais il y a aussi, suivant le domaine, la norme POSIX qui rajoute une couche, le standard Single Unix Specification, la recommandation MISRA-C... Tout ça a sa place dans ce chapitre ?
  • Idem pour la partie "Développement", c'est le genre de chapitre "transverse" (comme on dit) sur lequel, une fois une premirèe version de l'objectif et du plan définis, il faudrait sensibiliser ceux qui travaillent sur les différents livres du département informatique. Vu le nombre et la qualité des contributeurs, une fois le message passé, ces chapitres évolueront vite. De plus, vu le volume de ce qui est déjà écrit, il faut plusieurs personnes pour trouver tout ce qui a déjà été dit à ce sujet dans les livres existants...

Alveric 2 août 2006 à 18:06 (CEST)

  • OK. je connais pas ce domaine : fais l'ajout.
  • Je penses que c'est la meilleure façon de faire. Si si on fait les structures et les algos en même temps il va se poser le problème suivi : fait-on les algos en algo impérative, fonctionnelle, objet ? sachant que chacun suivant son parcours aura étudié aucune, une ou plusieurs de ces méthodes. Le mieux est donc de rendre la chose accessible à tous en restant neutre du point de vue de l'algo. Note : dans mon cursus (licence dans une faculté française) on étudit les structures de données en ne connaissant que l'algo impérative et l'algo fonctionnelle (chacune dans un module précédant). Durant nos TD : chaque étudiant faisait de la façon qu'il voulait...
  • J'ai fait les modifs :)
  • En fait mon idée est un peu floue. Il faudrait mettre ça à part, effectivement il s'agirait de lister les RFC, les normes ISO etc... ce qui est trop long. Tu as raison, la plupart de ce que sera lister ici sera dans Informatique appliquée puisqu'il y sera lister les normes et standard concernant chaque sujet. À la limite autant faire une catégorie.
  • Cette page effectivement sera très générale étant donné que dans tous les langages et même plus (fichiers de confs...) il faut indenter, commenter, documenter, etc... Il est très possible que du texte soit déjà écrit.

Je suggère qu'on commence déjà à créer toutes les ébauches (J'ai créé Développement web par exemple). Celà permettra de mieux s'organiser et de catégoriser plus simplement. Une étape importante est de ré-orgniser le contenu déjà présent en tendant vers la suppression de Programmation : beaucoup de titres avec Programmation_ en préfixe sont à renommer : la page sur UML s'appelle même Programmation Merise (analyse et conception) ! vive les contresens (à priori on analyse en modélisisant et après on implémente/programme)... J'ai créé quelques catégorie :

et d'autres. Avec ça on devrait pouvoir se passer des grosses pages d'index difficiles à maintenir, très lourdes, et rebutantes. Je crois vraiment qu'il y a un problème d'organisation sur l'informatique (entre la programmation qui n'en est pas, les doublons, les pages à renommer, la catégorisation). Je compte bouleverser les choses et j'essai de le faire sans choquer... Y'a même du AJAX dans Programmation PHP...