Questa pagina contiene i dettagli di un progetto di scrittura tecnica accettato per la stagione di Documenti Google.
Riepilogo del progetto
- Organizzazione open source:
- CircuitVerse
- Redattore tecnico:
- dvls
- Nome progetto:
- Consolidamento e miglioramenti del libro interattivo CircuitVerse
- Durata del progetto:
- Durata standard (3 mesi)
Project description
1 abstract
CircuitVerse è un progetto open source che mira a fornire una piattaforma in cui è possibile progettare e simulare circuiti utilizzando un'interfaccia utente grafica basata sul web. Il simulatore di logica può essere utilizzato per progettare fino a implementazioni complete della CPU, anche se è progettato principalmente per l'uso didattico. Oltre alla documentazione tecnica del software, un libro interattivo online guida l'utente nell'apprendimento della progettazione della logica digitale. Il libro consente all'utente di provare i circuiti direttamente al suo interno per un'esperienza interattiva.
Il libro è in una fase iniziale di sviluppo e al momento manca di alcune sezioni pertinenti, la struttura generale è poco chiara in termini di flusso che collega le diverse sezioni e richiede contenuti più dettagliati. Inoltre, secondo l'organizzazione, non esistono linee guida per aiutare i collaboratori a collaborare al progetto né un piano o una roadmap per orientare i contributi in merito ai contenuti di cui c'è bisogno e alla relativa priorità.
Lo scopo di questa proposta è collaborare con i tutor per creare linee guida per i contributi, produrre un piano di sviluppo degli argomenti e contribuire al miglioramento dei contenuti attuali, nonché creare nuovi contenuti in base al piano di sviluppo.
2 Stato attuale del libro interattivo
Dal lancio del progetto in Google Summer of Code 2019, ha registrato una "crescita non gestita ", con l'aiuto della community degli studenti. L'organizzazione del progetto è composta principalmente da sviluppatori, che hanno partecipato al GSoD per cercare aiuto esterno per migliorare il Libro interattivo. Gli sviluppatori del progetto hanno rilevato che il libro richiede attualmente la riscrittura di alcune sezioni, l'aggiunta di nuovi contenuti e la sua evoluzione in un prodotto più dettagliato e completo. Inoltre, dopo la Giornata mondiale del servizio, il team prevede di avere linee guida per i nuovi contributi, nonché un "master plan" generale per lo sviluppo dei contenuti.
3 Qual è il contributo di questa proposta
Questa proposta contribuirà alla co-creazione di una prima versione delle linee guida per i contributi, con l'obiettivo di garantire un processo più armonioso di collaborazione per i collaboratori, in modo da ottenere contenuti più coerenti. Verrà inoltre delineato un piano di sviluppo per gli argomenti del libro. Verranno apportate anche le aggiunte e le modifiche più urgenti in base al nuovo piano di sviluppo.
4 Analisi delle alternative disponibili
Diversi progetti open source maturi con caratteristiche simili hanno già sviluppato linee guida per i contributi alla documentazione, come Wikibooks ("[Guida per gli autori di Wikibooks]", "[Wikibooks: Norme e linee guida]"), OpenStreetMap ("[Linee guida per l'editing organizzato]") o The Linux Documentation Project ("[LDP Author Guide]"). Questi esempi possono essere utilizzati per creare le linee guida del progetto in base all'esperienza di progetti open source di successo.
Per il piano di sviluppo dell'argomento è possibile confrontare i programmi dei corsi aperti (ad es. [MIT Open Courseware]) e dei manuali di riferimento sui circuiti logici digitali, inclusi i libri aperti come [Lessons In Electronic Circuits - Volume IV -Digital], [Wikibooks: Digital Circuits] e [Wikibooks: Digital Electronics].
[Guida:Contributi] https://it.wikibooks.org/wiki/Guida:_Contributi
[Wikibooks:Norme e linee guida] https://it.wikibooks.org/wiki/Wikibooks:Norme_e_linee_guida
[Linee guida per l'editing organizzato] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines
[LDP Author Guide] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html
[MIT Open Courseware] https://ocw.mit.edu/
[Lezioni sui circuiti elettrici - Volume IV - Digitale] https://www.iBiblioteca.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 Struttura della documentazione proposta
Il libro interattivo ha il potenziale per essere utile a un pubblico ampio, dagli appassionati di elettronica amatoriale agli studenti della scuola secondaria, fino agli studenti dell'istruzione terziaria e ai professionisti che hanno bisogno di aggiornare o rafforzare le proprie competenze in materia di circuiti di logica digitale.
Per far fronte all'eterogeneità degli utenti del libro, viene proposta una struttura "multilivello", in cui ogni livello corrisponde a un livello crescente di complessità e profondità teorica dei contenuti.
Pertanto, la struttura della documentazione cresce in due dimensioni: la prima dimensione corrisponde alla sequenza logica o tradizionale degli argomenti nei sistemi di logica digitale, mentre la seconda dimensione rappresenta il livello.
Nel seguente elenco strutturato è rappresentata la struttura bidimensionale proposta. La sequenza standard di argomenti viene presentata nel livello più alto. Per semplicità, per ogni argomento sono definiti solo tre livelli di complessità, corrispondenti ai livelli di base, medio e avanzato. Per ogni livello sono elencati i contenuti correlati all'argomento generale specifico.
- Rappresentazione utilizzando numeri binari:
- Livello base: Numeri binari, Quantità negative, Altre basi, Codifica.
- Livello medio: [nessun contenuto specifico]
- Livello avanzato: moduli e anelli
- Operazioni matematiche con numeri binari:
- Livello di base: addizione, sottrazione, moltiplicazione, divisione
- Livello medio: algebra booleana, funzioni booleane
- A livello avanzato: altre algebre, decomposizione di Shannon
- Componenti SSI combinati:
- Livello base: simboli, porte logiche, tabelle di verità
- Livello medio: famiglie di logica, gate Universal
- Livello avanzato: comportamento temporale (modelli a tempo, pericoli)
- Progettazione di logica combinatoria:
- Livello base: descrizione funzionale, implementazione
- Livello medio: funzioni canoniche, k-map
- A livello avanzato: variabili inserite nella mappa, Quine McCluskey, rappresentazione di cubi binari
- Componenti MSI combinati:
- A livello di base: MUX, DEMUX, Encoder, Decoder, sommatore a metà, sommatore completo
- Livello medio: funzioni basate su MUX
- Livello avanzato: [nessun contenuto specifico]
- Componenti LSI combinati:
- Livello di base: ROM, ALU
- Livello medio: PLD (ASP, PAL, GAL)
- Livello avanzato: [nessun contenuto specifico]
- Componenti SSI sequenziali:
- Livello di base: latch, flip-flop, segnali di clock, diagrammi temporali
- Livello medio: feedback sulla memoria, sistemi sincroni, sistemi asincroni
- Livello avanzato: [nessun contenuto specifico]
- Componenti MSI sequenziali:
- Livello di base: registri, contatori
- Livello medio: [no specific content]
- Livello avanzato: [nessun contenuto specifico]
Progettazione sequenziale:
- Livello base: [no specific content]
- Livello medio: sintesi sequenziale, FSM (Mealy, Moore), diagrammi di stato, minimizzazione degli stati, assegnazione degli stati, condizioni di gara
- A livello avanzato: progettazione basata su MSI, progettazione basata su LSI, diagrammi di flusso, diagrammi MDS
Il livello di base dovrebbe consentire agli utenti di comprendere il funzionamento e l'utilizzo dei circuiti di logica digitale, senza richiedere conoscenze di matematica superiore. Potrebbe quindi essere adatto a dilettanti e a studenti di istruzione secondaria e superiore. Se questi utenti dispongono delle competenze necessarie e vogliono acquisire una conoscenza più approfondita, possono utilizzare alcuni o tutti i contenuti del livello intermedio.
Il livello medio dovrebbe essere equivalente, in termini di contenuti e requisiti, a un corso introduttivo di livello terziario nel sistema di logica digitale.
Infine, il livello avanzato include contenuti che di solito si trovano nei corsi avanzati complementari o facoltativi dei sistemi digitali nelle università.
Questa struttura proposta verrà discussa con i mentor nella fase iniziale del progetto (settimana 3) e poi utilizzata come input per delineare un piano di sviluppo degli argomenti a lungo termine.
La struttura proposta può utilizzare la maggior parte, se non tutti, i contenuti attuali della documentazione, che verranno rivisti ed estesi o corretti di conseguenza, se necessario. Inoltre, verranno scritte nuove sezioni per i contenuti non ancora coperti dalla documentazione esistente.
6 obiettivi
- Crea una prima bozza delle linee guida per i contributi per il progetto di libro interattivo.
- Delinea uno sviluppo per gli argomenti del libro.
- Riscrivere e ristrutturare i contenuti attuali.
- Creare nuovi contenuti in base al piano di sviluppo.
7 Sequenza temporale
Settimana 1: (14 settembre - 20 settembre) analizza e discuti con i mentori le migliori linee guida basate sugli esempi di altri progetti e sull'esperienza acquisita finora nel progetto. Settimana 2: (21-27 settembre) Scrivi la bozza delle linee guida Settimana 3: (28 settembre - 4 ottobre) Discuti la bozza del piano di sviluppo degli argomenti con i mentor. Settimana 4 (5-11 ottobre): scrivi il piano di sviluppo. Settimane dalla 5 all'11: (12 ott - 29 nov) scrivi i contributi, costituiti da contenuti ristrutturati e nuovi argomenti. Settimana 12: (30 novembre - 5 dicembre) Invio del report del progetto. Valutazione del progetto: (3 dicembre - 10 dicembre) - Invio della valutazione del redattore tecnico. - Invio valutazione dei mentori.
8 Libro interattivo Perché il CircuitVerse
A causa della crisi globale del COVID-19, ho iniziato a cercare risorse online che potessero aiutare i miei studenti di un corso di laurea in sistemi di logica digitale. Sono un sostenitore delle tecnologie Free-Libre Open Source da diversi decenni, quindi do la priorità a questo tipo di progetti. Ho trovato il simulatore CircuitVerse e ho deciso che era un ottimo strumento per compensare la mancanza di attività di laboratorio a causa delle misure di contenimento del COVID-19 della nostra università. Durante il test del simulatore, ho trovato anche il loro Interactive Book e, anche se i contenuti non erano ancora sufficienti come riferimento principale per un corso completo sui sistemi di logica digitale, i suoi contenuti attuali erano corretti e facili da comprendere, quindi li ho inclusi nelle risorse di apprendimento.
Dato che utilizzavo intensamente il loro simulatore e il loro libro, l'organizzazione mi ha contattato per informarmi del GSoD. Ho visto in questa opportunità un modo per dare il mio contributo al progetto direttamente dalla mia area di competenza.
9 Riferimenti
- [Guida di Wikibooks:Contributi],
- [Wikibooks:Norme e linee guida]
- [Linee guida per la modifica organizzata di OpenStreetMap]
- [The Linux Documentation Project (LDP) Author Guide]
- [Syllabus Introductory Digital Systems Laboratory del MIT Open]
- [Lessons In Electric Circuits -- Volume IV -Digital]
- [Wikibooks: Digital Circuits]
- [Wikibooks: Digital Electronics]
[The Linux Brochure Project]
[Guida di Wikibooks:Contributi] https://it.wikibooks.org/wiki/Guida:_Contributi
[Wikibooks:Norme e linee guida] https://it.wikibooks.org/wiki/Wikibooks:Norme_e_linee_guida
[Linee guida per l'editing organizzato di OpenStreetMap] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines
[Guida per gli autori del progetto di documentazione di 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: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits
[Wikibooks: Digital Electronics] https://en.wikibooks.org/wiki/Digital_Electronics
[The Linux Brochure Project] http://lbproject.sourceforge.net/