このページでは、Google Season of Docs に承認された技術文書作成プロジェクトの詳細について説明します。
プロジェクトの概要
- オープンソース組織:
- CircuitVerse
- テクニカル ライター:
- dvls
- プロジェクト名:
- CircuitVerse インタラクティブ ブックの統合と改善
- プロジェクトの長さ:
- 標準期間(3 か月)
プロジェクトの説明
1 件の概要
CircuitVerse は、ウェブベースのグラフィカル ユーザー インターフェースを使用して回路を設計、シミュレートできるプラットフォームを提供することを目的としたオープンソース プロジェクトです。ロジック シミュレータは、主に教育用に設計されていますが、CPU 実装を完了するまで設計に使用できます。ソフトウェアの技術ドキュメントのほか、オンラインのインタラクティブな書籍でデジタル ロジック設計について学ぶことができます。この書籍では、書籍内から直接回路を試してインタラクティブな体験をすることができます。
この書籍は開発の初期段階にあり、現在は関連するセクションが不足しています。また、さまざまなセクションをつなぐフローに関して、全体的な構造が緩く、より詳細なコンテンツが必要です。さらに、この組織によると、コントリビューターがプロジェクトにコラボレーションする際に役立つガイドラインはなく、どのコンテンツが必要で優先度が高いかについてコントリビューションをガイドする計画やロードマップもありません。
この提案の目的は、メンターと協力して投稿ガイドラインを作成し、トピック開発計画を作成し、現在のコンテンツの改善に貢献するとともに、開発計画に沿って新しいコンテンツを作成することです。
2 インタラクティブ ブックの現状
Google Summer of Code 2019 でプロジェクトが開始されて以来、学生コミュニティの支援を受けて「管理されていない成長」が見られるようになりました。プロジェクト組織自体は主にデベロッパーで構成されているため、インタラクティブ ブックの改善に向けて外部からの支援を求めるために GSoD に参加しています。プロジェクトのデベロッパーは、現在、この書籍の一部のセクションの書き換え、新しいコンテンツの追加、より詳細で包括的な内容の作成が必要であると判断しています。また、チームは GSoD 後に、新しい投稿のガイドラインと、コンテンツ開発の一般的な「マスタープラン」を策定することを予定しています。
3 この提案の貢献
この提案は、コントリビューターがより調和のとれたコラボレーション プロセスを確実にし、より一貫性のあるコンテンツにつながることを目的として、コントリビューション ガイドラインの最初のバージョンの共同作成に貢献します。書籍のトピックの開発計画も概説されます。新しい開発計画に基づく最も緊急の追加と変更も貢献します。
4 利用可能な代替案の分析
同様の特性を持つ成熟したオープンソース プロジェクトでは、Wikibooks([Help:Contributing]、[Wikibooks:Policies and guidelines])、OpenStreetMap([Organised Editing Guidelines])、The Linux Documentation Project([LDP Author Guide])など、ドキュメントの貢献ガイドラインがすでに策定されています。こうしたサンプルは、オープンソース プロジェクトの成功例に基づいてプロジェクトのガイドラインを作成する際に使用できます。
トピックの開発計画については、オープンコースのシラバス([MIT Open Courseware] など)やデジタル ロジック回路に関する参考書の比較が可能です。
[Help:Contributing] 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 提案されたドキュメントの構造
このインタラクティブな書籍は、電子回路の趣味を嗜むアマチュアや中等教育の生徒から、デジタル論理回路のスキルを更新または強化する必要がある高等教育の生徒や専門家まで、幅広いユーザーに役立つ可能性があります。
書籍ユーザーの不均一性に対処するために、「多層」構造が提案されています。各レイヤは、コンテンツの複雑さの増大と理論上の深さに対応しています。
したがって、ドキュメントの構造は 2 つのディメンションで拡張されます。最初のディメンションはデジタル論理システムのトピックの論理的な順序または従来の順序に対応し、2 番目のディメンションはレベルを表します。
次の構造化リストは、提案されている 2 次元構造を表しています。標準のトピック順序が最上位レベルに表示されます。わかりやすくするため、各トピックには、基本レベル、中レベル、上級レベルに対応する 3 つの複雑さレイヤのみが定義されています。各レベルには、特定の一般的なトピックに関連するコンテンツがリストされます。
- 2 進数を使用した表現:
- 基本レベル: 2 進数、負の数値、他の基数、コード化。
- 中レベル: [特定のコンテンツなし]
- 上級レベル: モジュールとリング
- 2 進数を使用した算術演算:
- 基本レベル: 加算、減算、乗算、除算
- 中級レベル: ブール代数、ブール関数
- 上級レベル: その他の代数、シャノンの分解
- 組み合わせ 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 日~ 10 月 11 日)開発計画を作成します。 5 ~ 11 週目:(10 月 12 日~ 11 月 29 日)コンテンツの再構成と新しいトピックで構成される投稿を作成します。週 12:(11 月 30 日~ 12 月 5 日)プロジェクト レポートの提出。 プロジェクト評価:(12 月 3 日~ 12 月 10 日) - 技術ライターの評価の提出。 - メンターの評価の提出。
8 CircuitVerse インタラクティブ ブックを使用する理由
COVID-19 の世界的な危機に伴い、デジタル論理システムに関する学部コースの学生をサポートするオンライン リソースを探し始めました。私は数十年にわたり Free-Libre Open Source テクノロジーを推進してきたため、このようなプロジェクトを優先しています。CircuitVerse シミュレータを見つけ、大学の COVID-19 抑制対策により不足している実験活動を補完するのに最適なツールだと判断しました。シミュレータをテストしているときに、インタラクティブ ブックも見つけました。デジタル論理システムに関する完全なコースのメイン リファレンスとしてはまだ十分ではありませんが、現在の内容は正確でわかりやすいため、学習リソースに含めました。
シミュレーターを使って集中的に予約していたため、GSoD について組織から連絡を受けました。自分の専門分野から直接プロジェクトに貢献できる機会が得られると思いました。
9 つの参照
- [Wikibooks ヘルプ:コンテンツの作成]
- [Wikibooks:ポリシーとガイドライン]
- [OpenStreetMap 組織的な編集ガイドライン]
- [The Linux Documentation Project(LDP)著者ガイド]
- [MIT Open Courseware Introductory Digital Systems Laboratory シラバス]
- [電気回路に関する教訓 -- ボリューム IV -デジタル]
- [Wikibooks: デジタル回路]
- [Wikibooks: デジタル エレクトロニクス]
[Linux パンフレット プロジェクト]
[Wikibooks ヘルプ:コンテンツの作成] 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
[The Linux Documentation Project(LDP)Author Guide] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html
[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: デジタル回路] https://en.wikibooks.org/wiki/Digital_Circuits
[Wikibooks: デジタル エレクトロニクス] https://en.wikibooks.org/wiki/Digital_Electronics
[The Linux Brochure Project] http://lbproject.sourceforge.net/