Projet CircuitVerse

Cette page contient les détails d'un projet de rédaction technique accepté pour la Google Season of Docs.

Résumé du projet

Organisation Open Source:
CircuitVerse
Rédacteur technique:
dvls
Nom du projet:
Consolidation et améliorations du livre interactif CircuitVerse
Durée du projet:
Durée standard (trois mois)

Project description

1 extrait

CircuitVerse est un projet Open Source qui vise à fournir une plate-forme permettant de concevoir et de simuler des circuits à l'aide d'une interface utilisateur graphique Web. Le simulateur de logique peut être utilisé pour concevoir jusqu'à des implémentations de processeur complètes, bien qu'il soit principalement conçu à des fins pédagogiques. En plus de la documentation technique du logiciel, un livre interactif en ligne guide l'utilisateur dans l'apprentissage de la conception logique numérique. Le livre permet à l'utilisateur de tester des circuits directement dans le livre pour une expérience interactive.

Le livre est à un stade précoce de développement et manque actuellement de sections pertinentes. La structure générale est lâche en termes de flux reliant les différentes sections et nécessite un contenu plus détaillé. De plus, selon l'organisation, il n'existe pas de consignes pour aider les contributeurs à collaborer au projet, ni de plan ni de feuille de route pour guider les contributions sur les contenus nécessaires et leur priorité.

L'objectif de cette proposition est de collaborer avec les mentors pour créer des consignes de contribution, produire un plan de développement de sujets et contribuer à améliorer le contenu actuel, ainsi qu'à créer du nouveau contenu conformément au plan de développement.

2 La situation actuelle du livre interactif

Depuis le lancement du projet lors du Google Summer of Code 2019, il a connu une "progression non gérée", avec l'aide de la communauté étudiante. L'organisation du projet est principalement composée de développeurs. Ils ont donc participé au GSoD pour demander de l'aide extérieure afin d'améliorer le livre interactif. Les développeurs du projet ont identifié que le livre nécessite actuellement la réécriture de certaines sections, l'ajout de nouveaux contenus et une présentation plus détaillée et complète. De plus, l'équipe prévoit, après la GSoD, de disposer de consignes pour les nouvelles contributions, ainsi que d'un "plan directeur" général pour le développement de contenu.

3 Quelle est la contribution de cette proposition ?

Cette proposition contribuera à la cocréation d'une première version de consignes de contribution, visant à assurer un processus de collaboration plus harmonieux pour les contributeurs, ce qui permettra d'obtenir des contenus plus cohérents. Un plan de développement pour les sujets du livre sera également défini. Les ajouts et modifications les plus urgents selon le nouveau plan de développement seront également apportés.

4 Analyse des alternatives disponibles

Plusieurs projets Open Source matures présentant des caractéristiques similaires ont déjà développé des consignes de contribution pour la documentation, comme Wikibooks ([Help:Contributing], [Wikibooks:Policies and guidelines]), OpenStreetMap ([Organised Editing Guidelines]) ou The Linux Documentation Project ([LDP Author Guide]). Ces exemples peuvent servir à élaborer les consignes du projet en s'appuyant sur l'expérience de projets Open Source réussis.

Pour le plan de développement du sujet, il est possible de comparer les programmes de cours ouverts (par exemple, [MIT Open Courseware]) ainsi que les livres de référence sur les circuits logiques numériques, y compris les livres ouverts tels que [Lessons In Electric Circuits -- Volume IV -Digital], [Wikibooks: Digital Circuits] et [Wikibooks: Digital Electronics].

[Help:Contributing] https://en.wikibooks.org/wiki/Help:Contributing

[Wikibooks:règles et consignes] https://fr.wikibooks.org/wiki/Wikibooks:Règles_et_consignes

[Consignes de modification organisée] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

