JavaRush /בלוג Java /Random-HE /חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2)
Bender
רָמָה
Маунтин-Вью

חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2)

פורסם בקבוצה
מי שעדיין לא צפה בהרצאות של הרווארד על יסודות התכנות, עבור לכאן: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

מבוא. מבנה הקורס CS50

חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 1חברים! בהקדמה נזכיר לכם (או נספר לכם למי) על מבנה ה-CS50. משך הקורס 12 שבועות. כל שבוע מתקיימות שתי הרצאות, וגם כל מיני סמינרים והסברים. אנו נפרסם מאמרים כמו זה ברגע שההרצאות יהיו מוכנות. הוא יכיל תיאור קצר של ההרצאות, הערות על "קצרים" ומידע נוסף, וכן תרגומים של מטלות מעשיות. ההרצאות בשבוע האפס כיסו את הנושאים הבאים:
  • מערכת מספרים בינארית.
  • ASCII
  • אלגוריתמים וחשיבה אלגוריתמית
  • מהדרים
  • שפת שריטות
  • ביטויים בוליאניים
  • תנאים
  • מחזורים
  • משתנים
  • פונקציות
  • מערכים
  • זרמים
  • אירועים
יעדי שבוע 0:
  • להבין כיצד ניתן לייצג מידע באופן דיגיטלי.
  • למד מבני תוכנה ומושגים בסיסיים.
  • צור אנימציה משלך, משחק או פעילות אינטראקטיבית באמצעות Scratch.
  • תרשים את החברים שלך =).

CS50 שבוע 0 (הרצאה 1-2): הערות

אלגוריתמים

חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 2אנו מקווים שכבר צפיתם בהרצאות והבנתם שהאלגוריתם מפרק את פתרון הבעיות (בעיות שונות, מתמטיות או "איך מגיעים לתחנת מטרו N") לשלבים. יתרה מכך, כל שלב חייב להסתיים בפרק זמן מוגבל, וחייב להיות מספר מסוים של שלבים עצמם. כמו כן, השלב הבא תלוי בשלב הקודם. אתה יכול לקרוא עוד על אלגוריתמים, למשל, כאן . אם אתם יודעים אנגלית, הנה אנימציה נפלאה של דיוויד מלאן ב-TED: https://youtu.be/6hfOvs8pY1k למרות שבאופן כללי המידע בסרטון חוזר על כך בהרצאה =).

מערכת מספרים בינארית

חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 3יש לנו 10 אצבעות והמערכת היא עשרונית. כלומר, אנחנו יכולים לייצג כל מספר, לא משנה כמה גדול, באמצעות המספרים 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. תלוי איפה המספר נמצא במספר, זה יכול להיות אומר דברים שונים: אם הספרה הזו היא האחרונה, אז היא ממוקמת במקום היחידות, הלפני אחרונה במקום העשרות, אפילו יותר משמאל היא במקום מאות, וכן הלאה. בעיקרו של דבר, כל מספר יכול להיכתב כסכום של ספרות, שכל אחת מהן מוכפלת בעשר בחזקת מסוימת. במקרה של יחידות - אפס. לדוגמה, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . המספר שבו מוכפלות הספרות נקרא בסיס מערכת המספרים. עבור המערכת העשרונית, הבסיס הוא באופן הגיוני עשר. למחשב אין אצבעות, אבל יש שני מצבים: בתנאי "הזרם זורם" ו"הזרם אינו זורם", אפס ואחד. בהתאם לכך, כל המספרים (והמידע בכלל) בזיכרון המחשב מורכבים משתי ספרות בלבד - 0 ו-1. מיקומם, כמו במקרה של מערכת המספרים העשרונית, מציין את הספרה. רק עכשיו ניתן לפרק את המספר לסכום הספרות המוכפל לא בחזקות עשר, אלא בחזקות שתיים. 0 בבינארי = 0 1 בבינארי = 1 2 בבינארי = 10 7 10 =111 2 למד להמיר מבינארי לעשרוני. אתם בטח כבר מבינים איך זה נעשה - אנחנו פשוט לוקחים את הספרה של המספר שמתחילה מהמספר הימני ביותר ומכפילים אותה בבסיס בחזקת התואמת לספרה שלו, ומסכמים הכל עם כל ספרה. דוגמה: בוא נמצא את האנלוגי העשרוני של המספר הבינארי 101101 2 הימני ביותר = 1*2 0 האפס הבא = 0*2 1 השלישי מימין = 1*2 2 הרביעי = 1*2 3 .. וכן הלאה 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 דמיינו שמונה נורות מסודרות ברצף. לכל אחד מהם יש מתג משלו. כל אחת מהנורות היא פריקה. מה אתה יכול לדמיין, תזכור את ההרצאה הראשונה (יש שם מכשיר כזה) או הנה יישומון בשבילך: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Play עם זה, תרגל "להרגיש" את זה מערכת בינארית. המרה מעשרוני לבינארי. גם כאן הכל מאוד פשוט, אם אתה מבין את המהות. כאן יש לנו את המספר 57 10 . כדי להמיר אותו למערכת הבינארית, עליך לקבוע מה ההספק המרבי של שניים שלא חורג ממספר זה. 2 6 = 64. ברור שזה יותר מדי. אבל 2 5 = 32. כעת קבענו את הספרה המשמעותית ביותר. 32 10= 100000 2 . עכשיו אנחנו מחפשים את הספרה הבאה. 57-32 = 25. כעת עבור 25 אנו מחפשים חזקת שתיים שאינה עולה על 25. 2 4 = 16. זה אומר שגם הספרה הבאה שלנו שווה ל-1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, זה פחות מ-9. זה אומר שגם הספרה הבאה תהיה אחת. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, כלומר נשאר רק חזקה אחת, 2 0 . לפיכך 57 10 = 111001 2 . אם פתאום משהו לא ברור, תוכלו לקרוא עוד בוויקיפד, ואם אתם חזקים באנגלית, הנה תוספת קטנה להרצאה.

