CircuitVerse-Projekt

Auf dieser Seite finden Sie die Details zu einem Projekt für technisches Schreiben, das für Google Season of Docs angenommen wurde.

Projektzusammenfassung

Open-Source-Organisation:
CircuitVerse
Technischer Redakteur:
dvls
Projektname:
Konsolidierung und Verbesserungen des interaktiven Buchs „CircuitVerse“
Projektdauer:
Standardlänge (3 Monate)

Projektbeschreibung

1 Zusammenfassung

CircuitVerse ist ein Open-Source-Projekt, das eine Plattform bereitstellen soll, auf der Schaltungen mithilfe einer webbasierten grafischen Benutzeroberfläche entworfen und simuliert werden können. Mit dem Logiksimulator können vollständige CPU-Implementierungen entworfen werden, er ist jedoch in erster Linie für den Bildungsbereich gedacht. Neben der technischen Dokumentation für die Software führt ein interaktives Onlinebuch den Nutzer in die digitale Logik ein. Im Buch können Nutzer Schaltungen direkt im Buch ausprobieren und so interaktiv lernen.

Das Buch befindet sich in einem frühen Entwicklungsstadium und es fehlen derzeit einige relevante Abschnitte. Die allgemeine Struktur ist in Bezug auf den Fluss, der die verschiedenen Abschnitte verbindet, locker und erfordert detailliertere Inhalte. Außerdem gibt es laut der Organisation keine Richtlinien, die Mitwirkenden bei der Zusammenarbeit am Projekt helfen, und auch keinen Plan oder eine Roadmap, die die Mitwirkenden darüber informiert, welche Inhalte benötigt werden und mit welcher Priorität.

Ziel dieses Vorschlags ist es, in Zusammenarbeit mit den Mentoren Richtlinien für Beiträge zu erstellen, einen Themenentwicklungsplan zu erstellen und zur Verbesserung der aktuellen Inhalte beizutragen sowie neue Inhalte gemäß dem Entwicklungsplan zu erstellen.

2 Der aktuelle Stand des interaktiven Buchs

Seit dem Start des Projekts im Rahmen von Google Summer of Code 2019 hat es mithilfe der Studentenschaft ein „unkontrolliertes Wachstum“ verzeichnet. Die Projektorganisation besteht hauptsächlich aus Entwicklern. Deshalb haben sie am GSoD teilgenommen, um externe Hilfe bei der Verbesserung des interaktiven Buchs zu suchen. Die Entwickler des Projekts haben festgestellt, dass einige Abschnitte des Buches derzeit umgeschrieben werden müssen, neue Inhalte hinzugefügt werden müssen und es detaillierter und umfassender werden muss. Außerdem erwartet das Team nach dem GSoD Richtlinien für neue Beiträge sowie einen allgemeinen „Masterplan“ für die Inhaltsentwicklung.

3. Welchen Beitrag leistet dieser Vorschlag

Mit diesem Vorschlag soll eine erste Version von Richtlinien für Beiträge gemeinsam erstellt werden, um einen harmonischeren Zusammenarbeitsprozess für Mitwirkende zu ermöglichen und so zu einheitlicheren Inhalten zu führen. Außerdem wird ein Entwicklungsplan für die Themen des Buches skizziert. Außerdem werden die dringendsten Ergänzungen und Änderungen gemäß dem neuen Entwicklungsplan hinzugefügt.

4. Analyse der verfügbaren Alternativen

Für einige etablierte Open-Source-Projekte mit ähnlichen Eigenschaften wurden bereits Richtlinien für die Mitwirkung an der Dokumentation entwickelt, z. B. für Wikibooks ([Hilfe:Mitwirken], [Wikibooks:Richtlinien und Richtlinien]), OpenStreetMap ([Richtlinien für die organisierte Bearbeitung]) oder das Linux Documentation Project ([LDP Author Guide]). Anhand dieser Beispiele können die Richtlinien des Projekts auf der Grundlage der Erfahrung erfolgreicher Open-Source-Projekte erstellt werden.

Für den Entwicklungsplan des Themas können Sie Lehrpläne von offenen Kursen (z.B. [MIT Open Courseware]) sowie Nachschlagewerke zu digitalen Logikgattern vergleichen, einschließlich frei zugänglicher Bücher wie [Lessons In Electric Circuits – Volume IV -Digital], [Wikibooks: Digital Circuits] und [Wikibooks: Digital Electronics].

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

[Wikibooks:Richtlinien] https://de.wikibooks.org/wiki/Wikibooks:Richtlinien

[Richtlinien für organisierte Bearbeitungen] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

[LDP Author Guide] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

