פרויקט CircuitVerse

בדף הזה מופיעים הפרטים של פרויקט כתיבה טכנית שהתקבל בעונה של Docs ל-Google Docs.

סיכום הפרויקט

ארגון קוד פתוח:
CircuitVerse
כותבים טכניים:
קובצי DVD
שם הפרויקט:
איחוד ושיפורים של ספרים אינטראקטיביים של CircuitVerse
אורך הפרויקט:
אורך סטנדרטי (3 חודשים)

תיאור הפרויקט

תקציר אחד

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]) לבין ספרי עזר בנושא מעגלים לוגיים דיגיטליים, כולל ספרים פתוחים כמו [Lessons In Electric Circuits -- Volume IV -Digital],‏ [Wikibooks: Digital Circuits] ו-[Wikibooks: Digital Electronics].

[עזרה:תרומה] https://en.wikibooks.org/wiki/Help:Contributing

[Wikibooks:Policies and guidelines] 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: Digital Electronics] https://en.wikibooks.org/wiki/Digital_Electronics

5 המבנה של המסמכים המוצעים

הספר האינטראקטיבי יכול להיות שימושי לקהל רחב, החל מחובבי אלקטרוניקה חובבים ותלמידים בחינוך העל-יסודי ועד לסטודנטים בחינוך העל-תיכוני ואנשי מקצוע שצריכים לרענן או לחזק את הכישורים שלהם במעגלים לוגיים דיגיטליים.

כדי להתמודד עם ההטרוגניות של משתמשי הספר, מוצע מבנה "רב-שכבתי", שבו כל שכבה תואמת לרמה הולכת וגוברת של מורכבות ועומק תיאורטי של התוכן.

לכן מבנה המסמך גדל בשני מאפיינים. המימד הראשון תואם לרצף הלוגי או המסורתי של הנושאים במערכות לוגיקה דיגיטליות, והמאפיין השני מייצג את הרמה.

ברשימה המובנית הבאה מוצג המבנה הדו-מימדי המוצע. רצף הנושאים הרגיל מוצג ברמה העליונה. כדי לפשט את הדברים, מוגדרות רק שלוש רמות מורכבותיות לכל נושא, בהתאם לרמות הבסיסית, הבינונית והמתקדמת. בכל רמה מפורטים התוכן שקשור לנושא הכללי הספציפי.

  • ייצוג באמצעות מספרים בינאריים:
    • רמה בסיסית: מספרים בינאריים, כמויות שליליות, בסיסים אחרים, קידוד.
    • רמה בינונית: [no specific content]
    • רמה מתקדמת: מודולים וטבעות
  • פעולות מתמטיות עם מספרים בינאריים:
    • רמה בסיסית: חיבור, חיסור, כפל, חלוקה
    • רמה בינונית: אלגברה בוליאנית, פונקציות בוליאניות
    • רמה מתקדמת: אלגברות אחרות, פירוק Shannon
  • רכיבי SSI משולבים:
    • רמה בסיסית: סמלים, שערים לוגיים, טבלאות אמת
    • רמה בינונית: משפחות לוגיות, שערים אוניברסליים
    • רמה מתקדמת: התנהגות לאורך זמן (מודלים של תזמון, סיכונים)
  • תכנון לוגיקה משולבת:
    • ברמה הבסיסית: תיאור פונקציונלי, הטמעה
    • רמה בינונית: פונקציות קנוניקליות, מפות k
    • רמה מתקדמת: משתנים שהוזנו במפה, Quine McCluskey, ייצוג של קוביות בינאריות
  • רכיבי MSI משולבים:
    • ברמה הבסיסית: MUX, ‏ DEMUX, ‏ מקודד, מפענח, מחבר חצי, מחבר מלא
    • רמה בינונית: פונקציות מבוססות-MUX
    • רמה מתקדמת: [no specific content]
  • רכיבי LSI משולבים:
    • רמה בסיסית: ROM, ALU
    • רמה בינונית: מודעות דינמיות לרשת המדיה (PLA, ‏ PAL, ‏ GAL)
    • רמה מתקדמת: [ללא תוכן ספציפי]
  • רכיבי SSI רציפים:
    • רמה בסיסית: מנעולים, מפספים, אותות שעון, תרשימי זמן
    • רמה בינונית: משוב זיכרון, מערכות סינכרוניות, מערכות אסינכרוניות
    • רמה מתקדמת: [no specific content]
  • רכיבי MSI רצופים:
    • רמה בסיסית: מרשם, ספירה
    • רמה בינונית: [no specific content]
    • רמה מתקדמת: [no specific content]
  • עיצוב רצוף:

    • רמה בסיסית: [no specific content]
    • רמה בינונית: סינתזה רציפה, FSM (Mealy, ‏ Moore), תרשימי מצב, צמצום מצב, הקצאת מצב, תנאי מרוץ
    • רמה מתקדמת: עיצוב מבוסס MSI, עיצוב מבוסס LSI, דיאגרמות זרימה, דיאגרמות MDS

    ברמה הבסיסית, המשתמשים אמורים להבין איך מעגלים לוגיים דיגיטליים פועלים ואיך משתמשים בהם, בלי צורך בידע במתמטיקה מתקדמת. לכן, הוא יכול להתאים לחובבים ולתלמידים בחינוך העל-יסודי. אם למשתמשים האלה יש את הכישורים הנדרשים והם רוצים להבין את הנושא לעומק, הם יכולים לעבוד עם חלק מהתכנים ברמה הבינונית או עם כולם.

    התוכן והדרישות ברמה הבינונית צריכים להיות זהים לתוכן ולדרישות של קורס מבוא למערכת לוגית דיגיטלית ברמת ההשכלה הגבוהה.

    לבסוף, ברמה המתקדמת נכללים תכנים שאפשר למצוא בדרך כלל בקורסים משלימים או אופציונליים מתקדמים של מערכות דיגיטליות באוניברסיטאות.

    המבנה המוצע ידון עם המנטורים בשלב מוקדם של הפרויקט (שבוע 3), ולאחר מכן ישמש כמקור מידע ליצירת תוכנית פיתוח לטווח ארוך של הנושא.

    המבנה המוצע יכול להשתמש ברוב התוכן הנוכחי של המסמכים, אם לא בכל התוכן, שיעבור תיקון, הרחבה או תיקון בהתאם לצורך. בנוסף, נוסיף קטעים חדשים לתוכן שעדיין לא מופיע במסמכי העזרה הקיימים.