ASCII

חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 4המחשב מבין רק אפסים ואחדים, וניתן לייצג את הזיכרון שלו כמחרוזת ארוכה מאוד של נורות עם מתגים, כפי שראיתם למעלה. אנחנו כבר מבינים איך לייצג מספרים במחשב. מה לגבי שאר המידע? מכתבים, תמונות? נניח שיש 26 אותיות באלפבית האנגלי. כלומר, תיאורטית, אנחנו יכולים לייצג אותיות עם מספרים מ-0 עד 25, רק במערכת הבינארית. נשאלת השאלה הבאה: כיצד נוכל להבין אם יש לנו אות קטנה או גדולה? מה לגבי סימני פיסוק? סימנים בלתי נראים כמו רווחים? בקיצור, אנחנו צריכים מערכת קידוד, קאפ! בשנות ה-60, היו תוכניות רבות ושונות שקודדו תווים. חוסר האחידות התברר כבעיה, ובשנת 1963, מכון התקנים האמריקאי, ANSI, פיתח והציג את ערכת הקידוד ASCII (American Standard Code for Information Interchange). כל תו ASCII מורכב משבעה סיביות, או שבעה סיביות, שכל אחת מהן יכולה לקבל את הערך 0 או 1. 7 סיביות יכולות להחזיק מספרים מ-0 עד 127 בבינארי, כלומר יש לנו 128 מספרים לקידוד תווים. נראה שזה מספיק כדי לקודד דיבור באנגלית כתוב? בואו נספור: az - 26 אפשרויות AZ - עוד 26 0-9 - 10 ,;:~& ועוד סימני פיסוק - 32 ועוד רווח אחד. סך הכל - 95 תווים. 33 האפשרויות הפנויות הנותרות משמשות למה שנקרא תווי בקרה, כגון הזנת שורה או החזרת כרכרה: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg חשוב להבחין בין תווים 0-9 וערכים מספריים 0 -9. התווים 0-9 מיוצגים על ידי ערכי ASCII 48-57. מעניין לציין שארבעת הביטים הימניים ביותר של ערכי ASCII אלה הם ייצוגים בינאריים של הערכים המספריים 0-9. זה קצת מפשט את הדרך להמרה בין ערכי ASCII לערכים המספריים האמיתיים שלהם. בואו נתחיל לתכנת?

שריטה

חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 5אז, שריטה. סיפרו לך על שפת התכנות החזותית הזו והפקודות הבסיסיות שלה בהרצאה. כדי לנסות את Scratch בעצמך, עקוב אחר הקישור ולחץ על "הצטרף". לאחר ההרשמה, תוכל להתחיל לתכנת באופן מקוון. כן, אגב, היום Scratch הוא בחלקו Russified. עם זאת, העזרה עדיין באנגלית. אם תרצו, תוכלו לשחק וגם להסתכל בקוד של פרויקטים של סטודנטים שהודגמו בהרצאה. הנה תפיסת מאפה פיקאצ'ו . או פרויקט עם מיון פסולת למיכלים שונים: https://scratch.mit.edu/projects/71161586/ דוד והחברה מבקשים ממך לא לדאוג אם אתה חושב שאתה לא יכול לעשות פרויקטים מורכבים כל כך: הרמה הזו כבר דורשת מיומנות מסוימת .

