Projekt CircuitVerse

Ta strona zawiera szczegółowe informacje na temat projektu technicznego przyjęta do programu Sezon Dokumentów Google.

Podsumowanie projektu

Organizacja open source:
CircuitVerse
Pisarz techniczny:
dvls
Nazwa projektu:
Interaktywna konsolidacja książek i jej ulepszenia
Długość projektu:
Standardowa długość (3 miesiące)

Opis projektu

1 streszczenie

CircuitVerse to projekt typu open source, którego celem jest opracowanie platformy umożliwiającej projektowanie i symulowanie obwodów przy użyciu internetowego interfejsu graficznego. Symulator logiki może służyć do projektowania kompletnych wdrożeń procesora, jednak jest on przeznaczony głównie do zastosowań edukacyjnych. Oprócz dokumentacji technicznej oprogramowania do interaktywnej książki użytkownik może zapoznać się z informacjami o projektowaniu logiki cyfrowej. Książka umożliwia użytkownikom wypróbowanie obwodów bezpośrednio z poziomu książki.

Książka jest we wczesnej fazie opracowywania i obecnie nie zawiera odpowiednich sekcji. Ogólna struktura jest luźna, ponieważ łączy różne sekcje i wymaga bardziej szczegółowych treści. Według organizacji nie ma też wytycznych ułatwiających współpracę nad projektem ani planu czy planu, który określał, jakie treści są potrzebne i jakie ma ich priorytet.

Propozycja ma na celu podjęcie współpracy z mentorami nad opracowaniem wytycznych dotyczących publikowania treści, opracowaniem planu rozwoju tematu, współpracą z mentorami i pomocą w ulepszaniu obecnych treści, a także tworzeniem nowych treści zgodnie z planem rozwoju.

2. Obecny stan książki interaktywnej

Od samego początku projektu w ramach Google Summer of Code w 2019 roku program przeszedł „niezarządzany rozwój” z pomocą społeczności studentów. Organizacja projektu jest tworzona głównie przez programistów, dlatego zaangażowali się oni w organizację GSoD w poszukiwaniu zewnętrznej pomocy w ulepszaniu Interaktywnej Książki. Deweloperzy projektu stwierdzili, że książka wymaga obecnie przeredagowania niektórych sekcji, dodania nowych treści oraz utworzenia bardziej szczegółowej i kompletnej książki. Poza tym zespół oczekuje, że po wprowadzeniu GSoD będzie mieć wytyczne dotyczące nowych publikacji oraz ogólny „główny plan” rozwoju treści.

3 Z czego pochodzi ta oferta

Ta propozycja przyczyni się do wspólnego tworzenia pierwszej wersji wytycznych dotyczących darowizn, aby zapewnić bardziej harmoniczny proces współpracy między współtwórcami, a tym samym zapewnić spójność treści. Znajdziesz w nim też plan rozwoju tematów książki. Uwzględniane będą również najpilniejsze dodania i zmiany zgodne z nowym planem rozwoju.

4. Analiza dostępnych alternatyw

Opracowano już kilka dopracowanych projektów open source o podobnych cechach, takich jak Wikibooki ([Help:Contributing], [Wikibooks:Policies i wytyczne]), OpenStreetMap ([Organized Edit nimi]) i The Linux Documents Project ([LDP Author Guide]). Te przykłady można wykorzystać do stworzenia wytycznych projektu na podstawie doświadczeń związanych z udanymi projektami open source.

Na potrzeby opracowywania planu rozwoju danego tematu możesz porównać sylabusy kursów otwartych (np. [MIT Open Courseware]) z poradami na temat obwodów logicznych cyfrowych, w tym książek otwartych, takich jak [Lessons In Electric Circuits -- Volume IV -Digital], [Wikibooks: Digital Electronics]

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

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

[Wytyczne dotyczące edycji zorganizowanej] https://wiki.osmfoundation.org/wiki/Organized_Editing_Guidelines

[Przewodnik po LDP dla autorów] 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: Układy cyfrowe] https://en.wikibooks.org/wiki/Digital_Circuits

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

5 Struktura proponowanej dokumentacji

Ta interaktywna książka może okazać się przydatna dla szerokiego grona odbiorców – od miłośników elektroniki i studentów szkolnictwa średniej po uczniów szkół średnich i innych pracowników potrzebujących odświeżenia lub zwiększenia umiejętności w zakresie obwodów logicznych.