6 יעדים

  1. יצירת טיוטה ראשונה של הנחיות לתרומות לפרויקט הספר האינטראקטיבי.
  2. כותבים סקירה כללית של התפתחות הנושאים בספר.
  3. שכתוב של התוכן הקיים ושינוי המבנה שלו.
  4. יוצרים תוכן חדש בהתאם לתוכנית הפיתוח.

7 ציר זמן

שבוע 1: (14 בספטמבר עד 20 בספטמבר) ניתוח והתייעצות עם המנטורים לגבי ההנחיות הטובות ביותר על סמך דוגמאות מפרויקטים אחרים וגם על סמך הניסיון שנצבר עד כה בפרויקט. שבוע 2: (21 בספטמבר עד 27 בספטמבר) כתיבת טיוטת ההנחיות שבוע 3: (28 בספטמבר עד 4 באוקטובר) דיון עם המנטורים על טיוטת התוכנית לפיתוח הנושא. שבוע 4: (5 באוקטובר עד 11 באוקטובר) כתיבת תוכנית הפיתוח. שבוע 5 עד 11: (12 באוקטובר עד 29 בנובמבר) כתיבת התוכן, שמורכב מתוכן שעבר שינוי מבני ומנושאים חדשים. שבוע 12: (30 בנובמבר עד 5 בדצמבר) הגשת דוח הפרויקט. הערכת פרויקט: (3 בדצמבר עד 10 בדצמבר) - הגשת הערכה של הכותב הטכני. - שליחת ההערכה של המנטורים.

8 למה כדאי להשתמש בספר האינטראקטיבי CircuitVerse

בעקבות המשבר הגלובלי של נגיף הקורונה (COVID-19), התחלתי לחפש משאבים אונליין שיעזרו לתלמידים שלי בקורס לתואר ראשון בנושא מערכות לוגיות דיגיטליות. אני תומך בטכנולוגיות של קוד פתוח (Free-Libre Open Source) כבר כמה עשורים, ולכן אני נותן עדיפות לפרויקטים מהסוג הזה. מצאתי את הסימולטור של CircuitVerse והחלטתי שהוא כלי מצוין להשלמת הפעילויות במעבדה בגלל האמצעים לבלימת נגיף הקורונה (COVID-19) באוניברסיטה שלנו. בזמן הבדיקה של הסימולטור גיליתי גם את הספר האינטראקטיבי שלהם. למרות שהתוכן עדיין לא מספיק כמקור העיקרי לקורס מלא בנושא מערכות לוגיות דיגיטליות, התוכן הנוכחי שלו נכון וקל להבנה, ולכן הוספתי אותו למקורות הלמידה.

מאחר שהשתמשתי במאמן ובספר שלהם באופן אינטנסיבי, הארגון יצר איתי קשר כדי לעדכן אותי על GSoD. ראיתי בכך הזדמנות לתרום לפרויקט ישירות מתחום המומחיות שלי.

9 מקורות מידע

  • [עזרה בנושא Wikibooks:תרומה],
  • [Wikibooks:Policies and guidelines]
  • [הנחיות לעריכה מאורגנת של OpenStreetMap]
  • [מדריך לכותבים של פרויקט Linux Documentation Project‏ (LDP)]
  • [תוכנית הלימודים של MIT Open Courseware בנושא מעבדה למערכות דיגיטליות למתחילים]
  • [Lessons In Electric Circuits -- Volume IV -Digital]
  • [Wikibooks: Digital Circuits]
  • [Wikibooks: Digital Electronics]
  • [The Linux Brochure Project]

    [עזרה בנושא Wikibooks:תרומה] https://en.wikibooks.org/wiki/Help:Contributing

    [Wikibooks:Policies and guidelines] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [הנחיות לעריכה מאורגנת של OpenStreetMap] https://wiki.osmfoundation.org/wiki/Organized_Editing_Guidelines

    [מדריך למחברי מסמכים בפרויקט Linux Documentation Project‏ (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

    [פרויקט Linux Brochure] http://lbproject.sourceforge.net/