תרגיל

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

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

דרישות הפרויקט:
  • התוכנית חייבת להכיל לפחות שני ספרייטים (דמויות, תמונות), ואחד מהם בהחלט לא חייב להיות חתול =).
  • חייבים להיות לפחות שלושה סקריפטים (פעולות).
  • יש לבצע לפחות תנאי אחד, לולאה אחת ומשתנה אחד.
  • יש לכלול לפחות צליל אחד בתוכנית.
כלומר, בעצם, הפרויקט שלכם יהיה מורכב יותר מאלה שנכתבו בהרצאה, אבל פשוט יותר מהצעצועים המודגמים על פיקאצ'ו ואיסוף אשפה. אז הפרויקט שלך כנראה ישתמש בכמה עשרות פאזלים המרכיבים את קוד ה-Scratch. אם משהו לא מסתדר, ייתכן שתצטרך לשנות את הגישה שלך לפתרון הבעיה. העיקר ללכת בלי פחד! אנו מזמינים אותך לשאול שאלות ולשתף את הפרויקטים שלך בתגובות.

שריטה: מדריך מהיר לפעולה

הספרייט הוא האובייקט המרכזי של הפרויקט. כל דמות - חתול, מטוס, כדור - היא ספרייט. אם הוספת שני חתולים שונים, אלו שני ספרייטים שונים. חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 6לכל ספרייט יש סקריפטים שמתארים את ההתנהגות שלו. אלו הם בלוקי פעולה. תחפושות הן איך נראים חפצים. הספרייטים עצמם הם בעצם רק ציורים. לכל ספרייט יכולים להיות מספר תחפושות. כדי ליצור ספרייט, עליך לבחור את התחפושת המקורית שלו מספריית Scratch, לצייר משלך בעורך המובנה, להעלות כל תמונה, או אפילו לצלם תמונה באמצעות מצלמת האינטרנט שלך ולהעלות אותה. כל הספרייטים ממוקמים על הבמה שנקראת. הבמה היא בעצם הקנבס שלנו, התפאורה לתוכנית. אתה יכול גם לצרף צלילים מהספרייה לספרייט או לסצנה, או שאתה יכול לטעון אותם או להקליט אותם בעצמך באמצעות מיקרופון. כדי להתחיל להפעיל את התוכנית, עליך ללחוץ על הדגל הירוק בפינה הימנית העליונה של חלון הסצנה. אבל לפני שתעשה זאת, עליך למקם את הבלוק הבא בתוכנית: חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 7ולצרף אליו כמה בלוקים, כמו לחלק מעצב. לדוגמה: חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 8במקרה זה, כאשר אתה לוחץ על הדגל, הספרייט אליו מצורפות הפעולות לוקח 50 צעדים ומייאו. יש לנו הרבה בלוקים. הם מחולקים לשלוש כרטיסיות: תסריטים, תלבושות וצלילים. בואו נעשה תוכנית פשוטה עם תנאי. אם זה יתגשם, החתול ימהר; אם זה לא יתגשם, הוא ישתוק. מפעילים מסומנים בירוק. לאלה הבודקים אם תנאי הוא נכון או לא נכון יש פינות חדות בצדדים. מבנים ולולאות לבדיקת מצב מוצגים בכתום. יש להם חורים מיוחדים שבהם אתה יכול למקם בלוקים אחרים.

מחזורים:

חזור על מספר אינסופי של פעמים: חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 9חזור על משהו מספר מסוים של פעמים: חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 10חזור על פעולה אם התנאי מתקיים: חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 11ניתן ליצור משתנים בבלוק Data. בדוגמה למטה יצרנו משתנה x ומיד היו פעולות שאפשר לעשות איתו. אתה יכול להגדיר את היקף המשתנים: עבור כל הספרייטים או עבור אחד. חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 12הדגל הירוק אינו הפעולה היחידה. כמו כן, במדור אירועים ניתן למצוא מספר תנאי בקרה נוספים. לדוגמה, אתה יכול לבחור מה לעשות כאשר אתה לוחץ על כפתור או על הספרייט עצמו עם העכבר. אם אתה צריך מידע נוסף, אתה יכול למצוא אותו, למשל, כאן .

מה עוד

אם הגישה לאינטרנט שלך משאירה הרבה מה לרצות, אנו ממליצים להוריד את עורך ה-Scratch הלא מקוון בכתובת https://scratch.mit.edu/scratch2download/ . לאחר מכן אל תשכח להגיש את הפרויקט שלך אל http://scratch.mit.edu/ באמצעות קובץ > העלה ממחשב.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION