[BỐI CẢNH NOISE] Liệu nó có làm việc? PATRICK REBESCHINI: Chúng ta có thể bắt đầu. ĐƯỢC. Tuyệt. Băt đâu nao. Vì vậy, nó là niềm vui lớn nhất của tôi để chào đón tất cả các bạn ở đây hôm nay cho bài giảng đầu tiên , tốt, Giới thiệu để tính toán và lập trình. Còn được gọi là CS50 hoặc tốt, CPSC 100, chính thức ở đây tại Yale. Vì vậy, chúng tôi không thể vui mừng hơn để chào đón tất cả các bạn ở đây. Tên tôi là Patrick Rebeschini. Tôi là hướng dẫn đầu của lớp. Tôi ở đây đại diện cho một nhóm khoảng 60 nhân viên mà sẽ làm việc với bạn trong suốt học kỳ. Con số này là gần 60 người trong chúng ta. Nhưng cùng phi thường mức độ cam kết mà chúng tôi đưa vào đây lớp, làm cho CS50 lớp tại Đại học Yale cung cấp lớn nhất mức độ hỗ trợ tới tất cả các bạn. Và chúng ta không thể tự hào hơn về cung cấp lớp này ở đây một lần nữa. Trong thực tế, như bạn sẽ sớm có kinh nghiệm, CS50 là nhiều hơn một lớp. Đó là một cộng đồng. Và bạn sẽ là một phần sớm của cộng đồng này. Đây là năm thứ hai Yale là cung cấp lớp này. Chúng tôi đang xây dựng trên các cực thành công của năm ngoái, nơi lần đầu tiên, ở đây tại trường đại học này, trợ học tập đại học đã được thông qua trong các lớp học. Tất cả bắt đầu với lớp này năm ngoái. Vì vậy, như bạn đã biết, các lớp học được giảng dạy phối hợp với trường Đại học Harvard. Để dạy khóa học này chúng tôi là chúng tôi có thể relying-- đếm trên chuyên môn tuyệt vời của David Malan và đội Harvard. Vì vậy, David đã được giảng dạy CS50 cho tốt, 10 năm nay. Và mỗi năm, ông đã được đẩy ranh giới và cải thiện trải nghiệm lớp học. Một lần nữa, chúng tôi không thể hạnh phúc hơn tiếp tục phối hợp điều này với họ. Trong thực tế, một trong những hầu hết các phần thú vị, Tôi nói về chạy lớp này ngay bây giờ, cả ở Harvard và đây tại Đại học Yale, là thực sự đáng kinh ngạc thụ tinh chéo các ý tưởng, nhằm nâng cao học tập kinh nghiệm cho tất cả các bạn. Vì vậy, như một kết quả của việc mở rộng này sự hợp tác giữa hai trường đại học, CS50 tự hào công bố các phiên bản mới trong năm nay với những thay đổi đáng chú ý. David tất cả sẽ cho chúng ta biết về chúng ngay bây giờ. Vì vậy please-- phúc này cho biết, xin vui lòng tham gia cùng tôi và chào mừng để cung cấp cho một lớn vòng vỗ tay để chào đón David và Harvard đội ở đây tại Yale. [VỖ TAY] DAVID Malan: Cảm ơn bạn. Cảm ơn. Đây là CS50, Đại học Harvard của và giới thiệu của Đại học Yale với trí tuệ doanh nghiệp khoa học máy tính và nghệ thuật của chương trình. Và điều đó có nghĩa là khóa học này cuối cùng, là về giải quyết vấn đề. Thật vậy nhiều có lẽ bạn đã ra khỏi trường trung học hoặc đã trải qua vài năm qua tự hỏi những gì một số bạn bè của bạn đã làm năm ngoái hay trong các lớp khác. Và, thực tế là, không có vấn đề gì chúng tôi làm vào cuối ngày trong lớp học này, nó sẽ là về giải quyết vấn đề. Và như vậy, có lẽ mất một số bảo đảm trong thực tế 73% học sinh là mất lớp này, cả hai đều ở đây tại Yale cũng như tại Đại học Harvard, chưa bao giờ lấy một lớp CS trước. Vì vậy, nếu bạn đang ngồi ở khán giả hôm nay tự hỏi lý do tại sao bạn đang ngồi ở đây trong khán giả ngày hôm nay, hoặc có thể bạn chỉ tiếp cùng với một số bạn bè, hoặc có thể bạn đã được một chút tò mò như những gì khoa học máy tính và lập trình được, nhận ra rằng hầu hết các bạn cùng lớp của bạn để bên trái và bên phải của bạn rất nhiều trong cùng một nhân khẩu học. Và quả thực, nếu chúng ta nhìn số liệu thống kê năm ngoái trong cơ thể sinh viên của CS50, cả hai ở đây và ở Harvard, 58% học sinh mô tả mình như ít thoải mái. 9% là thoải mái hơn. Và sau đó 33% là ở đâu đó ở giữa. Và không có định nghĩa chính thức về những gì các xô nghĩa. Bạn loại biết bạn ít thoải mái nếu bạn đang có. Bạn đang cảm thấy một chút khó chịu với có lẽ là trong lớp. Bạn không hoàn toàn chắc chắn nếu một máy tính lớp khoa học là cuối cùng cho bạn, và nhận ra rằng bạn là trong công ty rất tốt. Và thực sự chấm điểm, và đánh giá, và các thông tin phản hồi, và tất cả điều đó cơ cấu hỗ trợ trong lớp là cuối cùng rất nhiều cá nhân. Nhiều hơn so với hầu hết bất kỳ lớp khác do thiết kế. Và quả thực, những gì cuối cùng các vấn đề trong lớp này không phải là rất nhiều nơi bạn kết thúc lên so với những người khác, nhưng nơi mà bạn, trong tuần 11 hoặc cuối cùng, và so với chính mình trong tuần 0 ở đây đầu tiên của chúng tôi. Vậy điều đó có nghĩa là gì? Vâng, điều này có nghĩa là những người 73% sinh viên năm cuối mà chưa bao giờ dùng một lớp CS trước, bởi các bắt đầu của học kỳ họ đã thâm nhập một ngôn ngữ gọi Scratch, mà tôi, chúng mình sẽ thấy ở đây ngày hôm nay. Và vào cuối của học kỳ họ lại đến thông qua toàn bộ danh sách các thách thức. Bắt đầu với một ngôn ngữ được gọi là c. Triển khai thực hiện, có chuyện gì ở cái nhìn đầu tiên, đi là một chút của một thách thức đối với một số người, nhưng khá hài lòng khi bạn có được Super Mario nảy lên và xuống một kim tự tháp thực hiện, mặc dù, chỉ với một cái gì đó gọi là nghệ thuật ASCII. Thực hiện year-- cuối cùng những gì sinh viên năm cuối rồi đã, sau khi đã thực hiện của họ mật mã Caesar riêng và mật mã vigenere. Vì vậy, các thuật toán mã hóa mà bạn có thể thông tin tranh giành và sau đó xắp xếp lại thông tin để gửi tin nhắn bí mật. Các trò chơi của 15. Nếu bạn nhớ từ thời thơ ấu hoặc một số ủng hộ đảng, rằng trò chơi nhựa nhỏ nơi bạn di chuyển những con số lên, xuống, trái và phải để cố gắng để có được chúng theo thứ tự, thực sự thực hiện trò chơi và giải quyết các logic yêu cầu đó. Và sau đó chúng tôi học theo pháp y năm ngoái. Vì vậy, bằng giữa học kỳ, sinh viên chưa bao giờ sử dụng bàn phím của họ cho mục đích này trước khi, đã viết phần mềm để phục hồi, có thể nói, JPEG hoặc hình ảnh mà chúng tôi đã vô tình xóa từ một kỹ thuật số thẻ nhớ từ máy ảnh. Phục hồi tin nhắn bí mật từ bên trong của một hình ảnh bitmap, và các loại khác như vậy đồ họa là tốt. Sau đó chúng tôi chuyển sang cho cả lớp một từ điển. Chỉ cần một tập tin văn bản thực sự lớn với 150.000 từ tiếng Anh. Và tất cả mọi người đã được thử thách bằng cách nào đó đọc, vì vậy để nói chuyện, những lời đó vào bộ nhớ. Vào bộ nhớ của máy tính. Và sau đó trả lời câu hỏi các hình thức, đây là một từ? Đây có phải là một từ? Đây có phải là một từ? Thực sự chỉ là thực hiện kiểm tra chính tả. Và sau đó thách thức mỗi khác với một board-- lớn một ban lãnh đạo để xem ai có thể sử dụng ít bộ nhớ, trong thời gian ngắn nhất để thực sự kiểm tra chính tả tài liệu lớn. Chúng tôi đã chuyển từ đó đến triển khai máy chủ web riêng của những người thân. Vì vậy, không làm cho các trang web bằng các ngôn ngữ như HTML và CSS, nếu bạn đã quen thuộc. Nhưng thực sự thực hiện các máy chủ lắng nghe trên internet cho các yêu cầu từ trình duyệt và sau đó đáp ứng những yêu cầu đó. Sau đó thực hiện của chúng ta thương mại điện tử như trang web, nơi học sinh có thể mua và bán cổ phiếu. Vẽ trong thời gian gần thực báo giá cổ phiếu từ Yahoo Finance. Và cho phép học sinh để xem cách danh mục đầu tư của họ phát triển. Và cuối cùng một mash up Google News và Google Maps theo đó sinh viên bởi hạn bởi các điều khoản cuối có khả năng nhấp chuột, và tròn, và tìm kiếm trên bản đồ của Google. Và sau đó nhìn thấy tất cả các các bài báo có là gần đến những lĩnh vực cụ thể. Vì vậy, thực sự đi từ không đến 60. Và trên đường đi có những gì chúng tôi đã có năm ngoái gọi, hacker bổ sung. Điều đó nâng cao thanh hơn nữa cho những người bạn người cũng rất có thể có một tốt lượng kinh nghiệm được trong đó 9% các thoải mái hơn. Vì vậy, nhận ra rằng có trần nhà rất cao ngay cả trong những thách thức cho sinh viên đến từ một nền khác nhau. Bởi vì vào cuối ngày, chúng tôi cuối cùng tập trung khá đơn giản về điều này. Nhưng những gì thực hiện điều này có nghĩa là, giải quyết vấn đề? Vì vậy, hãy đề nghị chúng tôi chắt lọc nó như thế này. Vì vậy, giải quyết vấn đề thực sự là chỉ loại hình. Vì vậy, bạn đã có đầu vào cho một số vấn đề, một cái gì đó bạn thực sự muốn giải quyết. Mục đích là để có được kết quả đầu ra, một giải pháp cho vấn đề đó. Và sau đó ở giữa là những gì chúng ta sẽ gọi một hộp đen. Bạn không nhất thiết phải biết hoặc thậm chí quan tâm những gì bên trong cái hộp đen. Tất cả các bạn biết là khi bạn ăn nhập vào nó, bạn hy vọng có được đầu ra hoặc một giải pháp từ nó. Và trong khi hôm nay chúng tôi sẽ xem xét ở cả đầu vào và đầu ra, chúng ta sẽ lâu dài, và trong Tất nhiên của cả học kỳ, tập trung vào những gì bên trong hộp. Và đó sẽ nằm một cái gì đó gọi là thuật toán. Hướng dẫn từng bước cho thực sự giải quyết một số vấn đề. Nhưng một ví dụ về một số đầu vào là những gì? Vì vậy, có lẽ là một điều đơn giản ở bắt đầu của mỗi năm học, một người nào đó có thể muốn đi tham dự. Vì vậy, chúng ta có thể làm một, hai, ba, bốn, năm, sáu, và làm thế nào tôi sẽ giữ theo dõi các thông tin đó. Tôi chỉ có thể đi một, hai, ba, bốn, năm, sáu. Và chỉ cần sử dụng loại chữ số duy nhất. Hoặc tôi có thể thực sự ghi lại này dài lâu hơn một chút. Và làm thế nào để đại diện cho tất cả con người trong phòng này? Vâng, tôi có thể làm một cái gì đó như thế nào, OK. Tôi nhìn thấy một người. Tất cả các quyền. Tôi nhìn thấy một người khác, một người thứ ba, và vv. Nhưng không ai đếm người như thế này. Vì vậy, theo nghĩa đen, hầu hết chúng ta nếu chúng ta thậm chí đi để vẽ bất cứ điều gì ở tất cả, có lẽ sẽ đi một hai ba bốn, có thể có được một chút ưa thích, năm, sáu, bảy, tám, chín, mười và vv. Và đó thực sự là một hệ thống gọi là nhất nguyên. Uno, như uno ngụ ý một, nơi bạn chỉ có một lá thư của bảng chữ cái. Bạn vừa có dấu băm này. Và tôi, cho hiệu quả, vừa vẽ những dấu băm, cuối cùng dòng như thẳng. Nhưng tôi có thể rút ra cho họ như dính vào con số ít. Trường hợp để đại diện cho một người, một đầu vào, Tôi chỉ cần vẽ một cây gậy con số hoặc một dấu băm. Nhưng đây không phải là tất cả những biểu cảm. Nếu tất cả tôi có là những băm nhãn hiệu, để cho con số thanh một mình, làm thế nào tôi có thể đại diện một cái gì đó như số 15? Hoặc 15 người trong phòng? Tôi có thể phải làm một cái gì đó giống như 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Nó chỉ không quy mô rất tốt. Khi đầu vào có được lớn, chúng tôi cần một hệ thống tốt hơn thế này. Và nó chỉ ra rằng hệ thống máy tính sử dụng không phải là tất cả những gì khác nhau từ những gì bạn và tôi biết. Trong thực tế, hầu hết mọi người trong căn phòng này, thậm chí nếu bạn nằm trong số những người kém thoải mái, không nhất thiết phải biết làm thế nào Mac hoặc máy PC của bạn thực sự làm việc, bạn đã có thể ít nhất là nghe, mà bên dưới mui xe là 0 và 1. Cái gọi là hệ thống nhị phân. Vì vậy, trên thực tế, các máy tính có nhiều hơn chỉ dấu băm trong vốn từ vựng của họ, nhưng không phải là nhiều của một từ vựng như con người chúng ta. Thật vậy, con người chúng ta không sử dụng hệ nhị phân. Bi có nghĩa là 2, 0 và 1. Nhưng số thập phân, deca nghĩa là 10, 0 đến 9. Vì vậy, chúng tôi có rất nhiều ý nghĩa hơn khả năng trong thế giới con người bình thường của chúng tôi. Nhưng tôi cho rằng các hệ thống này, nhị phân và thập phân, và tất cả mọi thứ ở giữa và xa hơn, là thực ra tất cả khá quen thuộc. Ví dụ, hãy xem xét ví dụ ở đây, 123. Vì vậy, đây thực sự là, tất nhiên, một số chúng ta biết như 123. Nhưng tất cả tôi vừa vẽ chỉ này mẫu của biểu tượng, glyphs vậy để nói chuyện. Sắp xếp các hình trên bảng bằng phấn. Nhưng tại sao chúng ta ngay lập tức và trực giác nắm bắt này là 123? Vâng, nếu bạn là như tôi trong trường lớp, bạn có thể học được rằng đây là cột 1s, đây là 10s cột, này là 100 cột. Và tại sao là hữu ích? Vâng, đó là đơn giản số học bây giờ bạn làm gì để có được từ một mô hình của các biểu tượng để một số chúng ta hiểu bằng trực giác. Là gì, 100 lần 1, và sau đó 10 lần 2, và 1 lần 3, trong đó tất nhiên chỉ là 100, và này là 20, và điều này là ba. Và vì vậy nếu chúng ta thêm những together-- ah. Vì vậy, đó là nguyên lý các loại lý luận đằng sau lý do tại sao bộ này của các biểu tượng có nghĩa là một cái gì đó thực tế và số. Vâng, máy tính làm chính xác những điều tương tự, nhưng họ chỉ có thể tính là cao như một. Trong khi đó, tôi đã có thể đếm cao như ba. Và trên thực tế, nếu tôi vẫn tiếp tục tôi có thể tăng cao như chín trong hệ thống này. Máy tính chỉ có số không và những người thân trong bảng chữ cái của họ. Vậy điều đó có nghĩa là gì? Vâng, nó chỉ có nghĩa là nếu một máy tính muốn thể hiện, nói rằng các số 0, có thể sử dụng ba characters-- ba chữ của bảng chữ cái để nói, đó là làm thế nào một máy tính đại diện cho 0. Vì vậy, không phải tất cả những gì đáng sợ cho đến nay. Đó là chính xác những gì con người chúng ta sẽ làm gì. Và trên thực tế, hầu hết chúng ta sẽ chỉ bỏ qua các số không hàng đầu nào. Một máy tính, nếu nó muốn để lưu trữ các số 1, Hóa ra là sẽ làm được điều này. Và một máy tính để lưu trữ số 2 không phải là sẽ làm hệ thống nhất nguyên, mà tôi đã đề cập đến trước đó. Nó thực sự sẽ làm điều này. Và điều này có lẽ nơi mà các mô hình bắt đầu trở nên ít rõ ràng cho hầu hết mọi người. Đó là 2, đây là 3. Thật kỳ lạ, điều này bây giờ là 4. Và bây giờ nó thực sự dường như có lẽ khó hiểu, nhưng nó không phải là nếu chúng ta xem xét những gì nhị phân thực sự có nghĩa. Nó có nghĩa là bạn có hai chữ của bảng chữ cái của bạn. Vì vậy, hai nhân vật có thể cho từng giữ chỗ. Vì vậy, đó thực sự có nghĩa là chúng ta đang đi cần một nơi 1s, 2s hoặc nơi, một nơi 4s và sau đó 8 và 16, 32, và 64. Và sự khác biệt là những gì có? Như thế này là 1, 2, 4, 8, 16, 32, 64. Và trước khi chúng tôi có 110, 100.000, 10.000. sự giống nhau đó là gì? Và mô hình là những gì? Yeah. HỌC SINH: Quyền hạn của 2 thay vì quyền hạn của 10. DAVID Malan: Yeah. Quyền hạn của 2 thay vì quyền hạn của 10. Và vì vậy nếu tôi muốn giữ đi, 8, 16 và rất forth-- nhưng bây giờ nếu bạn có loại này các đầu mối, bây giờ hệ thống nhị phân thực sự là khá đơn giản. Tại sao mô hình này từ 0 của trong thế giới của máy tính 0? Tốt vì đó là 4 lần 0, 2 lần 0, 1 lần 0 và bạn nhận được 0. Tại sao điều này là số 1? Cùng lý luận, nhưng bây giờ chúng tôi có 1 trong 1 cột. Tại sao 2 này? Chúng tôi có một 1 trong cột 2s. Và làm thế nào sau đó làm tôi đại diện nói, số 7 trong hệ nhị phân? Nói to hơn. HỌC SINH: Ba 1s. DAVID Malan: Ba 1s. Vì vậy, 1, 1, 1, vì chúng ta chỉ cần 4 cộng với 2 cộng với 1 mang lại cho tôi 7. Tất cả các quyền. Vì vậy, từ đó làm thế nào để chúng ta đại diện cho 8 với 3 giữ chỗ? Yeah. HỌC SINH: 1, 0, 0, 0. DAVID Malan: Yeah 1, 0, 0, 0. Và có lẽ, tôi loại các kỹ thuật cần thêm giữ chỗ khác để hội đồng quản trị. Nếu tôi muốn để phù hợp mà tôi thực sự cần phải làm một cái gì đó như thế này. Vì vậy, tôi thực sự cần phải sử dụng bây giờ cột 8s, và đó là tốt. Nhưng điều kỳ lạ trong máy tính là rằng điều đó sẽ làm chúng ta một cái gì đó. Bạn cần phải thêm RAM trong máy tính của bạn ngay bây giờ. Bạn cần nhiều bộ nhớ hơn bởi vì bạn cần một cái gì đó vật lý để lưu trữ mà thêm chút, vậy để nói chuyện. Binary chữ số. Và thực sự tất cả những gì đã xảy ra ở đây, giống như hệ thống số thập phân, nếu chúng tôi tiếp tục thêm số lên và lên trở lên, chúng tôi đi đến 5-6 đến 7-8 nó giống như mang 1, theo nghĩa đen. Và sau đó mọi thứ khác đi trở xuống không. Nhưng làm thế nào để chúng ta thực sự đại diện những điều này thể chất trong một máy tính? Vâng, vào cuối ngày, chỉ đầu vào vật chất đi vào máy tính của tôi đây là dây nguồn này, vì vậy điện hoặc điện tử từ các bức tường. Và do đó, làm thế nào để tôi nhận được từ một cái gì đó vật lý như rằng để thực sự đại diện cho một ý tưởng như thế này để thay thế. Vâng, những gì chúng ta có thể làm gì? Chúng ta có thể xem xét rằng, tất cả các quyền, có lẽ nếu điện đang chảy Tôi có thể lưu trữ nó và giữ nó. Và nếu tôi đang cầm trên đến một số điện, đó là chỉ cần đi để tùy tiện đại diện cho một 1. Và nếu tôi rút phích cắm và không có gì ở đó, Bạn có biết rằng chỉ cần đi tự ý đại diện cho một 0. Vì vậy, nếu có điều gì là có, 1. Nếu không có gì là có, 0. Hoặc bạn có thể làm điều này trực quan hơn một chút. Dưới đây là một 0. Không có gì thú vị đang diễn ra trên về mặt sau của điện thoại của tôi. Nhưng nếu tôi cho phép một chút chút về điện chảy, mặc dù đó là một sáng nhỏ ở đây, đèn pin của tôi đã đi vào. Vì vậy, tôi đang lưu trữ một khoản phí và ergo, điện thoại này ngay bây giờ đại diện cho một 1. Vì vậy, 0 1. Vì vậy, với 1 iPhone thế nào tôi có thể cao đếm sử dụng cách tiếp cận này? Tôi có nghĩa là 1. Đó không phải là tất cả những gì hấp dẫn. Vì vậy, nhiều hơn những gì chúng ta có thể làm gì? Vâng chúng ta hãy xem, là bất cứ ai trên của họ điện thoại ngay bây giờ mà tôi có thể mượn? Bất cứ ai có một điện thoại với một đèn pin được xây dựng trong? Tôi có thể mượn? Tôi không cần nó mở khóa. Tất cả các quyền. Cho tôi biết. Hãy cho tôi mượn này. Tất cả các quyền. Vì vậy, nếu bây giờ tôi di chuyển lên và ở đây, những gì tôi đại diện cho bây giờ? Yeah. Vì vậy, đó là một ba bởi vì đây là trong cột 1s, đây là trong cột 2s. Vì vậy, 1 cộng với 2 là 3. Và sau đó nếu chúng ta cố gắng để có được thực sự creative-- oh, cảm ơn bạn. Rất ưu tiên. Tất cả các quyền. bây giờ tôi có ba chiếc iPhone. Tất cả các quyền. Và bây giờ tôi sẽ không này-- làm bất kỳ xa hơn thế. Tôi đại diện cho những gì bây giờ? Chỉ cần bảy. Nhưng tôi cần thể chất bộ nhớ hơn trong trường hợp này. Nhưng đó là tất cả nó được. Bạn có thể nghĩ về những gì đang xảy on-- cảm ơn bạn-- bên trong điện thoại của bạn như chỉ là một chuyển đổi đó là được bật và tắt. Và nếu bạn đã từng nghe nói các bóng bán dẫn từ. Hoặc nếu bạn đã từng nghe tiếp thị nói Intel bên trong, đó là nói chuyện với các loại phần cứng đó là bên trong của máy tính của bạn. Intel làm cho CPU, các đơn vị xử lý trung tâm, nó cũng giống như bộ não bên trong máy tính của bạn. Và các CPU và những điều họ đang kết nối có rất nhiều và rất nhiều thiết bị chuyển mạch nhỏ. Hàng triệu, hàng tỷ thiết bị chuyển mạch mà có thể được bật hoặc tắt. Vì vậy, máy tính, may mắn, như máy tính Mac và máy tính của chúng tôi, có thể đếm cách cao hơn so với 7 hoặc 8 bởi vì họ có cách hơn ba hoặc bốn bit. Way hơn tương đương với ba đèn pin mà chúng ta chỉ có. Nhưng bây giờ điều này bắt đầu nhận được khá nhàm chán một cách nhanh chóng. Nếu bây giờ tôi muốn thực sự có thể để làm một cái gì đó thú vị hơn, Tôi muốn để có thể nhảy một cái gì đó như thế này. Vì vậy, ASCII, nó không thực sự là một hữu ích từ viết tắt, nhưng Mã tiêu chuẩn Mỹ cho trao đổi thông tin. Nó chỉ có nghĩa là, một số năm trước đây con người chúng ta quyết định, bạn biết những gì, chúng tôi muốn có thể làm hơn với máy tính hơn so với chỉ số. Chúng tôi không muốn họ chỉ được tính đắt tiền, chúng tôi muốn để có thể làm những việc như xử lý văn bản, mặc dù rất đơn giản. Sau đó chúng tôi đã có email và các phương tiện khác như vậy. Và như vậy trên thế giới đã quyết định một số năm trước theo hệ thống ASCII này, bạn biết những gì? Trong một số loại chương trình bất cứ lúc nào bạn thấy tương đương với số lượng 65, giống như mô hình của các bit. Và chúng ta có thể làm toán ở đây trên diễn đàn. Các mô hình của bit đại diện cho 65. Đừng nghĩ về nó như là 65 trong số thập phân. Hãy nghĩ về nó như một cách tùy tiện, nhưng toàn cầu, luôn là thủ đô A. Và sau đó thế giới quyết định, bạn biết những gì? Hãy lấy một mẫu bit. Và nếu chúng ta từng thấy số 66, chúng ta hãy chỉ giả định rằng đó là vốn B. Nhanh chóng chuyển tiếp đến H và tôi, nếu bạn thấy 72 hoặc 73, mà nên H và I, tương ứng. Và như vậy miễn là toàn bộ thế giới đồng ý khi này. Vì vậy, khi bạn nhận được một email, hoặc bạn sẽ nhận được một tập tin trên một thanh USB, hoặc một cái gì đó giống như khi mà-- bạn thấy rằng mô hình của các bit, bạn biết rằng nó phải được điều này lá thư hoặc một số thư khác. Nhưng đó là bối cảnh cụ thể, phải. Một chương trình email có thể giải thích những điều như các nhân vật, nhưng một máy tính đồ họa hay máy tính có thể đại diện hoặc giải thích những điều này, tất nhiên, như các chữ cái. Vì vậy, với những gì đã nói, xem xét nhanh chóng ít. Đây là có thể là một nhân vật ba e-mail đã được gửi đến cho tôi. Bên dưới mui xe đó là tất cả trong 0 và số 1, nhưng chúng tôi không quan tâm. Chúng ta sẽ bắt đầu trừu tượng trên 0 và số 1 cho chữ. Và nếu tôi thấy một mô hình của 0 và số 1 mà thực sự đại diện cho 72, gợi ý, gợi ý, 73, và sau đó 33, thông báo là gì? HỌC SINH: [IM LẶNG] DAVID Malan: Vì vậy, nếu bạn nghĩ lại chỉ là một khoảnh khắc trước, HI là thông điệp mà tôi đã cố gắng để giao tiếp ở đây vì H là 72, Tôi là 73, và bây giờ 33-- bạn sẽ không nhất thiết phải biết điều này trước, nhưng nó quay ra nếu bạn thực sự xem chi tiết của biểu đồ và hệ thống nhân loại rằng thoả thuận năm trước đây, nó chỉ là một dấu chấm than. Và quả thực, có một mô hình của biểu tượng và số lượng cho mỗi nhân vật mà bạn có thể có trên bàn phím của bạn. Tất cả các quyền. Hãy trừu tượng hơn nữa. Nếu chúng ta không muốn chỉ có những thứ như con số và chữ cái, chúng tôi thực sự muốn thực hiện đồ họa. Vâng, nếu bạn đã từng nghe từ viết tắt RGB. Nó loại ngày nay, nhưng nó vẫn còn loại đó. RGB là màu đỏ, xanh lá cây, xanh dương. Và nó chỉ là một hệ thống nói, bạn biết những gì, hãy sử dụng ba bộ bit. Một bộ 8 bit, một bộ 8 bit, và một bộ 8 bit. Và chúng ta hãy sử dụng các bit để lưu trữ bao nhiêu chúng tôi đỏ muốn trên màn của chúng tôi, bao nhiêu màu xanh lá cây, chúng tôi muốn trên màn hình của chúng tôi, và bao nhiêu màu xanh, chúng tôi muốn trên màn hình của chúng tôi. Và điều này chỉ có nghĩa rằng nếu bạn có một lot-- một số lượng lớn cho màu đỏ, đó có nghĩa là cung cấp cho tôi rất nhiều màu đỏ. Nếu bạn có một số lượng lớn cho màu xanh lá cây, cho tôi rất nhiều màu xanh lá cây. Và nếu bạn có chỉ là một chút của màu xanh hoặc một số nhỏ như 33, cho tôi một chút màu xanh. Và nếu bạn xảy ra để kết hợp ba độ lớn, có thể nói, bạn nhận được này-- bạn chỉ có thể nhìn thấy trên máy chiếu ở đây, nhưng âm u này màu vàng hoặc nâu. Nhưng điều này là để nói, sử dụng mà mô hình của 8 cộng 8 cộng với cộng với 8-- rằng mô hình của 24 bit là làm thế nào một máy tính sẽ lưu trữ mà bóng vàng trong một nhỏ chấm một điểm ảnh trên màn hình. Vì vậy, chúng tôi đã đi từ 0 và số 1 đến số thập phân con số để các chữ của bảng chữ cái. Hoặc thú vị hơn, dấu chấm màu. Vâng, những gì tất nhiên sau đó sẽ đến tiếp theo? Vâng, một hình ảnh là những gì mà bạn thấy trên Facebook hoặc nhận được trong một email? Hoặc như thế nào? định nghĩa là gì kỹ thuật của một hình ảnh? Yeah. một hình ảnh bao gồm nếu bạn là gì trông thật gần vào màn hình của bạn? Yeah. Nó chỉ là một bó toàn bộ các điểm ảnh. Trong thực tế, nếu bạn mất bạn máy tính xách tay có lẽ sau này, và xem xét thật sự chặt chẽ tại it-- tùy về cách tốn kém các máy tính xách tay là và bao cao chất lượng màn hình, bạn rất tốt có thể thấy tất cả các các dấu chấm nhỏ trên màn hình. Và những dấu chấm hoặc pixel, có nghĩa là có 24 bit đại diện cho mỗi điểm ảnh trong đó bức ảnh mà bạn nhìn thấy trên Facebook, hoặc là bạn chỉ cần lấy trên iPhone của bạn gần đây. Và đó là cách chúng tôi có được đến những thứ như đồ họa. Vâng, một video là gì? Một video chỉ là một tập hợp của đồ họa bay bởi màn hình một lần nữa và một lần nữa và một lần nữa. Và vì vậy các video thực sự, chỉ là mô hình bit đại diện cho lưới, hàng và cột của các chấm, bay bằng hình ảnh màn hình, sau khi hình ảnh, sau khi hình ảnh, còn được gọi là hình ảnh chuyển động. Vì vậy, đó là nó cho đầu vào và đầu ra. Tất cả chúng ta có bây giờ là một Giả định rằng, bạn biết những gì, nếu chúng ta muốn có một máy tính để đại diện cho thông tin, chúng ta có một hệ thống để làm việc đó. Chúng tôi có thể làm điều đó với số 0 và 1s vào cuối ngày. Nhưng chúng ta có thể trừu tượng, vì vậy để nói chuyện, trên đó để đại diện cho hơn những điều thú vị. Và đây trên ra trong CS50, và trong khoa học máy tính nói chung, bây giờ chúng tôi đứng trên vai của tất cả những người đến trước chúng ta những người hiện ra điều đó. Và bây giờ chỉ là giả định rằng các máy tính có thể đại diện cho đầu vào và đầu ra. Nhưng bây giờ chúng ta hãy thực sự làm điều gì đó với họ. Vì vậy, một thuật toán chỉ là một tập các hướng dẫn, từng bước một, để giải quyết một số vấn đề. Và những gì có thể một vấn đề như vậy được. Vì vậy, đây là một trường học cũ công nghệ, một cuốn sách điện thoại. Và bên trong của một cuốn sách điện thoại là một bó toàn bộ các tên và số. Và những cái tên thường được sắp xếp theo thứ tự abc. Vì vậy, nếu tôi muốn tìm một người nào đó trong danh bạ điện thoại này như Mike Smith, một con người điển hình sẽ làm những gì? Vâng, bạn chỉ có thể mở nó lên, nhìn vào trang đầu tiên. Tôi không thấy Mike Smith. Rẽ đến trang thứ hai, Tôi không thấy Mike Smith. Và chỉ tiếp tục đi và đi. Là bước này bằng cách tiếp cận bước đúng? Yeah. Đó là loại ngu ngốc, phải. Nó không hiệu quả, phải. Bởi vì nó sẽ mất mãi mãi để có được Mike, nhưng nó là đúng. Bởi vì nếu Mike là đây Tôi thực sự sẽ tìm thấy anh ta. Vì vậy, những gì là một chút nhiều hơn người hợp lý sẽ làm gì? Họ vẫn có thể mở ra phía trước, và có thể bay qua các cuốn sách điện thoại hai trang tại một thời điểm. Hai, bốn, sáu, tám. Tôi có thể không thực sự chất làm điều đó rất tốt. Nhưng trong lý thuyết, điều này nên được nhanh gấp hai lần, hai trang tại một thời điểm. Là thuật toán này có đúng không? HỌC SINH: [IM LẶNG] DAVID Malan: Không nhất thiết. Tốt. Tại sao báo trước đó? HỌC SINH: Bởi vì anh ta có thể là trên một của các trang mà bạn đang bỏ qua. DAVID Malan: Yeah. Vì vậy, ngay cả khi tôi nhận được gần hơn và gần gũi hơn. Điều gì nếu anh ấy chỉ là vô tình, bởi xấu may mắn, kẹp giữa hai trang mà tôi đang bay trên? Vì vậy, chúng ta cần một sửa chữa này. Chúng tôi thực sự cần phải sau đó nói, chờ một phút, có lẽ nếu chúng tôi đi quá xa, có thể nếu chúng ta nhấn phần T, cho T đến sau Smith, sau đó chúng ta nên ít nhất là gấp đôi trở lại ít nhất một trang. Vì vậy, có thể cứu vãn, nhưng có một vấn đề có điều kiện đó. Vì vậy, nó là nhanh gấp hai lần, nhưng bạn có thể phải tăng gấp đôi lại chỉ là một chút. Nhưng không ai trong phòng của mình, ngay cả khi bạn không thực sự sử dụng sách điện thoại nữa, sẽ bắt đầu từ đầu. Bạn định làm gì tìm kiếm Mike Smith? Bạn đang đi đến gần đến của S. Hoặc nếu bạn không thực sự có cheat sheet trên giấy, bạn sẽ đi ít nhất khoảng giữa. Và chắc chắn không phải để mặt trước của cuốn sách. Bạn sẽ nhìn xuống. Và về mặt toán học có lẽ bạn đang sẽ thấy phần M, là gần ở giữa. Và sau đó bạn sẽ nhận ra, những gì là sự thật? Trường Mike là? HỌC SINH: [IM LẶNG] DAVID Malan: Yeah. Vì vậy, ông đã qua bên này. Và vì vậy những gì bạn có thể làm gì? Vâng, cả nghĩa bóng và nghĩa đen bạn có thể phá các vấn đề trong một nửa một lần? Và sau đó biết rằng bạn có thể ném một nửa của vấn đề đi. Và bây giờ chúng tôi đang trái với cơ bản cùng một vấn đề, nhưng đó là một nửa là lớn. Và vì vậy bây giờ những gì là thiết lập các hướng dẫn? các thuật toán là gì cho việc tìm kiếm Mike Smith? Đó là điều chính xác. Bây giờ điều này sẽ xảy ra là M phần và điều này là phần Z, nhưng cơ bản công thức vẫn là như nhau. Đến khoảng giữa, nhìn xuống, oh, darn nó. Bây giờ tôi đang ở trong phần T, Tôi đã đi quá xa. Nhưng ở đây quá có thể bạn áp dụng được một logic. nửa ném của vấn đề đi và bây giờ chúng tôi trái với một vấn đề đó là một phần tư kích thước. Và chúng ta có thể lặp lại, và chúng ta có thể lặp lại, và chúng tôi có thể lặp lại cho đến khi về mặt lý thuyết chỉ có một trang còn lại trên mà Mike hoặc là hoặc không phải là. Vì vậy, những gì mạnh mẽ như vậy về ý tưởng này? Tôi có nghĩa là sau khi tất cả, nó là khá trực quan. Không ai sẽ bắt đầu vào bắt đầu của cuốn sách điện thoại và lật 1.000 trang để tìm Mike Smith. Hầu hết trong căn phòng này tất cả mọi người sẽ làm khoảng đó loại thuật toán tiết kiệm cho rách. Và như vậy tại sao chúng tôi làm điều đó? Vâng, hãy xem xét hiệu quả. Hãy xem xét như thế nào tốt hơn bấy nhiêu Thuật toán là bằng cách phá vỡ nó xuống thành các bộ phận của nó. Vì vậy, những gì đã làm tôi lần đầu tiên làm gì? Tôi nhặt cuốn sách điện thoại. Và một nhà khoa học máy tính, và một lập trình viên, nói chung nó quay ra, đang diễn ra để bắt đầu đếm tất cả mọi thứ ở mức 0. Tại sao? Vâng, đó là một chút lạ rằng con người chúng ta đếm được, nói chung, bắt đầu từ một. Bởi vì số lượng nhỏ nhất là gì chúng tôi rõ ràng có thể đại diện cho dựa ngay cả trên toán học lớp cũ của chúng tôi? Vâng, nó là 0, cho dù đó là trong số thập phân hoặc nhị phân. Và như vậy bạn sẽ thấy trên thế giới của máy tính và lập trình, Cụ thể, chúng tôi bắt đầu đếm tất cả mọi thứ từ 0. Vì vậy, tôi nhặt cuốn sách bước điện thoại 0. Tôi sẽ mở cửa cho giữa cuốn sách điện thoại. Và đó thực sự là một biểu hiện của những gì tôi đã làm. Và sau đó bước hai là nhìn vào những cái tên. Bước ba là một chút khác nhau về khái niệm. Tôi đang tự hỏi mình một câu hỏi. Nếu Smith là một trong số những cái tên, Tôi sẽ đưa ra quyết định. Nếu anh ấy là một trong những cái tên, sau đó tôi sẽ gọi Mike. Và tôi sẽ đưa ra quyết định trên cơ sở đó các mảnh thông tin. Tuy nhiên, nếu không, nếu là Smith trước đó trong cuốn sách bên trái, Tôi sẽ mở đến giữa của nửa trái của cuốn sách. Và sau đó ở đây là sự thông minh, Tôi sẽ quay lại bước hai. Tôi sẽ sắp xếp của đứng trên vai của tôi và chỉ cần lặp lại các công việc trong quá khứ tôi đã làm. Nhưng công việc tôi đã để lại là ít hơn, và ít hơn, và ít hơn. Nhưng nó vẫn còn đi làm việc. Nhưng nếu Mike, thay vào đó, là sau trong cuốn sách bên phải, Tôi sẽ mở đến giữa của nửa bên phải của cuốn sách, sau đó quay lại bước hai. Nhưng có thực sự là một kịch bản thứ tư. Mike hoặc là ở đây, hoặc ở đây hoặc ở đây, or-- HỌC SINH: Không có. DAVID Malan: Không có. Và quả thực, nếu chúng ta không lường trước Kịch bản thứ tư và cuối cùng này chương trình của chúng tôi có thể là lỗi hoặc thiếu sót trong một số cách. Khác, bỏ thuốc lá trong trường hợp đó chúng tôi đã không tìm thấy Mike ở tất cả. Và quả thực, nếu bạn đã bao giờ nhận thấy treo máy tính của bạn, hoặc tất cả của một từ bất ngờ hoặc một số khác chương trình chỉ cần bỏ bất ngờ, và đôi khi ngươi lỗi tin nghĩa là. Chương trình này bỏ bất ngờ. Nó có thể được cho bất kỳ số lý do. Nhưng đôi khi nó một cái gì đó đơn giản như này. Các lập trình viên người người đã viết phần mềm đã không nhận ra rằng, oh, có một ra điều đó thực sự có thể xảy ra. Và nếu bạn không viết code để chụp rằng kịch bản thứ tư, nó thực sự là bất ngờ đôi khi những gì máy tính có thể thực sự làm. Bây giờ chúng ta hãy gọi ra một vài trong số những điều này. Vì vậy, trong màu vàng ở đây, tôi có các điều kiện nêu rằng từ nay về sau chúng tôi chỉ sẽ gọi chức năng. Chức năng trong thế giới của lập trình cũng giống như hành động, báo cáo của các hành động. Vì vậy, lấy, mở cửa cho, nhìn tại, gọi, mở, mở, bỏ thuốc lá. Đó là một chức năng, một thủ tục, một hành động, bất kỳ số từ đồng nghĩa sẽ làm việc tốt. Bây giờ những điều này là những gì bây giờ trong màu vàng? Nếu khác, nếu người nào khác, nếu khác, đây là những gì chúng ta sẽ gọi điều kiện trong chương trình, hoặc các chi nhánh, quyết định chỉ, nếu bạn muốn. Nhưng làm thế nào để bạn biết được ngã ba trên đường đi, do đó, để nói chuyện? Chúng ta cần phải làm nổi bật các điều khoản về bên phải ở đó, mà là những Câu hỏi có, không. Những câu hỏi đúng sai. Smith trong số các tên? Smith trước đó trong cuốn sách? Smith sau này trong cuốn sách? Đây là những câu hỏi để trong đó có một có, hoặc không, hoặc tương đương đúng, hay sai, hoặc tương đương, một hoặc không trả lời. Và khi đó có chỉ cần một mảnh cuối cùng. Điều này ở đây có loại có hiệu lực? Cho dù bạn có chương trình hay không trước, sẽ như thế nào bạn mô tả những gì bước bảy đến 10 đang làm? Bạn nói gì? HỌC SINH: Một bước đệ quy. DAVID Malan: Một bước đệ quy. Vâng, về cơ bản. Đó là lặp đi lặp lại về mặt kỹ thuật ở đây nếu bạn đã quen thuộc. Nhưng chúng tôi sẽ quay trở lại đó. Nhưng nó đang làm một cái gì đó rõ ràng. Một lần nữa, nó gây ra một chu kỳ, một vòng lặp, phải. Bạn đang đi nghĩa đen sao một số bước trước đó. Và như vậy thực sự, điều này sẽ thực hiện một số loại chu kỳ. Nhưng bạn sẽ không có được bị mắc kẹt trong vô tận này, phải. Bởi vì nếu bạn liên tục kiểm tra là Mike ở đây, hoặc bên trái, hoặc không ở đây, cuối cùng ông sẽ không có mặt ở đó. Và bạn chỉ có thể bỏ hoàn toàn theo đó dòng cuối cùng. Vì vậy, đó là nó cho từ vựng. Và đây là những gì chúng ta sẽ thường gọi mã giả. Nó không phải là một ngôn ngữ thực tế. Nó chỉ là rất ngắn gọn tiếng Anh, nhưng nó giao điểm. Không có cấu trúc hình thức ở đây. Bạn chỉ cần sử dụng nó vài lời nói, nhưng những lời rõ ràng như bạn có thể để giao tiếp ý tưởng của bạn. Bây giờ làm thế nào tốt là thuật toán mà và làm thế nào tốt hơn là nó? Vâng, chúng ta không cần phải nhận được vào các chi tiết cụ thể của các con số hoặc bất cứ điều gì như thế. Nhưng chúng ta có thể nhìn vào hình của giải pháp này. Vì vậy, nếu chúng ta chỉ cần rút ra một số âm mưu xy đây trên trục ngang đây. Hãy chỉ việc gọi các kích thước của vấn đề. Và một nhà khoa học máy tính sẽ thường sử dụng n như biến ở đây. Vì vậy, n trang, hay n người trong phòng, hoặc bất cứ điều gì nó là bạn đang cố gắng để đếm. Và sau đó trên trục thẳng đứng trên trái, đó sẽ là thời gian để giải quyết. Vì vậy, có bao nhiêu giây nào đó đưa tôi đến tìm Mike Smith? Hoặc có bao nhiêu bước hiện nó đi? Mất bao nhiêu lượt trang? Vì vậy, đó là nó có giá bao nhiêu tôi trong thời gian để giải quyết một vấn đề. Và chúng ta có thể rút ra đầu tiên thuật toán độ dốc, nếu bạn muốn, như chỉ là đường thẳng này trong màu đỏ. Và tôi sẽ gọi nó là n. Tại sao n? Tại sao nó chỉ này đến một mối quan hệ? Vâng, nếu Verizon hay bất cứ công ty điện thoại thêm một trang khác để danh bạ điện thoại trong năm tới, mà có thể đẩy Mike một nhiều bước tiến gần hơn đến cùng, tùy thuộc vào nơi trang đó là. Và vì vậy hiệu quả có thể chỉ được bổ sung thêm một giây. Hoặc một trang lần lượt hơn. Một tỷ lệ 12:59. Ngược lại, các thuật toán thứ hai. Làm thế nào nhanh hơn nhiều là trực giác? Nơi tôi đã đi hai trang cùng một thời điểm? Yeah. HỌC SINH: [IM LẶNG] DAVID Malan: Yeah. Vì vậy, nó sẽ là nhanh gấp hai lần. Và chúng ta sẽ rút ra rằng ở đây tùy thuộc vào quy mô. Nó vẫn là một đường thẳng, nhưng thấp hơn so với đường đỏ. Bởi vì đối với một số số trang, nếu nó mất bạn này nhiều bước với các thuật toán đầu tiên, nó sẽ đưa bạn một nửa nhiều bước với thứ hai. Và do đó, dòng màu vàng mô tả các thuật toán thứ hai chỉ cần đi để được ở bên dưới. Nhưng những gì thực sự mạnh mẽ là để nghĩ về thứ ba và cuối cùng, và đáng ngạc nhiên nhất trực quan thuật toán, có hình dạng này. Về mặt kỹ thuật, chúng tôi sẽ gọi này một đường cong logarit. Đăng nhập cơ sở 2 của n trong trường hợp này. Nhưng điều đó không thực sự quan trọng. Điều quan trọng thực sự là cơ bản hình dạng khác nhau mà nó có. Và bạn có thể xem xét như thế nào ngắn hơn nhiều dòng này thực sự là trong thời gian dài. Nó không ngừng gia tăng. Nó không làm phẳng ra hoàn hảo. Nhưng nó phát triển bao giờ nên chậm hơn rất nhiều như vấn đề trở nên lớn hơn và lớn hơn. Và bạn có thể nghĩ về nó này way-- nếu Verizon không chỉ thêm một trang trong năm tới nhưng đôi số trang trong sổ điện thoại, các thuật toán đầu tiên có thể phải mất gấp đôi nhiều bước. Nếu đó là 1.000 trang này năm, 2.000 trang trong năm tới, Mike có thể là xa hơn đi. Vì vậy, nó là 1.000 bước thêm để tìm thấy anh ta. Thuật toán thứ hai có thể là chỉ có 500 hơn các bước để tìm thấy anh ta vì một lần nữa, Tôi đang bay qua nó hai tại một thời điểm. Nhưng những gì về các thuật toán thứ ba? Nếu Verizon tăng gấp đôi kích thước của cuốn sách điện thoại năm tiếp theo từ 1000 đến 2000 trang, có bao nhiêu bước nữa được thuật toán thứ ba của tôi sẽ mất? Yeah, nó chỉ là một. Và đó là ý tưởng mạnh mẽ. Bạn có thể mất 1.000 trang cắn ra khỏi vấn đề đó cùng một lúc. Và bây giờ nếu bạn xem xét một kịch bản ngớ ngẩn, nhưng nó loại nói đến sức mạnh của loại intuition-- nếu một cuốn sách điện thoại đã có, như, bốn tỉ trang, cảm thấy như một vấn đề thực sự lớn. Và quả thực, nó có thể đưa tôi bốn tỷ trang quay sang tìm Mike Smith trong đó trường hợp với các thuật toán đầu tiên. Nhưng có bao nhiêu bước sẽ nó mất trong thuật toán thứ ba để tìm Mike giữa bốn tỷ mẩu giấy? Vì vậy, bốn tỉ bạn xé một nửa. Bạn có hai tỷ đồng. Rồi một tỷ đồng, sau đó 500 triệu, 250 triệu, 125 million-- nhưng nó cảm thấy như thế này là sẽ mất một thời gian. Tôi có thể cần 32 ngón tay để đếm lên cao. Nhưng nó thực sự như là ít như 32 nước mắt trang. Bạn có thể đi từ bốn tỷ cho một phân chia trang số lượng ban đầu của trang trong nửa 32 lần cho đến khi bạn đang trái với chỉ là trang duy nhất. Bây giờ, tất nhiên, tôi đang lừa dối ở đây. Nó không phải là chúng ta chỉ là loại ngu ngốc hoàn toàn với hai người đầu tiên thuật toán. Tôi đang gian lận trong một nghĩa nào đó, hoặc thực sự tôi đang tận dụng một giả định. Những gì là sự thật về các cuốn sách điện thoại ở dạng ban đầu của nó cho phép tôi thậm chí còn sử dụng thuật toán thứ ba? Yeah? Đung Nó được chữ cái là. DAVID Malan: Nó được chữ cái là, phải không? Nếu nó chỉ là trong ngẫu nhiên trật tự, đây là một sự lãng phí thời gian, toàn bộ cuộc trò chuyện này. Tôi phải nhìn vào mỗi trang, nếu bạn không theo thứ tự để tìm Mike Smith trước khi tôi có thể kết luận ông là có hay không. Và vì vậy chúng tôi góc đã cắt là tôi có mà giả định một người nào khác trong trường hợp này đã làm việc cho tôi. Và vì vậy mà cuối cùng lời mời các câu hỏi, tốt, chờ một phút. Làm thế nào để bạn sắp xếp 1.000 trang của tên và số? Đó thực sự là một khác nhau vấn đề, một cái gì đó chúng tôi sẽ trở lại trong tương lai. Nhưng khi bạn nghĩ về trang web như Facebook và Google cho Gmail và những thứ như Google chỉ số tìm kiếm riêng, khi bạn có hàng triệu hoặc hàng tỷ mẩu dữ liệu được lưu trữ trong những ngày này, searching-- và không đề cập đến sắp xếp những problems-- cuối cùng là một thách thức cho chính nó. Và quả thực, điều này sau đó là chỉ là một trong những thách thức rằng chúng tôi sẽ xem xét. Vì vậy, bây giờ hãy dành một chút thời và hãy xem CS50 chính nó và cung cấp cho bạn một cảm giác gì trong cửa hàng trong học kỳ này. Thật vậy, nếu bạn chưa có, làm mất một cái nhìn tại URL này. Và như Patrick ám đến, năm nay chúng tôi làm cho một đầu tư đáng kể tất cả hơn trong hỗ trợ của khóa học cấu trúc về các hỗ trợ kỹ thuật và các CA, giờ làm việc, phần sẵn có, và liệu kỹ thuật số trực tuyến, là tốt. Thật vậy, trong điều kiện của quá trình của bài giảng, chúng ta ở đây ngày hôm nay. Và sự mong đợi này năm chính thức của khóa học được tham dự vào ngày hôm nay, của khóa học Bài giảng cuối cùng, và một khóa học gần ở giữa học kỳ với mỗi bài giảng ở giữa làm sẵn thường vào một buổi chiều thứ sáu trực tuyến, cho cả học sinh học Yale và sinh viên Đại học Harvard năm nay. Thật vậy, một trong những thay đổi cơ bản là rằng chúng tôi đang áp dụng tại Harvard là một mô hình rất nhiều như chúng ta đã làm ở đây cuối cùng năm và bây giờ trong năm nay, do đó tương tự như vậy, chúng tôi vẫn quay nhất các bài giảng của khóa học tại Cambridge nhưng làm cho họ có sẵn trước đó hơn chúng tôi có trong quá khứ vì vậy mà những người của bạn-- nếu bạn muốn, ví dụ, có được một khởi đầu vào nguyên liệu vào cuối tuần đầu tiên chứ không phải so với cuối tuần thứ hai, bạn sẽ phải tiếp cận với các loại vật liệu, tìm kiếm, nhúng, hyperlinkable các nguồn tài nguyên liên quan đến tất cả các trước đó. Trong điều kiện của các chủ đề, để cung cấp cho bạn một cảm giác trajectory-- của khóa học và một số điều này có thể là biệt ngữ cho bây giờ, nhưng không lâu, yên tâm. Chúng tôi sẽ bắt đầu ngày hôm nay, cuối cùng, với nhìn vào một lập trình ngôn ngữ được gọi Scratch. Chúng tôi sẽ chuyển sau đó tuần tới để một cái gì đó gọi là C và sau đó nhìn vào xây dựng khác khối để giải quyết vấn đề, điều được gọi là các mảng và các thuật toán, cách chúng ta sử dụng bộ nhớ để lợi thế của chúng tôi và bất lợi, và những thứ như cấu trúc dữ liệu, và sau đó về phía cuối đuôi của lớp nhìn vào máy tính học tập và nhìn khác ngôn ngữ được gọi Python, hành trang web hoạt động, bao internet hơn thường hoạt động, các giao thức như HTTP, ngôn ngữ cơ sở dữ liệu như SQL, JavaScript cho trang web, và cuối cùng buộc tất cả những người với nhau. Và như vậy thực sự, tại kết thúc trong ngày, bạn sẽ không được học trong lớp này Scratch hoặc C hoặc Python hoặc SQL hoặc JavaScript. Bạn sẽ thay nói chung học khoa học máy tính và các cơ sở của chúng, và bạn sẽ học cách lập trình trong bất kỳ số lượng các ngôn ngữ trên đường đi. Vì vậy, trên thực tế, một trong những mục tiêu của khóa học cuối cùng là cởi bỏ tất cả các khóa học của bánh xe đào tạo bởi những tuần lễ cuối cùng vì vậy mà sau này, bạn có thể trở lại fields-- của riêng bạn cho dù đó là hoặc là không khoa học máy tính hoặc kỹ thuật, trong tự nhiên khoa học, nghệ thuật, nhân văn, hoặc beyond-- và mang lại một số điều này ý tưởng của quá trình và lĩnh vực này của ý tưởng và thực tế kỹ năng để tên miền riêng của bạn để giải quyết vấn đề đó. Những gì chúng ta sẽ làm gì ở đây trong khi đó trong hầu hết các ngày thứ Năm sau ngày hôm nay là với người đứng đầu của khóa học hàng đầu những gì chúng ta sẽ gọi walkthrough bộ vấn đề của khóa học. Vì vậy, mỗi tuần khi chúng ta có một vấn đề thiết lập, chúng tôi sẽ được đi qua trong một vị trí như thế này thách thức của khóa học, cung cấp cho bạn một số mẹo và thủ thuật và kỹ thuật thiết kế. Nhưng nếu bạn không thể để làm cho những người trong người, nhận ra những người cùng nguồn lực sẽ được nhúng theo một trong các khóa học của trợ giảng trong các vấn đề đặt ra cho mình, là tốt. Vấn đề đặt ra trong năm nay, không giống như năm ngoái, dựa trên thông tin phản hồi, vẫn sẽ được phát hành vào ngày thứ Sáu. Nhưng thay vì là do Thứ Sáu sau, do đó cho phép bạn chỉ bảy ngày, hiệu quả sẽ do 10 ngày sau đó. Và quả thực, điều này sẽ có nghĩa là họ sẽ đan xen của một ngày cuối tuần. Nhưng chúng tôi hy vọng trong năm nay đặc biệt này sẽ cho phép học sinh để chứa tốt hơn lên xuống và dòng chảy trong lịch trình của họ, cho dù đó là các viện nghiên cứu hoặc extracurriculars hoặc thể thao hoặc mùa giữa nhiệm kỳ. Bạn có thể trước hoặc tải lại tải Tuần của bạn tập trung vào CS50 dựa trên tải khóa học thực tế tuần của riêng bạn. Vấn đề đặt ra chính mình sẽ bao gồm một loạt các ngôn ngữ, mặc dù chúng tôi sẽ tập trung chủ yếu là đầu vào trên C trước khi chúng tôi tập trung sau đó trên cao mức, nhiều ngôn ngữ web làm trung tâm. Và sau đó là một vài câu hỏi thường gặp đây-- bạn nên tham gia một lớp học như thế CS50 như một năm đầu tiên? Vì vậy, hoàn toàn. Và quả thực, nó không điều gì cần thiết bạn nên trì hoãn cho đến khi bạn đã cắt răng của bạn trên các loại khác của các lớp học. Nhưng đúng hơn, xem xét rằng đối với nhiều sinh viên, trong đó có tôi trở lại trong ngày, đây là một lĩnh vực rất xa lạ, đặc biệt là nếu bạn không bao giờ làm mất một CSA AP hay như thế ở trường trung học. Nhưng nhận ra rằng sớm, cho dù đó là khóa học này hoặc một số khóa học giới thiệu khác, hiện nay thực sự là thời gian tốt nhất, Tôi nghĩ, để tìm thấy một số con đường mới hay một số lợi ích học tập mới, là tốt. Và sau đó tham gia với courses-- khác vì vậy một trong những khác biệt chính ở đây so với Harvard là chúng ta chỉ mất bốn khóa học mỗi học kỳ tại Đại học Harvard cho một số lý do. Và các bạn thực sự kéo tắt một số 36 khóa học trong tổng số trong quá trình bốn năm của mình, có nghĩa là nói chung bốn hoặc năm các lớp học. Và tôi nghĩ rằng nó khá công bằng khi nói và để từ chối CS50, theo thiết kế, là có lẽ không phải là loại lớp là bạn nên thường đi với bốn khác khóa học cho một tổng số của năm vì psets là bởi thiết kế khá đặc biệt. Thật vậy, tôi cũng học được điều này trở lại trong ngày. Tôi sẽ không mô tả CS50 và khoa học máy tính, lập trình như rất nhiều khó khăn vì nó chỉ tốn thời gian. Nó không phải là điều mà nơi mà sau khi ăn tối, bạn có thể quay về ký túc xá của bạn phòng, ngồi xuống và bắt đầu tập trung vào các pset suy nghĩ, tất cả các quyền, Tôi sẽ nổ này ra đêm nay và sau đó di chuyển vào vấn đề tiếp theo của tôi vào ngày hôm sau. Đôi khi bạn chỉ cần nhấn một bức tường. Bạn có lỗi trong mã của bạn. Bạn không nhất thiết phải biết làm thế nào để giải quyết một số vấn đề. Và một trong những tính năng chính của lập trình cho bản thân mình cho đến ngày nay là bạn chỉ cần loại cần phải thực hiện một bước trở lại đôi khi, ngủ trên nó hay nghĩ về nó qua khóa học của chạy bộ hoặc một số hoạt động khác, và sau đó trở lại để nó tươi. Và bạn chỉ cần các cửa sổ thời gian. Và quả thực, đó là lý do tại sao chúng tôi đã kéo dài trong khoảng thời gian có sẵn cho các bài tập năm nay và cũng có, mỗi URL Tôi đặt lên trước khi đến mới học kỳ này là những gì, tỉa các vấn đề đặt ra để họ về cơ bản không kém nghiêm ngặt, và takeaways là không ít, nhưng có rất nhiều vấn đề ít trước, một ít nhiều legwork mà bạn cần làm ở phía trước của mỗi bộ vấn đề, như bạn sẽ thấy, trước khi có thể thực sự bổ nhào vào thịt của nó. Vì vậy, nhận ra rằng những người và khác thay đổi này là trên đường chân trời để thích tốt hơn sinh viên, nhưng cuối cùng để đảm bảo rằng takeaways là thực sự càng cao càng tốt. Vì vậy, trong khi công việc nhiều hơn có thể là trong một lớp học điển hình, chúng tôi hy vọng rằng lợi nhuận cho bạn và takeaways cho bạn và các kỹ năng và ý tưởng mà bạn thoát là tất cả những hấp dẫn hơn như một kết quả. Và để có được bạn there-- và điều này là một trong những bài học quan trọng, Patrick ám earlier-- là cấu trúc hỗ trợ của khóa học. Vì vậy, không chỉ có một trong CS50 đội ngũ cán bộ trình lớn nhất trong khuôn viên trường. Nó cũng có một trong những nhất đại học. Thật vậy, CS50 năm ngoái là lớp đầu tiên phải có một đội ngũ giảng viên đại học. Và minh chứng cho sự thành công mà làm gì bây giờ nhiều khóa học khác trong Yale CS có đó, là tốt. Và đối với sinh viên, cụ thể, sẽ những hỗ trợ kỹ thuật và trợ lý nhiên được hỗ trợ toàn bộ mạng lưới các nguồn lực hỗ trợ, trong đó các phần trì tụng, cơ hội hàng tuần để có các cuộc thảo luận thân mật hơn và ý kiến ​​của các tài liệu mục tiêu cho bài nhạc khác nhau, cho sinh viên ít thoải mái, thoải mái hơn, hay ở đâu đó. Những điều này sẽ làm theo sự sẵn có của các bài giảng bằng cách vài ngày mỗi tuần vào các ngày thứ Hai và thứ Ba. Và sau đó hours-- văn phòng một ngày-một cơ hội sự giúp đỡ từ các CA khóa học và hỗ trợ kỹ thuật sẽ là ngày thứ Tư và thứ Năm và Chủ Nhật lúc nhiều lần, tất cả trong số đó sẽ được đăng trên trang web của khóa học, thậm chí nhiều hơn so với năm ngoái, là tốt. Nhưng chìa khóa để CS50 là những gì, nếu Phải thừa nhận rằng không một chút khác thường, là văn hóa của khóa học mà chúng tôi đã cố gắng tu luyện, cả ở Cambridge trong nhiều năm và bây giờ gần đây nhất ở New Haven. Và trên thực tế, sắp tới này Thứ Bảy, nếu bạn không có nghe nói, là CS50 Puzzle ngày, trong đó có không có gì để làm với khoa học máy tính nhưng hoàn toàn được thiết kế để gửi một thông điệp rằng khoa học máy tính là về giải quyết vấn đề. Và quả thực, nếu bạn muốn hợp tác với một hoặc hai hoặc ba người bạn và hình thành một đội ngũ cho CS50 Puzzle ngày, có một cái nhìn tại các quảng cáo mà là trên đường ra. Và ba giờ pizza và câu đố và giải thưởng đang chờ đợi. Và quả thực, cho lần đầu tiên trong năm nay, nó sẽ không được tổ chức cùng với Harvard. Nó sẽ ở đây độc lập tại Yale. Vì vậy, giữ một mắt ra cho những người nếu bạn không có. Hầu hết mỗi thứ sáu trong học kỳ Chúng ta cố gắng làm cho một lớp học lớn cảm thấy nhỏ và mang lại một số 50 sinh viên ăn trưa với nhân viên của khóa học, với các cựu sinh viên, bạn bè từ ngành công nghiệp nói về những gì cuộc sống là như sau lớp như CS50 và trong mùa hè và sau khi tốt nghiệp. Vì vậy, giữ một mắt ra cho lời mời đó. Lần đầu tiên từng năm nay sẽ chúng tôi giữ đầu tiên CS50 mã hóa cuộc thi, một tùy chọn cơ hội lựa chọn trong giữa học kỳ, sau khi tất cả chúng ta đã có một số sáu hoặc bảy tuần của chương trình trong C dưới thắt lưng của họ để cạnh tranh, nếu bạn như vậy sẽ chọn-- lại trên teams-- cố gắng giải quyết nhiều thách thức như bạn có thể trong lập trình với bạn bè của bạn với những người khác. Và về phía đuôi của học kỳ đó chúng tôi sẽ điều lệ một số xe buýt, thực sự dành thời gian ở Cambridge, nếu bạn muốn muốn tham gia với chúng tôi, cho cái gọi là CS50 hackathon. Tại 7:00 chúng tôi sẽ bắt đầu. Khoảng 9:00, chúng tôi sẽ có pizza. Khoảng 1:00, chúng tôi sẽ có burritos. Và bất cứ ai vẫn còn tỉnh táo trên đi xe bus về nhà khoảng 5:00, chúng tôi sẽ dừng lại tắt cho pancakes tại IHOP trên đường home-- một cơ hội 12 giờ để đắm mình với các bạn cùng lớp và đội ngũ nhân viên trong dự án cuối cùng của khóa học, đó là một cơ hội đi vượt ra ngoài bộ vấn đề của khóa học và thiết kế và thực hiện nhất bất cứ điều gì quan tâm đến bạn, mà cuối cùng sẽ được đặc trưng ở đây trong Commons. Hội chợ bao giờ CS50 đầu lần cuối năm, một cuộc triển lãm cuối cùng của học kỳ hoặc lễ kỷ niệm của những gì tất cả mọi người trong lớp đã hoàn thành, đặc biệt là những người, một lần nữa, người đã đi từ không có gì để một cái gì đó, từ số không đến 60, không có nền trước và trưng bày, cuối cùng, một cái gì đó cho toàn bộ khuôn viên trường và, nếu trực tuyến, thế giới xem, là tốt. Bây giờ, những đây chỉ là một vài trong số các Hỗ trợ kỹ thuật và các CA mà làm CS50 có thể. Cho phép tôi mời bất kỳ của những nhân viên người đang ở đây để đi lên trên sân khấu, cũng như người đứng đầu của khóa học, cung cấp một số lời nguồn cảm hứng, là tốt. Andi: Hi, guys. Các bạn có thể nghe thấy tôi không? Nhờ gia nhập chúng tôi về điều này đáng yêu, mưa chiều thứ Năm. Tên tôi là Andi. Tôi là một cơ sở ở Berkeley. Và cùng với Stelios và mùa hè, chúng tôi sẽ được giảng dạy ba đầu của bạn trợ lý cho năm sắp tới này. Vì vậy, tôi đoán, chương trình của hands-- có bao nhiêu bạn không có ý định trở thành một CS lớn cũng không thực sự lặn sâu vào khoa học máy tính như là một chính ở đây? Tuyệt vời. Đó là rực rỡ. Vì vậy, tôi thực sự là một vấn đề toàn cầu và nhận thức khoa học lớn. Tôi nghĩa là đã đến Yale với ý định không bao giờ phải nhìn vào một số bao giờ trở lại trong cuộc sống của tôi. Khi tôi đến Yale, đây là cái gì đó đã không bao giờ vào tầm ngắm của tôi. Tôi muốn tìm hiểu về thơ. Tôi muốn tìm hiểu về vấn đề quốc tế. Tôi muốn tìm hiểu về bản vẽ màu nước. Có, chúng tôi cung cấp một lớp trên bản vẽ màu nước. Nhưng tôi không bao giờ thực sự được quan tâm trong bất cứ điều gì liên quan STEM. Nhưng sau đó tôi lớn tuổi có, tôi càng nhận ra rằng mỗi lĩnh vực thực sự trong một số ý thức sử dụng khoa học máy tính, hoặc nếu không khoa học máy tính, tính toán. Trong thực tế, đối với toàn cầu của tôi dự án capstone việc, chúng ta đang sử dụng phân tích dữ liệu để phân tích các cuộc tấn công khủng bố cho Boko Haram ở Nigeria. Và như vậy là bạn có thể thấy, bất kể về những gì chính bạn kết thúc theo đuổi hoặc những gì sở thích của bạn ở đây tại Đại học Yale là, lập trình và nền móng của bất cứ kỹ năng là siêu hữu ích. Và CS50 thực sự được trang bị tốt để loại cho vay rất nhiều tài nguyên của nó cho bạn, bất kể cách thoải mái bạn hoặc làm thế nào quan tâm đến bạn trong việc theo đuổi các lớp học. Summer sẽ nói một chút chút về những gì các bạn là sẽ tìm hiểu về năm nay. SUMMER: Hi, tất cả mọi người. Tôi Summer Wu. Tôi là một cơ sở ở Morse. Và tôi thực sự bắt đầu là một sinh viên CS50 bản thân mình. Vì vậy, ba năm trước đây, tôi đã được trên một năm khoảng cách. Tôi không bao giờ lấy một CS lớp ở trường trung học, nhưng tôi nghĩ rằng trong thời gian rảnh rỗi của tôi, nó muốn được mát mẻ để học hỏi làm thế nào để viết mã. Vì vậy, tôi đã làm một tìm kiếm Google nhanh chóng, nhìn cho những gì đã có sẵn trực tuyến, và nhìn thấy video này với Muppets và các DJ và các trang web mát mẻ. Tôi đã như thế, tôi muốn học cách để làm điều đó. Vì vậy tôi đã khóa học, và tôi chỉ rơi vào tình yêu với nó. Nhưng tôi nhớ là rất ghen tị với các con người có thể tham dự các hackathon, tham dự Puzzle ngày, tham dự các văn phòng giờ, có được sự giúp đỡ từ hỗ trợ kỹ thuật trong người. Và vì vậy tôi không bao giờ tưởng tượng mà tôi muốn có cơ hội để được tham gia vào đây quá trình đầu tiên đã đưa tôi quan tâm đến máy tính khoa học và là lý do tại sao Tôi là một khoa học máy tính lớn hiện nay. Vì vậy, tôi sẽ cảnh báo bạn, lớp này sẽ kéo dài bạn. Nó sẽ thử thách bạn. Nhưng nó cũng sẽ dạy cho bạn làm thế nào để làm điều mà bạn không bao giờ tưởng tượng bạn có thể. Stelios: Hi, tất cả mọi người. Tên tôi là Stelios. Tôi là một cơ sở ở Branford Cao đẳng và một chính CS. Tôi cũng từ Athens, Hy Lạp. Tôi thực sự mong muốn để đáp ứng tất cả các bạn, trò chuyện với các bạn ở phần, tại giờ làm việc, tại bữa ăn trưa ngày thứ Sáu. Tôi thực sự vui mừng vì chúng tôi đã đặt rất nhiều nỗ lực vào việc tạo ra một sự hỗ trợ độc đáo cấu trúc cho tất cả các bạn để làm cho kinh nghiệm của bạn với các khóa học tốt nhất có thể. Và tôi hy vọng rằng mặc dù hầu hết các bạn đã có thể không được thực hiện một CS Tất nhiên trước đó, tôi hy vọng đó là CS50 cho bạn là điều quan tâm tia lửa để tiếp tục theo đuổi máy tính khoa học trong tương lai, như nó đã làm với rất nhiều người trong quá khứ. Vì vậy, cảm ơn bạn vì đã ở đây, kích thích nhìn thấy bạn. Jason Hirschhorn. JASON Hirschhorn: Hi, tất cả mọi người. Tên tôi là Jason Hirschhorn. Tôi sống ở Silliman. Và tôi đã đi học ở Harvard là một undergrad và chuyên ngành trong nghiên cứu xã hội và minored trong khoa học máy tính. Và một trong những vai chính của tôi ở đây là hỗ trợ nhân viên tuyệt vời này như họ hỗ trợ tất cả các bạn. Trong thực tế, đây không phải là tất cả trong số họ. Có 55 sinh viên đại học và sinh viên tốt nghiệp ở đây để hỗ trợ tất cả các bạn. Và tôi dám nói là một trong những tốt nhất các bộ phận của khóa học cho bạn tất cả là nhận được để làm việc với họ, làm quen với họ, nhận được để xem chúng, cả trong CS50 và bên ngoài của CS50 học kỳ này và đối với nhiều học kỳ tới. Vì vậy, hy vọng bạn sẽ mất các Tất nhiên, vì hy vọng bạn có thể tương tác với các nhân viên tuyệt vời, chúng tôi có trên sân khấu. SPEAKER: Vâng, hãy để tôi hoàn thành bằng cách nói rằng nó sẽ được vui vẻ. DAVID Malan: Vâng, nhờ cả nhóm chúng tôi. Cho phép tôi tắt đèn và cho phép một số chi tiết của nhóm chúng tôi, cả từ Cambridge và New Haven, để chào hỏi như những kẻ nộp tắt. Và sau đó chúng tôi sẽ chuyển sang lần đầu tiên trong cuộc đụng chương trình của chúng tôi với ngôn ngữ này được gọi là Scratch. Vì vậy, nhờ vào đội. Hãy tắt đèn và nghe từ một vài người khác. [VỖ TAY] [XEM LẠI VIDEO] -Các Nhiệm vụ của CS50 là để làm cho bạn thoải mái hơn với một cách hoàn toàn mới suy nghĩ, suy nghĩ tính toán này. -Nó Làm khoa học máy tính thú vị, đó là một cái gì đó tôi đã không thực sự nhận ra đã có thể cho đến khi tôi mất lớp. -Tôi Là như thế, whoa. Tôi đang thực sự chuyển suy nghĩ của tôi vào máy tính ngay bây giờ. -Even Nếu bạn không có bất kỳ nền khoa học máy tính hoặc bất kỳ kinh nghiệm, điều này thực sự là lớp học cho bạn. -Vậy Tôi chắc chắn muốn học sinh của tôi chỉ được vui mừng về khoa học máy tính. Không chỉ lập trình, nhưng suy nghĩ như một nhà khoa học máy tính thực sự là những gì tôi muốn cố gắng để dạy cho sinh viên năm nhất của tôi. -CS50 Là cứng và bổ ích. -Một trải nghiệm. -Extravaganza. -Nó Ấy đưa chúng tôi đến cấp độ tiếp theo. [NHẠC] -Các TF là, tôi nghĩ rằng, huyết mạch của khóa học. -I'm Vui mừng để có sinh viên của tôi, tôi là giúp đỡ có mà aha chút thời gian để nhận ra những gì họ đang thực sự cố gắng để làm, để tìm ra cách để làm một pset. -CS50 Chắc chắn là một quá trình khó khăn. Nhưng không giống như bất kỳ khác Tất nhiên thực sự tại Đại học Yale, nó có lớn như vậy, cộng đồng hỗ trợ. -Bạn Hoàn toàn không cần phải biết bất cứ điều gì về mã hóa để có thể để tham gia khóa học. -Nó Là tuyệt vời để xem như thế nào đến nay người đến trong một học kỳ. -Bạn Không được một mình ngồi trong phòng học tập để mã, nhưng nó là nhiều hơn chỉ là một lớp học. Đó là một kinh nghiệm. -Các Cách tốt nhất để học các khái niệm và để xử lý chúng là bằng cách dạy cho những người khác. -Điều Gì chia điện thoại là gì? [NHẠC] -Và Đây là CS50. [NHẠC] -Đây Là CS50. -Có một vấn đề? Xé nó ra. [NHẠC] Ném nó đi. DAVID Malan: Tất cả các quyền. Vì vậy, hãy tackle-- trong một chút chút, tình cờ, đó là được truyền thống này cho một số lý do cho 10 năm để phục vụ bánh tại bắt đầu và kết thúc của CS50. Vì vậy, chờ bạn ở cuối ngày hôm nay, ngoài giáo trình, sẽ có một số bánh là tốt, và nhân viên của khóa học để chào hỏi. Nhưng bây giờ, chúng ta hãy chuyển sang đầu tiên của ngôn ngữ của chúng tôi, nơi chúng ta sẽ dành sự chỉ là một tuần và một Vấn đề đặt trên tên miền này, Scratch. Và bạn sẽ tìm thấy nếu bạn đã lập trình trước, nhiều các ý tưởng và các Khả năng là quen thuộc với bạn. Nhưng bạn sẽ thấy rằng nó là thú vị trên đường đi để tìm ra chính xác như thế nào để dịch một số trong những ý tưởng mà bạn đã biết đến môi trường đặc biệt này để thực sự gây ấn tượng với gia đình của bạn và bạn bè với công việc của bạn, có thể đi trực tuyến, nếu bạn lựa chọn, sau đó. Và nếu bạn không có kinh nghiệm trước và trong đa số sinh viên ít thoải mái, nhận ra rằng rất nhiều các ý tưởng chúng tôi chỉ khám phá với những thứ reality-- như sách điện thoại và tham dự và vì vậy forth-- dịch khá độc đáo với một máy tính, nhưng nếu bạn sử dụng, Ban đầu, một ngôn ngữ như thế này. Vì vậy, đây là một chương trình được viết trong một ngôn ngữ được gọi là C. Và chúng ta sẽ dành một chút thời gian trong C, cuối cùng. Nhưng tỷ lệ cược là, điều này sẽ xem xét một chút khó hiểu với bạn ở cái nhìn đầu tiên. Trong thực tế, có rất nhiều kỳ lạ cú pháp, dấu ngoặc đơn, dấu ngoặc vuông góc, dấu ngoặc, dấu ngoặc kép, và dấu chấm phẩy. Và quả thực, nếu bạn nhảy vào lập trình cho lần đầu tiên nhìn và cố gắng để tạo công cụ như thế này, một cách trung thực, bạn sẽ có được quá sa lầy thường xuyên trong chỉ là ngu ngốc minutia mà không có gì trí tuệ thú vị về nó. Nhưng hãy tưởng tượng nếu bạn có thể tạo ra cùng program-- này mà, như bạn có thể loại suy luận, có lẽ in "Hello, world" bằng cách này hay khác. Chúng ta có thể tóm lược rằng ý tưởng tương tự vào chỉ hai mảnh ghép, nếu bạn muốn. Thật vậy, Scratch là thú vị bởi vì đó là ngôn ngữ đồ họa này. Bạn có thể kéo và thả các mảnh ghép mà chỉ có khóa liên động nếu nó làm cho cảm giác hợp lý để làm như vậy. Và như vậy trong Scratch, chúng ta sẽ sớm thấy, đây là làm thế nào bạn sẽ thực hiện điều đó cùng chương trình, chỉ với hai mảnh ghép mà khá nhiều làm những gì họ nói. Nhưng chúng ta sẽ thấy chỉ trong một khoảnh khắc mà một số của các khối xây dựng mà chúng ta ám chỉ đến trước đó và một vài chi tiết là tất cả những cuối cùng sẽ tạo thành một số chương trình đầu tiên của chúng tôi. Chúng ta sẽ có những điều như functions-- chỉ hành động đó làm điều gì đó, như chào hỏi, thế giới. Chúng tôi đang đi để có vòng, điều đó gây ra chu kỳ một lần nữa và một lần nữa, giống như chúng ta đã làm một thời gian trước đây với tìm kiếm Mike Smith. Biến, như trong đại số, nếu bạn có x hoặc y, có thể lưu trữ một số. Vâng, trong một chương trình, bạn có thể thực sự lưu trữ nhiều hơn chỉ số. Bạn có thể lưu trữ các từ và câu và đồ họa và những thứ khác vẫn còn. biểu thức Boolean, chỉ câu hỏi bạn có-- có hay không, đúng hay sai. Điều kiện, quyết định làm dựa trên những có / không trả lời. Và điều đó fancier như mảng và chủ đề và các sự kiện và bất kỳ số khác tính năng, nhưng tất cả đều bản đồ rất độc đáo đến rất khối thân thiện như thế này. Đây sẽ là một chức năng, một tím mảnh ghép mà chỉ nói những gì tên của nó hợp-- trong trường hợp này, nói. Và sau đó thường xuyên, có một hộp màu trắng mà bạn có thể gõ hoặc kéo một số giá trị vào. Và đó là những gì thường được gọi là một đối số hoặc một tham số. Đó là một cách làm thay đổi hành vi mặc định của một câu đố mảnh hoặc một chức năng để nó không một cái gì đó tùy chỉnh cho bạn thích nói, hello, thế giới hoặc hello, Andy hoặc hello, Jason hoặc một số câu khác thay thế. Nếu bạn muốn nói rằng một lot-- nghĩa forever-- bạn có thể mất nhau mảnh ghép gọi là mãi mãi và chỉ cần kẹp các hai cùng nhau như thế này. Và vòng lặp, như là hình ảnh cho thấy, có nghĩa là chỉ cần nói xin chào, thế giới mãi mãi, Một lần nữa và một lần nữa và một lần nữa. Hoặc, nếu bạn chỉ muốn làm điều đó một số lượng hữu hạn của thời gian, giống như 50 lần, có sẽ là câu đố khác mảnh cho mà-- lặp lại 50 lần. Trong khi đó, nếu bạn muốn phải có một biến trong ngôn ngữ này chúng tôi về để chơi với, bạn có thể sử dụng một khối màu cam như thế này. Và biến này tôi tùy tiện gọi tôi cho số nguyên. Và tôi chỉ cần đặt nó bằng 0. Và như vậy có lẽ tôi, trong này case-- này variable-- đại diện cho số của một ai đó trong một trò chơi. Bạn bắt đầu từ số không, và mỗi khi bạn làm cho một mục tiêu hay một cái gì đó như thế, bạn sẽ có được một điểm bổ sung. Bạn có thể đặt câu hỏi tại Scratch. Nếu bạn kéo và thả câu đố miếng trong một thời điểm như thế này, bạn có thể hỏi những câu hỏi như, tốt, là tôi ít hơn 50? Có lẽ bạn cần 50 điểm để giành chiến thắng. Và vì vậy đây sẽ là các câu hỏi mà bạn muốn hỏi. Hoặc, nói chung, bạn có thể nói là ít hơn x y, nơi có hai biến tham gia? Bây giờ, đây là một trong rất nhiều lớn hơn ở cái nhìn đầu tiên, nhưng thực sự không phải tất cả những phức tạp hơn. Đây chỉ là một sự kết hợp điều kiện và biến và biểu thức Boolean hỏi ba câu hỏi bạn có-- là x ít hơn y? Nếu vậy, nói như vậy. Say, x là ít hơn so với năm ngoái. Khác, nếu x lớn hơn y, khác x phải bằng y. Và trong khi với Mike Smith, có bốn kịch bản, đây trong thế giới số, x là một trong hai ít hơn, lớn hơn, hoặc bằng. Tất cả chúng ta có ba ngã ba đường. Và sau đó có fancier mảnh ghép như thế này cho những thứ như mảng, nơi chúng tôi sẽ có thể lưu trữ thông tin. Chúng ta sẽ thấy khối cho phép chúng tôi thực hiện nhiều chủ đề, Tính năng khác chúng tôi sẽ sử dụng, và sau đó cũng có cái gì sự kiện được gọi là. Nhưng trước khi chúng tôi nhận được để mà điểm và tạo ra thậm chí, cuối cùng, tùy chỉnh riêng của chúng tôi mảnh ghép, hãy thực sự mở chương trình chính nó. Vì vậy, đây là Scratch. Nó có sẵn tại scratch.mit.edu. Và bạn đang chào đón để chơi bây giờ hoặc sau này, là tốt. Điều này xảy ra là phiên bản offline. Đối với những người không nhất thiết phải có internet lớn, bạn có thể tải về cùng một phần mềm, là tốt. Và có thực sự chỉ có ba các thành phần phần mềm này. Trên góc trên bên trái của màn hình là loại sân khấu rằng Scratch, người theo mặc định trông giống như một con mèo, sống bên trong. Ông có thể di chuyển lên, xuống, trái, và bên phải và làm nhiều việc khác, và có thể tìm bất kỳ số cách dựa trên những bộ trang phục mà bạn gán cho ông. Nhưng đây là những gì chúng ta sẽ gọi một ma, một loại nhân vật. Và bạn có thể có nhiều nhân vật, như chúng ta sẽ thấy ngay. Ở giữa bây giờ tất cả các câu đố miếng và các danh mục hoặc pallet hiện. Vì vậy, ngay bây giờ, tôi nhấp vào Motion. Và do đó, tôi nhìn thấy tất cả các chuyển động liên quan đến mảnh ghép hoặc các khối, nên chức năng mà có để làm với đi lên, xuống, sang trái, hoặc sang phải hoặc một số hoạt động khác. Nhưng nếu tôi nhấp vào vẻ, bạn có thể nhìn thấy những thứ như các khối nói rằng chúng tôi chỉ vừa mới đây. Và nếu tôi bấm vào Control, bạn sẽ thấy những thứ như sự lặp lại và mãi mãi và nếu khối chúng ta đã thấy lúc nãy. Và do đó, bạn sẽ tìm thấy rằng chúng tôi sẽ chỉ làm xước bề mặt của một số các câu đố miếng lại với nhau, nhưng đó là tất cả khá trực quan và điểm và nhấp chuột. Thật vậy, Scratch được thiết kế cho học sinh nhỏ tuổi để giúp cung cấp cho họ một lối thoát cho tư duy sáng tạo. Và tuyệt vời, đó là một bước đệm tuyệt vời chính xác các ý tưởng chúng ta sẽ khám phá trong C và Python và JavaScript, cũng. Về phía bên phải, cuối cùng, đây là thế này, cái gọi là khu vực các kịch bản. Và điều này chỉ là phiến đá trắng với mà bạn bắt đầu viết một chương trình. Và tôi sẽ chính xác điều đó. Bây giờ, tôi tình cờ biết nơi mà mọi thứ là bởi vì tôi đã làm điều này một vài lần. Nhưng tôi biết rằng dưới các loại sự kiện, có khối đây-- này khi lá cờ màu xanh lá cây nhấp vào. Và nhận thấy nếu tôi phóng to ra và lại qua đây trên sân khấu, cuộc sống Scratch trong này ít thế giới hình chữ nhật, trên đỉnh mà là một màu xanh lá cây cờ và một dấu hiệu dừng lại màu đỏ. Vì vậy, đi và dừng lại, tương ứng. Và vì vậy những gì tôi muốn làm khi mà lá cờ màu xanh lá cây được nhấp? Vâng, hãy để tôi đi đến đó Trông loại. Và hãy để tôi đi trước và kéo và thả này. Và thông báo ngay sau khi nó được gần gũi, họ loại từ. Vì vậy, nếu bây giờ tôi cho đi, nó snaps cùng tốt đẹp và sạch sẽ. Và tôi sẽ đi trước và nói điều gì đó giống như hello, thế giới trong hai giây. Hãy để tôi thu nhỏ và nhấp vào bây giờ lá cờ màu xanh lá cây, và nói, xin chào, thế giới. Tất cả các quyền. Vì vậy, đó là tất cả tốt và tốt. Không phải tất cả là thú vị. Hãy làm cho nó một chút dễ thương hơn. Và tôi biết rằng trong trước, Scratch xảy ra để đến với một số những thứ dễ thương như thế này. Vì vậy, chơi meow âm thanh cho đến khi thực hiện. Vì vậy, hãy làm điều này. [MEO] Aw, đó là đáng yêu. Và nếu tôi nhấp vào nó again-- [MEO] Và một lần nữa. [MEO] Nhưng tôi cứ phải reanimate Scratch. Nhưng tôi có thể làm tốt hơn thế này. Tại sao tôi không chỉ cần kéo ba trong số này. Và bây giờ là ba lần như đáng yêu. [MEOWING] OK, trên thực tế, đó là một chút đáng sợ. Vì vậy, chúng ta cần một cái gì đó ở giữa có. Nếu tôi đi đến kiểm soát, nó trông giống như có thực sự là một khối chờ đợi. Và do đó, nhận thấy nếu tôi đưa chuột qua there-- và hãy để tôi làm này lớn hơn một chút. Nếu tôi đưa chuột, nó sẽ để gắn vào vị trí. Vì vậy, chờ đợi một giây, đợi một giây. Hãy đánh cờ màu xanh lá cây một lần nữa. [MEOWING] OK, một chút tự nhiên hơn, nhưng không phải là rất hiệu quả. Vì vậy, đây là chính xác nếu chương trình của tôi Mục tiêu được meo ba lần. Nhưng nó không phải là rất được thiết kế tốt. Tôi loại cắt giảm một số góc. Tôi có một chút lười biếng. Những gì cảm thấy like-- tôi làm những gì có vẻ đã thực hiện kém, bạn sẽ nói gì? Yeah? Vâng, ở giữa. Đung sử dụng hơn bộ nhớ hơn bạn cần bởi vì bạn đang sử dụng rất nhiều dòng khác nhau. DAVID Malan: Yeah, vì vậy nhiều dòng. Và nó sẽ không nhất thiết phải có bộ nhớ, mặc dù nó có thể được nhìn thấy như vậy. Nhưng nó definitely-- có dự phòng. Và tôi thật sự loại kéo và giảm những điều tương tự. Và nếu bạn loại extrapolate-- nếu nó không rõ ràng đây-- tốt, như thế nào sẽ Tôi meow 30 lần? Tôi sẽ kéo và thả, như, hơn 30 cặp mảnh ghép. Và chắc chắn, có một cách tốt hơn. Và chúng tôi đã nhìn thấy một cách tốt hơn. Những gì trực giác sẽ là cách tốt hơn? Vâng, chỉ cần sử dụng một vòng lặp. Không sao chép và dán. Và quả thực, bất cứ lúc nào này học kỳ nếu bạn bắt đầu tìm cho mình cách kéo và thả, hoặc thực sự sao chép và dán, thói quen nguy hiểm để có được vào vì này chỉ là không phải là rất dễ bảo trì. Ví dụ, nếu tôi muốn thay đổi âm thanh đến cái gì khác, Tôi phải thay đổi nó bây giờ trong ba địa điểm thay vì chỉ một. Bởi vì thực sự, nếu tôi phá vỡ away-- này tôi chỉ cần đi để tách nó như thế. Hãy để tôi lấy một khối lặp lại, và sau đó nhấp vào ba, gõ ba, ném một số những đi bằng cách chỉ cho phép đi. Và sau đó thông báo nó không giống như nó phù hợp, nhưng từ tính, nó sẽ không chỉ chụp tại chỗ nhưng phát triển để phù hợp với hình dạng. Vì vậy, đó là tốt. Và bây giờ nếu tôi nhấp chơi. [MEOWING] Rất đẹp. Tất cả các quyền. Và bây giờ nó rất dễ dàng để thay đổi, quá, bởi vì tôi có thể chỉ thay đổi một số ở một nơi. Nhưng điều này cũng không phải là tất cả những gì thú vị. Hãy thực sự có Scratch không meo, nhưng di chuyển. Hãy để tôi đi đến chuyển động và di chuyển 10 bước bên lượng-- Lỗi chính, hãy để tôi sửa lỗi này. Hãy để tôi có nó di chuyển 10 steps-- trên thực tế, chúng ta không làm lặp lại. Hãy để tôi lấy một khối điều khiển, và làm như sau mãi mãi. Forever, di chuyển 10 bước. Và bấm Play. ĐƯỢC. Vì vậy, may mắn thay, ông dừng lại. Nếu không, trẻ em sẽ nhận được rất khó chịu khi họ sắp xếp của mất con mèo của họ. Nhưng ít nhất tôi có thể kéo ông trở lại màn hình. Nhưng đây không phải là tất cả những gì tuyệt vời của một trò chơi hoặc hoạt hình. Nó sẽ được tốt đẹp nếu có thể ông bật ra khỏi mép. Vậy ta phải làm sao? xây dựng những gì chúng ta cần phải có Scratch quyết định để trả lại, bạn có nghĩ rằng, thậm chí nếu bạn chưa bao giờ thấy Scratch trước? Vâng, trong trở lại. Đung Bạn cần một nếu khối hoặc nếu-thì. DAVID Malan: Yeah, vì vậy một số loại nếu khối hoặc nếu-thì. Vì vậy, trên thực tế, chúng tôi có một trong những ở đây. Vì vậy if-- để cho tôi có được thoát khỏi phong trào. Hãy để tôi phóng to để nó lớn hơn. Vậy làm thế nào về việc này. Mãi mãi, nếu Sensing-- chúng tôi đã không nhìn thấy điều này trước đây. Tôi cần một biểu thức Boolean. Và hóa ra nếu chạm vào những gì? Nếu chạm vào các cạnh, những gì tôi muốn làm gì? Vâng, nếu tôi quay lại để chuyển động, Hóa ra, oh, tôi có thể quay lại. Hãy để tôi kéo này tại đây. Tại sao tôi không đi trước và quay 180 độ? Và bây giờ, hãy để tôi chỉ di chuyển ở cuối. Tôi có thể đưa phong trào tại đầu hoặc kết thúc. Nhưng một cách hợp lý, mỗi khi tôi di chuyển, tôi muốn kiểm tra, tôi chạm vào mép? Tôi chạm vào mép? Tôi chạm vào mép? Vì vậy, mà một cách logic Tôi quay lại nếu như vậy. Vì vậy, hãy nhấn play. ĐƯỢC. Vì vậy, nó hơi lỗi, vậy để nói chuyện. Và một lỗi chỉ là một sai lầm trong một chương trình máy tính. Nhưng ít nhất nó làm việc. Và trong thực tế, tôi có thể đi vào đây. Và hãy để tôi làm cho nó chứ không phải 10 bước tại một thời gian, nhưng điều này là tất cả các hình ảnh động là. Đây là tất cả một phim hoạt hình hoặc thậm chí là một bộ phim. Hãy để tôi di chuyển 20 bước tại một thời điểm. Vì vậy, 20 lần nhiều điều đang xảy ra một lần, hai lần như nhiều người, trong trường hợp này. Và anh ta di chuyển nhanh hơn. Hãy để tôi thay đổi đến 30. 100. 1.000. Và nó sẽ thực sự nhanh chóng. Và điều này hợp-- yeah, OK. Vì vậy, bây giờ chúng tôi đang chỉ rối tung với nó. OK, vậy lỗi. Nhưng chúng ta có thể kéo anh ta ra khỏi con đường ở đây. Nhưng chúng ta có thể làm cho niềm vui hơn với câu hỏi này. Làm thế nào về này-- anh đảo lộn. Nhưng hóa ra Scratch-- và có thực sự là, Tôi phải từ chối, không học tập giá trị cho những gì tôi về để làm. Nhưng nếu tôi mở micro, hãy ngăn chặn anh ta và làm một cái gì đó như thế này. Ouch! [CƯỜI] Đó là đáng yêu. Cho tôi biết. Bây giờ, đây là những gì giọng nói của tôi trông giống như khi tôi la lên ouch. Tôi không nghĩ rằng chúng tôi bắt gặp nụ cười của bạn. Vậy là được rồi. Hãy để tôi cứu này là "ouch". Hãy tiết kiệm này là "ouch". Và bây giờ chúng ta sẽ quay trở lại kịch bản. Và bây giờ tôi need-- chúng ta hãy xem, âm thanh. Oh, chơi ouch âm thanh. Vì vậy, nếu tôi chạm vào các cạnh, cho tôi đầu tiên chơi ouch, và sau đó quay lại. Và bây giờ chúng ta hãy đặt anh ta ở giữa. [NÓI "OUCH"] Nhanh gấp hai lần. ĐƯỢC. Nhưng đó là nghĩa đen làm những gì tôi muốn nói. Vì vậy, nó là trong thực tế chính xác, đó là chỉ một chút khó chịu một cách nhanh chóng. Vì vậy, chúng ta hãy thêm một cái gì đó thú vị hơn để này. Hãy để tôi thực sự mở ra một mà tôi thực hiện trước, aptly gọi là vật nuôi của Cát, thực hiện điều này. Đây là kịch bản ở đây. Những gì được này sẽ làm trong thuật ngữ tiếng Anh? ấy này được thiết kế để làm gì? Vâng, chúng ta hãy đi some-- yeah? Đung Khi bạn nuôi con mèo, nó Meows. DAVID Malan: Yeah, vì vậy khi bạn nuôi con mèo, nó sẽ meo. Vì vậy, nói cách khác, bây giờ có một vòng lặp mãi mãi vẫn còn, kết hợp với một điều kiện, kết hợp với một biểu thức Boolean, kết hợp với một cặp vợ chồng chức năng, hiệu quả trong đó, một lần tôi chơi chương trình này, là không có gì xảy ra cho đến khi tôi di chuyển con trỏ gần hơn và gần hơn và gần gũi hơn và- [MEO] Sau đó, nó giống như vuốt ve con mèo. [MEO] Chỉ khi bạn thực sự di chuyển con trỏ trên nó. Bây giờ, tôi cũng đánh lên không nuôi con mèo, mà thực hiện điều này để thay thế. [MEOWING] Vì vậy, anh ấy chỉ ngừng meowing. [MEOWING] Nhưng nếu tôi nhận được quá close-- [MEOWING] [KÊU LA] Vậy làm thế nào để làm việc này? Bây giờ tôi chỉ có một hai cách ngã ba đường. Nếu chạm vào con trỏ chuột, sau đó chơi âm thanh sư tử. Khác chỉ chơi âm thanh meo meo, và sau đó chờ ba giây để mà nó loại làm nó rất an bình. Tất cả các quyền. Vì vậy, đó là kết hợp một số ý tưởng nhiều hơn vẫn còn. Chúng ta hãy xem ví dụ này Tôi whipped lên gọi là chủ đề. Và đây là một cơ bản khác nhau ở chỗ nó đòn bẩy một tính năng của nhiều ngôn ngữ lập trình được gọi là đề, khả năng của một chương trình nghĩa đen làm hai việc cùng một lúc. Thật vậy, những ngày này nếu bạn đang sử dụng Google Docs hoặc Microsoft Word, và tài liệu của bạn ấy liên tục được kiểm tra chính tả ngay cả khi bạn doanh-- hoặc bạn nhấn Ctrl-P hoặc Control-P và in một cái gì đó, nó in trong khi bạn tiếp tục gõ. Chương trình hiện nay thực sự có thể làm nhiều việc cùng một lúc, giống như trong Scratch đây. Vì vậy, ở đây, tôi có hai sprites bây giờ, một con chim và một con mèo. Và nếu tôi bấm vào mỗi những nhân vật cùng một lúc, Tôi nhìn thấy ngay bây giờ chim các kịch bản ở phía trên bên phải. Bây giờ tôi thấy con mèo của. Chim, mèo. Vì vậy, mỗi người trong số họ có kịch bản riêng của họ. Nhưng thông báo, những mảnh ghép Họ cả hai bắt đầu với? Khi lá cờ màu xanh lá cây nhấp vào. Và con chim, khi lá cờ màu xanh lá cây nhấp vào. Vì vậy, khi tôi bấm vào lá cờ màu xanh lá cây, cả của những kịch bản hoặc chương trình sẽ chạy song song. Và bạn sẽ nhận thấy rằng chim là chỉ vô thức nảy ra rìa. Con mèo rõ ràng đã được lập trình với một lợi thế chiến lược. và-- [KÊU LA] Tất cả các quyền. Vì vậy, con mèo bắt được con chim trong trường hợp này. Tại sao vậy? Vâng, đầu tiên chúng ta chỉ có con chim chỉ vô thức đi đến vị trí ban đầu này, và sau đó mãi mãi, nếu không chạm vào con mèo, chỉ cần di chuyển. Và nếu bạn đang ở trên bờ, tung lên. Và chỉ cần di chuyển. Và nếu bạn đang ở trên bờ, tung lên. Nhưng con mèo, trong khi đó, có một số logic thêm mà nói này-- đầu tiên, chỉ cần như vậy rằng điều này là hoàn toàn không thiên vị so với chim, nhận thấy rằng tôi đã sử dụng một mảnh ghép màu xanh lá cây có mà thực sự chọn một số ngẫu nhiên. Một tính năng của nhiều ngôn ngữ là để cho bạn ngẫu nhiên hoặc giả ngẫu nhiên các con số. Vì vậy, trong trường hợp này, con mèo ban đầu chọn một số ngẫu nhiên giữa, như thế, 90 độ và 180 độ, về cơ bản, do đó rằng có một chút khác biệt. Và sau đó mãi mãi, nếu cảm động chim, chơi âm thanh sư tử. Nếu không, chỉ cần trỏ về phía chim. Chỉ về phía con chim. Điểm về phía con chim, mà là một mảnh ghép cho chính nó trong trường hợp này. Vâng, chúng ta có thể làm một điều khác ở đây. Hãy để tôi mở chương trình sự kiện ở đây. Và ở đây chúng ta lại có hai sprites, mà trông giống như hai con rối này đây. Và điều thú vị ở đây là thế này. Các chàng trai màu cam có này thiết lập của mảnh ghép ở đây. Mãi mãi làm following-- nếu không gian quán được nhấn, sau đó nói rằng, Marco, và sau đó phát sóng một sự kiện. Và khi đó, các chàng trai màu xanh ở đây có này-- khi bạn nhận được sự kiện này, nói Polo. Vì vậy, nó quay ra trong Scratch và các ngôn ngữ khác, có nhiều cách để hai chương trình hoặc hai kịch bản, trong trường hợp này, để quan hệ mật vậy mà khi tôi nhấn thanh không gian, ông nói Marco. Và một trong những khác nghe rằng, như vậy để nói chuyện, và nói Polo trong phản ứng. Vì vậy, bạn có thể viết chương trình thực sự tương tác theo cách này. Và nếu tôi làm điều này một thay vào đó, Tôi thậm chí có thể thêm các biến, chỉ sử dụng một ma trong trường hợp này. Điều này là đặc biệt gây phiền nhiễu. [SEAL sủa] Bây giờ, thông báo trên bên phải chúng ta đã có một số logic bổ sung trên đây. Làm thế nào để ngăn chặn con dấu này từ sủa? [SEAL sủa] Nó trông giống như trên cánh tay phải bên là những gì chơi âm thanh. Nhưng nó chỉ chơi một âm thanh nếu những gì là sự thật? Nếu một cam variable-- block-- tắt là số không. Làm thế nào để tôi thay đổi tắt tiếng là 1, có nghĩa là sự thật, làm tắt tiếng này? Rõ ràng, các kịch bản khác, tôi có thể nhấn thanh không gian, và bây giờ anh hãy dừng lại. Vì vậy, chúng ta có thể liên lạc ở đây qua kịch bản, cũng như, bởi chỉ cần chia sẻ một biến qua hai như thế này. Bây giờ, điều này không phải là tất cả những gì thú vị. Hãy đi trước và làm điều này và kết hợp rất nhiều những ý tưởng này với chương trình này đây. Trước khi chúng tôi làm điều đó, mặc dù, làm thế nào về một tình nguyện viên? Hãy để tôi lấy áp lực giảm của tôi bởi vì tôi không thực sự chơi trò chơi này. Hãy có một người nào đó chúng tôi đã không nhìn thấy trước. Bạn có để được thoải mái đến lên trên sân khấu ở đây, trên máy ảnh. OK, đi lên trên. Rat dung cam. Tên bạn là gì? IDRIS: Idris. DAVID Malan: Xin lỗi? IDRIS: Idris. DAVID Malan: Idris, rất vui được gặp các bạn. Thôi lên. Và bây giờ, trên điện thoại di động của riêng bạn điện thoại, bạn có chơi Pokemon GO? IDRIS: số DAVID Malan: Thật sao? IDRIS: Yeah. DAVID Malan: OK. Tất cả các quyền. Vâng, rất vui được gặp các bạn. Đến ngày qua. Tôi không hai. Vì vậy, chúng ta sẽ tìm ra nhau như thế nào để chơi này, mà một người nào đó thực sự đi và thực hiện tại Scratch bằng cách thay đổi con mèo để cơ bản nhân vật khác nhau tất cả cùng nhau. Và nếu tôi toàn màn hình ở đây, chúng ta sẽ để xem các trò chơi sau cùng. Vẫn đang tải, vẫn tải. Thôi nào. Hãy để tôi làm điều này. Thôi nào. Trò chơi này là quá lớn mà nó đã bị rơi. Đứng gần. Hãy thử điều này một lần nữa. Thôi nào. Tất cả các quyền. Hiện chúng tôi đi. ĐƯỢC. lá cờ màu xanh lá cây. Vì vậy, ở đây chúng tôi đi. [NHẠC] Chọn cấp độ trung bình ở đây. Nhấp vào chàng trai màu xanh đó. Tất cả các quyền. Và bạn có thể sử dụng mũi tên keys-- lên, xuống, trái, phải. Bây giờ, chúng ta hãy xem xét khi chúng ta làm điều này-- và sau đó đi sau khi nhân vật đó. Vâng. Và bây giờ click anh ta với con chuột. Oh, yeah. Di chuyển. Trường hợp của mũi tên? Ở đây bạn đi. Vì vậy, bấm vào đó. Yeah. Tất cả các quyền. Vì vậy, bây giờ, tôi đã nói với bạn có một quả bóng Poke, rằng nếu nhấp vào nó, nó sẽ làm điều đó. Rất tốt. Trong luyện tập cho ngày hôm nay, tôi tìm thấy phiên bản này của trò chơi của thực sự không phải là rất khó khăn. Vì vậy, nếu bạn muốn đi một lần nữa ở đây, đi bộ xuống bóng Poke này. Và sau đó đi tham quan một bên. Hãy thử cách nhấp vào nó. Oh, thực sự, đó là các cửa hàng, rõ ràng. OK để đóng mà. Không bao giờ làm điều đó trước. Có thể đi đến điều này ở đây. Oh, có bạn đi. Chờ đợi, có một trên đó. Oh, có một. ĐƯỢC. Xuống. Yeah, nhấn chuột. OK, đó là rất dễ thương. OK, thực hiện rất tốt. Trò chơi này không phải là rất khó khăn. ĐƯỢC. Xin chúc mừng. Ở đây, chúng ta có một CS50 quả bóng căng thẳng cho bạn. Nhưng xem xét cho chỉ là một khoảnh khắc nào một số các takeaways đang có. Dễ dàng hơn so với các trò chơi thực sự, rõ ràng. Nhưng tất cả chúng tôi đã đi trên đây là một nhân vật mà có lẽ có một số loại của vòng lặp liên kết với nó. Nó không phải là một con mèo. Đó là nhân vật này thay thế. Và vòng lặp đó là chỉ cần liên tục nói, nếu mũi tên lên ép, nếu mũi tên xuống ép, nếu mũi tên trái hoặc phải ép mũi tên nhấn, di chuyển lên hoặc xuống hoặc sang trái hoặc phải. Hoặc nếu có một mảnh ghép có nói rằng khi chạm vào sprite khác, khi chạm vào một trong các ký tự để bóng Poke, nếu chạm vào, sau đó làm điều này. Vì vậy, tất cả các ý tưởng chúng tôi đã được sử dụng cho đến nay thực sự chỉ có thể được áp dụng đặc biệt này bối cảnh để chơi game này, là tốt. Hãy để tôi đi trước và kéo lên một khác ở đây, trong thực tế. Hãy để tôi đi trước và kéo lên, hãy nói, này. Đây là một cái gì đó chúng tôi phối lại. Được thực hiện bởi một trong chúng tôi sinh viên ở Cambridge, và sau đó tôi đã đi qua và thay đổi khá nhiều mỗi thể hiện của Harvard Yale thời gian này. ai đó muốn cạnh tranh với các Ivies ở đây trong tích tụ khác của tất cả các ý tưởng? Đi xuống, vâng. Tên bạn là gì? Dina: Dina. DAVID Malan: Adina? Dina: Dina. DAVID Malan: Dina, đến trên xuống. Tất cả các quyền, Dina. Vì vậy, trò chơi này sẽ khó khăn hơn và khó khăn hơn, bởi vì trong trò chơi này, có biến được sử dụng như là tốt được liên tục theo dõi của mức độ bạn đang ở trong trò chơi. Rất vui được gặp bạn. Hãy đến quanh đây. Và vì vậy mục tiêu ở đây là để sắp xếp của thực hiện theo cách của bạn thông qua một mê cung mà sinh viên này thực hiện. Và chỉ để thiết lập các giai đoạn, mỗi của những hình ảnh trên màn hình là sprite riêng của mình, nhân vật của riêng mình. Vì vậy, đây là những bằng mèo mặc định, nhưng học sinh thay đổi họ đến Ivies logo khác nhau ở đây. Và sau đó bạn sẽ thấy rằng chỉ bằng cách sử dụng các điều kiện và vòng lặp và các chức năng và nhiều hơn nữa, bạn có được điều này. [NHẠC] [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Được. Yeah, tiếp tục đi. mức độ đầu tiên của rất dễ dàng. Bạn vừa nhận được để đi qua đó. Nhưng một lần nữa, xem xét, điều này chỉ là một là vòng lặp nghe cho các mũi tên keys-- lên, xuống, trái, phải. Và bây giờ là một khối cảm biến. Rất đẹp. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Rất đẹp. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Rất đẹp. Khá dễ dàng, Crimson. Tất cả các quyền. Levels-- uh-oh. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Và một lần nữa, trong những ba đỉnh Harvard, bạn chỉ có logic nói nếu trên mép, trả lại. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] OK, những gì bạn đang làm là thú vị hơn lý do tại sao. Rất đẹp. Rất đẹp. Uh-oh. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Tôi nghĩ rằng bạn phải hy sinh bản thân. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Nhanh chóng! [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Tốt đẹp. Vậy là được rồi. Bạn sẽ nhận được nó. Vâng vâng! Rất đẹp. [HÂN HOAN] [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Tốt đẹp! [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Hiểu rồi. Thôi nào! Thứ hai đến cấp độ cuối cùng. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Tất cả các quyền. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Vâng. Sử dụng tốt các biến ở đây. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Vâng. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Tốt đẹp. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Đó là OK. Chúng tôi có để có được đến cùng. Chỗ đó. Oh! [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Có thể chạy vào cuối ngày hôm nay, nhưng nó sẽ là giá trị nó. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Bạn có thể làm được! Yeah! [HÂN HOAN] [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Điều này là thực sự khó khăn. [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Chúng tôi sẽ cung cấp cho bạn hai cuộc sống hơn. Bạn có thể làm điều đó? [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  ĐIỀU NÀY"] Tất cả các quyền. Làm thế nào về một vòng lớn vỗ tay dù sao. Bạn đã đến thứ hai để cấp độ cuối cùng. Cho tôi biết. [VỖ TAY] Vì vậy, đây chỉ là để nói có bao nhiêu bạn có thể làm gì với những thứ này. Và nhận ra, quá, mà khi mảnh ghép không exist-- và quả thực, đây sẽ là một trong của các cường quốc với vấn đề đầu tiên bộ và beyond-- là thực sự tạo ra của riêng bạn. Và đây chỉ là một đoạn của một trong các ví dụ bạn sẽ có thể chơi với trực tuyến, nơi mà nếu bạn không có được xây dựng vào Scratch một cái gì đó giống như một mảnh ho puzzle, bạn thực sự có thể làm điều đó cho mình. Và vì vậy tất cả những điều này và nhiều hơn nữa đang chờ đợi. Và chỉ để vẽ một thức hình ảnh của những gì thực sự trước trong cửa hàng cho các lớp học cho bạn, dựa trên một số hình ảnh từ các bạn cùng lớp quá khứ, cho phép tôi tắt đèn một lần cuối cùng và cho bạn thấy CS50. [NHẠC] Tất cả các quyền. Đó là nó cho CS50. Bánh hiện đang phục vụ. [NHẠC]