לוגו של האוניברסיטה העברית בירושלים

סילבוס

סדנה במערכות חישוב מ-NAND ל-TETRIS - 67925
English
הדפסה
 
גרסת PDF
תאריך עדכון אחרון 10-03-2025
נקודות זכות באוניברסיטה העברית: 5

תואר: בוגר

היחידה האקדמית שאחראית על הקורס: מדעי המחשב

סמסטר: סמסטר א' או / ו ב'

שפת ההוראה: אנגלית

קמפוס: קרית א"י ספרא

מורה אחראי על הקורס (רכז): מר יצחק וקנין

דוא"ל של המורה האחראי על הקורס: nand2tet@gmail.com

שעות קבלה של רכז הקורס: השעות מפורטות במודל

מורי הקורס:
מר יצחק וקנין

תאור כללי של הקורס:
בקורס זה נבנה מערכת מחשב שלמה, חומרה ותוכנה כאחד.

בשלב הראשון נתחיל משערי NAND ו-D-FLIP-FLOP, ומהם נבנה את כל רכיבי החומרה של המחשב — מחשב פשוט אך שלם. נוכל לתכנת מחשב זה באמצעות שפת סף (Assembly) שבעבורה נכתוב מתרגם (Assembler). בהמשך, נפתח מהדר (Compiler) לשפת על (High-level language) פשוטה מבוססת עצמים (Object-based), וזאת באמצעות מכונה וירטואלית (Virtual Machine) מבוססת מחסנית.

לבסוף, נכתוב ספריית תוכנה שתשמש כמערכת הפעלה בסיסית למחשב, ועל גביה נפתח משחק מחשב פשוט.

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

הסטודנטיות.ים יסיימו את הקורס עם הבנה כוללת של מערכת מחשב — הבנה שתוכל לשמש בסיס להעמקה בנושאים אחרים במדעי המחשב.

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

הקורס פתוח לסטודנטיות.ים משנה ב' ומעלה בתואר בוגר.

מבנה הקורס:
פרק 0: מאחורי הקלעים
פרק מבוא המציג משחק מחשב (Pong) אשר רץ על מחשב, ומעלה את השאלה: אילו רכיבי חומרה ותוכנה דרושים כדי לאפשר זאת? הפרק יסקור את מבנה המערכת כולה.

פרק 1: לוגיקה בוליאנית
באמצעות שערי NAND בלבד, נבנה שערים לוגים בסיסיים (AND, OR, NOT, XOR), מרבבים (Multiplexers) ורכיבים מרובי סיביות נוספים. השבבים ייבנו בשפת HDL (Hardware Description Language) וייבדקו בסימולטור ייעודי.

פרק 2: אריתמטיקה בוליאנית
נפתח יחידות חישוב בסיסיות כדוגמת: חצי מחבר, מחבר מלא, מחבר מקבילי, ולבסוף את היחידה המרכזית - ALU (Arithmetic Logic Unit).

פרק 3: לוגיקה סדרתית
באמצעות D Flip-Flops, נבנה רכיבי זיכרון: רגיסטרים, זיכרון RAM, ומונה שישמש כמונה התוכנית (Program Counter).

פרק 4: שפת מכונה
מבוא לשפת המכונה Hack — שפת סף פשוטה שתוכננה במיוחד לארכיטקטורה הנבנית בקורס.

פרק 5: ארכיטקטורת מחשב
אינטגרציה של כל הרכיבים לכדי מחשב שלם: מעבד (CPU), זיכרון, וממשקי קלט/פלט. נלמד כיצד התוכניות רצות על המחשב וכיצד הוא מתקשר למסך ולמקלדת.

פרק 6: מתרגם (Assembler)
בניית מתרגם שממיר קוד אסמבלי של Hack לקוד בינארי. המתרגם ייכתב לרוב בפייתון, אך ניתן ליישם זאת גם בשפות מונחות עצמים אחרות.

פרקים 7–8: מכונה וירטואלית (Virtual Machine)
תכנון ובניית VM מבוססת מחסנית לצד המהדר שלה:
פרק 7: יעסוק בעיקרו בנושא חישוב במחסנית (אריתמטי ולוגי).
פרק 8: קריאות פונקציות וניהול מחסנית הקריאות (Call Stack).

פרק 9: תכנות בשפת על (Jack)
היכרות עם Jack — שפת תכנות מונחית עצמים, פשוטה ודומה ל-Java. נכתוב משחקים אינטראקטיביים כמו Pong ו-Tetris.

פרקים 10–11: מהדר (Compiler)
פיתוח מהדר לשפת Jack:
פרק 10: ניתוח תחבירי (Syntax Analysis).
פרק 11: הפקת קוד (Code Generation) לשפת VM.

פרק 12: מערכת הפעלה (Operating System)
פיתוח מערכת הפעלה בסיסית, הכוללת שירותים כגון: פונקציות מתמטיות, ניהול מחרוזות, קלט/פלט, וניהול זיכרון.

מטרות הקורס:
- התלמיד.ה ת.יבנה מרכיבים אלקטרונים בסיסים במחשב.
- התלמיד.ה ת.יתכנת 3 מהדרים לשפות ברמות שונות.
- התלמיד.ה ת.יבנה מערכת הפעלה בסיסית.

תוצרי למידה :
בסיומו של קורס זה, סטודנטים יהיו מסוגלים:

ראה.י סעיף "מטרות הקורס".

דרישות נוכחות (%):
0

שיטת ההוראה בקורס: עבודה עצמית.
התלמידים.ות ישלימו 12 פרויקטים, המקבילים לפרקים בספר.

רשימת נושאים / תכנית הלימודים בקורס:
1.Boolean Logic.
2.Boolean Arithmetic.
3.Sequential Logic.
4.Machine Language.
5.Computer Architecture.
6.Assembler.
7.Virtual Machine (Arithmetic).
8.Continue Virtual Machine (Control)
9.High Level Programming.
10.Compilation.
11.Continue Compilation (Code Generation)
12.Operating System.

חומר חובה לקריאה:
Nisan, Noam, and Schocken, Shimon. The Elements of Computing Systems, Second Edition: Building a Modern Computer from First Principles. Cambridge: MIT Press, 2021.


חומר לקריאה נוספת:
NA

מרכיבי הציון הסופי :
מבחן ממוחשב במחשב אישי % 60
מטלות הגשה במהלך הסמסטר: תרגילים / עבודות / מבדקים / דוחות / פורום / סימולציה ואחרות % 40

מידע נוסף / הערות:
הקורס הינו סדנא עצמאית ורוב החומר בשפה האנגלית.

בקורס יתקיים מבחן מסכם בשפה העברית אשר יתקיים בקמפוס (במידת האפשר).

המבחן יערך ב-Exam Moodle במתכונת של BYOD(Bring your own device) ובאמצעות כלים אחרים הנדרשים על ידי האוניברסיטה להתקנה על המחשב האישי (למשל SEB).

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