Projekt CircuitVerse

Ta strona zawiera szczegółowe informacje o projekcie polegającym na pisaniu tekstów technicznych, który został zaakceptowany w ramach Google Season of Docs.

Podsumowanie projektu

Organizacja open source:
CircuitVerse
Pisarz techniczny:
dvls
Nazwa projektu:
Konsolidacja i ulepszenia interaktywnej książki CircuitVerse
Długość projektu:
Standardowa długość (3 miesiące)

Opis projektu

1 streszczenie

CircuitVerse to projekt typu open source, którego celem jest udostępnienie platformy, na której można projektować i symulować układy za pomocą graficznego interfejsu użytkownika w przeglądarce. Symulatora logiki można używać do projektowania w celu ukończenia implementacji procesora, chociaż jest on przeznaczony głównie do zastosowań edukacyjnych. Oprócz dokumentacji technicznej oprogramowania użytkownik może skorzystać z interaktywnej książki online, która pomoże mu w nauce projektowania logiki cyfrowej. Książka umożliwia użytkownikowi wypróbowanie obwodów bezpośrednio w książce, co zapewnia interaktywne wrażenia.

Książka jest we wczesnej fazie rozwoju i obecnie brakuje w niej odpowiednich sekcji. Ogólna struktura dokumentu jest luźna, jeśli chodzi o proces łączący różne sekcje, i wymaga bardziej szczegółowych treści. Organizacja twierdzi też, że nie ma wytycznych, które pomogłyby współpracownikom w współtworzeniu projektu, ani planu ani mapy drogowej, które wskazywałyby, jakie treści są potrzebne i jakie mają priorytety.

Celem tej propozycji jest współpraca z mentorami w celu stworzenia wytycznych dotyczących tworzenia treści, opracowania planu rozwoju tematu oraz ulepszania obecnych treści i tworzenia nowych zgodnie z planem rozwoju.

2. Bieżący stan interaktywnej książki

Od samego początku projektu Google Summer of Code 2019 zaobserwował „niezarządzany rozwój” i z pomocą społeczności studentów. Organizacja projektu składa się głównie z programistów, dlatego wzięli oni udział w GSoD, aby uzyskać pomoc zewnętrzną w ulepszaniu książki interaktywnej. Deweloperzy projektu stwierdzili, że książka wymaga obecnie przepisania niektórych sekcji, dodania nowych treści oraz dopracowania jej pod kątem szczegółowości i kompletności. Poza tym zespół powinien mieć po wprowadzeniu GSoD wytyczne dotyczące nowych treści oraz ogólny „plan główny” tworzenia treści.

3 Co wnosi ta propozycja

Ta propozycja przyczyni się do wspólnego opracowania pierwszej wersji wytycznych dotyczących publikowania treści, co pozwoli zapewnić bardziej harmonijną współpracę z twórcami, a tym samym doprowadzić do uzyskania bardziej spójnych treści. Będzie również omówiony plan rozwoju treści związanych z książką. Będą też uwzględnione najbardziej pilne dodatki i zmiany zgodnie z nowym planem rozwoju.

4. Analiza dostępnych alternatyw

Kilka dojrzałych projektów open source o podobnych charakterystykach opracowało już wytyczne dotyczące tworzenia dokumentacji, takie jak Wikibooks ([Help:Contributing], [Wikibooks:Policies and guidelines]), OpenStreetMap ([Organised Editing Guidelines]) czy The Linux Documentation Project ([LDP Author Guide]). Tych przykładów można użyć do utworzenia wytycznych projektu na podstawie doświadczenia z udanymi projektami open source.

W planie rozwoju tego tematu można porównać programy kursów otwartych (np. [MIT Open Courseware]), a także książki referencyjne na temat cyfrowych obwodów logicznych, w tym książki otwarte, takie jak [Lessons In Electric Circuits -- Volume IV -Digital], [Wikibooks: Digital Circuits] i Wikibooks

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

[Wikibooks:Zasady i wytyczne] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

[Wskazówki dotyczące zorganizowanego edytowania] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

[Przewodnik dla autorów LDP] 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: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits

[Wikibooks: Elektronika cyfrowa] https://en.wikibooks.org/wiki/Digital_Electronics

5. Struktura proponowanej dokumentacji

Interaktywny podręcznik może być przydatny dla szerokiego grona odbiorców, od amatorów elektroniki po uczniów szkół średnich, studentów szkół wyższych i profesjonalistów, którzy chcą odświeżyć lub pogłębić swoją wiedzę z zakresu obwodów cyfrowych.

Aby uwzględnić zróżnicowanie użytkowników książki, zaproponowano strukturę „wielowarstwową”, w której każda warstwa odpowiada rosnącemu poziomowi złożoności i teoretycznej głębi treści.

Dlatego struktura dokumentacji rozwija się w 2 kierunkach: pierwszy odpowiada logicznemu lub tradycyjnemu układowi tematów w systemach logiki cyfrowej, a drugi to poziom.

W poniższej liście strukturalnej przedstawiono proponowaną dwuwymiarową strukturę. Standardowa sekwencja tematów jest prezentowana na najwyższym poziomie. Dla uproszczenia w przypadku każdego tematu zdefiniowano tylko 3 poziomy złożoności: podstawowy, średnio zaawansowany i zaawansowany. Na każdym poziomie wyświetlane są treści związane z konkretnym tematem ogólnym.

  • Reprezentacja za pomocą liczb binarnych:
    • Poziom podstawowy: liczby binarne, wielkości ujemne, inne zasady, kodyfikacja.
    • Średni poziom: [brak konkretnych treści]
    • Poziom zaawansowany: moduły i pierście
  • Działania matematyczne na liczbach binarnych:
    • Poziom podstawowy: dodawanie, odejmowanie, mnożenie, dzielenie.
    • Poziom średni: algebra Boole'a, funkcje boole'a
    • Poziom zaawansowany: inne algebry, rozkład Shannona
  • Kombinacyjne komponenty SSI:
    • Poziom podstawowy: symbole, bramki logiczne, tablice prawdy
    • Średni poziom: rodziny logiczne, bramki uniwersalne
    • Poziom zaawansowany: zachowanie czasowe (modele czasów, zagrożenia)
  • Projektowanie logiki kombinacyjnej:
    • Poziom podstawowy: opis funkcji, implementacja
    • Średni poziom: funkcje kanoniczne, k-mapy
    • Poziom zaawansowany: zmienne wprowadzane przez mapę, reprezentacja Quine’a–McCluskeya, kostki binarne
  • Komponenty MSI kombinowane:
    • Poziom podstawowy: MUX, DEMUX, koder, dekoder, połowa dodatku, pełny dodawanie
    • Poziom średni: funkcje oparte na MUX
    • Poziom zaawansowany: [brak konkretnych treści]
  • Komponenty LSI kombinowane:
    • Poziom podstawowy: ROM, ALU
    • Średni poziom: PLD (PLD, PAL, GAL)
    • Poziom zaawansowany: [brak konkretnych treści]
  • Sekwencyjne komponenty SSI:
    • Podstawowy poziom: przekaźniki, przerzutniki, sygnały zegara, diagramy czasowe
    • Poziom średni: informacje o pamięci, systemy synchroniczne, systemy asynchroniczne
    • Poziom zaawansowany: [brak konkretnych treści]
  • Sekwencyjne komponenty MSI:
    • Poziom podstawowy: rejestry, liczniki
    • Średni poziom: [brak konkretnych treści]
    • Poziom zaawansowany: [brak konkretnych treści]
  • Sekwencyjny projekt:

    • Poziom podstawowy: [brak konkretnych treści]
    • Średni poziom: synteza sekwencyjna, FSM (Mealy, Moore), diagramy stanu, minimalizacja stanu, przypisanie stanu, warunki wyścigu
    • Poziom zaawansowany: projektowanie na podstawie MSI, LSI, diagramów przepływu, diagramów MDS

    Poziom podstawowy powinien umożliwić użytkownikom zrozumienie, jak działają cyfrowe układy logiczne i jak z nich korzystać, bez konieczności znajomości wyższej matematyki. Dlatego może być odpowiedni dla amatorów i uczniów szkół średnich. Jeśli ci użytkownicy mają niezbędne umiejętności i chcą pogłębić swoją wiedzę, mogą pracować nad niektórymi lub wszystkimi treściami na średnim poziomie.

    Treści i wymagania powinny być takie same jak w przypadku kursu wprowadzającego dla szkół wyższych z systemu logiki cyfrowej.

    Poziom zaawansowany obejmuje treści, które można zwykle znaleźć w uzupełniających lub opcjonalnych kursach zaawansowanych systemów cyfrowych na uniwersytetach.

    Proponowana struktura zostanie omówiona z mentorami na wczesnych etapach projektu (tydzień 3), a potem posłuży nam jako wstęp do opracowania długoterminowego planu rozwoju tematu.

    Proponowana struktura pozwala korzystać z większości lub nawet wszystkich aktualnej treści dokumentacji, która w razie potrzeby jest odpowiednio poprawiana, rozszerzana lub poprawiana. Co więcej, dla treści, które nie są jeszcze uwzględnione w dotychczasowej dokumentacji, zostaną utworzone nowe sekcje.

6 celów

  1. Utwórz pierwszą wersję wytycznych dotyczących publikowania treści w ramach projektu Książka interaktywna.
  2. Zarysuj tematykę książki.
  3. przeredagować i zmienić strukturę obecnych treści;
  4. tworzyć nowe treści zgodnie z planem rozwoju;

7. Oś czasu

Tydzień 1. (14–20 września) Przeanalizuj z mentorami najlepsze wytyczne na podstawie przykładów z innych projektów oraz doświadczeń zdobytych do tej pory w ramach projektu i omawiaj je. Tydzień 2 (21–27 września): napisz wersję roboczą wytycznych. Tydzień 3 (28 września–4 października): omów z mentorami wersję roboczą planu rozwoju tematu. Tydzień 4. (5–11 października) Utwórz plan rozwoju. W tygodniach 5–11: (12 października – 29 listopada) napisz opublikowane treści, uwzględniając nowe tematy i treści. Tydzień 12: (30 listopada – 5 grudnia) przesłanie raportu z realizacji projektu. Ocena projektu: (3–10 grudnia) - przesłanie oceny dla copywritera. – przesłanie oceny mentorów.

8. Dlaczego CircuitVerse Interactive Book

Z powodu globalnego kryzysu związanego z pandemią COVID-19 zaczęłam szukać w internecie materiałów, które pomogłyby moim studentom na studiach licencjackich w przyswajaniu systemów logiki cyfrowej. Od kilkudziesięciu lat jestem zwolennikiem technologii Free-Libre Open Source, dlatego priorytetowo podchodzę do tego typu projektów. Odkryłem symulator CircuitVerse i uznałem, że to świetne narzędzie, które uzupełnia brak aktywności laboratoryjnych spowodowany przez środki zapobiegawcze związane z COVID-19 w naszym uniwersytecie. Podczas testowania symulatora znalazłem też ich interaktywną książkę. Chociaż nie była ona jeszcze wystarczająca jako główne źródło informacji w ramach pełnego kursu z zakresu cyfrowych systemów logicznych, jej obecna treść była poprawna i łatwa do zrozumienia, więc dodałem ją do materiałów edukacyjnych.

Ponieważ intensywnie korzystałem z ich symulatora i książki, skontaktowała się ze mną organizacja, aby poinformować mnie o GSoD. W ten sposób dostrzegłam możliwość wzięcia udziału w projekcie bezpośrednio z mojej dziedziny.

9 odwołań

  • [Wikibooks Help:Contributing],
  • [Wikibooks:Zasady i wytyczne]
  • [Wytyczne dotyczące edytowania uporządkowanych danych OpenStreetMap]
  • [Przewodnik dla autora projektu dotyczącego Linuksa (LDP)]
  • [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 Help:Contributing] https://en.wikibooks.org/wiki/Help:Contributing

    [Wikibooks:Zasady i wytyczne] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [OpenStreetMap Organised Editing Guidelines] 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

    [Program nauczania laboratoryjnego wstępu do cyfrowych systemów w ramach MIT Open Courseware] 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: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits

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

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