[Guide de l'auteur du DLP] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

[MIT Open Courseware] https://ocw.mit.edu/

[Lessons In Electric Circuits -- Volume IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

[Wikibooks: Circuits numériques] https://en.wikibooks.org/wiki/Digital_Circuits

[Wikibooks: Électronique numérique] https://en.wikibooks.org/wiki/Digital_Electronics

5 Structure de la documentation proposée

Le livre interactif peut être utile à un large public, allant des amateurs d'électronique et des élèves du secondaire aux étudiants et professionnels de l'enseignement supérieur qui ont besoin de rafraîchir ou de renforcer leurs compétences en circuits logiques numériques.

Pour répondre à l'hétérogénéité des utilisateurs du livre, une structure "multicouche" est proposée, où chaque couche correspond à un niveau croissant de complexité et de profondeur théorique des contenus.

Par conséquent, la structure de la documentation se développe dans deux dimensions : la première dimension correspond à la séquence logique ou traditionnelle des sujets dans les systèmes logiques numériques, tandis que la deuxième dimension représente le niveau.

La structure bidimensionnelle proposée est représentée dans la liste structurée suivante. La séquence de sujets standard est présentée au niveau le plus élevé. Par souci de simplicité, seules trois couches de complexité sont définies pour chaque sujet, correspondant aux niveaux de base, intermédiaire et avancé. Pour chaque niveau, les contenus liés au thème général spécifique sont listés.

  • Représentation à l'aide de nombres binaires :
    • Niveau de base: nombres binaires, quantités négatives, autres bases, codification.
    • Niveau moyen: [aucun contenu spécifique]
    • Niveau avancé: modules et anneaux
  • Opérations mathématiques avec des nombres binaires :
    • Niveau de base: addition, soustraction, multiplication, division
    • Niveau moyen: algèbre de Boole, fonctions booléennes
    • Niveau avancé: autres algèbres, décomposition de Shannon
  • Composants SSI combinatoires :
    • Niveau de base: symboles, portes logiques, tables de vérité
    • Niveau moyen: familles logiques, portes universelles
    • Niveau avancé: comportement dans le temps (modèles de chronométrage, dangers)
  • Conception de la logique combinatoire :
    • Niveau de base: description fonctionnelle, implémentation
    • Niveau moyen: fonctions canoniques, k-maps
    • Niveau avancé: variables saisies dans une carte, Quine McCluskey, représentation des cubes binaires
  • Composants combinés MSI :
    • Niveau de base: MUX, DEMUX, encodeur, décodeur, demi-additionneur, additionneur complet
    • Niveau moyen: fonctions basées sur un MUX
    • Niveau avancé: [aucun contenu spécifique]
  • Composants LSI combinatoires :
    • Niveau de base: ROM, ALU
    • Niveau moyen: PLD (annonces pour une offre de produit, annonces pour une application et annonces pour un jeu)
    • Niveau avancé: [aucun contenu spécifique]
  • Composants SSI séquentiels :
    • Niveau de base: bascules, bascules à bascule, signaux d'horloge, diagrammes temporels
    • Niveau moyen: rétroaction de la mémoire, systèmes synchrones, systèmes asynchrones
    • Niveau avancé: [aucun contenu spécifique]
  • Composants MSI séquentiels :
    • Niveau de base: registres, compteurs
    • Niveau moyen: [aucun contenu spécifique]
    • Niveau avancé: [aucun contenu spécifique]
  • Conception séquentielle:

    • Niveau de base: [no specific content]
    • Niveau moyen: synthèse séquentielle, FSM (Mealy, Moore), diagrammes des états, minimisation des états, attribution des états, conditions de course
    • Niveau avancé: conception basée sur MSI, conception basée sur LSI, diagrammes de flux, diagrammes MDS

    Le niveau de base doit permettre aux utilisateurs de comprendre le fonctionnement des circuits de logique numérique et leur utilisation, sans avoir besoin de connaissances mathématiques plus approfondies. Il peut donc convenir aux amateurs et aux élèves du secondaire. Si ces utilisateurs disposent des compétences nécessaires et souhaitent approfondir leurs connaissances, ils peuvent travailler tout ou partie du contenu de niveau moyen.

    Le niveau moyen doit être équivalent en termes de contenu et d'exigences à un cours d'introduction au système de logique numérique de niveau universitaire.

    Enfin, le niveau avancé comprend des contenus qui se trouvent généralement dans les cours avancés complémentaires ou facultatifs sur les systèmes numériques dans les universités.

    Cette structure proposée sera discutée avec les mentors au début du projet (semaine 3), puis utilisée comme base pour élaborer un plan de développement de sujet à long terme.

    La structure proposée peut utiliser la plupart, voire la totalité, du contenu actuel de la documentation, qui sera révisé et étendu ou corrigé en conséquence, si nécessaire. De plus, de nouvelles sections seront rédigées pour les contenus qui ne sont pas encore couverts par la documentation existante.

6 objectifs

  1. Rédigez une première ébauche des consignes de contribution pour le projet de livre interactif.
  2. Développez les sujets du livre.
  3. Réécrivez et restructurez vos contenus actuels.
  4. Créez du contenu en fonction du plan de développement.

7 Chronologie

Semaine 1: (14 au 20 septembre) Analysez et discutez avec les mentors des meilleures consignes en vous appuyant sur des exemples d'autres projets, ainsi que sur l'expérience acquise jusqu'à présent dans le projet. Semaine 2: (21 septembre - 27 septembre) Rédiger le brouillon des consignes Semaine 3: (28 septembre - 4 octobre) Discuter du brouillon du plan de développement du sujet avec les mentors. Semaine 4 (5 au 11 octobre) : rédiger le plan de développement Semaines 5 à 11: (12 octobre - 29 novembre) Rédigez les contributions, qui consistent en des contenus restructurés et en nouveaux sujets. Semaine 12: (30 novembre - 5 décembre) Envoi du rapport de projet. Évaluation du projet: (3 décembre au 10 décembre) - Envoi de l'évaluation par le rédacteur technique. - Envoi de l'évaluation des mentors.

8 Pourquoi le livre interactif CircuitVerse ?

En raison de la crise mondiale de la COVID-19, j'ai commencé à chercher des ressources en ligne qui aideraient mes étudiants dans un cours de premier cycle sur les systèmes logiques numériques. Je défends les technologies Open Source Free-Libre depuis plusieurs décennies. Je donne donc la priorité à ce type de projets. J'ai découvert le simulateur CircuitVerse et j'ai décidé qu'il s'agissait d'un excellent outil pour pallier le manque d'activités de laboratoire en raison des mesures de confinement liées à la COVID-19 de notre université. Lors du test du simulateur, j'ai également trouvé leur livre interactif. Même si le contenu n'était pas encore suffisant en tant que référence principale pour un cours complet sur les systèmes logiques numériques, son contenu actuel était correct et facile à comprendre. Je l'ai donc inclus aux ressources d'apprentissage.

Comme j'utilisais intensivement leur simulateur et leur livre, l'organisation m'a contacté pour m'informer du GSoD. J'y ai vu une opportunité de contribuer au projet directement dans mon domaine d'expertise.

9 Références

  • [Wikibooks Help:Contributing],
  • [Wikibooks:règles et consignes]
  • [Consignes de montage organisé d'OpenStreetMap]
  • [The Linux Documentation Project (LDP) Author Guide]
  • [MIT Open Courseware Introductory Digital Systems Laboratory Syllabus]
  • [Lessons In Electric Circuits -- Volume IV -Digital]
  • [Wikibooks: Digital Circuits]
  • [Wikibooks: Électronique numérique]
  • [The Linux Brochure Project]

    [Aide Wikibooks:Contribuer] https://en.wikibooks.org/wiki/Help:Contribuer

    [Wikibooks:règles et consignes] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [Consignes pour l'édition organisée d'OpenStreetMap] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

    [Guide de l'auteur du projet de documentation Linux (LDP)] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

    [MIT Open Courseware Introductory Digital Systems Laboratory Syllabus] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111-introductory-digital-systems-laboratory-spring-2006/syllabus/

    [Lessons In Electric Circuits -- Volume IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

    [Wikibooks: circuits numériques] https://en.wikibooks.org/wiki/Digital_Circuits

    [Wikibooks: Électronique numérique] https://en.wikibooks.org/wiki/Digital_Electronics

    [The Linux Brochure Project] http://lbproject.sourceforge.net/