[MIT Open-Kursware] https://ocw.mit.edu/

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

[Wikibooks: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits

[Wikibooks: Digital Electronics] https://en.wikibooks.org/wiki/Digital_Electronics

5 Struktur der vorgeschlagenen Dokumentation

Das interaktive Buch kann für ein breites Publikum nützlich sein, von Hobbyelektronikern und Schülern bis hin zu Studenten und Fachleuten, die ihre Kenntnisse in digitalen Logikschaltungen auffrischen oder vertiefen möchten.

Um der Heterogenität der Nutzer des Buches gerecht zu werden, wird eine „mehrschichtige“ Struktur vorgeschlagen, bei der jede Schicht einer zunehmenden Komplexität und theoretischen Tiefe der Inhalte entspricht.

Daher wächst die Struktur der Dokumentation in zwei Dimensionen: Die erste Dimension entspricht der logischen oder traditionellen Abfolge der Themen in digitalen Logiksystemen, während die zweite Dimension die Ebene darstellt.

In der folgenden strukturierten Liste ist die vorgeschlagene zweidimensionale Struktur dargestellt. Die Standardthemenreihenfolge wird auf der obersten Ebene angezeigt. Der Einfachheit halber sind für jedes Thema nur drei Komplexitätsebenen definiert, die den Stufen „Einfach“, „Mittel“ und „Fortgeschritten“ entsprechen. Für jede Stufe sind die Inhalte zum jeweiligen allgemeinen Thema aufgeführt.

  • Darstellung mit Binärzahlen:
    • Grundebene: Binärzahlen, negative Mengen, andere Basen, Kodifizierung.
    • Mittlere Stufe: [kein bestimmter Inhalt]
    • Fortgeschrittenes Level: Module und Ringe
  • Mathematische Operationen mit Binärzahlen:
    • Einfache Stufe: Addition, Subtraktion, Multiplikation, Division
    • Mittelstufe: Boolesche Algebra, boolesche Funktionen
    • Fortgeschrittene Stufe: Sonstige Algebras, Shannon-Zerlegung
  • Kombinatorische SSI-Komponenten:
    • Grundlegende Ebene: Symbole, Logikgatter, Wahrheitstabellen
    • Mittelstufe: Logikgatterfamilien, universelle Gatter
    • Fortgeschrittenes Niveau: Zeitverhalten (Timing-Modelle, Risiken)
  • Kombinationales Logikdesign:
    • Grundlegende Ebene: Funktionsbeschreibung, Implementierung
    • Mittlere Ebene: Kanonische Funktionen, k-Maps
    • Erweiterte Ebene: Über die Karte eingegebene Variablen, Quine McCluskey, Darstellung von binären Cubes
  • Kombinatorische MSI-Komponenten:
    • Grundlegende Ebene: MUX, DEMUX, Encoder, Decoder, Halbaddierer, Volladdierer
    • Mittlere Ebene: MUX-basierte Funktionen
    • Fortgeschrittenes Niveau: [no specific content]
  • Kombinatorische LSI-Komponenten:
    • Grundlegende Ebene: ROM, ALU
    • Mittlere Ebene: PLDs (PLA, PAL, GAL)
    • Fortgeschrittenes Niveau: [no specific content]
  • Sequenzielle SSI-Komponenten:
    • Grundlegende Ebene: Latches, Flip-Flops, Taktsignale, Zeitdiagramme
    • Mittel: Feedback zum Arbeitsspeicher, synchrone Systeme, asynchrone Systeme
    • Fortgeschrittene Stufe: [kein bestimmter Inhalt]
  • Sequenzielle MSI-Komponenten:
    • Grundlegende Ebene: Register, Zähler
    • Mittlere Stufe: [kein bestimmter Inhalt]
    • Fortgeschrittene Stufe: [kein bestimmter Inhalt]
  • Sequenzielles Design:

    • Einfache Stufe: [kein bestimmter Inhalt]
    • Mittleres Niveau: Sequenzielle Synthese, FSM (Mealy, Moore), Zustandsdiagramme, Zustandsminimierung, Zustandszuweisung, Race-Bedingungen
    • Fortgeschrittenes Niveau: MSI-basiertes Design, LSI-basiertes Design, Flussdiagramme, MDS-Diagramme

    Auf der Basisstufe sollten Nutzer verstehen können, wie digitale Logikschaltungen funktionieren und wie sie verwendet werden, ohne dass Kenntnisse der höheren Mathematik erforderlich sind. Daher eignet es sich für Hobbybastler und Schüler/Studenten. Wenn diese Nutzer die erforderlichen Fähigkeiten haben und sich ein besseres Verständnis aneignen möchten, können sie sich einige oder alle Inhalte des mittleren Niveaus ansehen.

    Inhalte und Anforderungen des mittleren Niveaus sollten in Bezug auf Inhalte und Anforderungen einem Einführungskurs für die tertiäre Bildung in einem digitalen Logiksystem entsprechen.

    Die Fortgeschrittenenstufe umfasst Inhalte, die in der Regel in ergänzenden oder optionalen fortgeschrittenen Kursen digitaler Systeme an Universitäten zu finden sind.

    Diese vorgeschlagene Struktur wird mit den Mentoren in der Anfangsphase des Projekts (Woche 3) besprochen und dann als Grundlage für die Erstellung eines langfristigen Themenentwicklungsplans verwendet.

    Bei der vorgeschlagenen Struktur kann der Großteil, wenn nicht der gesamte aktuelle Inhalt der Dokumentation verwendet werden, der bei Bedarf entsprechend überarbeitet und erweitert oder korrigiert wird. Außerdem werden neue Abschnitte für Inhalte verfasst, die in der vorhandenen Dokumentation noch nicht behandelt werden.

6 Ziele

  1. Erstellen Sie einen ersten Entwurf der Richtlinien für Beiträge zum interaktiven Buchprojekt.
  2. Skizzieren Sie eine Entwicklung für die Themen des Buches.
  3. Überarbeiten Sie die aktuellen Inhalte.
  4. Neue Inhalte gemäß dem Entwicklungsplan erstellen.

7 Zeitachse

Woche 1: (14. bis 20. September) Analysieren und besprechen Sie mit den Mentoren die besten Richtlinien anhand von Beispielen aus anderen Projekten sowie der bisherigen Erfahrungen im Projekt. Woche 2: (21. September bis 27. September) Entwurf der Richtlinien schreiben Woche 3: (28. September bis 4. Oktober) Besprechen Sie den Entwurf des Themenentwicklungsplans mit Mentoren. Woche 4: (5. bis 11. Oktober) Entwicklungsplan schreiben. Woche 5 bis 11: (12. Oktober bis 29. November) Verfassen Sie die Beiträge, die aus umstrukturierten Inhalten sowie neuen Themen bestehen. Woche 12: (30. Nov. bis 5. Dez.) Einreichen des Projektberichts. Projektbewertung: (3. Dezember bis 10. Dezember) - Einreichen der Bewertung durch den technischen Redakteur. – Einreichung der Bewertung durch die Mentoren.

8 Vorteile des interaktiven Buchs „CircuitVerse“

Aufgrund der globalen COVID-19-Krise habe ich nach Onlineressourcen gesucht, die meinen Studenten eines Bachelor-Kurses zu digitalen Logiksystemen helfen würden. Ich bin seit mehreren Jahrzehnten ein Verfechter von Free-Libre Open Source-Technologien und lege daher den Schwerpunkt auf diese Art von Projekten. Ich habe den CircuitVerse-Simulator gefunden und festgestellt, dass er ein hervorragendes Tool ist, um den Mangel an Laboraktivitäten aufgrund der COVID-19-Eindämmungsmaßnahmen an meiner Universität zu kompensieren. Beim Testen des Simulators habe ich auch das interaktive Buch gefunden. Auch wenn der Inhalt noch nicht als Hauptreferenz für einen vollständigen Kurs zu digitalen Logiksystemen ausreicht, sind die aktuellen Inhalte korrekt und leicht verständlich. Daher habe ich es in die Lernressourcen aufgenommen.

Da ich den Simulator und das Buch intensiv genutzt habe, wurde ich von der Organisation kontaktiert, um mich über den GSoD zu informieren. Ich sah die Gelegenheit, direkt aus meinem Fachgebiet zu dem Projekt beizutragen.

9 Referenzen

  • [Wikibooks-Hilfe:Mitwirken],
  • [Wikibooks:Richtlinien]
  • [Richtlinien für die von OpenStreetMap organisierte Bearbeitung]
  • [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: Digital Electronics]
  • [The Linux Brochure Project]

    [Wikibooks-Hilfe:Mitwirken] https://de.wikibooks.org/wiki/Hilfe:Mitwirken

    [Wikibooks:Richtlinien und Richtlinien] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [OpenStreetMap-Richtlinien für organisierte Bearbeitungen] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

    [The Linux Documentation Project (LDP) Author Guide] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

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

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

    [Wikibooks: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits

    [Wikibooks: Digital Electronics] https://en.wikibooks.org/wiki/Digital_Electronics

    [Das Linux-Broschüre-Projekt] http://lbproject.sourceforge.net/