Aby uwzględnić różnorodność w książce, zaproponowano im „wielowarstwową” strukturę, w której każda warstwa odpowiada coraz większemu poziomowi złożoności i teoretycznej szczegółowości treści.

Dlatego struktura dokumentacji rośnie w 2 wymiarach. Pierwszy z nich odpowiada logicznej lub tradycyjnej kolejności tematów w cyfrowych systemach logicznych, a drugi – poziomowi.

Na poniższej uporządkowanej liście przedstawiona jest proponowana dwuwymiarowa struktura. Standardowa sekwencja tematów jest przedstawiona na najwyższym poziomie. Dla uproszczenia każdy temat jest zdefiniowany tylko w 3 warstwach złożoności: poziomu podstawowego, średniego i zaawansowanego. Na każdym poziomie wyświetlają się treści związane z określonym tematem ogólnym.

  • Przedstawienie za pomocą liczb binarty:
    • Poziom podstawowy: liczby binarne, liczby ujemne, inne zasady, kodowanie.
    • Poziom średni: [brak konkretnych treści]
    • Poziom zaawansowany: moduły i pierścienie
  • Operacje matematyczne na liczbach binarnych:
    • Poziom podstawowy: dodawanie, odejmowanie, mnożenie, dzielenie
    • Średni poziom: algebra logiczna, funkcje logiczne
    • Poziom zaawansowany: inne algebry, rozkład Shannona
  • Kombinacyjne komponenty SSI:
    • Poziom podstawowy: symbole, bramy logiczne, tabele prawdy
    • Średni poziom: rodziny logiczne, uniwersalne bramy
    • Poziom zaawansowany: zachowanie związane z czasem (modele czasowe, zagrożenia)
  • Logika kombinacyjna:
    • Poziom podstawowy: opis funkcjonalny, implementacja
    • Średni poziom: funkcje kanoniczne, mapy k
    • Poziom zaawansowany: zmienne wprowadzone na mapie, Quine McCluskey, reprezentacja sześcianów binarnych
  • Kombinacja komponentów MSI:
    • Poziom podstawowy: MUX, DEMUX, koder, dekoder, połowa dodawania, pełny dodawanie
    • Średni poziom: funkcje oparte na MUX
    • Poziom zaawansowany: [brak konkretnych treści]
  • Kombinacyjne komponenty LSI:
    • Poziom podstawowy: ROM, ALU
    • Średni poziom: PLD (PLA, PAL, GAL)
    • Poziom zaawansowany: [brak konkretnych treści]
  • Sekwencyjne komponenty SSI:
    • Poziom podstawowy: zasuwy, klapki, sygnały zegara, diagramy czasu
    • Średni poziom: reakcje z pamięcią, systemy synchroniczne, systemy asynchroniczne
    • Poziom zaawansowany: [brak konkretnych treści]
  • Sekwencyjne komponenty MSI:
    • Poziom podstawowy: rejestry, liczniki
    • Poziom średni: [brak konkretnych treści]
    • Poziom zaawansowany: [brak konkretnych treści]
  • Projekt sekwencyjny:

    • Poziom podstawowy: [brak konkretnych treści]
    • Poziom średni: synteza sekwencyjna, FSM (Mealy, Moore), diagramy stanów, minimalizacja stanu, przypisanie stanów, warunki dotyczące rasy
    • Poziom zaawansowany: projekt oparty na pliku MSI, projekt oparty na LSI, diagramy przepływu, diagramy MDS

    Poziom podstawowy powinien umożliwiać użytkownikom zrozumienie działania obwodów logicznych i sposobów ich użycia, nie wymagając przy tym wiedzy matematycznej. Dzięki temu może być odpowiedni dla amatorskich hobbystów i uczniów szkół średnich. Jeśli ci użytkownicy mają niezbędne umiejętności i chcą je lepiej poznać, mogą pracować nad całą treścią lub tylko z częścią na poziomie średniego.

    Poziom średni powinien być taki sam pod względem treści i wymagań jak kurs wprowadzający w system logiki cyfrowej na poziomie wyższym.

    I na koniec, poziom zaawansowany obejmuje materiały, które można zwykle znaleźć na uzupełniających lub opcjonalnych kursach zaawansowanych z zakresu systemów cyfrowych na uczelniach.

    Ta proponowana struktura zostanie omówiona z mentorami na wczesnym etapie projektu (tydzień 3), który posłuży jako wstęp do opracowania długoterminowego planu rozwoju tematu.

    Proponowana struktura umożliwia wykorzystanie większości, a nawet wszystkich aktualnych treści w dokumentacji, która w razie potrzeby zostanie odpowiednio zmieniona i rozszerzona. Ponadto dla treści, które nie zostały jeszcze uwzględnione w istniejącej dokumentacji, zostaną utworzone nowe sekcje.

