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
- Utwórz pierwszą wersję wytycznych dotyczących publikowania treści w ramach projektu Książka interaktywna.
- Zarysuj tematykę książki.
- przeredagować i zmienić strukturę obecnych treści;
- 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/