מי שעדיין לא צפה בהרצאות של הרווארד על יסודות התכנות, עבור לכאן: https://javarush.com/quests/QUEST_HARVARD_CS50 =)
חברים! בהקדמה נזכיר לכם (או נספר לכם למי) על מבנה ה-CS50. משך הקורס 12 שבועות. כל שבוע מתקיימות שתי הרצאות, וגם כל מיני סמינרים והסברים. אנו נפרסם מאמרים כמו זה ברגע שההרצאות יהיו מוכנות. הוא יכיל תיאור קצר של ההרצאות, הערות על "קצרים" ומידע נוסף, וכן תרגומים של מטלות מעשיות. ההרצאות בשבוע האפס כיסו את הנושאים הבאים:
אנו מקווים שכבר צפיתם בהרצאות והבנתם שהאלגוריתם מפרק את פתרון הבעיות (בעיות שונות, מתמטיות או "איך מגיעים לתחנת מטרו N") לשלבים. יתרה מכך, כל שלב חייב להסתיים בפרק זמן מוגבל, וחייב להיות מספר מסוים של שלבים עצמם. כמו כן, השלב הבא תלוי בשלב הקודם. אתה יכול לקרוא עוד על אלגוריתמים, למשל, כאן . אם אתם יודעים אנגלית, הנה אנימציה נפלאה של דיוויד מלאן ב-TED: https://youtu.be/6hfOvs8pY1k למרות שבאופן כללי המידע בסרטון חוזר על כך בהרצאה =).
יש לנו 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 . אם פתאום משהו לא ברור, תוכלו לקרוא עוד בוויקיפד, ואם אתם חזקים באנגלית, הנה תוספת קטנה להרצאה.
המחשב מבין רק אפסים ואחדים, וניתן לייצג את הזיכרון שלו כמחרוזת ארוכה מאוד של נורות עם מתגים, כפי שראיתם למעלה. אנחנו כבר מבינים איך לייצג מספרים במחשב. מה לגבי שאר המידע? מכתבים, תמונות? נניח שיש 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 לערכים המספריים האמיתיים שלהם. בואו נתחיל לתכנת?
אז, שריטה. סיפרו לך על שפת התכנות החזותית הזו והפקודות הבסיסיות שלה בהרצאה. כדי לנסות את Scratch בעצמך, עקוב אחר הקישור ולחץ על "הצטרף". לאחר ההרשמה, תוכל להתחיל לתכנת באופן מקוון. כן, אגב, היום Scratch הוא בחלקו Russified. עם זאת, העזרה עדיין באנגלית. אם תרצו, תוכלו לשחק וגם להסתכל בקוד של פרויקטים של סטודנטים שהודגמו בהרצאה. הנה תפיסת מאפה פיקאצ'ו . או פרויקט עם מיון פסולת למיכלים שונים: https://scratch.mit.edu/projects/71161586/ דוד והחברה מבקשים ממך לא לדאוג אם אתה חושב שאתה לא יכול לעשות פרויקטים מורכבים כל כך: הרמה הזו כבר דורשת מיומנות מסוימת .
לכל ספרייט יש סקריפטים שמתארים את ההתנהגות שלו. אלו הם בלוקי פעולה. תחפושות הן איך נראים חפצים. הספרייטים עצמם הם בעצם רק ציורים. לכל ספרייט יכולים להיות מספר תחפושות. כדי ליצור ספרייט, עליך לבחור את התחפושת המקורית שלו מספריית Scratch, לצייר משלך בעורך המובנה, להעלות כל תמונה, או אפילו לצלם תמונה באמצעות מצלמת האינטרנט שלך ולהעלות אותה. כל הספרייטים ממוקמים על הבמה שנקראת. הבמה היא בעצם הקנבס שלנו, התפאורה לתוכנית. אתה יכול גם לצרף צלילים מהספרייה לספרייט או לסצנה, או שאתה יכול לטעון אותם או להקליט אותם בעצמך באמצעות מיקרופון. כדי להתחיל להפעיל את התוכנית, עליך ללחוץ על הדגל הירוק בפינה הימנית העליונה של חלון הסצנה. אבל לפני שתעשה זאת, עליך למקם את הבלוק הבא בתוכנית:
ולצרף אליו כמה בלוקים, כמו לחלק מעצב. לדוגמה:
במקרה זה, כאשר אתה לוחץ על הדגל, הספרייט אליו מצורפות הפעולות לוקח 50 צעדים ומייאו. יש לנו הרבה בלוקים. הם מחולקים לשלוש כרטיסיות: תסריטים, תלבושות וצלילים. בואו נעשה תוכנית פשוטה עם תנאי. אם זה יתגשם, החתול ימהר; אם זה לא יתגשם, הוא ישתוק. מפעילים מסומנים בירוק. לאלה הבודקים אם תנאי הוא נכון או לא נכון יש פינות חדות בצדדים. מבנים ולולאות לבדיקת מצב מוצגים בכתום. יש להם חורים מיוחדים שבהם אתה יכול למקם בלוקים אחרים.
חזור על משהו מספר מסוים של פעמים:
חזור על פעולה אם התנאי מתקיים:
ניתן ליצור משתנים בבלוק Data. בדוגמה למטה יצרנו משתנה x ומיד היו פעולות שאפשר לעשות איתו. אתה יכול להגדיר את היקף המשתנים: עבור כל הספרייטים או עבור אחד.
הדגל הירוק אינו הפעולה היחידה. כמו כן, במדור אירועים ניתן למצוא מספר תנאי בקרה נוספים. לדוגמה, אתה יכול לבחור מה לעשות כאשר אתה לוחץ על כפתור או על הספרייט עצמו עם העכבר. אם אתה צריך מידע נוסף, אתה יכול למצוא אותו, למשל, כאן .
מבוא. מבנה הקורס CS50
- מערכת מספרים בינארית.
- ASCII
- אלגוריתמים וחשיבה אלגוריתמית
- מהדרים
- שפת שריטות
- ביטויים בוליאניים
- תנאים
- מחזורים
- משתנים
- פונקציות
- מערכים
- זרמים
- אירועים
- להבין כיצד ניתן לייצג מידע באופן דיגיטלי.
- למד מבני תוכנה ומושגים בסיסיים.
- צור אנימציה משלך, משחק או פעילות אינטראקטיבית באמצעות Scratch.
- תרשים את החברים שלך =).
CS50 שבוע 0 (הרצאה 1-2): הערות
אלגוריתמים
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 2](https://cdn.javarush.com/images/article/01a6c535-a083-459a-b6f2-6f10fabaab3b/1024.jpeg)
מערכת מספרים בינארית
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 3](https://cdn.javarush.com/images/article/154c2cc0-c41e-4f90-8b3d-9e65599d7cec/1024.jpeg)
ASCII
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 4](https://cdn.javarush.com/images/article/6ed962da-af38-47b0-9f01-05842cb59d48/1024.jpeg)
שריטה
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 5](https://cdn.javarush.com/images/article/3881d199-2eaa-4512-8d80-70745aa80d72/1024.jpeg)
תרגיל
-
כדי להבין טוב יותר את התהליכים שקורים ב-Scratch, אתה יכול להוריד את קוד המקור של מספר פרויקטים מכאן . תשחק ותראה. לימוד קוד של מישהו אחר הוא מאוד שימושי. זו אחת הדרכים הטובות ביותר לגלות מה יש בתוך אותן תוכניות שאתה בעצמך עדיין לא התבגרת אליהן. ברגע שתתחיל להבין איך יישומים אלה עובדים, אתה יכול להמשיך הלאה בבטחה.
-
עכשיו הגיע הזמן לעשות משהו בעצמך. האתגר הוא ליהנות תוך יישום פרויקט קטן מאפס. זה יכול להיות אנימציה, משחק, פעולה אינטראקטיבית.
- התוכנית חייבת להכיל לפחות שני ספרייטים (דמויות, תמונות), ואחד מהם בהחלט לא חייב להיות חתול =).
- חייבים להיות לפחות שלושה סקריפטים (פעולות).
- יש לבצע לפחות תנאי אחד, לולאה אחת ומשתנה אחד.
- יש לכלול לפחות צליל אחד בתוכנית.
שריטה: מדריך מהיר לפעולה
הספרייט הוא האובייקט המרכזי של הפרויקט. כל דמות - חתול, מטוס, כדור - היא ספרייט. אם הוספת שני חתולים שונים, אלו שני ספרייטים שונים.![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 6](https://cdn.javarush.com/images/article/ed8b4ea3-61d0-4e7c-9e38-c1af3f519cdc/1024.jpeg)
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 7](https://cdn.javarush.com/images/article/197be448-94e4-44aa-a432-c2413ddd9acd/1024.jpeg)
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 8](https://cdn.javarush.com/images/article/4072e649-b04e-4618-9222-24afd209d9c2/1024.jpeg)
מחזורים:
חזור על מספר אינסופי של פעמים:![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 9](https://cdn.javarush.com/images/article/83db0b9a-bbd6-4db8-91ad-6372b322c36f/1024.jpeg)
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 10](https://cdn.javarush.com/images/article/b12a8c0c-fc06-4c2b-aecc-73d14245197e/1024.jpeg)
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 11](https://cdn.javarush.com/images/article/5ae5a483-4887-47a4-a2d6-fbfdaffbd962/1024.jpeg)
![חומרים נוספים להרצאות CS50: שבוע 0 (הרצאות 1 ו-2) - 12](https://cdn.javarush.com/images/article/9fbe38e4-c267-4a75-9d6a-09c8bb53cb41/1024.jpeg)
GO TO FULL VERSION