[מוסיקה מתנגנת] [מוסיקה מתנגנת] DAVID מלאן: בסדר. זהו CS50. MUSIC [מנגנת Tritonal, מזומנים מזומנים,  "מְנוּדֶה"] [מוסיקה מתנגנת] דובר 1: אני הולך צרפת, ואתה הולך, מדי. [מוסיקה מתנגנת] DAVID מלאן: זהו CS50, המבוא של אוניברסיטת הרווארד אל הרוחני חברות של מדעי המחשב והאמנויות של program-- ו בפעם הראשונה בהיסטוריה, כמו גם של אוניברסיטת ייל. ואכן, אם אתה כאן בקיימברידג או בניו הייבן או מיאמי או בסנט לואיס או אמסטרדם או בכל מקום מסביב לעולם לוקח CS50, מחשב מדע E50, CS50X, CS50 AP, כולנו היינו הך. ברוכים הבאים CS50. מה אנחנו לכם-- [תְשׁוּאוֹת] [צוחק] [תְשׁוּאוֹת] אז עשיתי טעות לעצמי קצת לפני זמן כשהתחלתי את המכללה. ואני קיבלתי לקולג ', והחלטתי בכנות, מקל בתוך אזור הנוחות שלי. בסופו של דבר אני מכריז על ריכוז, או רב-סרן, של הממשלה. נמלה כי הייתה בעיקר פונקציה של לי להיות די מכיר הממשלה או לפחות בהיסטוריה או אני באמת אהבתי משפט חוקתי בתיכון. וכך כשהגעתי לכאן, אני סוג של ונמשך דברים שבה הייתי כבר מכיר. יָמִינָה? חס וחלילה שאני עושה גרוע בכיתה. בהחלט רציתי להישאר בתוך אזור הנוחות שלי, וזה לא היה עד בשנה השנייה שאני סוף סוף אזרתי אומץ לדרוך בכיתה נקרא CS50. ובנקודה זו, עשה סוף סוף אני מבין כי, אלוהים, שיעורי בית באמת יכולים להיות כיף. אכן, הייתי אחד הילדים האלה כי ביום שישי בערב כאשר את ערכות P ישוחרר, אני היה לחזור לחדר ולצלול שלי אל P-סטים של הלילה. ובשבילי, זה היה סימן כי זה היה שדה בשבילי. אבל מה היה יותר חשוב היה העובדה שעשיתי לקום העצב הזה לחקור מי מוכר לי ולקבל מעבר לאזור הנוחות שלי ולמען האמת, אני רק היה מסוגל לעשות את זה בשנה השנייה על ידי לקחת את זה בכיתה עובר / נכשל. אכן, זה היה היום האחרון מאוד כי אני סוף סוף החליפו מעל ולבסוף הכריז CS כמו הריכוז שלי, לשים gov בשלב זה מאחוריי. וכך אנחנו לא הגדרה במקום כמובן זה כדי להפעיל את כולכם לתוך מגמות או ריכוז CS, אבל אלא לתת לך הזדמנות בתקווה ללכת מעבר לעולם שבה אתה נמצאת כרגע מוכר ותחזיר מהעולם הזה מיומנויות וידע מתמצא כי ניתן להחיל על שלך העולם עצמו, בין אם זה במדעי הרוח, מדעי החברה, מדעי הטבע, או מעבר. ואכן, אם אתה מרגיש קצת חת בלהיות בחדר הזה שלא לדבר על זה בכיתה, להבין שאם ההיסטוריה אינדיקציה כלשהי, 72% מכם מעולם לא לקח קורס CS לפני. אז זה בכל האמצעים לא המקרה כי התלמיד יושב בצד שמאל או ימינה או מול או מאחוריך יודע הרבה יותר על CS או תכנות בפרט ממה שאתה. זה לא למעשה המקרה. ואכן, חלק ניכר מבנה התמיכה כי אנחנו כבר הקמנו בשינה זו כמובן במהלך השנים האחרונות רבים כבר בדיוק כי reason-- כדי לספק על רמפה שעדיין יוצאת בדיוק כמו בקפדנות רק גבוה ככל ever-- אבל המדרון של המאפשרות לסטודנטים פחות נוח יותר נוח כאחד להצליח ללא קשר הרקע שלו או שלה לפני. ואכן, מה שבסופו של דבר בעניינים בכיתה זו אינה כל כך איפה אתה בסופו של דבר ביחס חברכם אבל איפה אתה בשבוע 12 בסופו של דבר ביחס לעצמך אפס בשבוע, וזה איפה אנחנו נמצאים כאן היום. ואכן וזה עשוי היטב וכנראה נראה כמו יוון לרבים מכם. אבל אל תדאג, כי זה כל כך הרבה יותר הולך להיות לגמרי בתוך שלך לתפוס רק קצת זמן. אבל היום, אנחנו מתמקדים כמה רעיונות הרמה הגבוהים יותר כדי לתת לכם טעימה של מדע CS50 והמחשב במובן של מה אתה שנרשם. ואכן, מדעי המחשב יכול להיות מזוקק יותר פשוט כמו thinking-- חישובית לחשוב כמו מחשב, אם תרצו. ויש כל כך הרבה דברים שונים מרכיבים אשר נכנס כי, אבל בואו להציע רק שלושה להיום. אם המטרה של המעמד בסופו של דבר היא לא ללמד אותך תכנות, לא ללמד אותך C או PHP או SQL או כל מספר של מילים וראשי תיבות של התיאור של הקורס, אלא ללמד אותך לפתור בעיות בצורה יעילה יותר ולחשוב יותר באופן שיטתי יותר אלגוריתמי, אם אפשר לומר כך. בואו לראות מה בדיוק זה אומר. אז הייתי מציע שחשיבה המחשוב מסתכם לפתרון בעיות. מה אתה צריך לעשות כדי לפתור בעיה? אתה צריך input-- כמו קלטתי את problem-- אתה צריך פלט, אשר בתקווה הוא פתרון, ואז אתה צריך תהליך על ידי אשר לפתור את הבעיה, אשר אנחנו נזמין algorithm-- סט של הוראות לפתרון הבעיה כמה. אבל קודם, בואו להתמקד הראשון אחרוני תשומות ותפוקות אלה. מחשבים אחרי הכל, ככל הנראה מבינה רק אפסים ואחדים. אבל איך זה יכול להיות? גם אם אתה לא מכיר בכלל עם מה יש מתחת למכסה המנוע, אתה כנראה לפחות שמע מחשבים להבין binary-- רק אפסים ones-- אבל איך יכול אתה אולי לעשות משהו מעניין? ובכן, אחד הנושאים הכיתה הולכת להיות זה layering-- שם היום, נהיה לנו לקחת מבט מהיר ברמה הנמוכה ביותר פרטים, אבל עם כל עובר יום, שבו אנו שכבנו או מופשט על גבי הפרטים האלה למעשה לפתור ברמה גבוהה יותר בעיות מעניינות אותנו. אז הנה מה שאפשר לכנות binary-- רק עם האלפבית של 0 ו -1. אבל אנחנו בני האדם הם ברובם מכירים עשרוניים. משמעות 10 דצ. Bi כלומר שני. וכך העשרוני המערכת, יש לנו 10 ספרות ב disposal-- שלנו כמובן, אפס עד תשע. אז אם אתם מסתכלים על מספר ככה, רובכם באופן אינטואיטיבי פשוט לתפוס כי הוא 123. אין שום דבר ממש קשה על זה. אבל למה זה 123? ובכן, אם אתה חושב בחזרה school-- כיתה או לפחות הדרך למדתי את זה סוג של בעולם-- לך אולי זוכר כי התייחסנו אלה דברים בטורים, או מקומות. אז יש לנו את אלה במקום מימין. עשרות לְמַצֵעַ. מאה למקם מהשמאל. ואז איך אנחנו מקבלים מדפוס זה symbols-- 1 2 3-- לרמה גבוהה זו הרעיון שאנחנו יודעים כמו 123? ובכן, זה רק חלק חישובים אריתמטיים פשוטים. יָמִינָה? האחד יש בעצם אומר לתת לנו 100 פעמים 1 בתוספת 10 פעמים 2 בתוספת 1 פעמים 3. וכמובן, אם אנחנו עושים את מתמטיקה שם, זה 100 פלוס 20 בתוספת 3-- הידוע גם בשם 123. אז אם אתה על דף זהה לזה תקין עכשיו חש בנוח עם מה שנקרא השיטה העשרונית כבן אדם, זה בעצם גם בתוך היקף הנוחות שלך כעת לשקול את מערכת בינארית. קח פרוע guess-- זה מייצג, בעולם של מחשבים במה מספר binary--? אֶפֶס. אבל למה זה? ובכן, מתברר כי העמודות או מקומות כאן-- הם לא חזקות של 10. 1, 10, 100, 1,000, וכן הלאה. הם במקום, די פשוט, חזק של 2. אז, 1, 2, 4, 8, 16, 32, וכן הלאה. אז עכשיו אנחנו כמובן להגיע 0 כאן פשוט כי יש לנו 4 פעמים פעמים 0 בתוספת 2 0 בתוספת 1 פעמים 0, מה שכמובן נותן לנו 0. אבל איך אני הולך על המייצג את מספר 1? מה התבנית של אפסים ואחדים לייצג מספר בני האדם אנו יודעים כמו 1? 001. ו -2? 010. ועכשיו הדפוס מתחיל חזרות. עכשיו זה 011. ושוב, 0 ארבע, אחד 2, אחד 1. אז 2 פלוס 1. זה 3. ועכשיו לייצג 4, אנחנו לא רק להחליף את 0 ל 1. אתה סוג של צריך לסחוב, כביכול, ומספרים להתחיל מרפרף מסביב רק כמו בעולם העשרוני. אז זהו 4. זהו 5. זהו 6. זהו 7. וכך אנו ספרנו גבוהים ככל 7. עכשיו כל מה שאנחנו רק צריכים זה יותר bits-- יותר אפס של ואחד של. ואכן "חתיכות", אם יש לך שמע ספרות בינאריות term-- זה. Bit הוא מהיכן זה בא. וכך, אם אנחנו רוצים לייצג מספרים גדולים, אנחנו צריכים יותר ביטים. אבל בואו להתרחק שקופיות עכשיו למשהו אמיתי קצת יותר. נניח שאנחנו רוצים למעשה מייצג את הדבר הזה. ובכן הבה נסתכל עכשיו בהפגנה קטנה. אז זהו יישום מבוסס אינטרנט שאחד עצמו CS50, Michael G, להרכיב בקיץ הזה כדי לעזור לנו להבהיר בדיוק את הרעיון הזה. וכך תעשה מישהו כמו לצאת לבמה מול כל חבריו לכיתה או שלה? בדיוק מולי. בוא תעלה. אתה צריך להיות נוח על המצלמה והאינטרנט. אה, ממש כאן. בסדר. אנחנו בסדר. בסדר. בוא תעלה. מה שמך? אמילי תעלה לכאן. אז זהו אמילי. באיזו שנה אתה? סטודנט בשנתו הראשונה. אמילי, נחמד לפגוש אותך. דוד. בסדר. אז על המסך כאן, יש לנו מסך מגע זה אשר הולך לאפשר לנו למעשה אינטראקציה עם תוכנית זו, וזה רק דפדפן. זה Chrome מלא הוקרן כרגע, אבל זה תוכנה על ידי מיכאל להגיב באופן המאפשר לנו לשחק עם ספרות בינאריות. כך למשל, כאן יש לנו לא שלושה אבל שמונה אפסים ואחדים bits--. כרגע, אנחנו ההסתכלות על מספר 0. ואכן, כל שמונה אפסים עשרוני כלומר אפס. אז זה הכל זה להיות רמז כאן. אז אם אתה רוצה לייצג את המספר 8, מה התבנית של אפסים ואת אלה שאתה רוצה? אתה יכול פשוט להקיש למעלה או למטה או את המספרים עצמם. בסדר. כך כמובן הוא 8, כפי שאתה יכול לראות שם למעלה. ואם רצינו אל 16, מה עושים? כן, רק לגעת בה שוב. 16. בסדר. אז זהו כל טוב ויפה, זה עדיין ברמה נמוכה מאוד. אנחנו מחפשים דרך ב בעולם האמיתי עבור אמילי של ממש המייצג את הדברים האלה. וכך מניח כי אנו פונים אלה אפסים ואחדים, וזה מאוד מושגית, לתוך נורות בפועל. יָמִינָה? מחשב הוא פיזי, מכשיר מכני, חשמל. ו input-- שלה לפחות אם אתה חבר את המכשיר או תשלום it-- היא לקבל חשמל מסוללה האלקטרונים זורמים פנימה והחוצה. אז עכשיו, למה אנחנו לא להפסיק לחשוב על פיסות כמו אפסים ואחדים, אבל משהו יותר פיזי כמו נורה כאן. ואם דן Armendariz יכול להצטרף לי רק moment-- יאללה up-- אנחנו הולכים להזדנב בקשה. בוא אלי, אמילי. מצטער, זה הכי הרבה הדגמה מביכה בשבילך מתמיד. בואו הנה. אנחנו הולכים לתור עם בזכות דן Armendariz, חבר אחר של הצוות שלנו, יישום המכונה נורה בינארי. אז מה יש לנו כאן הוא יישום iPad כי יש את המשתמש הבא ממשק על המסך עבור אמילי. זה רק נעשה אותו UI המדויק בעצם זה נגמר שם. ואם אתה עכשיו רוצה לייצג את המספר, אומר 8, איך היית הולך על עושה לשים לב זה בפינה הימנית, הנורות שיש לנו כאן? אה-הא. קִסמִי. אז אם אנחנו רוצים עכשיו להפוך את זה משהו קצת יותר מאתגר, ובואו קדימה לבחור אקראי מספר כמו מספר 50 כאן. קלט זה. ואם אתה יכול להיות אתגר עם החברה לבוא עם המספר 50, נצטרך בפרס מדהים בשבילך. אמילי: אישור. אלוהים אדירים. DAVID מלאן: אריתמטיקה קשה אכן נמצא מול מאות חברכם. אבל 50 כבר את התשובה כאן. [תְשׁוּאוֹת] אז עכשיו, זה נועד להיות הפגנתי עבור אמילי. לכן, כאן, הוא קצת אור נורות ממש כמו אלה, אבל זה בעצם רצועות מגנטיות קטנות. ומה מגניב על אלה הסיבה שאנחנו משתמשים בהם CS50 הוא שהם תומכים משהו שנקרא API-- תכנות יישומים ממשק, וזה רק דרך מפוארת לומר שמה אחד מאנשי הצוות שלנו גדל יתר על המידה בקיץ היה ליצור יישום iPad כאן שמדבר דרך האינטרנט אל נורה לכאן, אשר באופן אלחוטי מחובר להתקן אחר. אבל זה עכשיו אופציה פרויקטי גמר. וכך אמילי, אם רצונך בכך כך כמו, בסוף של המונח, אתה יכול לקשט את חדר במעונות בינתיים עם אלה. תודה לך אמילי גם כן. [תְשׁוּאוֹת] אבל עכשיו, בואו נפנה תשומת הלב שלנו למה ההודעה כי אולי נראית כמו, וזה משהו קטן כזה. למעשה, מדובר למשל רק בתור טיזר של מה לבוא של מה קרא בקשת API. אז מה יש לנו כאן הוא פשוט בדיוק מיני ההודעה כי אחרי כמה שבועות זמן CS50, תקבל להיות מסוגל לשלוח למשהו למדי מוכר ככה בעצם להפוך אותם לסירוגין. אבל כל זה טוב ויפה. יָמִינָה? יש לנו את המודל המנטלי בתקווה לייצוג מספרים עם אפס של ואחד של. ומן אפסים ואחדות, אנחנו יכולים להגיע מספרים גבוהים כמו 50, כמו אמילי פשוט עשה, או שאנחנו יכול לנוע למעלה מזה. ואני טוען שנוכל לייצג דברים כמו גם אותיות. יָמִינָה? מחשבים הם הרבה יותר מעניין מאשר רק מספרים. וכך איך אתה הולך על המילים המייצגות על המסך או מיילים או חיבורים וכדומה? ובכן, מתברר מחשבים שפשוט מופשט על גבי הרמה נמוכה אלה לפני כמה זמן פרטים, ובני אדם, באו עם שרירותי, אלא עקבי, מיפוי של מספרי letters-- כך שכל פעם שאתה רואה אות רישית A על המחשב שלך המסך, רוב הסיכויים הם מה מתחת למכסה המנוע הוא דפוס של אפסים ואחדים המייצג את המספר, לכל התרשים הזה, 65. ועוד פיזי בתוך המחשב, מיליוני דברים בשם transistors-- days-- אלה אשר רק הם בוררים אם תרצו, דברים כי יכול ללכת לסירוגין וכך לדמיין. לא שמונה נורים הגדולים אלה אבל מיליוני אור הקטנטן אלה נורות, או מתגים או טרנזיסטורים, שיכול להדליק ולכבות בהתאם לאופן לתכנת אותם. אז עכשיו יש לנו דרך של המייצג גם אותיות. למעשה, אם הייתי משתמש זה מיפוי כאן ולנסות למעשה לאיית משהו החוצה, אנחנו עשויים להיראות בבית דפוס זה של ספרות אחרי הנקודה העשרונית עכשיו. אז אנחנו לא הולכים אפילו להתמקד בינארי יותר. בואו רק לשקול אלה מספר עשרוני 72, 73, 33. אבל מה עשוי לייצג זה? כל אחד יש מספיק זיכרון צילומי לדעת מה כוסמין על מסך כאן? כן כמה. אז היי. H-I ולאחר מכן סימן קריאה, אשר לא היה ממש על המסך. אבל אכן יש מיפוי עבור כל מכתב לכל מספר כי אולי כדאי לך הקלד במקלדת. אבל מספרים לא צריכים מייצג רק אותיות. יָמִינָה? כולנו יודעים על תמונות ותצלומים וקבצי אודיו וקבצי וידאו וכדומה. אז ברור שאנחנו יכולים לייצג דברים ברמה גבוהה עדיין. אז מה מחשב עושה הוא פשוט לבחור לפרש דפוסי אפס אלה אחרת על פי הקשר. אם תלחצו פעמים על סמל של Microsoft Word, אתה רואה מילים על המסך במקום צבעים ותמונות כי מילה יודעת כי מדובר מאמר זה שהקליד בפועל. אם אתה במקום לחיצה כפולה על JPEG או GIF או PNG, זה פותח והוא תמונה, מאחר .PNG או .docx או כל קובץ הסיומת היא ומה תוכנה אתה משתמש יודע לפרש דפוס של אפסים ואחדות אחר על סמך מה המטרה בחיים שלה הוא. כך למשל, זה רצף זהה של מספרים עשוי לייצג כמה אדום אתה רוצה, כמה ירוק אתה רוצה, וכמה כחול אתה רוצה. ואכן, אם שמעת פעם RGB-- כך רק כחול ירוק אדום. לכן, אם הייתי רואה את המספרים כמו, זה תן לי 72 אדום, תן לי 73 ירוק, ו -33 כחול, זה איך מחשב באמצעות שלוש bytes-- שם בייט הוא שמונה סיביות או 24 bits-- תייצג בגוון די מגעיל חום או צהוב מכאן. ובהקשרים שונים, יכל אותן אותם דפוסים מדויקים אפסים ואחדים אומר משהו לגמרי שונה גם כן. אז יש לנו עכשיו דרך לייצג אפסים ואחדות information--. נוסף על כך, אנו מקבלים מכתבים. נוסף על כך, אנו עשויים לקבל צבעים. ואם נניח להיום שנוכל לקבל אודיו ווידאו ודברים כל כך הרבה יותר מתוחכם מזה. אבל עכשיו הבה נבחן האופן בו אנו משתמשים אלה תשומות ולייצר אלה פלטים עכשיו שיש לנו דרך לייצג את המידע הזה. ובכן, אנחנו צריכים משהו קרא אלגוריתם. שוב, סט של הוראות לפתרון בעיה כלשהי צעד אחר step-- ואת ליתר דיוק, כן ייטב. וכך דוגמא שבה בני האדם הוא אמנם פחות מוכר בימים אלה, אבל בכל זאת הוא עדיין איתנו בתוכנה, הוא תהליך של התבוננות עד שמישהו בספר הטלפונים. עכשיו, פחות ופחות אנשים מכירים אחד שנה מה זה שיר ממש כאן. אבל בחזרה בתקופתי, זה היה ספר טלפונים עם אלפי עמודים ומספרים אבל שמותיהם של אנשים מן א 'עד ז' ואף על פי שאנחנו סוג של רמאות bit-- זה בעיקר דפי זהב. היו גם לבנים דפים בזמנו, אשר היו כל אלה שמות מספרים של בני אדם בפועל. ואם אני רוצה לחפש מישהו up in a ספר טלפונים כמו היום הזה, כמובן, אני פשוט להקליד את הראשונים דמויות של השם שלו או שלה, והטלפון שלי מוצא את המידע הזה. אבל התהליך שבאמצעותו מכשיר iPhone או Android שלך או כל דבר אחר הוא למעשה מציאה מישהו ברשימת אנשי הקשר שלך זהה למה שאנחנו בני אדם כנראה עשיתי במשך זמן מה. עכשיו אני יכול לקחת את זה בעיה, אם תרצה, ואת התשומות כאן הם לא אפסים ואחדים. הם pages-- כמו, נניח 1,000 עמודים. ואם אני רוצה לחפש מישהו שחק אותה כמו מייקל סמית בספר הטלפון הזה, יכולתי להתחיל בהתחלה ותראו שאני במקטע A ולאחר מכן הפעל עמוד אחד ב פעם, מביטה ומביטה כפי שאני עושה כדי של B ו- C של ו הדל"תים הלאה עבור מייק סמית. סמית מתחילה עם S, אני יהיה בתקווה שבסופו של דבר למצוא אותו. האם זה algorithm-- כי תהליך האוכל נכון? כֵּן. זה נכון. אני אמצא מייק אם הוא נמצא כאן, אבל מה לשים לב לכך שאתה עשוי להציע. זה איטי. יָמִינָה? אני יודע מייק S הוא מעין לכיוון במחצית השנייה של ספר הטלפונים. למה לעזאזל אני החל בתחילה והולך דף אחר דף אחר דף. אז כמובן, יכולתי להעיף אותו סביב ולהתחיל מהחלק האחורי, אבל זה הולך להיות לי יש באותו קצב, אם אתה willl-- דף אחרי דף אחרי דף. וזה לא הולך לעבוד אם אני רוצה לחפש מישהו אחר אשר השם בא יותר בא'. אז מה אם אני עושה מה שאני למד בבית הספר היסודי, שוב, לעשות דברים לא על ידי אלה אלא בזוגות. אז 2, 4, 6, 8, 10, 12, וכן הלאה. האם זה נכון? לא. זהו סוג של נכונות. אבל כמה מכם מלמל לא, איפה הבעיה, או את הבאג, הטעות כביכול. כֵּן. סטודנט: ייתכן לדלג על כניסות הנכונות. DAVID מלאן: כן. אני עלול לדלג על מייק סמית 'הוא כי כבר לקחו לי שני עמודים בבת אחת והוא קורה רק כדי להיות דחוק בין שני דפים אלה. אני עלול להבין כי אני לסעיף T שלא מצא מייק סמית עדיין. וכך מה עלול קבועה יש להיות? ובכן, אם אני עושה פגעתי Ts בספר הטלפונים, אולי אני צריך להכפיל לגבות עמוד אחד או משהו כזה. אז זה ניתן לתקן, אבל זה לא כל כך פשוט כמו רק הולך לפי שניים להאיץ את ביצועי שלי. אבל מה? בחייך. מה זה מה שרוב בני האדם הולכים לעשות עם זה סוג של ספר טלפונים? אתה נתון בספר הטלפונים. מה אתה עושה? מה זה? ללכת לאמצע. אז שמעתי ללכת לאמצע, ואני מוצא את עצמי פחות או יותר במקטע M, כביכול. ועכשיו מה לעשות מה שאני רוצה לעשות? עבודה טובה. מה שמך? JAMES: ג'יימס. DAVID מלאן: ג'יימס, בסדר. מה עלי לעשות עכשיו? JAMES: אתה ללכת חצי מזה יש את S של. DAVID מלאן: בסדר. אני הולך להיכנס במחצית כי יש את S של זה כי, שוב, תניה כאן הייתה כי הדבר הזה הוא מסודר. זהו די חסר תועלת 1,000 דפים אם Verizon בעצם לא לסדר את העניינים האלה עבורנו דרך Z. אז אם אני יודע מייק הוא כנראה במחצית השנייה של ספר הטלפונים, עכשיו אני יכול. [צוחק] קורע את הבעיה לשתיים. [תְשׁוּאוֹת] תודה. קורע את הבעיה לשתיים. זה היה למעשה real-- מאבק. אז לקרוע את ספר הטלפונים לשניים, עוזב את עצמי עם בעיה זהה באופן מהותי. אבל כמובן, חצי גדול. ואם אני עוקב ג'יימס ייעוץ שוב, ואני הולך כאן. אני אומר, הו עכשיו אני בקטע T. וכך כמובן, אני יכול לקרוע את ספר הטלפונים בחצי עוד פעם אחת, עוזב לי עם בעיה זו עכשיו רבע הגודל. אז עברתי בין 1,000 ל 500 250 עד 125 ו הלאה. זה מרגיש כאילו אני בנגיסות גדולות החוצה לבעיה זו עם כל איטרציה, או כל שלב זה. ואכן, הפעם אני הולך לבלות מציאת מייק סמית בדוגמה זו כל כך הרבה פחות כי בסופו של דבר אני ספר הולך לגלף לחם תירס זה למטה רק עמוד אחד בודד. ואם מייק הוא בדף הזה, אני הולך קדימה ולתת לו שיחה לאחר שמצאה אותו. אבל עד כמה יעיל יותר הוא algorithm-- כי מעז לומר אינטואיטיבי algorithm-- מאלו שאנו נכתב שבה אנחנו מאוד linear-- משמאל כן-- בקצב של 1 או 2x? ובכן, בואו לתכנן זאת. אנחנו לא צריכים לדאוג יותר מדי לגבי מתמטיקה או מספרים במקרה הזה כאן. אנחנו רק מסתכלים על עלילה. אז על x, או ציר אופקי, הגודל הוא של problem-- כמה עמודים הם שם. על y, או אנכי ציר, היא כמה זמן זה הולך לקחת לי לפתור אותה. ואולי זה כמה פניות דף, כמה שניות, איך many-- איזו יחידה של אמצעים. ואני כבר ציירתי קווים אדומים ישר כאן כי אם כל דף נוסף בספר טלפונים, אני דורש לעשות צעד אחד נוסף. אז אם Verizon מוסיף אחד דף יותר בשנה הבאה, אולי אני צריך להעיף עוד דף אחד למצוא מישהו כמו מייק סמית. בינתיים, האלגוריתם השני, אשר הלכתי בזוגות, היא באותה צורה. זה עדיין מאוד ליניארי, מאוד משמאל נכון, לוקח בתים שווים בכל פעם, אבל המדרון הוא קצת נמוך. לדוגמה, אם הגודל של הבעיה הייתה בערך כאן והשתמשתי האלגוריתם הראשון שלי, אני עלול בסופו של דבר כל הדרך בחלק העליון של הקו האדום. אבל אם אני במקום להשתמש כדי twosies להתקרב, הקו הצהוב מצביע כי זה נמוך, כי זה הולך לקחת לי פחות זמן לפתור. אבל מה את הצורה של algorithm-- השלישי שוב, שיש הטוענים האלגוריתם אינטואיטיבי ביותר? ובכן, זה נראה קצת משהו כזה. זה עקום, או לוגריתמים, בכושר. ואף על פי שזה לא סוג של משתטחת, זה asymptotically אינץ מעלה מעלה מעלה אבל נורא לאט לעומת כל השאר. ומה ייקח משם? ובכן, אנחנו קוראים לזה להיכנס n. אבל מה זה אומר בעצם? ובכן, אם Verizon הכפיל את מספר עמודים בספר טלפונים בשנה הבאה בין 1,000 ל -2,000. כמה עוד צעדים שלי אלגוריתם ראשון הולך לקחת? האלגוריתם הראשון שלי. אולי 1,000 צעדים נוספים. אם הם הכפילו את ספר טלפונים, אני הולך צריך לדפדף אחר 1,000 דפים כדי למצוא מייק. כמובן, אם שני אלגוריתם, אולי 500 כי אני הולך במהירות כפולה. אבל אם Verizon מכפיל את המספר עמודים בין השנה ובשנה הבאה, עם השלישי שלי algorithm-- המתרס ולכבוש שג'יימס מוצע, הולך לשניים וחצי half-- כמה עוד צעדים יהיה זה לקחת אותי בשנה הבאה יש ספר טלפון בגודל 2,000? רק אחד. כי עם ביס אחד, אני יכול לקחת, מתוך בעיה כי מחצית הדפים רָחוֹק. ואם אתם חושבים על זה קצת בטירוף now-- אם בספר הטלפונים לא יש דף 1,000 או 2000, אבל נניח 4 מיליארד pages-- זה טלפון גדול book-- איך פעמים רבות או כמה צעדים זה הולך לקחת לי למצוא מייק סמית בספר הטלפונים עם 4 מיליארד דפים. אתה יכול סוג של להתחיל לעשות את המתמטיקה. בסדר. 4 מיליארד מחולק 2. אז זה 2 מיליארד מחולק 1. התוצאה כעת 1 מיליארד דולר. ואז חצי מיליארד. ואז 250-- אז אתה יכול לעשות את זה שוב שוב אבל לא כי פעמים רבות בעבר אתה מקבל דף אחד. ואכן, גם אם הטלפון הספר הוא 4 מיליארד עמודים או את מסד הנתונים שאתה מחפש הוא באורך 4 מיליארדים רשום, זה הולך לקחת אותך פחות או יותר 32 צעדים רק כדי למצוא מייק סמית. ואם תכפילו את ספר הטלפונים הבא שנה 4 מיליארד כדי 8 מיליארד דולר, 33 צעדים במקום רק 32. וזו עדות לאחד הרעיונות כי אנו עשויים לאמץ במחשב המדע באופן כללי יותר, אשר הוא חשיבה חישובית זה ו מתקרב בעיה בכנות שימוש בכלים מן הכלי שלך כבר מכיר kit-- בעולם האמיתי שלך עם אשר אתה מכיר, אבל לרתום אותם רעיונות כדי לפתור את הבעיות בפועל. אבל אנחנו צריכים למסד שלנו פתרונות לבעיות אלה. וכך הרשו לי להציג לרגע משהו שאפשר לכנות פסאודו קוד. הרבה הסמסטר, נבלה באמצעות קוד בפועל בשפות כמו C ו- PHP ו- JavaScript ו- SQL וכדומה. אבל לעת עתה, בואו פשוט להסתכל במשהו די אינטואיטיבי כמו אנגלית. אולי אני לזקק כי אלגוריתם שבה מצאתי מייק לשלבים כזה. תרימי את ספר הטלפונים פתוח באמצע ספר טלפונים תראה את שמו של אם מייק הוא בין שמו של התקשר מייק אחר אם סמית מוקדמת בספר פתוח באמצע החצי השמאלי של ספר אחר ללכת בקו 3 אחר אם סמית היא מאוחר יותר בספר פתוח באמצע החצי הימני של הספר ללכת בקו שלוש אַחֵר לוותר ויש כמה מאפייני חברה זה ששווי הצבעה. אז אחד, את כל הקווים הדגשתי בצהוב אנחנו הולכים להתחיל לקרוא הצהרות או פונקציות ופרוצדורות. הם פשוט פעולות לעשות זה, ואין כל ששונות הרבה אליו. למרות השלב הבא כאן, הם אלה conditions-- if, else, אחר if, else. ואלה תנאים שנקראו, או סניפים, והם נקודות החלטה. והם מאפשרים לנו לעשות משהו על תנאי. ואכן, בואו נעיף מהירה להסתכל אולי face-- מוכר נקרא לו Bill-- ו בדיוק באיזה תנאים אלה, כיצד עשויים לשמש אלה. ביל גייטס: אנשים עושים החלטות כל יום. לדוגמא, לפני שאתה יוצא החוצה סוג של יש אמירה אם זה אומר, אם יורד גשם, אז אני צריך לקחת את המעיל שלי. ומחשבים הם מדהימים ברגע שאתה להחליט כאלה דוחות כי הם יכולים באופן מהימן לבצע אלה דברים במהירות יאומן. וכך תוכנת מחשב באמת הוא קצת מתמטיקה וקצת אם הדוחות שבו ההחלטה מקבלת עשתה. DAVID מלאן: אז עכשיו בואו המוקד על lines-- שונה מעט אלה הדגשתי בצהוב כאן. ומתברר שיש שונה דרכים לבטא את הרעיון הזה. אבל באופן אינטואיטיבי מה הקווים שלנו 8 ו -11 כי אני כבר מודגש כאן אומר לך לעשות? כן, ללכת בקו 3, אבל מה התנהגות האם זה באמת התרמה? זה מין לופ כזה או מחזור, ואתה יכול סוג של לראות את זה. יָמִינָה? אם על קו 8, תחזור קו 3, ולאחר מכן אתה מכה קו 8 שוב, ייתכן לחזור קו 3, בחזרה קו 3, חזרה לקו 3. יש סוג כזה של מחזור או לולאה. ואכן, זה מושרה קו 11 פוטנציאל גם כן. וזו בסיסית תכנות לבנות גם כן. אולי אתה לא רוצה פשוט לעשות משהו עם הצהרה או לעשות משהו על תנאי עם תנאי או סניף. אולי אתה רוצה לעשות משהו מחזור עם לולאה. ונצטרך מישהו אחר שאתו ייתכן familiar-- נקרא לו Mark-- להסביר מושג זה כאן. מארק צוקרברג: אחת דבר שמחשבים הם ממש טוב חוזר פקודות. בתור אדם, היית מקבל ממש משעמם אם אתה היה צריך לעשות את אותו הדבר המון פעמים ברציפות, אבל מחשב יכול לעשות את אותו דבר מיליונים או אפילו מיליארדי פעמים ולא להשתעמם ולהיות מסוגל כדי לבצע זאת ממש טוב. כך למשל, אם אני רוצה לאחל לכולם בפייסבוק יום הולדת שמח על ידי שליחה אליהם הודעת דוא"ל, זה עלול לקחת לי יותר המאה מכדי לכתוב ממש מתוך כל אלה מיילים לכולם. אבל עם רק כמה שורות קוד, אני יכול יש מערכת לשלוח מייל לכולם בפייסבוק המבקשים להם יום הולדת שמח. אז זה מה לולאות ולמה יש להם ערך ומשהו שמחשבים יוכלו לעשות היטב. DAVID מלאן: תודה רבה לחברים שלנו ב code.org לשני הסרטים האלה. ובדיוק בשבוע שעבר, ייתכן שיהיה לראות כי מארק צוקרברג ופייסבוק פורסם הכרזה זו, אשר הוא שהם פשוט עברתי חשוב אבן דרך בפעם הראשונה אי פעם. אנשים 1 מיליארד דרך פייסבוק בתוך יום ביומו, במיוחד ביום שני שעבר. אחד מכל שבעה בני אדם על פני כדור הארץ כנראה מחובר לפייסבוק. ובכן, זה נראה הזדמנות טובה להסתכל אחורה על שם פייסבוק החלה, ועברנו CS50 עצמו הארכיונים כי מסתבר בשנת 2005, מארק נתן הרצאת אורח CS50. תראה כי ערכי הפקה לא היו זהים למדי אז במונחים של טכנולוגיה זמין, ואתה גם לראות שהנוכחות של הרצאת אורח זה לא בהכרח פיקת העניין מכלל הסטודנטים, קודמיך, ככל שזה עשוי להיות רק כמה שנים מאוחר יותר. אז בואו נסתכל בתיכון למדעים מרכז ג דובר 2: נא להצטרף אלי, וברוכים הבאים. [תְשׁוּאוֹת] מארק צוקרברג: Yo. בסדר. מגניב זה הוא הפעם הראשונה שאני אי פעם היה צריך להחזיק את אחד הדברים האלה. אז אני פשוט הולך לצרף אותו ממש מהר. בסדר. אתה שומע את זה? האם זה טוב? מוגבר זה בכלל? בסדר. מָתוֹק. אז, זה כמו אחת הפעמים הראשונות הייתי בהרצאה בהרווארד, אֲבָל-- DAVID מלאן: אז בסופו של דבר המדע המרכז עשה זום על הווידאו, אבל לא לפני צילום זה קטע שם מדברים של מארק, אשר הוא דן שלו השותפה, דסטין, אשר רציתי להושיט יד עם זה האתר נקרא Facebook.com והבין מארק עומד להזכיר לתכנות languages-- אחד בשם פרל, אחד קרא PHP-- כשהוא דן מקורותיה של התרומה של דסטין. מארק צוקרברג: אני התחלתי לרוץ באתר והשיק אותו הרווארד בפברואר 2004. אז אני מניח לפני כמעט שנתיים. ובתוך כמה שבועות, אנשים כמה אלפים חתמו למעלה, והתחלנו לקבל כמה מיילים מאנשים במכללות אחרות לשאול עבורנו להשיק אותו בבית ספרם. ואני לוקח 161 בזמנו. אז אני לא יודע אם אתם יודעים המוניטין כמובן כי, אבל זה היה סוג של כבד. זה היה קורס ממש כיף, אבל זה לא משאיר לי הרבה זמן לעשות שום דבר אחר עם פייסבוק. אז השותפה שלי דסטין, אשר אני מניח סיימתי זה עתה CS50, היה כמו, היי. אני רוצה לעזור. אני רוצה לעשות את ההרחבה ולעזור לך להבין איך לעשות את הדברים. אז הייתי רוצה, זה די מגניב, אחי. אבל אתה באמת לא יודע שום PHP או משהו כזה. אז באותו סוף שבוע הוא הלך הביתה, הספר קנה Perl for Dummies, בחזרה בא והיה כמו, בסדר. אני מוכן ללכת. הייתי כמו, אחי, האתר כתוב ב- PHP לא Perl, אבל זה מגניב. אז הוא הרים PHP מעל כמו כמה ימים כי אני מבטיח שאם יש לך רקע טוב ב- C, PHP היא דבר פשוט מאוד להרים. והוא פשוט סוג של הלך לעבודה. לפני אנחנו נסתכל עכשיו על שם הקורס הוא הולך, הרשו לי להזמין רק חלק של עד צוות SC50 על הבמה. חלקם יוצאים לקניות קורסים משלהם. אבל אם אלה TFS ו CAs ומהלך ראשים שנמצאים כאן יכולים לבוא על למעלה ותצטרף אלי שלום מהיר. הרשה לי להציג בפרט, חנה, מריה, להתפלל, רוב, כמובן של CS50 בראש כאן בקיימברידג. [תְשׁוּאוֹת] DAVID מלאן: אכן, עדות מבנה תמיכה כי כמובן יש שנבנה מעל שנים רבות בעבר, CS50 צוות מספרי השנה קרוב ל -100, וזה כאן בקיימברידג לבד. בינתיים, בניו הייבן, האם יש כמה TFS 40 ו CAs ואנשי צוות יש וכן להפעיל את הקורס. הרשו לנו להציג את הראשון, רוב באודן. ROB באודן: היי. אני רוב. זוהי השנה השישית שלי TFing בקורס. אז, כל הדרך בחזרה שלי שנת הלימודים הראשונה, לא לקחתי CS50. סטודנט בשנתו הראשונה שלך fall-- אתה יכול להיות מוכר כי אתה יכול לקחת ארבעה קורסים בלבד ויש כל כך הרבה קורסים היום. אז אני כמו, אה. לקחתי AP CS המבוגר ממני בשנה של תיכון זה היה נורא. אז, אני רוצה, אה. מדעי המחשב הוא לא בשבילי. אז זה היה על במהלך הלימודים הראשונים שלי ליפול, כי היה לי חבר CS50, ו אני חושב שאני נכחתי בהרצאה אחת איתה. זה כמו, אה, זה הוא סוג של טוב יותר ממה שאני היה בתיכון. ושוב במהלך היה שנה, אני קובע הבעיה שלי בקורסים שאני לוקח בפועל. אבל מצאתי שבכל פעם שאני רציתי להתמהמה על אלה, הייתי לחזור CS50 ו להסתכל על כמה דברים. אז כן. אני מגניב. אני סחבתי עם קידוד. אז זה בסוף בסתיו כי אני מבין, היי, מדעי המחשב הוא די מגניב. בסופו של דבר אני לוקח CS51. בסמסטר הבא, בסופו של דבר אני לוקח CS61. וזה כל ומשם, אז בסופו של דבר אני מכריז מדעי המחשב, אשר היה לי שום כוונה לעשות כשנכנסתי לקולג '. ועכשיו אני כאן. אז כמובן הוא מה שאתה עושה ממנו. אני מקווה שאתה נהנה זה. [תְשׁוּאוֹת] DAVID מלאן: תודה לך רוב. ועכשיו מריה, שלנו עוזר ראש כמובן. מריה: היי חבר 'ה. השם שלי הוא מריה. אני בכיתה י 'ב קאבוט בית, מאגף בולגרי, ואני סופר מתרגש להיות חלק מהצוות השנה. לקחתי CS50 כמו בשנה הראשונה בשנה שעברה, ואני אפילו לא חשבו על CS מראש. אז אני מאוד אוהב את כמובן, ואני מקווה שכולכם אוהבים את זה ככל עשיתי. וגם, כן. ברוכים הבאים CS50. DAVID מלאן: תודה למריה. [תְשׁוּאוֹת] עכשיו חנה, עמית הוראת הראש שלנו. חנה: היי, אני חנה. אני בכיר קאבוט לימודי מדעי המחשב. לקחתי CS50 כמו בשנה הראשונה והיה כבר TFing-- זו תהיה השנה השלישית שלי. אז אני יהיה מעורב בשמחה ב CS50 לכל הארבעה השנים, ואני מצפה לעבוד עם כולכם. DAVID מלאן: תודה לחנה. [תְשׁוּאוֹת] ולבסוף, תתפלל, precepter שלנו. להתפלל: היי חבר 'ה. אני מצווה על ב מדעי המחשב כאן. זה יהיה הוראה זו השנה הרביעית שלי. אני גם לעזור לנהל את הקורס. אז אני בטוח שאתה תראה אותי, במיוחד בשעות המשרד. אני תמיד בשעות המשרד. אז אם אתה רואה אותי הולך סביב, בהחלט לבוא להגיד שלום. אני אוהב לפגוש את כולם. אחר, להשתעשע, ואני אראה לך את המקום. DAVID מלאן: תודה לך בדייבן גם כן. אז תפגוש כל אלה אנשים תוך זמן קצר. אבל בלי עוד ADO, אם אתם הייתם רוצה לחדש את המושבים מוקדם יותר. הרשה לי להציג מרחוק עכשיו כמה מהחברים שלנו מניו הייבן, בפרט הראשי של הקורס אשר יהיה להיות בפיקוח פרופ ביניהם-- CS50 בריאן Scassellati, ג'ייסון, ואנדי, מי פשוט- כך שאנחנו לא להתגרות בגורל עם כל FaceTime או כמו-- רק שלחו לנו דקות לפני בסרטון הבא בו הם אומרים שלום מאולם ההרצאות בייל, בהן הוא הרצאה מוזרם עכשיו. אז חברים שלנו מאוניברסיטת ייל. בריאן SCASSELLATI: היי, דוד. היי, כולם בהרווארד. אנחנו כל כך שמחים להיות הבאת CS50 לייל בסמסטר הזה. שמי בריאן Scassellati, אבל כולם פשוט קורא לי Scas. ואני כאן היום כדי להכיר לך צוות CS50. [תְשׁוּאוֹת] ויותר מכך, אני כאן להציג גם כל התלמידים בבית ייל, נכון להבוקר הפכתי את רוב זה פופולרי כמובן בייל התלמידים CS50. [תְשׁוּאוֹת] אז אנחנו שמחים מאוד להיות לראות אותך כאן ביום שישי ובשבת עבור פאזל יום ויש לי הרצאה מעולה. ביי. [תְשׁוּאוֹת] DAVID מלאן: במסך כאן הוא שמות חלק 140 הצוות חברים אשר מחכים לכם על במהלך semester-- חלקם כאן בקיימברידג, כמה מהם כאן בניו הייבן. ואכן תהיה לך הזדמנות בשבת הקרובה, כפי שמציין Scas, כדי להשתתף יום פאזל CS50. אולי ראית חתיכות הפאזל קטנות החליק תחת הפתחים שלך לאחרונה. יש לנו כמה תוספות כאן מאוחר יותר, כאשר אתה קיים. אם להרכיב את כל הפאזל הארבעה חתיכות ולמזג כוחות עם חדרים שלך סמוך שלך בית או במעונות, הם להרכיב לתוך code-- QR או שני הברקוד ממדי, כי לאחר הרכבה וסקר עם הטלפון שלך יוביל אותך לכמה בפרס מדהים or-- אני מניח אתה יכול פשוט לצלם את זה עכשיו גם כן. אבל למצוא אותם חלקי הפאזל בכל זאת על מנת לנצח כי בפרס מדהים. ואכן אחת המסורות ב SC50-- אה, איטי מדי. אחת המסורות ב CS50 היא לשרת העוגה לאחר ההרצאה הראשונה. וכך אכן, בתוך דקות ספורות מעכשיו, יהיה עוגה שמשה מחוץ גם פה וגם בניו הייבן גם כן. אבל הראשון-- קישטנו אותם בעצמנו. אבל הראשון-- ובתקווה יהיה מספיק. אבל קודם, מבט מהיר. אז הרצאות אכן תהיינה מיוצר בעיקר כאן בקיימברידג. אבל בכל חודש, ואנו מדלגים אל ייל עם צוות זרם הייצור של CS50 קורס ההפך כיוון גם כך כמו להביא שני אלה בקמפוסים באמת בפעם הראשונה בהיסטוריה כמו קרובים זה לזה ככל האפשר כאחד באותו קורס. במונחים של מבנה תמיכה זה הברז כאן בקיימברידג וכן כמו בניו הייבן, קטעים. ואכן, כפי שחלקכם אולי יודעים, יש לנו מסלולים שונים במסגרת הקורס למי פחות נוח, יותר נוח, ואיפשהו בין כך בלי קשר לרקע לפני שלך, אתה יכול בסופו של דבר להצליח בכיתה. שעות פעילות משרד בינתיים, מהווה הזדמנות בימי שני ושלישי ו חמישי בערב לעבוד הוא פה בניו הייבן על הקורס שלנו בעית אוזניות עם עשרות הצוות של הקורס הקרוב אליכם. בעיה קובעת בינתיים, הם נתמך על ידי דברים שאנו מכנים ערוצים, אשר מבוססים וידאו הדרכות כי לענות באמת שאלות נפוצות של איפה להתחיל האתגר של שבוע. ו נתיחות ללוות אותך באמצעות פתרונות אפשריים כך סוף בעיה להגדיר גם אתה יודע בדיוק מה אתה יכול לעשות אחר או לגמרי אחר. הבעיה קובעה עצמם לבוא בשתי מהדורות, מהדורה סטנדרטית שאנו מצפים ומזמינים רוב class-- כ -90% בתוספת לבצע-- ומהדורת האקר שמכונית שבו כל דף הוא מוטבע מהדורת האקר, האקר מהדורה, מהדורת האקר, כך יש לך קארמה אם תרצו, לצלילה לתוך גרסאות מתקדמות יותר של ערכות הבעיה של קורס כיסוי שהחומר אותו לכאורה אבל עם גישה מתוחכמת יותר ועם רקע נוסף לפעמים הציג. בינתיים, יש תשעה ימים מאוחר כי ניתן להחיל על הבעיה של הקורס קבוצות כמו גם את הציון הנמוך ביותר, אשר נפיל בסוף התנאים. אבל מה מחכה? ובכן, טעם של הבעיה קובע שעל הפרק ביום שישי ו בשבוע הבא שבו אנו להשתכשך רק כמה ימים במשהו Scratch שנקרא, תכנות גרפי שפה שפותחה על ידי החברים שלנו במעבדת המדיה של MIT, המאפשר לך לתכנת גם בפעם הראשונה או בסביבה חדשה לגמרי שימוש בסביבת סוג גרירה ושחרור. לפיה חתיכות פאזל משתלבים יחד רק אם זה הגיוני הגיוני לעשות זאת. בינתיים בעיה להגדיר שני בשנה שעברה למשל, עשינו להציג בכיתה לעולם של קריפטוגרפיה, אמנות הצפנה או ערבול מידע. אכן, הטקסט הזה כאן אם מפוענח, יהיה ממש להוביל אותך לאיזה יעד כיף. ובכל בעיה להגדיר, מה היו לנו סטודנטים לעשות הוא ליישם בדיוק אלה מיני things-- אלגוריתם, או קבוצה של הוראות ערבול ו ערבול מידע. וגם במהדורת ההאקר מאותה קבוצת בעיה, עשינו לאתגר תלמידים לקחת קובץ מוצפן ממחשב טיפוסי מערכת עם המון שמות משתמש וסיסמאות מוצפנות ו לפצח אותם passwords-- למעשה להבין מה הם היו בלי לדעת שום דבר א-פריורי על סיסמאות בפועל אלה. בינתיים, אנחנו מעבר בבעיה ערכות ואז מסתכל העולם של גרפיקה. ולמעשה, אתם יכולים לדמיין עכשיו כי זה יכול אולי להיות הדרך הפשוטה ביותר כדי לייצג תמונה שחורה-לבן. פיקסל לבן, או מרובע, ליום העליון ממש שם, יכול להיות מיוצג עם 1 ו ריבוע שחור יכול להיות מיוצג על ידי 0. ובדיוק באמצעות יותר ביטים כמו שאנחנו להציע בשלב מוקדם יותר עם 72 ו -73 ו -33, נוכל לייצג פיקסלים צבע גם כן. ומה שאנחנו עושים במהלך סט לבעיה זו היא לטייל בדרך כלל סביב קמפוס עם מצלמה דיגיטלית, לצלם אנשים, מקומות ודברים. ואז איכשהו כל סמסטר, נראים שאנחנו בטעות נמחק או נזק לכרטיס הזיכרון שעליו כל התמונות האלה, ולכן אתה מאותגר אז לכתוב תוכנה שבה להתאושש תמונות JPEG אלה מעותק של הכרטיס של המצלמה שלנו. בינתיים, אנחנו מושיטים לך בהמשך המונח מילון של מילים באנגלית יש כי 143,000 מילים, ואתה צריך לבוא עם דרך חכמה של וטעינתם זיכרון, או רם כביכול, כדי לענות שאילתות מהצורה: היא מילה זו, זה מילה, ביישום בודק איות מהירה ביותר שאתה יכול, אפילו מצמיד את עצמך פוטנציאל נגד לכיתה לראות מי מכם משתמש הסכום הנמוך ביותר של זמן בעת הפעלת הקוד שלך ואפילו הסכום הנמוך ביותר של הזיכרון. בהמשך טווח אתה בעצם ליישם שרת האינטרנט שלך. אז לא רק אתר אינטרנט בתוך שפה המכונית HTML ועוד, אבל שרת אינטרנט שלמעשה מקשיב לבקשות באינטרנט ומגיב אליהם. ואכן, זה איך אנחנו לגשר בעולם של C שלנו עם אשר תוכל להיות בשבוע הבא מוכר PHP ו- HTML ו- JavaScript ו CSS וכדומה. מכיוון אחד של האינטרנט הראשון המבוסס פרויקט שאנחנו עושים בהמשך המונח היסטורי הוא אוצר CS50. סגנון Etrade.com אתר המאפשר לך לקנות ולמכור מניות כמעט בעת כתיבת קוד גם לדבר יאהו אוצר מקבל מניות בזמן אמת למחצה מצטט כדי לעדכן תיק משלך. אבל לבסוף כמובן, הוא project-- הסופי הזדמנות לעשות משהו ביותר של לעניין אותך לפתור בעיה כאן או מעבר לעניין אתה זה איכשהו השראה על ידי הלקחים בכיתה. ואת המעמד, כפי שאתה ודאי יודע, לשיאו שנקרא CS50 האקאתון ויריד CS50 וכל מספר אירועי תרבות אחרים במהלך הסמסטר שמאפשר לך לעסוק אחד עם השני וצוות של הקורס. למשל, ב אש וקרח ב סיטאר השנה, גם, בימי שישי אחר הצהריים, אנו מזמינים כ -50 תלמידים לארוחת צהריים, מי רוצה להצטרף אלינו, עצמי, ואת הצוות, והחברים מהתעשייה בוגרת שלנו לשוחח על החיים בעולם האמיתי ומעבר תוך שהם נהנים מארוחה טובה. באותו האקאתון יהיה אתה רואה תמונות כאלה כמו אלה, כולל שפע של candy-- ונכון 2014 בפעם הראשונה-- יְרָקוֹת. [תְשׁוּאוֹת] אבל עד השעה 5:00 לפנות בוקר, לא מסתובב בדרך כלל נראה משהו קטן כזה. ואז רק שבוע או כך מאוחר יותר, הוא CS50 הוגן שאליה כמה פלוס 2000 סטודנטים וסגל ואנשי סגל חברי מרחבי הקמפוס ועל פני קמפוסים השנה לבוא לראות ולהתענג על הישגים של תלמידי CS50, אשר כרגע הוא לך. ואכן, ואילו שנה אנו יהיו להיות מזמין הסעות מישהו ב בייל מי רוצה לבוא קיימברידג בשבת הקרובה עבור פאזל CS50 יום, ואנו נעשה את אותו הדבר בדיוק בדצמבר עבור האקאתון CS50 כך שהתלמידים בהרווארד ובייל מסמנות כאחד בשני האירועים הללו. כמו כן, אנו נקיים ירידי CS50 ב קיימברידג 'בניו הייבן השנה כך שהתלמידים משני קמפוסים הצוות וחברי סגל ניתן לראות בכל בהתאמה ההישג של הקמפוס. והישגים אלה יניע זיכרון כזה כמו זה וזה, ובסופו של דבר זה, שבו כולכם לצאת הכיתה לובשת קצת משהו שבו היית בתקווה שמח או גאה לומר שלקחתי CS50. אבל לפני כן, לפני שאנו משרתים עוגה, שמנו together-- הודות CS50 של צוות הפקה וכן עצמי מסוים מקל, לרגל אחד שאנו משתמשים דברים כאלה for-- כששלחנו אותם לא רק כאן לקיימברידג אבל גם לניו הייבן לאסוף כמה מילות נימוסין מן הצוות של הקורס וכל החבר'ה תוכלו לפגוש כאן וגם בניו הייבן במהלך החודשים הבאים. הרשו לי להציג עוד כמה הסגל של CS50. מארק צוקרברג: האם זה עושה את זה ללכת? אוי, זה הולך. זה הולך. אווה. Yarr! [מוסיקה מתנגנת ANDY גרמר, "מותק, אני  טוֹב"] מרי: זוהי קייטלין. זהו ג'יי, ואני מרי. SATO: היי, חבר'ה. אני סאטו. Michael G .: היי. שמי מיכאל, G. דאג LLOYD: אני לא. לא. אני דאגתי לויד. אני לא מאמין שאני מחזיק סלפי מקל עכשיו. SPEAKER 4: היי. SPEAKER 5: היי. SPEAKER 6: שלום. SPEAKER 7: היי. SPEAKER 8: היי. אנחנו מסתובבים באולמות ייל. אנו שמחים מאוד על זה הסמסטר בגלל זה לראשונה זה צריך לקרות ייל. זה הולך להיות מדהים! [מוסיקה מתנגנת] JACOB SCHERBA: שמי יעקב Scherba. אני מתרגש ללמד CS50 כי אני חושב זה להביא את מחשב מדע אנשים ואורח נגיש. 9 SPEAKER: אני באמת נרגש ללמד CS50 כי לקחתי את המעמד בשנה שעברה, וזה אחד השיעורים הכי. SPEAKER 10: כן. העצה שלי היא כדאי לכם לקחת CS50. JACOB SCHERBA: בחרתי CS כי אני חושב שזה דרך מהנה ויצירתית כדי לפתור בעיות בצורה אנליטית. SPEAKER 11: חזרה כאשר הייתי קצת בכיתה ט 'ואני פוחד מדעי המחשב ומפחד לעשות הנדסה וכאלה, זה היה בכיתה הקשיחה הראשונה לקחתי, וזה היה גם בכיתה אהובה עליי אי פעם. דאג LLOYD: זהו שלי CS50 הוראה השנה התשיעית. זה גורם לי להישמע כל כך זקן! תמיד יש משהו חדש. תמיד יש משהו מרגש. תמיד יש אתגרים חדשים בפני תלמידים חדשים, וזה כיף לעזור להם וכדי לחוות אלה האתגרים איתם ולעזור להם לפתור את בעיותיהם. SPEAKER 12: כשאני ראשון למד כיצד לעשות CS, זה היה כמו ללמוד מעצמה. וכדי לראות כי תלמידים אחרים ועל מנת לסייע להם לעבור את זה תהליך הוא אחד מהנושאים היותר הדברים המתגמלים לי אי פעם. SPEAKER 7: בחרתי CS משום החל, הייתי רכז מתמטיקה ואני לקחתי CS50 ו התאהבתי בה. גם אני הרגשתי שעם CS, יכולתי לבנות דברים. וזה, חשבתי, היה היבט ממש מגניב. SPEAKER 13: כמה עצות עבור חדש סטודנטים זה ללכת שעות עבודה ולבלות עם TFS המדהים. SPEAKER 14: התחל P-סטים שלך מוקדם, ללכת לשעות העבודה בלבד, להיות frends עם TF שלך. SPEAKER 15: כן. כל מה שהיא אמרה. SPEAKER 16: אל תהיה לפחד לבקש עזרה. SPEAKER 17: כן. SPEAKER 18: התחלה מוקדמת P-הסטים שלך. 19 SPEAKER: זהו חוויה חברתית גדולה. הפוך המון חברים בדרך זו. 14 SPEAKER: עבור אל סעיף זה כיף. 11 SPEAKER: אני מתכוון, לך על זה. זה ממש קשה. תוכלו לצאת מזה מה שאתה מכניס אותו, אבל זה ממש כיף כיתה במיוחד אם אתה מוכן לשים את הזמן לתוכו, אבל זה עוזר אם אתה מכניס זמן לתוכו. אתה תקבל הרבה יותר מחוץ לזה בהמשך. מייק: אני מייק. קמיל: אני קמיל. HANYA: אני Hanya. מאט: אני מאט. PETER: אני פטרתי. פיליפ: אני פיליפ. פטריק: אני פטריק. ROB באודן: אני רוב באודן. בריאן SCASSELLATI: שלי שם הוא Scas, ואת זה- ALL: --is CS50. SPEAKER 20: בייל. SPEAKER 21: בייל. [צוחק] DAVID מלאן: זהו זה עבור CS50. אנחנו נראה ממך ייל על יום שישי, פאזל היום בשבת. עוגה עכשיו שירתה. זהו CS50. [מוסיקה מתנגנת]