6 celów

  1. Przygotuj pierwszą wersję roboczą wytycznych dotyczących przekazywania treści w ramach projektu Książki interaktywnej.
  2. Zarysuj rozwój tematów książki.
  3. Modyfikowanie i zmienianie struktury bieżących materiałów.
  4. Twórz nowe treści zgodnie z planem rozwoju.

7 Oś czasu

Tydzień 1: (14–20 września) Przeanalizuj i omów z mentorami najlepsze wytyczne na podstawie przykładów innych projektów oraz doświadczenia uzyskane w tym projekcie. Tydzień 2: (21–27 września) Napisz wersję roboczą wytycznych Tydzień 3: (28 września–4 października) Omów z mentorami szkic planu rozwoju tematu. Tydzień 4: (5–11 października) opracowanie planu rozwoju. Tydzień 5–11: (12 października–29 listopada) napisz treści, które chcesz udostępnić, uwzględniając zmienione treści i nowe tematy. Tydzień 12: (30 listopada – 5 grudnia) przesłanie raportu dotyczącego projektu. Ocena projektu: (3 grudnia – 10 grudnia) – Ocena twórcy technicznego. – zgłoszenie do oceny mentora.

8 Dlaczego interaktywna książka CircuitVerse

Ze względu na światowy kryzys związany z pandemią COVID-19 zaczęłam szukać zasobów online, które mogłyby pomóc moim studentom na kursie z systemów logiki cyfrowej. Od kilkudziesięciu lat jestem zwolennikiem technologii open source Free-Libre, więc nadaję priorytet tego typu projektom. Udało mi się znaleźć symulator CircuitVerse i uznać, że to świetne narzędzie uzupełniające brak aktywności laboratoryjnej w związku z opracowanymi przez nasz uniwersyteckim symulatorem ochrony przed COVID-19. Podczas testowania symulatora udało mi się znaleźć także jego interaktywną książkę. Mimo że jej treść była jeszcze niewystarczająca jako główny punkt odniesienia dla pełnego kursu z systemów logiki cyfrowej, obecna zawartość kursu była prawidłowa i łatwa do zrozumienia, dlatego uwzględniłam ją w materiałach szkoleniowych.

Ponieważ korzystałem z ich symulatora i intensywnie korzystałem z książek, organizacja kontaktowała się ze mną, aby powiedzieć mi o GSoD. Zauważyłam możliwość udziału w projekcie bezpośrednio ze swojego obszaru wiedzy.

9 odwołań

  • [Pomoc Wikibooks:Współpraca],
  • [Wikibooks:Zasady i wytyczne]
  • [Wytyczne dotyczące edycji organizacji OpenStreetMap]
  • [Przewodnik dla autorów dotyczący projektu Linux Dokumentacja Project (LDP)]
  • [Program MIT Open Courseware wprowadzający do systemów cyfrowych]
  • [Lekcje dotyczące obwodów elektrycznych – część IV – cyfrowa]
  • [Wikibooks: Układy cyfrowe]
  • [Wikibooks: Elektronika cyfrowa]
  • [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

    [Wytyczne dotyczące edytowania organizacji OpenStreetMap] https://wiki.osmfoundation.org/wiki/Organized_Editing_Guidelines

    [Przewodnik dla autorów dotyczący projektu Linux Dokumentacja Project (LDP)] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

    [Program MIT Open Courseware IIntroduction Digital Systems Laboratory Syllabus] https://ocw.mit.edu/courses/Electrical-engineering-and-computer-science/6-111-i started-digital-systems-laboratory-spring-2006/syllabus/

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

    [Wikibooks: Układy cyfrowe] https://en.wikibooks.org/wiki/Digital_Circuits

    [Wikibooks: Elektronika cyfrowa] https://pl.wikibooks.org/wiki/Cyfrowa_elektronika

    [Projekt Brochure Linux] http://lbproject.sourceforge.net/