本頁面包含 Google 技術文件季度接受的技術寫作專案詳細資料。
專案摘要
- 開放原始碼組織:
- CircuitVerse
- 技術撰稿人:
- dvls
- 專案名稱:
- CircuitVerse 互動式書籍整合與改善措施
- 專案長度:
- 標準長度 (3 個月)
Project description
1 個摘要
CircuitVerse 是開放原始碼專案,旨在提供一個平台,讓使用者透過網頁式圖形使用者介面設計和模擬電路。邏輯模擬工具可用於設計完成 CPU 實作程序,不過主要是為教育用途所設計。除了軟體的技術文件外,線上互動式書籍也能引導使用者學習數位邏輯設計。使用者可以直接在書中試用電路,體驗互動式體驗。
這本書目前處於開發初期階段,缺少一些相關章節,整體結構在連結不同章節的流程方面較為鬆散,且需要更詳細的內容。此外,該機構並未制定任何準則來協助貢獻者合作專案,也未提供計畫或發展藍圖來引導貢獻者需要的內容和優先順序。
這項提案的目標是與導師合作,建立貢獻指南、製作主題開發計畫,並協助改善目前的內容,以及根據開發計畫建立新內容。
2 互動式書籍的目前狀態
自 2019 年 Google 程式設計夏令營啟動以來,在學生社群的協助下,這個專案展現了「未經管理的成長」現象。專案機構本身主要是由開發人員成立,因此他們參與了 GSoD 尋求外部協助,協助改善互動式書籍。專案的開發人員發現,該書目前要求重新編寫某些區段、新增內容並提供更完整、更全面的內容。此外,團隊也希望在 GSoD 後,針對新內容貢獻提供規範,以及內容開發的一般「總體計畫」。
3 這項提案的貢獻
這項提案將共同製作初版捐款指南,旨在確保貢獻者的協作程序能更協調,創造出更一致的內容。並概述書籍主題的開發計畫。並根據新開發計畫提供最迫切的新增項目和變更。
4 分析可用的替代方案
幾個成熟的開放原始碼專案具有類似特徵,並已制定說明文件的貢獻指南,例如 Wikibooks ([Help:Contributing]、[Wikibooks:Policies and guidelines])、OpenStreetMap ([Organised Editing Guidelines]) 或 Linux 說明文件專案 ([LDP Author Guide])。這些範例可用於根據成功的開放原始碼專案經驗,建立專案規範。
針對主題的開發計畫,您可以比較開放課程的課程大綱 (例如 [MIT Open Courseware]),以及數位邏輯電路的參考書,包括開放書籍,例如 [Lessons In Electric Circuits -- Volume IV -Digital]、[Wikibooks: Digital Circuits] 和 [Wikibooks: Digital Electronics]。
[說明:貢獻] https://en.wikibooks.org/wiki/Help:Contributing
[Wikibooks:政策和規範] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines
[有組織的編輯指南] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines
[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:數位電路] https://en.wikibooks.org/wiki/Digital_Circuits
[Wikibooks:數位電路] https://en.wikibooks.org/wiki/Digital_Electronics
5 建議說明文件的結構
這本互動式書籍可能會對廣泛的讀者有所助益,包括業餘電子愛好者、中等教育學生、大專院校學生,以及需要更新或加強數位邏輯電路技能的專業人士。
為瞭解決書籍使用者的異質性問題,我們提議採用「多層」結構,讓每一層內容對應內容的複雜度和理論深度增加。
因此,說明文件的結構會以兩個維度擴增,第一個維度對應於數位邏輯系統中主題的邏輯或傳統順序,而第二個維度則代表層級。
在下列結構化清單中,我們提出了兩維結構的示例。標準主題序列會顯示在最頂層。為求簡單,每個主題只定義三個複雜度層級,分別對應基本、中等和進階等級。系統會針對每個層級列出與特定主題相關的內容。
- 使用二進位數字的表示法:
- 基礎級:二進制數、負數、其他進位制、編碼。
- 中等程度:[無具體內容]
- 進階:模組和環
- 採二進位數字的數學運算:
- 基本層級:加法、減法、乘法、除法
- 中級:布林代數、布林函式
- 進階:其他代數、Shannon 分解
- 組合式 SSI 元件:
- 基礎級:符號、邏輯閘、真值表
- 中級:邏輯家族、通用閘
- 進階層級:時間行為 (時間模型、危險)
- 結合邏輯設計:
- 基本層級:功能說明、實作
- 中級:標準函式、k 地圖
- 進階層級:透過對應變數、 Quine McCluskey、二進位立方體表示法
- 結合 MSI 元件:
- 基本層級:MUX、DEMUX、編碼器、解碼器、半加法器、完整加法器
- 中等層級:以 MUX 為基礎的函式
- 進階:[無特定內容]
- 組合式 LSI 元件:
- 基本等級:ROM、ALU
- 中等級別:PLD (PLA、PAL、GAL)
- 進階層級:[無特定內容]
- 序列 SSI 元件:
- 基礎級:鎖存器、觸發器、時脈信號、時間圖表
- 中級:記憶體回饋、同步系統、非同步系統
- 進階:[無特定內容]
- 依序 MSI 元件:
- 基本層級:暫存器、計數器
- 中等程度:[無具體內容]
- 進階:[無特定內容]
順序設計:
- 基本程度:[無特定內容]
- 中級:順序合成、FSM (Mealy、Moore)、狀態圖表、狀態最小化、狀態指派、競爭狀態
- 進階:以 MSI 為基礎的設計、以 LSI 為基礎的設計、流程圖、MDS 圖
基本級別應讓使用者瞭解數位邏輯電路的運作方式和使用方式,無須具備高等數學知識。因此,這款相機可能適合業餘愛好者和中等教育學生使用。如果這些使用者具備必要技能,且想進一步瞭解內容,可以處理中級內容的部分或全部內容。
中等等級的內容和需求應等同於數位邏輯系統的高等教育等級入門課程。
最後,進階級別包含大學數位系統的補充或選修進階課程內容。
我們會在專案初期 (第 3 週) 與導師討論這個建議架構,並將其用於說明長期主題開發計畫。
建議的結構可使用大部分 (如果不是全部) 現有的說明文件內容,並視需要予以修訂及擴充或修正。此外,我們也會針對現有文件未涵蓋的內容撰寫新章節。
6 個目標
- 為互動式書籍專案製作貢獻指南初稿。
- 列出書籍主題的開發內容。
- 重寫並重新架構現有內容。
- 根據開發計畫建立新內容。
7 時間軸
第 1 週:(9 月 14 日至 9 月 20 日) 分析並與導師討論,根據其他專案的範例以及在專案中獲得的經驗,找出最佳指南。第 2 週:(9 月 21 日至 9 月 27 日) 撰寫指南草稿 第 3 週:(9 月 28 日至 10 月 4 日) 與導師討論主題開發計畫草稿 第 4 週:(10 月 5 日至 11 日) 撰寫開發計畫。 第 5 到 11 週:(10 月 12 日 - 29 日) 撰寫貢獻,包含重新結構化的內容和新主題。第 12 週:(11 月 30 日至 12 月 5 日) 提交專案報告。 專案評估:(12 月 3 日至 12 月 10 日) - 技術作家提交的評估內容。 - 導師提交的評估。
8 CircuitVerse 互動式書籍的優點
由於 COVID-19 全球危機影響,我開始尋找線上資源,來協助大學生學習數位邏輯系統。我已推廣 Free-Libre 開放原始碼技術數十年,因此會優先考量這類專案。我發現 CircuitVerse 模擬器,並認為這是很好的工具,可彌補大學因 COVID-19 防疫措施而無法進行實驗室活動的缺憾。在測試模擬器時,我還發現了他們的互動式書籍,雖然內容尚不足以做為數位邏輯系統完整課程的主要參考資料,但目前的內容正確且易於理解,因此我將其納入學習資源。
我當時使用他們的模擬器,大量預訂了 GSoD 資訊,因此機構與我聯絡。我認為這是個機會,可以直接從我的專業領域為專案做出貢獻。
9 個參考資料
- [Wikibooks 說明:貢獻],
- [Wikibooks:政策與規範]
- [OpenStreetMap 有組織的編輯指南]
- [Linux 說明文件專案 (LDP) 作者指南]
- [MIT 開放課程軟體入門數位系統實驗室研究室]
- [電路傳授課 -- 第 IV - 數位]
- [Wikibooks:數位電路]
- [Wikibooks:數位電子產品]
[Linux 手冊專案]
[Wikibooks Help:Contributing] https://en.wikibooks.org/wiki/Help:Contributing
[Wikibooks:政策與規範] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines
[OpenStreetMap 有組織的編輯指南] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines
[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:數位迴路] https://en.wikibooks.org/wiki/Digital_Circuits
[Wikibooks:數位電路] https://en.wikibooks.org/wiki/Digital_Electronics
[The Linux Brochure Project] http://lbproject.sourceforge.net/