[VIDEO PLAYBACK] [CAR DOOR tắt] [CAR ENGINE ĐỘI] [MUSIC CHƠI] -Moving Phải cùng tìm kiếm thời gian tốt đẹp và tin lành. Với những người bạn tốt, bạn không thể mất. -Đây Có thể trở thành một thói quen. Gõ -Opportunity Hãy chỉ với tay ra và lấy nó. -Vâng! -Together Chúng tôi sẽ tóm cổ nó. -We'll Tăng hitch, xe buýt, hoặc taxi màu vàng nó. -Dammit. -We're Di chuyển bên phải theo. -Footloose Và lạ mắt miễn phí. -Getting Có một nửa thú vị. Hãy chia sẻ với tôi. -We're Di chuyển bên phải theo. -We're Sẽ chia sẻ tải. -Chúng Tôi không cần một bản đồ để có được chương trình này trên đường. -Hey Fozzy, tôi muốn bạn rẽ trái nếu bạn đi đến một ngã ba đường. -Vâng thưa ngài. Rẽ trái tại ngã ba đường. Rẽ trái. -Tôi Không tin điều đó. -Cruising Phải cùng chúng tôi tìm thấy đèn trên đường cao tốc. -Và Cách của bạn hoặc theo cách của tôi. -Vậy Tin tưởng điều hướng của tôi. Sao -Movie với xe ô tô hào nhoáng và cuộc sống với trên xuống. -We're Storming những ngọn đồi lớn. -Vâng, Bão là đúng. Nó phải được tuyết? -Không, Tôi không nghĩ như vậy. -Moving Phải dọc. -Footloose Và lạ mắt miễn phí. -You're Sẵn sàng cho thời gian lớn. -là Nó sẵn sàng cho tôi? -Moving Phải dọc. Di chuyển ngay cùng. Di chuyển ngay cùng. Di chuyển ngay cùng. -Tôi Nghĩ rằng bạn tốt hơn kéo qua. -Vâng thưa ngài. [END PLAYBACK] [Vỗ tay] DAVID J. Malan: Đây là CS50. Và đây là kết thúc của tuần 0, nhưng sự bắt đầu của một tình bạn đẹp. Chúng tôi rất vui mừng được ở đây tại Đại học Yale lần đầu tiên với chúng tôi bạn Scaz, và Jason, và Andy. Tất cả 40 của TF của CS50 của và CA là ở đây tại Yale. Và tất cả các bạn. Và trên thực tế, nó có thể là thời gian đối với: [Vỗ tay] Vì vậy, mặc dù hầu hết các bài giảng thực sự sẽ được ở Cambridge trong năm nay, thực tế là do thiết kế, và rất nhiều cố tình trong CS50, Tôi nghĩ rằng chúng ta đang ở gần điểm công nghệ, và sư phạm, nơi mà nó có thể là một giáo dục vượt trội kinh nghiệm để tham gia với một số vật liệu trực tuyến của khóa học. Thật vậy, các reality-- và nếu tôi tin philosophically-- này là bài giảng không phải là một đặc biệt phương tiện hiệu quả để cung cấp thông tin khá phức tạp. Chắc chắn là trên giờ cộng với nhịp dài của thời gian. Và thực sự mỗi vài minutes-- Tôi nhớ bản thân mình trong college-- vùng bạn ra trong một khoảnh khắc, bạn bỏ lỡ một số chủ đề phức tạp, và bạn đang đi khá nhiều cho 45 phút tiếp theo. Và thực tế là cho dù bạn đang ở đây tại New Haven hay Cambridge hay xa hơn nữa, sự đơn giản của việc có khả năng tạm dừng và tua tới, tua lại, siêu liên kết để liên quan tài nguyên, bảng điểm tìm kiếm toàn văn bản và như thế là một cơ hội Tôi dám nói cho các sinh viên của chúng tôi trực tuyến cũng qua New Haven, cung cấp cho họ một cơ hội để thực sự nắm được tài liệu khái niệm mà chúng ta giới thiệu trong bài giảng của tất cả các tốt hơn. Nhưng cuối cùng trong CS50, là kinh nghiệm của học sinh được đặc trưng như vậy, còn nhiều hơn nữa bởi bộ vấn đề của khóa học, hoặc dự án lập trình hàng tuần, phần trình dẫn đầu bởi giáo fellows, giờ làm việc hàng đêm do các trợ lý khóa học và giảng dạy nghiên cứu sinh, và quả thật như vậy sự kiện như CS50 Puzzle Day, Hack-a-thon CS50 của, các CS50 Hội chợ, ăn trưa hàng tuần, và nhiều hơn nữa. Và như vậy cho dù bạn đang ở đây tại New Haven, hoặc điều chỉnh từ xa, ngày hôm nay tại Cambridge, và chúng ta sẽ gặp lại sớm, thực tế là đây là một và cùng một lớp. Và chúng tôi rất vui mừng ở đây tất cả lại với nhau ngày hôm nay. Và như vậy vào cuối học kỳ, cho dù ở đây hay xa, cũng hy vọng bạn mặc tự hào, hạnh phúc, và có lẽ với một chút nhẹ nhõm, áo sơ mi mà làm chứng để bạn có lấy CS50. Vì vậy, nơi nào họ rời khỏi off vào thứ tư? Chúng tôi đã xem tư duy tính toán. Và đó là đối với những gì chúng ta cất khoa học máy tính cùng, ít nhất cho bây giờ. Nhưng chúng tôi cất nó ít hơn nữa vào ít nhất ba thành phần nguyên tố. Đầu vào, do đó là những gì Vấn đề chúng tôi đang cố gắng để giải quyết? Kết quả đầu ra, là những gì trả lời chúng tôi hy vọng để có được? Và các đại diện có của. Và chúng tôi sẽ không dừng lại ở đây trên sau trên hệ nhị phân, hoặc thậm chí ASCII, và như thế rất nhiều, nhưng thay vì đưa cho các cấp rằng chúng ta có thể đại diện cho thông tin này, bởi vì các phần thú vị hơn những vấn đề không chỉ là đầu vào và đầu ra, nhưng các thuật toán mà đi vào giải quyết những vấn đề đó. Và bạn có thể nhớ lại từ các ngày khác mà chúng tôi mất một khá truyền thống khái niệm về tìm ai đó lên trong một cuốn sách điện thoại khá lớn, hoặc hơn thường kỹ thuật số ngày nay, chỉ là một tập dữ liệu rất lớn. Một danh sách liên lạc thực sự lớn, với rất nhiều tên theo bảng chữ cái được sắp xếp. Và chúng tôi nhận ra rằng trong khi tôi có thể tiếp cận vấn đề này đơn giản bằng cách sử dụng một tuyến tính Trang approach-- theo trang, hoặc thậm chí cả hai tại một time-- chúng tôi nhận ra rằng algorithm-- trực quan hơn chỉ cần loại phân chia và chinh phục các vấn đề một lần nữa, và một lần nữa, và again-- giảm một nửa nó với mỗi thời gian, đã cho chúng tôi kết quả màu xanh lá cây này. Và nó còn nhiều phẳng bởi vì nó cho thấy rằng ngay cả khi vấn đề này được lớn hơn và lớn hơn, như trường hợp những ngày này với dữ liệu bộ và reality-- Facebook và Google kết quả tìm kiếm và các like-- hiện thuật toán của chúng tôi thực hiện cũng như hiệu quả với những vết cắn lớn hơn như nó đã làm ngay cả với những vết cắn nhỏ hơn. Bây giờ nó đặt ra câu hỏi, những gì chúng ta có thể thực sự giải quyết tương tự với loại trực giác? Điều này loại phân chia và chinh phục? Vâng, chúng ta có thể làm điều gì đó như ngày hôm nay đây. Chúng tôi có thể mất mặt. Vì vậy, có lẽ như 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- sẽ không phải là tất cả mà hiệu quả. Vì vậy, chờ đợi, trường lớp. 2, 4, 6, 8, 10, 12, 14, 16, 18 và vv. Nhưng chúng ta có thể làm tốt hơn một chút? Tôi chắc rằng tôi không thể làm điều này bằng bản thân mình. Vì vậy, nếu bạn sẽ hài hước với chúng tôi để chỉ một thời điểm, chúng tôi mang theo với chúng tôi một thuật toán đó là chỉ có ba bước, nhưng nó require-- nếu bạn không mind-- tất cả chúng ta đứng lên, nếu bạn muốn. Vì vậy, với tất cả chúng ta đang đứng, bước một trong những thuật toán này là sau đây. Hãy đứng lên và gán cho mình số 1. Vì vậy, tại thời điểm này trong thời gian, nghĩa là tất cả mọi người trong phòng này hy vọng là suy nghĩ cho bản thân, Tuy nhiên lúng túng, số 1. Bây giờ bước hai của thuật toán này là sẽ liên quan đến những điều sau đây. Bước hai, bắt cặp với một người đang đứng, thêm số của bạn với nhau, và chấp nhận số tiền theo số điện thoại mới của bạn. Kiểm tra sự tỉnh táo nhanh chóng. Số những gì được mọi người nghĩ đến bây giờ? Vì vậy, 2, ngoại trừ có thể cho một, vụng về, người cô đơn. Nếu chúng ta có một số lẻ của người trong phòng. Vì vậy, một người có thể vẫn còn số 1, đó là tốt. Nhưng bước ba ở đây, một các bạn nên ngồi xuống. Sự khác nên quay lại bước hai, và lặp lại, nếu bạn muốn. Vì vậy, nếu vẫn còn đứng, bạn nên có trong số những người sẽ trở lại bước hai. Tiếp tục đi. Một vài người vẫn còn đứng. Vì vậy, nếu vẫn còn đứng, cặp với một ai đó. Tất cả các quyền, giảm dần xuống. Một vài người vẫn còn đứng. Tôi sẽ giúp đỡ nếu cần thiết. Hãy nhớ rằng các takeaway quan trọng ở đây, là như thế nào nhanh hơn nhiều này là hơn tôi đếm. Vì vậy, chúng ta hãy xem. Tôi có thể giúp đỡ. Vì vậy, những gì là số bạn vẫn nghĩ đến? Đung Tôi đang ở 44. DAVID J. Malan: 44, vì vậy bạn đi trước và ngồi xuống. Số lượng những gì bạn đang nghĩ đến? Đung 74. DAVID J. Malan: 74. Được rồi, đi trước và ngồi xuống. Những người khác vẫn còn đứng? 86. Và bất cứ ai khác vẫn đứng? Số gì? Tôi nghe nói 67. Và sau đó trong đầu? 32. Bất cứ ai khác vẫn đứng và suy nghĩ của một số? Oh, hi. Xin lỗi. Hãy quay lại ngay. 42. Ai khác? Đung 47. DAVID J. Malan: 47. Là bất cứ ai khác vẫn đứng người đã không được tính đến? Vì vậy, con số cuối cùng của con người trong một phòng có 497 chỗ ngồi is-- tất cả trong số đó là filled-- là 390. Vì vậy, đây là tuyệt vời. Chúng tôi sẽ sớm thảo luận về các khái niệm một lỗi trong một chương trình máy tính. Nhưng chúng tôi sẽ trở lại mà chẳng bao lâu. Nhưng trong lý thuyết, những gì có thể đã xảy ra ngay bây giờ? Vì vậy, mặc dù đã có ba lớn bước thuật toán này, mỗi người chỉ là loại một hoạt động lớn. Và có tính chu kỳ này để nó trong đó nếu bạn vẫn còn đứng, bạn cứ liên tục đi từ bước 3-2, bước 3-2, bước 3-2. Nhưng những gì xảy ra giữ trên mỗi lần lặp? Mỗi chu kỳ của vòng lặp này? Chuyện gì đã xảy ra ở những nơi khác trong phòng? Không chỉ có những điều tương tự, nhưng những gì đã xảy ra với một nửa của bạn? Ngồi. Và do đó, có cái nhìn sâu sắc trong những lời nói dối này, giống như các ví dụ cuốn sách điện thoại, trong đó nếu một nửa của bạn ngồi xuống mỗi lần, các vấn đề được bắt đầu với có lẽ 400 người, sau đó đến 200 người, hơn 100 người, sau đó 50 người, và vân vân. Và vì vậy chúng tôi giảm tiền trong lý thuyết để chỉ một người, suy nghĩ của tổng giá trị của tất cả mọi người. Bây giờ thực tế, một số động lực xã hội, và một số lỗi số học có thể đóng góp cho rằng lỗi cuối cùng. Nhưng trong lý thuyết, trong khi tôi vẫn đếm đi, tham gia một vài chục bước, hoặc hàng trăm bước để coi mình, để đếm xài cho 500 hoặc để mọi người nên đã có những bước xa hơn, bởi vì bạn chỉ có thể chia 500 và 1/2 rất nhiều lần. Và như vậy cũng giống như với điện thoại đặt ví dụ khác trong ngày, chúng ta đã có một cái gì đó logarit vậy để nói chuyện, theo đó, nếu chúng ta là tất cả hoạt động đồng loạt, và bỏ qua sự lỗi Ngoài ra, chúng tôi sẽ đã đạt được một cách chính xác loại thời gian chạy? Bây giờ để cho công bằng, loại lừa, trong mà tôi thừa hưởng một tài nguyên khác. Trong khi đó, nó chỉ là một trong tôi, Tôi thừa hưởng hàng trăm bạn. Nhưng điều đó có thể được cho là một ví dụ về xử lý song song, hoặc một nhà nước của nghệ thuật rất thịnh hành nơi mà máy tính những ngày này có nhiều CPU, hoặc nhiều hơn về mặt kỹ thuật, nhiều lõi hơn, và thật sự có thể làm nhiều việc cùng một lúc, giống như bạn tất cả chúng ta đang làm gì ở đó, song song. Nhưng nhớ lại rằng những gì chúng tôi cũng đã làm vào ngày thứ tư đã cố gắng nắm bắt trực giác này và chính thức hóa nó trong mã. Một cái gì đó giống như pseudo-code. Và trên thực tế, và tôi hy vọng bạn sẽ tha thứ, nó giống như 80 độ ở đây. Vì vậy, tôi sẽ thực hiện việc này off cho chỉ một chút. Những gì tôi nghĩ rằng chúng tôi sẽ làm quá trình chuyển đổi là bây giờ để một ứng dụng, theo đó chúng tôi một lần nữa tham gia vào các khán giả, nhưng viết một chương trình bằng tiếng Anh như cú pháp, mà để giải quyết vấn đề này ở đây. [VIDEO PLAYBACK] Bơ đậu phộng thời gian thạch -Nó của. Bơ đậu phộng thời gian jelly. Bơ đậu phộng thời gian jelly. Way ya! Way ya! Way ya! Way ya! Bây giờ có bạn đi! Của bạn đó! Của bạn đó! Của bạn đó! Bơ đậu phộng thạch! Bơ đậu phộng thạch! Bơ đậu phộng thạch! Bơ đậu phộng thạch! Đậu phộng, bơ đậu phộng thạch! Bơ đậu phộng thạch! Bơ đậu phộng thạch với một cây gậy bóng chày. [END PLAYBACK] DAVID J. Malan: --that video, nhưng nó là một ít gây nghiện, nếu không phải là một chút khó chịu. Nhưng để làm được điều này, tôi nghĩ rằng những gì chúng tôi muốn làm là cố gắng để viết một chương trình với nhau, mà chúng cần ba tình nguyện viên. Phải được thoải mái vào camera và internet. Sam, đi lên trên. Áo sơ mi màu tím, ngay tại đây, đi lên trên. Và từ trên đây, cho tôi đi xa hơn một chút trở lại. Crimson và áo sơ mi màu xanh, đi lên trên. Perfect. Nào bây giờ. Nào lên, đi lên trên. Và tên bạn là gì? Erica. David, rất vui được gặp bạn. Nếu bạn muốn lấy chỗ này đây. Đây là Sam. Tên bạn là gì? Antonio. Antonio, rất vui được gặp bạn. Erica và Sam, nếu bạn muốn muốn có một chỗ ngồi ở đây. Những gì chúng tôi đã đến chuẩn bị với, như những kẻ đang khám phá, là những thành phần nào đó để làm cho bơ đậu phộng và mứt bánh sandwich. Bây giờ điều này có thể là một cái gì đó bạn mất rất nhiều cho các cấp. Nhưng chúng tôi đã đưa cho mỗi ba tình nguyện viên của chúng tôi here-- hai tình nguyện viên và Sam đây, một ổ bánh mì mỗi, một tấm, một con dao, một lọ thạch hoặc mứt, và một lọ bơ đậu phộng. Và mục tiêu trong tay bây giờ là sẽ cho những ba để thực hiện một bơ đậu phộng và jelly sandwich. Nhưng những gì chúng ta sẽ làm là mong đợi các audience-- kể từ khi tất cả các bạn chắc chắn biết làm thế nào để làm này rất tốt trong reality-- tôi sẽ cung cấp cho chúng tôi các hướng dẫn từng bước. Các mã giả, nếu bạn sẽ. Vì vậy, tôi sẽ đóng vai trò của người ghi chép ở đây. Và tôi đã có một chút danh sách công việc phải làm, và như vậy là mỗi bạn, một tại một thời gian, các cuộc gọi ra một tiềm năng giảng dạy, tôi sẽ viết nó xuống, lặp lại nó khi cần thiết. Và sau đó các bạn sẽ làm bơ đậu phộng và mứt bánh sandwich chỉ bằng cách làm những gì bạn đang nói. Vì vậy, suy nghĩ của mình như máy tính. Bạn chỉ có thể làm những gì bạn đang nói. Không có giả định, không có câu hỏi. Bạn chỉ cần làm điều đó. Vì vậy, những người muốn gây nguy hiểm đầu tiên hướng dẫn để làm cho một bánh sandwich PBJ? Trên ban công đó. Đung Mở túi bánh mì. DAVID J. Malan: Mở túi bánh mì, nếu bạn sẽ. Vì vậy, chúng ta hãy xem. Hãy lặp, và nhận được nhiều hơn một chút chính xác. Cách tốt để bắt đầu mặc dù. Bước hai, một người nào khác. Bây giờ không ai muốn tình nguyện. Bước hai, ở phía trước. Đung Mở bên trong túi bánh mì là tốt. DAVID J. Malan: Mở túi bên trong của bánh mì là tốt. Tuyệt vời, chúng ta học tập. Một chút chính xác. Hãy làm việc này. Có, trong chiếc áo màu xanh lá cây. Đung [Không nghe thấy] DAVID J. Malan: lát bánh mì. Nhẹ nhàng loại bỏ hai lát bánh mì. Đó là tốt. Bước bốn, một người nào khác? Trên đây, đúng không? Đung [Không nghe thấy] DAVID J. Malan: Đặt bánh vào đĩa. Bước năm? Bước năm, yeah? Đung [Không nghe thấy] DAVID J. Malan: Ngày đầu of-- oh, tay. Đặt bàn tay trên đầu trang của bơ đậu phộng. Có phải đó là những gì tôi đầu? Đung Yeah, và tháo. DAVID J. Malan: và- nói lại lần nữa. Đung [Không nghe thấy] DAVID J. Malan: Và đặt nắp bên cạnh bơ đậu phộng. Nhẹ đặt tay trên hàng đầu của bơ đậu phộng, và tháo và đậy nắp bên cạnh bơ đậu phộng. OK, bước sáu. Bước sáu, một người nào khác. Yeah? Đung [Không nghe thấy] DAVID J. Malan: Nói lại lần nữa. Đung Lặp lại bước năm nữa. DAVID J. Malan: Và lặp lại bước năm nữa, đó là sẽ tạo ra một chút của một vấn đề bây giờ nếu chúng ta đang làm bước này bước. Vì vậy, bây giờ chúng ta quay lại bước năm. Nhẹ đặt tay trên đầu bơ đậu phộng và Tháo và đậy nắp bên cạnh bơ đậu phộng. Sau đó nắm bơ đậu phộng và lặp lại bước năm nữa. Vì vậy, chúng tôi sẽ ghi đè lên rằng vòng lặp vô hạn, nếu bạn muốn. Bước bảy, một người nào khác. Yeah, trong trở lại. Đung [Không nghe thấy] DAVID J. Malan: top --on của khác. Đung [Không nghe thấy] DAVID J. Malan: Trên Mặt khác trên đỉnh khác. Bạn có muốn chỉ cần đi lên đây? Làm thế nào để hoàn thành các chỉ dẫn? Phần còn lại của lệnh là những gì? Đung Bỏ qua phần đó. DAVID J. Malan: Bỏ qua phần đó. Chúng ta hãy bắt đầu lại. Bước bảy. Đung [Không nghe thấy] DAVID J. Malan: Grasp với đối hand-- này là tốt. Điều này là thực sự tốt. Đung [Không nghe thấy] DAVID J. Malan: Và jar-- nhựa Đung [Không nghe thấy] DAVID J. Malan: Và twist-- Đung [Không nghe thấy] DAVID J. Malan: Đối với hai giây. Chỉ cần mở lọ bơ đậu phộng. Tôi hy vọng bạn sẽ tha thứ. Vì vậy, chúng ta hãy giả sử chúng ta đã có. Mở jar bơ đậu phộng. [Vỗ tay] DAVID J. Malan: Bước tám, chúng ta hãy đi. Bước tám, có, trong trở lại. Đung [Không nghe thấy] DAVID J. Malan: Tốt. Bước chín, yes? Đung [Không nghe thấy] DAVID J. Malan: --out của bình bơ đậu phộng. Và- và những gì? Đung [Không nghe thấy] DAVID J. Malan: Và đặt dao trở thành bơ đậu phộng. Bước mười. Bước mười. Đung [Không nghe thấy] DAVID J. Malan: Đặt con dao ra, và sau đó loại bỏ các dấu. Nice. Tắt bơ đậu phộng. Tất cả các quyền, bước 11. Đung [Không nghe thấy] DAVID J. Malan: OK, máy tính của màu xám theo máy tính màu xanh hoặc đỏ. Tốt. [Vỗ tay] DAVID J. Malan: Mang theo chúng tôi về nhà. Thêm vài bước. Cái gì kế tiếp? Bước 12. Bước 12. Yeah? Đung Đặt một trong những lát bánh nhẹ nhàng trên một bàn tay của bạn. DAVID J. Malan: Một tay bạn. Và sau đó, bước 13. Yeah? Đung [Không nghe thấy] DAVID J. Malan: lát --on bánh mì. Tốt. Khá tốt. Bước 14, yeah. Đung Undo bước 13. DAVID J. Malan: Undo bước 13. Hãy chuyển sang jelly. Đó là một chương trình 100- bước, nhưng chúng tôi đang trên bước 15. Yeah. Đung [Không nghe thấy] DAVID J. Malan: 7 đến 13 sử dụng thạch, bởi vì những người đã đi rất tốt. Lặp lại các bước 7 thông qua 13, bằng cách sử dụng sữa ong chúa. Vì vậy, nắm bắt được một nửa dưới của thạch jar bằng một tay trên đầu. Mặt khác của hàng đầu khác, bỏ qua phần đó, nắm bắt bằng tay đối lập, nắp và lọ nhựa ở phía dưới, và xoắn cho hai giây. Sau đó mở jar thạch. Và cuối cùng, chúng ta hãy cố gắng cung cấp cho chúng tôi một cái gì đó ăn được. Bước 16. Vậy tại sao chúng ta không để nó ở đó. Cảm ơn bạn rất nhiều để ba tình nguyện viên của chúng tôi. [Vỗ tay] Chúng tôi có một chút CS50 bóng căng thẳng cho bạn. Nó sẽ là một bánh sandwich but-- vì vậy những gì là điểm, ngoài việc có một chút niềm vui với các thuật toán? Nhưng thực tế là ngay cả khi bạn đang lập trình máy tính, bạn cần được siêu chính xác. Phức tạp hay đáng sợ như máy tính của riêng bạn rất tốt có thể là bạn, tại nhất là khi có điều gì sai, thực tế là nó là một khá ngớ ngẩn thiết bị được phát minh bởi con người chúng ta, và chỉ có thể làm một tập hợp con của những gì chúng ta do-- đôi khi chắc chắn faster-- nhưng nó không biết làm thế nào đưa ra giả định. Nó không biết làm thế nào để được vào các bước sóng tương tự như bạn. Nó sẽ chỉ làm chính xác những gì bạn nói với nó. Và bạn sẽ xảy ra, có lẽ, như chúng ta bắt đầu viết mã thực tế với các bộ vấn đề đầu tiên và xa hơn nữa, chỉ cách dễ dàng là để làm cho một giả định là một con người, và không dự đoán được tôi cần phải xử lý trường hợp đó, hoặc trường hợp góc, vậy để nói chuyện, mà có thể rất tốt phát sinh nếu ví dụ Sam đã có chỉ jar có thể ép của thạch, trong khi tất cả mọi người khác đã có một số lọ thủy tinh như tốt. Vì vậy, trước khi chúng tôi lần lượt của chúng tôi chú ý đến một số mã thực tế, cho phép tôi giới thiệu đứng đầu tất nhiên ở đây tại Yale. Bạn bè của chúng tôi Scaz, Andy, và Jason để đi lên và nói xin chào. [Vỗ tay] SCAZ: Chúng ta đã mất Jason tạm thời. Hi một lần nữa, tất cả mọi người. Tên tôi là Scaz. Tôi đã giảng dạy tại Yale kể từ năm 2001. Và khi tôi không dạy, nghiên cứu của tôi là trong robot và trí tuệ nhân tạo. Và thông báo rằng tôi có ngày hôm nay được rằng bắt đầu trong một vài tuần, chúng ta sẽ được đưa một số tài liệu bổ sung để CS50 để nói chuyện về phần mềm thông minh. Chúng ta sẽ nói về cách những nơi như Netflix và Hulu có thể giới thiệu phim đó bạn có thể muốn xem. Nơi mà chúng tôi sẽ nói về cách xe ô tô lái xe ít hơn thực tế làm việc. Và chúng tôi sẽ có thể để mặt đất những điều này trong các khái niệm mà bạn đang học tập trong lớp này ngày hôm nay. Bởi vì tất cả những điều này là được xây dựng trên cùng nền tảng. Và đó là những gì này series sẽ khám phá. Vì vậy, tôi thực sự tìm kiếm chuyển tiếp để nhìn thấy nhiều bạn tất cả, và bạn sẽ nhận được để xem thêm từ tất cả chúng ta rất sớm. Hãy để tôi giới thiệu sau đó Jason. JASON: Hi tất cả mọi người. Tên tôi là Jason. Tôi tiếc là đã đến Harvard là một undergrad. Điều đó sẽ được cắt ra khỏi dòng thực tế. Và bây giờ tôi ở đây như là một giảng viên khoa Khoa học máy tính. Và tôi giúp chạy khóa học với Scaz, David và Andy. ANDY: Hey guys. Tên tôi là Andy. Tôi thực sự chỉ Yale sinh viên trên sân khấu ngay bây giờ. [Vỗ tay] Tôi đang ở Berkeley College, ban đầu từ Solon, bang Ohio. Và tôi là một trong những đứa trẻ ở đâu, khi tôi đến Yale, Tôi thực sự nghĩ rằng tôi sẽ không bao giờ phải nhìn vào một số bao giờ trở lại. Và sau đó tôi nhận ra rằng bạn cần cả khoa học và QR khoản tín dụng để tốt nghiệp. Và do đó, sinh viên năm nhất mùa xuân của tôi, tôi mất một lớp, một CS, CS intro lớp ở đây tại Yale. Tôi giống như, điều này giống như thực sự đẹp, thoáng mát. Và trong khi tôi thực sự đã kết thúc khai báo là một vấn đề toàn cầu lớn, các kỹ năng Tôi đã học được trong CS và lập trình rất áp dụng đối với bất kỳ lĩnh vực bạn chọn để làm. Và các nhân viên ở đây tại Yale, chúng tôi đã rất chăm chỉ làm việc để chuẩn bị cho các bạn. Và chúng tôi mong muốn được nhìn thấy tất cả các phần trong văn phòng và giờ. Vì vậy, yeah. [Vỗ tay] DAVID J. Malan: Cảm ơn bạn. Vì vậy, ngay trước khi lớp học bắt đầu, chúng tôi đã có một cơ hội để đi bộ xung quanh khuôn viên với một điện thoại di động và mất một số selfies dạng video thực sự tour diễn đầu tiên của tôi về khuôn viên trường Đại học Yale ở đây. Và vì vậy chúng tôi nghĩ rằng chúng tôi muốn chia sẻ một thô cắt chính xác này như Scaz và Andy và Jason đã cho tôi xung quanh khuôn viên trường. [VIDEO PLAYBACK] [Còi báo động] -David. -Welcome Để Yale. -Có Nhìn thấy bạn. -Rất vui được gặp bạn. Chúng tôi -Có đi trên một tour du lịch? -Let Đi trên một tour du lịch. Tour du lịch -Road. -Đây Dấu đã ở đó một thời gian. -Whah, CS50. -Hurry! Đi, đi, đi, đi. Bạn nên [không nghe được] Harkness Tower. -Và Chúng ta thấy rằng một vài lần. [Vỗ tay] -Look Ra cho những chiếc xe đạp! Ahh! Hi Frank. -Có chuyện gì thế anh chàng? -Bạn khỏe không? -Có Nhìn thấy bạn. -Welcome Cho video. Đừng hành động quá vui mừng. -Tôi Yêu Silliman. Ahh! -Nó Được khoảng ba tiếng đồng hồ kể từ khi Jason đã có kem và Nutella. Vì vậy, chúng ta phải dừng lại Silliman cho một chút. -Nó Không phải ngay cả [Không nghe thấy] có, chỉ là một thực tế rằng họ có nó ở đây là tuyệt vời như vậy. Dude, có Nutella vào mỗi bữa ăn. -Có Là năm ngoái quá. -Yeah. -tell nhiều về Yale cho đến nay. Nhưng tôi làm bây giờ đó là TD trên đó. Và đó được coi là ngoài khuôn viên trường. -Here Chúng tôi có kiến ​​trúc gothic. Nổi tiếng thế giới. Chúng tôi có một số kiến ​​trúc gothic hơn. Và xây dựng, kiến trúc gothic hơn. Chào. Đây là nơi mà chúng ta đang có giờ văn phòng Thứ Ba thông qua ngày thứ Năm tại Hogwarts, như [không nghe được]. -Được rồi. Đó là nó cho các tour du lịch. Chúng ta đang ở Đại học Yale của Trường Luật, nơi bài giảng hôm nay là sắp diễn ra. Hãy đi vào. [END PLAYBACK] DAVID J. Malan: Và đó đưa chúng ta ở đây bây giờ. Vì vậy, cho đến nay, chúng ta đã tập trung vào các mã giả, đó là cú pháp tiếng Anh như thế này. Nó không có đặc điểm kỹ thuật theo quy định. Nó chỉ là bạn sử dụng một số ngôn ngữ trực quan nếu bạn muốn giải thích những gì bạn muốn làm. Nhưng chúng ta hãy bắt đầu ngay bây giờ để quá trình chuyển đổi để mã, như hầu hết mọi người sẽ nói. Nhưng chính xác hơn, một cái gì đó được gọi là mã nguồn. Đây là ngôn ngữ mà con người viết rằng máy tính ultimately-- có thể sau khi một số số steps-- cuối cùng hiểu để biết làm thế nào để làm điều gì đó. Mà bạn nhìn thấy một cái nhìn thoáng qua của này có lẽ hôm thứ Tư. Đây là một ví dụ mà vô cùng, underwhelming khi chạy chỉ đơn giản nói "hello thế giới." Và nó được viết bằng một ngôn ngữ được gọi là C, đó là cú pháp rất giống nhau với rất nhiều ngôn ngữ khác mà bạn có thể không biết, nhưng có thể đã nghe nói về như Java, và C ++, và Python, và Ruby, và như thế, và trên thực tế, chúng tôi sẽ chi tiêu nhiều trong học kỳ bằng cách sử dụng C, và sau đó về phía cuối của học kỳ, xây dựng dựa trên nó, và giới thiệu bất kỳ số ngôn ngữ khác. Trong số đó PHP và JavaScript, một ngôn ngữ cơ sở dữ liệu được gọi là SQL. Nhưng với C, những gì chúng ta sẽ có sự hiểu biết từ dưới lên này chính xác làm thế nào máy tính làm việc, những gì bạn có thể làm với họ, và làm thế nào bạn có thể giải quyết vấn đề tất cả các cách hiệu quả hơn bằng cách này layering mà chúng ta đã thảo luận hôm thứ Tư, và đứng trên vai của những người khác. Nhưng thêm vào đó để đến. Hôm nay chúng ta nhìn vào một môi trường đơn giản, nhưng về cơ bản giống hệt một môi trường được gọi là Scratch bởi bạn bè của chúng tôi tại MIT Media Lab. Đây là một đồ họa ngôn ngữ lập trình, Scratch, nhờ đó mà bạn có thể kéo và thả những điều đó trông giống như những mảnh ghép đó chỉ interlock nếu nó làm cho cảm giác hợp lý hoặc chương trình để làm như vậy. Nhưng nó sẽ cho phép chúng tôi có một cuộc trò chuyện về tất cả của các lập trình tương tự nguyên tắc cơ bản mà một số bạn có thể đã biết, rằng nhiều người trong số bạn có thể không biết gì về mà không cần phải bị sa lầy thẳng thắn, trong trí tuệ cú pháp không thú vị của dấu chấm phẩy, và dấu ngoặc đơn, và trích dẫn, và như thế. Tất cả điều đó, đầu trên, là một phân tâm những gì là thú vị và ý tưởng thực sự hữu ích. Vì vậy, chúng ta hãy nhanh chóng liếc qua môi trường ở đây, vì vậy mà bạn biết những gì đang chờ đợi. Và trên thực tế, trong số các trò chơi chúng tôi có thể chơi được một vài chương trình được viết bởi cựu học sinh của riêng CS50 của. Một trong số họ, bản thân mình, tôi sẽ có một này bằng văn bản trong trường đại học đối với tôi. Nếu tôi có thể mất một tình nguyện viên người ta sẵn sàng để chơi một trò chơi cho lần đầu tiên. Chắc chắn. Nào lên. Tên bạn là gì? Đung Angela. DAVID J. Malan: Angela, đi lên trên. Vì vậy, Scratch đã được ra trong một vài năm. Và khi tôi còn học đại học, Tôi là cross đăng ký tại MIT, lấy giáo sư Mitchel Resnick của khóa học về công nghệ giáo dục. Và chúng tôi cũng nằm trong số đầu tiên sinh viên trên thế giới để thực beta kiểm tra Scratch. Và dự án của tôi là những gì Angela bây giờ ân tình nguyện để chơi gọi là Oscartime. Vì vậy, tôi sẽ đi trước và nhấp đúp chuột vào biểu tượng ở đây. Nó sẽ mở ra một lập trình môi trường mà chúng tôi sẽ sớm bổ nhào vào. Tôi sẽ toàn màn hình nó cho Angela, ở đây. Tôi sẽ nhấn màu xanh lá cây cờ chỉ trong một khoảnh khắc. Và sau đó là một toàn bộ rất nhiều thùng rác sẽ rơi từ bầu trời. Và bạn sẽ phải sử dụng chuột ở đây để thực sự kéo và thả thùng rác vào thùng rác của Oscar. Vì vậy, nếu bạn muốn đi trước và bấm lá cờ màu xanh lá cây, các trò chơi sẽ bắt đầu. [MUSIC CHƠI] Oh, tôi yêu thùng rác. Bất cứ điều gì bẩn hay xỉn màu hoặc bụi. Bất cứ điều gì nát hoặc thối, hoặc gỉ. Vâng, tôi yêu thùng rác. Nếu bạn thực sự muốn xem một cái gì đó vô giá trị, xem xét điều này. Tôi đã ở đây một sneaker đó là rách và sờn. Đó là tất cả đầy đủ các lỗ giữ và ren bị rách. Một món quà từ mẹ tôi ngày tôi được sinh ra. Tôi yêu nó vì it's-- DAVID J. Malan: --green những ngày này chỉ được ném mọi thứ vào thùng rác. Và vì vậy những gì một trong Did-- nhân viên riêng của CS50 Jordan, người có lẽ bạn đáp ứng today-- có thực sự cập nhật này cho lần hiện nay. Và vì vậy cho phép tôi để mở ra remix thay cho Angela. Và chúng tôi sẽ chơi này thay cho một vài khoảnh khắc mà bây giờ bạn đang sẽ phải quyết định giữa việc để ném một cái gì đó vào thùng rác, hoặc tái chế hoặc ủ nó. Vì vậy, có một chút áp lực lên anh để có được quyền này ở phía trước của bạn 392 đến 497 bạn học ở đây trong hội trường, nếu bạn muốn. [VIDEO PLAYBACK] [MUSIC CHƠI] -Oh Tôi yêu thùng rác. Bất cứ điều gì bẩn hay xỉn màu hoặc bụi. Bất cứ điều gì nát hoặc thối hoặc rỉ sét. Vâng, tôi yêu thùng rác. Nếu bạn thực sự muốn xem một cái gì đó vô giá trị, xem xét điều này. Tôi đã ở đây một sneaker đó là rách và sờn. Đó là tất cả đầy đủ các lỗ và ren bị rách. Một món quà từ mẹ tôi ngày tôi được sinh ra. Tôi yêu nó vì nó là thùng rác. Oh, tôi yêu thùng rác. Bất cứ điều gì dơ bẩn, hoặc xỉn màu, hoặc bụi. Bất cứ điều gì nát hoặc thối hoặc rỉ sét. Vâng, tôi yêu thùng rác. Dưới đây là một số công cụ thối hơn. Tôi đã ở đây một số newspaper-- [END PLAYBACK] DAVID J. Malan: --are thực sự làm phân ủ. Nhưng cảm ơn bạn tình nguyện viên của chúng tôi, Angela. Chúng tôi có một quả bóng căng thẳng cho bạn ở đây là tốt. Vì vậy, cảm ơn bạn. Vì vậy, điều này đã được viết bởi tôi. Nhưng bây giờ một của một cựu học sinh thực tế người thực hiện điều này, đó là một trò chơi. Tất cả trong ngôn ngữ này được gọi là Scratch, rằng chúng ta sẽ sớm bóc lại lớp. Nhưng nếu chúng ta muốn like-- như thế nào về tình nguyện viên khác? Phải. Nào lên. Tên bạn là gì? Nháy mắt? Lance. Lance, đi lên trên. Hân hạnh được gặp bạn. Hãy đến trên con đường này. Vì vậy, điều này có thể có một chủ đề quen thuộc với một số bạn. Nhưng bạn sẽ thấy rằng quá có thể có tương tác, nhờ đó mà bạn thực sự có thể là vai trò của các nhân vật di chuyển xung quanh. Hân hạnh được gặp bạn. David. Tôi cung cấp cho bạn, Pikachu. Hướng dẫn sẽ về đến trên màn hình. Nhưng trong ngắn hạn, bạn sẽ muốn bắt những thứ ngon, và tránh bom và những thứ khác. Với con trỏ hoàn toàn. Vì vậy, nhấn thanh không gian. -Pikachu. DAVID J. Malan: Catch các công cụ bên trái, không nắm bắt các công cụ bên phải. [MUSIC CHƠI] Vì vậy, một người cuối cùng ở đây. Nếu chúng ta có thể có một nhiều tình nguyện viên ở đây. Chúng tôi nghĩ rằng chúng tôi muốn tạo một cái gì đó from-- trong shirt-- vàng từ thứ Tư. Bạn tên là gì? Mary, đến ngày lên Mẹ Maria. Và nhớ lại hôm thứ tư, chúng tôi giới thiệu các khái niệm về nhị phân, và bóng đèn nhị phân. Đây thực sự là một doanh nghiệp thực hiện mà giao diện tương tự rằng chúng tôi đã có trên iPad với ánh sáng bóng đèn, nhưng ở đây kỹ thuật số trả lại. Và thay vì làm một căng thẳng ball-- nice to meet you, David. Chúng tôi mang lại một vài ánh sáng bóng đèn từ Cambridge. Nếu bạn có thể, cách nhấp vào những bóng đèn để bật chúng lên và tắt, đi lên với các nhị phân đại diện của 256 nói. Và bạn sẽ thấy trong giữa, kiểm đếm hiện hành. Vì vậy, đó là một ngày. Vì vậy, các bit tận cùng bên trái là ngày. MARY: Yeah, [nghe được] DAVID J. Malan: Vâng, vì vậy chúng tôi có just-- oh. Vì vậy, đây là cột 128. Vì vậy, chúng tôi đang lên đến 128. Chúng tôi phải đến 256. Và bạn có thể sửa trên và tắt, không có việc lớn. Hoặc bạn có thể nhấn mà 128 lần hơn nếu bạn muốn. Được rồi, tốt. 24. Yeah, nhận được gần gũi hơn. Closer! Oh, vấn đề là những gì sau đó? Vì vậy, vấn đề là những gì? Vì vậy, những gì chúng ta cần phải giải quyết vấn đề này? Vì vậy, chúng ta cần một bit. Và điều này là hoàn toàn hợp lý trong thực tế, phải không? Nếu bạn muốn đếm từ số 1-2 đến 3 đến 4-5, 6, 7, 8, 9 để thực sự lăn đến 10, bạn sẽ cần một chút bổ sung. Vì vậy, hãy thực tua lại ở đây, và đi lên with-- đó là rõ ràng có nghĩa là một thiết lập. Bạn không thể làm 256 với chỉ một bóng đèn. Vì vậy, làm thế nào về chỉ số 50? Số 50. Tuyệt vời. A lớn vòng vỗ tay cho Mary và cô ấy là tốt. Cam on. Vì vậy, đây là cố ý topic-- was-- rằng sẽ thực sự tái diễn. Giá trị lớn nhất mà bạn có thể đại diện với tám bit, hoặc một byte, quả thực là 256. Nhưng không phải nếu bạn bắt đầu đếm từ 0, như chúng ta dường như để giữ làm bằng cách tất cả các bit off. Nhưng bây giờ chúng ta hãy đi sâu vào tiềm ẩn thực hiện môi trường này, và trêu chọc nhau một số trong những ý tưởng. Vì vậy, trong một thời điểm chúng tôi về để xem một vài nguyên tắc cơ bản lập trình khác nhau. Việc đầu tiên mà chúng ta sẽ gọi tuyên bố. Phân loại của động từ, nếu bạn sẽ. Actions. Những điều đó nên được thực hiện. Và trong một khoảnh khắc bạn sẽ thấy khối trông như thế này. Nói "hello world", ví dụ. Hoặc chờ một giây. Hoặc chơi meow âm thanh. Và thực sự là môi trường trong mà chúng ta sẽ phải làm điều này được gọi là Scratch. Và nếu tôi kéo lên mà không Scratch gia tải bất kỳ mã thực tế, chúng ta hãy có một cái nhìn nhanh chóng tại đây giao diện người dùng, do đó, để nói chuyện. Các điều khiển mà chúng ta tương tác. Trên đỉnh còn lại đây của màn hình, bên dưới các menu, chúng tôi có sân khấu, vậy để nói chuyện. Vì vậy, Scratch là những gì chúng ta sẽ gọi Sprite. Đó là một nhân vật. Và ông có thể được kiểm soát bởi viết chương trình chống lại ông. Và ông sẽ có thể di chuyển lên và xuống và trái và phải trong môi trường này, không chỉ bằng cách di chuyển chuột, nhưng lập trình. Tôi có thể nói với anh ta đi bộ bên phải, đi bộ trái, lên, xuống hoặc tương tự. Và tôi có thể giới thiệu khác sprites hoặc ký tự là tốt. Thật vậy, ở phía dưới đây là nơi bạn sẽ thấy danh sách các sprites. Tại thời điểm này, tôi chỉ có một, nhưng tôi có thể tạo nhiều hơn, và chúng sẽ xuất hiện chính xác xuống đó. Vì vậy, nếu bạn tua lại trong một khoảnh khắc, như Oscartime-- ví dụ, Oscar, bên trái, thùng rác có thể, là một sprite. Và điều ở giữa, tái chế bin, là sprite khác. Và các thùng phân compost là sprite khác. Và mỗi mảnh hoặc tái chế rác thải đã rơi xuống từ bầu trời cũng là một sprite, mỗi trong số đó đã được lập trình riêng lẻ. Làm thế nào để bạn có chương trình? Vâng, ở đây ở bên phải bên là khu vực các kịch bản. Và đây là nơi mà chúng ta có thể kéo và thả các mảnh ghép. Trong một tuần, nó sẽ được nơi chúng ta viết mã tương đương với nhiều hơn một bàn phím, nhưng đối với ngày nay nó sẽ được kéo và thả mảnh ghép, các bảng màu mà có thể tất cả được tìm thấy ở đây ở giữa bên phải. Thật vậy, ở giữa ở đây có cả một bó các loại câu đố miếng hoặc khối. Một là liên quan đến chuyển động, nhìn, âm thanh, một cây bút đi lên và xuống, dữ liệu, các sự kiện kiểm soát. Không hoàn toàn chắc chắn chưa tất cả những gì chúng có ý nghĩa, nhưng bạn sẽ thấy rằng họ đã được phân loại độc đáo. Và để viết một chương trình trong Scratch, chúng ta hãy làm chính xác điều đó. Tôi sẽ bắt đầu dưới Các sự kiện, và kéo này ở đây. Khi lá cờ màu xanh lá cây nhấp. Bây giờ tại sao một trong những? Cũng nhớ lại rằng các tình nguyện viên đã đưa ra, người đầu tiên điều tôi hoặc họ đã làm là nhấn màu xanh lá cây lá cờ ở góc trên bên phải. Và điều đó chỉ có nghĩa là bắt đầu chương trình. Vì vậy, khi sự kiện đó xảy ra, làm những gì tôi muốn làm gì? Tôi sẽ đi theo Looks, và tôi sẽ làm "chào hỏi." Và tôi sẽ phải thay đổi này và nói một cái gì đó giống như "hello Yale." Và bây giờ tôi sẽ để phóng to ra, nhấp vào lá cờ màu xanh lá cây, và thì đấy, tôi đã viết một chương trình. Đó không phải là tất cả những gì thú vị chỉ được nêu ra, nhưng điều này là chính xác nơi mỗi của những tác giả bắt đầu, cả với Pikachu, và bóng đèn nhị phân, và Oscartime, và rất nhiều ví dụ khác nữa. Bạn bắt đầu siêu đơn giản, và sau đó bạn bắt đầu đến lớp, và thêm vào các tính năng và chức năng. Vì vậy, các lớp này là gì sẽ bao gồm? Vâng, ngoài báo cáo, chúng tôi cũng sẽ thấy có những điều ít fancily hơn gọi là Boolean Expressions, sau khi một người nào đó tên là Bool. Và một biểu thức Boolean đơn giản là một là biểu hiện đó là đúng hoặc sai, có hay không, 1 hoặc 0. Bất kỳ cực đối như thế. Nó là một trong hai sự thật hay không. Nhưng chúng ta cũng sẽ đi xem những người mà có thể trông như thế này. Vì vậy, ví dụ, là chuột xuống? Họ là loại câu hỏi, nếu bạn sẽ. Chuột là một trong hai xuống, đúng hay không, sai. 1 hoặc 0, nếu bạn muốn, có xu hướng được các bản đồ. Đúng là 1, false là 0. Vâng những gì về ít hơn này? Hoặc vì vậy, điều này ít hơn so với điều này? Đó là một câu hỏi của các loại. Và nếu bạn đặt hai số trong đó, hoặc là x là có được ít hơn hoặc y bằng y, hoặc lớn hơn y, nhưng khối này, chúng ta sẽ thấy, chỉ là sẽ trả lời các câu hỏi, là này ít hơn? Chúng ta cũng có thể thấy một cái gì đó như thế này. Đụng con trỏ chuột. Vì vậy, trong Scratch, bạn có thể yêu cầu các câu hỏi, là Sprite chạm vào con trỏ chuột? Nói cách khác, là lơ lửng con trỏ trên nắp, hoặc tương đương? Chúng ta sẽ thấy điều anding nhau. Bạn có thể hỏi hai câu hỏi, và chắc chắn rằng cả hai chúng cung cấp cho bạn câu trả lời có hoặc đúng trước khi quyết định làm điều gì đó. Nhưng sau đó làm thế nào để bạn thực hiện các quyết định? Vâng, chúng ta có những điều kiện. Và chúng ta thấy điều này trong của chúng tôi ví dụ về các cuốn sách điện thoại. Nhìn sang bên trái hoặc đúng cho Mike Smith. Và trong điều kiện, bạn làm điều gì đó có khả năng, nếu một biểu thức Boolean là đúng. Và quả thực, thông báo các hình dạng này ngay. Có giữ chỗ này ngay bây giờ trên chi phí mà chúng ta có thể fit-- nếu tôi tua lại một slide-- hình dạng đó. Nó không hoàn toàn cùng kích thước. Và thực sự, bạn sẽ thấy rằng Scratch thay đổi kích thước điều động để phù hợp với những mảnh ghép, nhưng hình dạng là những gì quan trọng. Điều này có vẻ như đó, và thực sự nó là khoảng cùng một hình dạng mà nên phù hợp trong đó. Và nếu chúng ta muốn làm điều gì đó Bằng cách này hay cách đó, nếu hay khác, chúng ta có câu đố này mảnh trong Scratch là tốt. Bây giờ giả sử bạn muốn làm gì nếu, nếu người nào khác, hoặc người nào khác. Nói cách khác, một ba cách ngã ba đường. Vâng những gì bạn có thể làm chỉ cần nhìn liếc này? Tôi có thể lấy mảnh ghép này, và nó dường như không phù hợp, nhưng một lần nữa, Scratch sẽ chỉnh lại kích thước độc đáo đối với chúng tôi. Tôi có thể bắt đầu đến lớp những việc này lại với nhau. Vì vậy, bây giờ tôi có một chiều ba ngã ba nếu điều này là đúng, làm được điều này. Khác nếu điều này là đúng sự thật khác, đi theo con đường này, người khác đi theo con đường khác này. Và trong The Muppet Movie, các ngã ba đường, có thể nói, giữa Yale hay Stanford, đã chính xác điều đó, chỉ cần hai điều kiện. Hoặc là đi theo con đường này, người khác đi theo cách đó. Vâng, cũng loops tồn tại trong lập trình. Và chúng tôi đã sử dụng những đã có trong lớp và trong mã giả, và chắc chắn trong những Chương trình đầu mãi mãi. Scratch có mảnh ghép này sẽ chỉ cho phép bạn làm điều gì đó mãi mãi. Và đôi khi bạn muốn để làm một cái gì đó mãi mãi. Nó cũng không hẳn là lỗi, đó là bởi vì bạn muốn có một đồng hồ để tiếp tục đi, hoặc một trò chơi để tiếp tục chơi. Hoặc bạn có thể chỉ định một số hữu hạn các bước, như với khối lặp lại điều này ở đây, đó sẽ lặp lại một cái gì đó 10 lần. Chúng tôi có thể thiết lập các biến, chúng ta sẽ sớm thấy. Và với các biến, tinh thần tương tự đại số, như x, hoặc y hoặc z. Đó là một cái gì đó mang tính biểu tượng có thể lưu trữ một số giá trị, một số phần của thông tin, mà bạn có thể muốn nhớ cho lần sau. Ví dụ tốt nhất của điều này có thể một trò chơi, nơi bạn có một số điểm, như trong Pikachu. Bao nhiêu phần của bánh và không có điều gì bạn đã bắt? Vâng, đó có thể là một biến được gọi là điểm bắt đầu từ 0. Và sau đó mỗi lần chúng ta bắt gặp một miếng bánh hoặc kẹo, hoặc tương tự, nó được tăng lên. Nó được thêm vào một lúc. Và các cửa hàng do đó, một biến a đoạn thông tin như thế. Sau đó có mảng, và chúng tôi sẽ đến trở lại những trong một thời gian hoặc hai tuần, nhưng một mảng là loại giống như một tồn kho hoặc một satchel, bên trong trong đó bạn có thể đưa những thứ ảo. Nó cho phép bạn lưu trữ nhiều hơn hơn một đoạn thông tin. Và đó có thể là hữu ích nếu trong các trò chơi, bạn loại đi bộ xung quanh nhặt mọi thứ lên. Và có lẽ bạn muốn giữ tất cả những mẩu bánh xung quanh, và không chỉ ăn họ cái khác. Và sau đó có một xây dựng fancier chúng tôi sẽ đến được gọi là chức năng hoặc thủ tục. Và mặc dù chúng ta đang đi nhanh hơn ở đây, chúng tôi sẽ thấy rằng đây là một rất giải pháp cho các vấn đề tự nhiên rằng chúng ta sẽ gặp gỡ. Khi các chương trình của chúng tôi bắt đầu nhận được lớn hơn chúng tôi sẽ bắt đầu nhận thấy các mẫu trong mã mà chúng tôi đang viết, các mảnh ghép chúng tôi cách kéo và thả. Và ngay khi bạn nhận thấy mình đang làm một cái gì đó một lần nữa và một lần nữa, hoặc tệ hơn nữa sao chép và lập trình dán mã mà bạn đã viết, đó có thể là một cơ hội để yếu tố ra bất cứ điều gì bạn giữ sao chép và dán, và đưa nó trong một cái gì đó gọi là "chức năng". Nhưng nhiều hơn về những người trong nhiều chi tiết hơn trước khi dài. Và sau đó có tính năng thậm chí fancier. Đối với những người bạn thoải mái hơn, hoặc tham APCS hoặc tương đương, Scratch thực sự hỗ trợ những thứ như chủ đề và các sự kiện và nhiều hơn nữa. Vì vậy, nhận ra rằng nó có một trần khá cao, mặc dù nó cũng rất rộng rãi có thể truy cập để folks người chưa bao giờ được lập trình trước. Vì vậy, thực sự, chúng ta hãy có một cái nhìn tại một chương trình đơn giản hoặc hai. Chúng tôi đã xem xét làm thế nào chúng tôi có thể nói lời chào với Scratch. Hãy để tôi đi trước và mở một ít chương trình thú vị hơn mà tôi đã viết trước. Và cái này gọi là vật nuôi các Cat. Tất cả các chương trình này sẽ được có sẵn trên trang web của CS50. Thật vậy, đã có. Vì vậy, bạn có thể tải về họ, và chơi với chúng, và với Problem Set 0, là cũng trên trang web của khóa học, bạn đang khuyến khích đi bộ thông qua các. Và hơn thế nữa, chúng tôi có một số lượng video đi bộ qua trực tuyến mà tôi và Đội CS50 của sự đi bộ qua mỗi ví dụ lúc một nhiều tốc độ chậm hơn, một forwardable rất nhanh, hoặc tốc độ rewindable, vì vậy mà bạn có thể đi bộ qua những lúc giải trí của bạn là tốt. Vì vậy, đây là Scratch bên trái. Dưới đây là một chương trình ở bên phải mà tôi đã trước khi thực hiện. Vì vậy, hãy để tôi phóng to này. Và có thể một người nào đó bằng tiếng Anh, biết những gì bạn biết, chỉ cần từ nay như làm thế nào để công trình Scratch, loại nói trong một cụm từ tiếng Anh hay một câu, những gì chương trình này dường như làm gì? Yeah, trong chiếc áo màu cam. Đung [Không nghe thấy] DAVID J. Malan: Vâng, nếu bạn con trỏ là trên Scratch con mèo, chơi một âm thanh meowing. Nhưng hãy chú ý cách chúng ta biểu đó. Có vẻ như một loop ở đó, mãi mãi. Và sau đó có một điều kiện, nếu biểu thức. Và tập thể, làm những gì những người nghĩa là gì? Nó có nghĩa là chương trình này chỉ là luôn luôn chạy, và nó chỉ luôn luôn chờ đợi và sát và lắng nghe cho tôi để di chuyển chuột của tôi trên con mèo. Bởi vì mỗi khi tôi làm điều đó, như bạn đề xuất, nó sẽ làm điều này. Hãy để tôi bắt đầu chương trình. Không có gì có vẻ là xảy ra, nhưng thông báo như thế nào nó đánh dấu có trong một đường màu vàng. Điều đó chỉ có nghĩa là nó đang chạy. Và bởi vì có một mãi mãi vòng lặp, nó vẫn chạy. Vì vậy, hãy để tôi di chuyển con trỏ của tôi trên Scratch. [Meow] [Meow] Và nếu tôi di chuyển nó đi, [Meow] bây giờ nó dừng lại, nhưng chương trình của vẫn chạy. [Meow] Và như vậy, đáng yêu. [Meow] Vì vậy, hãy mở lên hơi cao cấp hơn ví dụ được gọi Đừng thú nuôi Mèo. Và bây giờ chúng ta hãy xem những gì xảy ra ở đây. [Meow] Meowing. Vì vậy, nó là một chút trên tự động thí điểm, nếu bạn sẽ. --pet con mèo. Tôi tự hỏi tại sao. [ROAR] [Meow] Vậy làm thế nào đã làm công việc này? Vâng, bạn có thể loại lý do qua nó bằng trực giác, có lẽ. Nhưng chúng ta hãy nhìn vào các mã thực tế. Vì vậy, một lần nữa, khi lá cờ màu xanh lá cây được nhấp, làm điều này mãi mãi. Làm những gì bạn muốn làm mãi mãi? Vâng, nếu chuột cảm động con trỏ, sau đó chơi một âm thanh đó dường như được gọi là Lion 5, đó là bên trong của dự án này, khác chơi meow âm thanh, và sau đó chờ hai giây, vì vậy rằng nó không meowing không ngừng. Trong thực tế, bạn có thể rất nhanh chóng bắt đầu làm phiền mình và bạn cùng phòng của bạn. Hãy loại bỏ khối này. Và hãy chú ý những gì tốt đẹp về Scratch. Mọi thứ dường như đang kéo và thả và interlock. Vì vậy, một lần nữa, nó phát triển để điền vào những gì bạn muốn. Nhưng nếu tôi loại bỏ điều này, và sau đó hit chơi, [COMPUTER Blip SOUND] --it của loại vấp chính nó, bởi vì đó là nghĩa đen làm những gì tôi muốn nói. Nó nói rằng mãi mãi chơi âm thanh này, nhưng Tôi không cho nó một cơ hội để kết thúc. Và do đó sẽ là một lỗi. Và đó là lý do tại sao chúng tôi đã có điều này ở đây bây giờ. Vì vậy, hãy thực sự bắt đầu từ scratch-- loại chơi chữ hơi intended-- trong đó bây giờ chúng tôi có con mèo di chuyển. Vì vậy, tôi sẽ làm điều này trên bay. Tôi sẽ thu nhỏ tại đây, chỉ để cho tôi bắt đầu về sự kiện. Và lá cờ màu xanh lá cây nhấp. Và có những cách khác để bắt đầu kịch bản. Chúng tôi đang đi để giữ cho nó đơn giản ở đây. Và bây giờ tôi sẽ đi trước và đi dưới kiểm soát. Và một lần nữa, nếu bạn quên nơi mọi thứ được, chỉ cần nhấp vào xung quanh, và cuối cùng bạn tìm thấy chúng một lần nữa. Vì vậy, tôi muốn mãi mãi làm gì? Tôi muốn sử dụng các khối chuyển động mà tôi biết tồn tại, di chuyển 10 bước. Vì vậy, chúng ta hãy xem những gì sẽ xảy ra ở đây nếu tôi chơi trò chơi này. Rất may nó không đi quá xa. Tôi vẫn có thể loại lấy anh đuôi và kéo anh ta trở lại. Nhưng chương trình vẫn chạy, do đó, ông là loại chiến đấu với tôi. Nhưng nó muốn được loại tốt đẹp nếu tôi có điều kiện khắc phục điều này trong mã. Bởi vì đây là not-- thực ra đây thực sự là không phải là một trò chơi thú vị cho bất cứ độ tuổi nào. Vì vậy, hãy cố gắng khắc phục điều này bằng cách có một số loại điều kiện. Vì vậy, tôi sẽ đi theo Điều khiển, và sau đó nếu. Tôi thích ý tưởng này. Vì vậy, sau khi chuyển 10 bước, if-- cho tôi cảm giác tôi đang ở đâu. Tôi sẽ đi theo Sensing, và sau đó nó trông tôi có thể đi đây. hàng để các trận đấu hình dạng. Kích thước không, nhưng nó sẽ phát triển để điền vào. Và bây giờ điều này là một menu nhỏ. Và bây giờ chuột pointer-- tôi không muốn con chuột, tôi muốn cạnh. Vì vậy, Scratch là đủ thông minh để biết khi một sprite là chạm vào mép. Tôi muốn gì anh ta thực sự làm gì? Hãy để tôi đi trước và thay đổi chuyển động. Bạn biết gì? Tôi sẽ có anh ta quay lại. Vì vậy, tại 15 độ không phải là thực sự sẽ giúp tôi. Tôi muốn anh ấy quay lại và đi theo con đường khác. Vì vậy, chúng ta hãy xem những gì sẽ xảy ra ở đây, nếu tôi nhấn Chơi ngay. OK, ngu ngốc tìm kiếm, nhưng nó đang làm chính xác những gì tôi nói. Và nó quay toàn bộ sprite. Bây giờ nó quay ra tôi có thể sửa lỗi này. Và tôi không biết làm thế nào để sửa lỗi này lần đầu tiên. Tôi loại đã phải futz xung quanh và thấy cách tốt nhất để làm điều này. Nhưng nếu tôi đi với: chúng ta hãy xem, chuyển động. Oh, tôi thấy điều này. Trên thực tế, Thiết Rotation Style. Trái, phải, hoặc không xoay, hoặc tất cả xung quanh. Và hóa ra đó là những gì tôi muốn. Và tôi sẽ đưa điều này là không phải của tôi vòng lặp, bởi vì tôi không cần phải thiết lập phong cách luân chuyển nhiều lần. Tôi sẽ đặt nó ở đầu rất của chương trình này để nó được thiết lập một lần, và sau đó nhớ lại. Và bây giờ tôi sẽ cố gắng này một lần nữa. Hãy để tôi dừng chương trình. Và bây giờ là cố định lỗi đó. Vì vậy, tôi lặp đi lặp lại việc cải thiện khi này. Chương trình này là nhận được một ít phức tạp hơn và lớn hơn, nhưng tôi lấy bé bước để nói chuyện, và cắn nhỏ ra khỏi vấn đề để có được nó tốt hơn và tốt hơn. Nhưng đây cũng là loại lame. Bạn biết gì? Sẽ yêu cầu một ai đó với một thực sự tốt, giọng nói đáng sợ, muốn đi lên? Một người nào đó với một giọng nói. Uh, yeah. Nào lên. Trong chiếc áo sơ mi màu xanh lá cây. Vì vậy, nó chỉ ra có một số thú vị khác điều, tính thẩm mỹ và âm thanh như nhau. Đây là meo meo. Tôi bấm vào tab Sounds. [Meow] Có những meo meo. [MEO MEO] [Meow] --actually kỷ lục một cái gì đó của riêng của chúng tôi ở đây. Vì vậy, chúng ta hãy làm chính xác điều đó. Thay vì sử dụng âm thanh con mèo này, chúng ta hãy đi trước đây, và tên của bạn là gì? Nick, rất vui được gặp bạn. Đó là David. Vì vậy, trong một thời điểm, tôi sẽ nhấn nút Record. Và nếu bạn có thể chỉ hét vào máy tính xách tay, "Oái," như thể bạn vừa bước vào tường, mà sẽ được nhiều đánh giá cao. 1, 2. NICK: Ouch! DAVID J. Malan: Awesome. Và bây giờ có thể làm một ít chỉnh sửa ở đây. Đi để có được thoát khỏi những phần yên tĩnh. Và tôi nghĩ rằng đó là tốt. Cảm ơn rất nhiều. NICK: Pleasure. DAVID J. Malan: Tôi đã chỉ cần đổi tên nó "ouch" nhưng bây giờ tôi sẽ quay trở lại kịch bản của tôi. Và thông báo có thực sự là âm thanh ở đây. Và tôi sẽ đi trước và chơi các ouch âm thanh, và tôi sẽ làm điều đó nếu nó chạm vào mép chỉ. Và sau đó tôi sẽ có nó quay lại. Vì vậy, chúng ta hãy xem những gì xảy ra ở đây. Hãy xem toàn màn hình. [VIDEO PLAYBACK] -Ouch! Ouch! Ouch! Ouch! Ouch! Ouch! Ouch! Ouch! [END PLAYBACK] DAVID J. Malan: Vì vậy, bạn nhận ra rằng chúng ta đang nhận được một chút may mắn. Tôi sẽ có anh ta di chuyển như 100 bước tại một thời điểm. Hiệu quả của việc đó bây giờ là đi để be-- [COMPUTER GLITCH SOUND] Vì vậy, trong lý do. Vì vậy, một cơ hội để tinh chỉnh đó hơn nữa nếu chúng ta thực sự muốn. Vì vậy, bây giờ hãy giới thiệu khái niệm khác. Để cho tôi đi vào một gọi là Đếm cừu và sử dụng một cái gì đó được gọi là một biến. Đây là một con cừu nhỏ đáng yêu, và Tôi đã thay đổi trang phục của mình để nói chuyện. Vì vậy, mặc dù mặc định là một mèo, bạn có thể tải lên, bạn có thể vẽ, bạn có thể làm bất kỳ số lượng ký tự trên sprite của bạn. Dưới đây là một chương trình đó là sẽ làm những gì trong tiếng Anh? Dựa trên một lần nữa chỉ là những gì bạn biết bây giờ. Của chương trình này làm được gì? Yeah, nó sẽ đếm. Một số tại một thời điểm. Chúng tôi có vẻ có bộ đếm này. Tôi không biết đó là gì, nhưng có lẽ nó là một biến. Nó chỉ là một container, x hoặc y. Nhưng quầy từ là hơn mô tả toán học của hơn x hoặc y. Vì vậy, chúng ta có thể sử dụng các từ tiếng Anh cho mọi thứ. Mãi mãi, chỉ có nghĩa là tiếp tục làm điều này. Nói ngược. Bây giờ đã đến nơi này từ đâu? Vâng, nó chỉ ra rằng truy cập là một biến. Vì vậy, nó chỉ là một câu đố mảnh tôi tạo ra từ trước. Và mặc dù nó xảy ra không có hình dạng giống nhau ở đây, thông thường bạn sẽ nói một cái gì đó giống như chào hỏi ở đây. Bạn cũng có thể kéo một biến vì vậy mà đó là những gì của nhận biết. Sau đó, tôi chờ đợi một giây, tôi thay đổi các truy cập một, incrementing nó bằng cách thêm một. Vì vậy mà ảnh hưởng thực là đếm cừu đáng yêu này. Mặc dù ông kể mình. Bây giờ nó rất nhanh chóng sẽ nhận được nhàm chán bởi vì anh ta sẽ làm điều này thật sự mãi mãi, nhưng đó chính xác là những gì thiết kế chương trình quy định. Bây giờ cho phép thử một ví dụ khác đó thúc đẩy một biến. Điều này được gọi là Hi Hi Hi, mà không được gây phiền nhiễu một cách nhanh chóng. Bây giờ chương trình này có hai kịch bản. Và như vậy một lần nữa, chúng tôi đang tiến hành các bước em bé. Chúng tôi bắt đầu với một cái gì đó siêu nhỏ, thêm vào đó, thêm vào nó. Bây giờ tôi muốn làm điều gì đó thậm chí năng động hơn, vì vậy tôi muốn được lắng nghe cho hai việc khác nhau tại một thời điểm. Vì vậy, trên bên trái, khi lá cờ màu xanh lá cây được nhấp, Tôi thiết lập một biến mà tôi đã viết trước gọi tắt tiếng. Và tôi tự đặt nó là 0. Vì vậy, Scratch không có đúng và sai, nhưng nó có 0 và 1. Vì vậy, tôi có thể gần đúng rằng ý tưởng tương tự. Và sau đó mãi mãi, nếu thanh không gian ép, sau đó thiết lập các biến để 0. Hoặc xin lỗi. Nếu không gian được nhấn, và nếu bị tắt tiếng, biến, là 0, sau đó thiết lập tắt tiếng đến 1, khác đặt tắt tiếng để 0. Điều này có vẻ gần giống như chúng tôi chỉ cần làm và xóa bỏ việc. Nhưng hiệu quả là những gì? Mỗi lần tôi nhấn thanh không gian, những gì xảy ra biến của tôi gọi tắt tiếng, một cách logic? Loại bị lộn. Nó thay đổi 0-1 hoặc 1-0. Vì vậy, phải mất một vài khối để thể hiện rằng, nhưng tất cả Tôi đang làm là chuyển đổi qua lại các trạng thái biến này là 0 hoặc 1, hoặc 0 hoặc 1 mỗi khi tôi nhấn thanh không gian. Bây giờ ở đây, những gì đang này đang làm gì? Mãi mãi, nếu tắt là 0, vì vậy nếu bị tắt tiếng là sai. Vì vậy, nếu nó không bị tắt tiếng, là ngữ nghĩa đó, chơi sư tử biển âm thanh, và nghĩ Hi Hi Hi cho hai giây, chờ hai giây. Vì vậy, nhận thấy bây giờ những kịch bản là có hiệu quả sẽ chạy song song để người ta có thể được lắng nghe cho một hành động, khác để đưa ra quyết định dựa trên hành động đó. Và nó có thể làm điều này mãi mãi. [SEA LION sủa] [SEA LION sủa] Nó sẽ làm điều này và mãi mãi [SEA LION sủa] như tôi vừa làm. Và bây giờ nó vẫn chạy nhưng tôi đã "tắt tiếng" game. [SEA LION sủa] Và đó là tất cả các anh chàng này đang làm hiện nay quá. Hãy mở một ví dụ khác ở đây. Hãy để tôi đi vào các sự kiện, và bây giờ điều này đáng yêu quá. Nhưng nhận thấy nó có hai sprites. Vì vậy, không chỉ hai kịch bản với một sprite, nhưng hai sprites. Và nếu tôi bấm vào các chàng trai màu xanh như tôi đã có, tôi thấy ông là một trong những chương trình lên đây mà nghĩa đen chỉ nói này, khi tôi nhận được một sự kiện, nói "Polo" trong hai giây. Vì vậy, nếu bạn đã từng chơi trong một hồ bơi, các trò chơi Marco Polo, nếu kịch bản cam chàng là bất kỳ dấu hiệu cho thấy, rõ ràng mỗi khi tôi nhấn thanh không gian, các chàng trai màu cam sẽ làm những gì? Ông ấy sẽ nói "Marco". Và sau đó là một khối mới. Chúng tôi đã không nhìn thấy điều này trước khi, nhưng phát sóng một sự kiện. Và tôi có thể gọi nó sự kiện bất cứ điều gì chúng ta muốn. Chúng tôi sẽ trở lại vấn đề này có lẽ trước khi dài. Nhưng một sự kiện phát sóng là một cách cho một sprite để nói chuyện với nhau bằng về cơ bản đi qua nó một tin nhắn. Nó không phải là một thông điệp mà bạn nhìn thấy. Nó không phải cái gì trực quan. Đó là loại tin máy tính mà các chàng khác đang lắng nghe. Bởi vì thực sự, các chàng trai xanh, thu hồi không có khi lá cờ màu xanh lá cây nhấp. Thay vào đó anh có, khi tôi nhận được một sự kiện. Khi ông được giao lưu ý này trong lớp học, vậy để nói chuyện, ông nên nói "Polo." Và vì vậy hiệu quả ròng là khi tôi đánh cờ màu xanh lá cây, không có gì xảy ra. Nhưng khi tôi nhấn thanh không gian, ông nói "Marco", ông trả lời bằng "Polo." Nhưng ma chỉ có tôi là tương tác với là một màu cam. Vì vậy, đây là một cách để loại truyền thông điệp giữa các sprites và họ có cho giao tiếp với nhau. Bây giờ chúng ta hãy nhìn vào một cuối cùng ai ở đây gọi là Chủ đề. Và nhận thấy điều này bằng cách chơi nó. Vì vậy, đây là hai sprites. Những con chim là loại bay xung quanh. Anh ấy nảy. Không có "ouch", nhưng cùng một ý tưởng. Nhưng con mèo có vẻ khá thông minh. Là con mèo dường như đang làm gì? Và chờ cho nó. Là con mèo dường như đang làm gì? Nó không chỉ nảy. Anh ta sau con chim. Và như vậy rõ ràng, có một cách với sự kết hợp của các khối here-- và chúng ta hãy nhìn vào con mèo thật nhanh. Mãi mãi, nếu chạm vào chim, sau đó chơi âm thanh Lion 4, bất kể đó là. Chúng tôi nghe thấy nó một lần. Nếu không, chỉ hướng tới chim, và di chuyển một bước. Bây giờ thực tế là nó là một bước là những gì cho các con chim một chút của một lợi thế ban đầu, nhưng nếu chúng ta thay vì làm cho 10 này, ví dụ, vì vậy mà mỗi lần lặp của vòng lặp ông di chuyển 10 bước của thời gian. Vì vậy, nhiều không gian hơn. Hãy xem những gì sẽ xảy ra sau đó. [LION ROAR] tốt hơn Không phải tất cả những gì nhiều. Vì vậy, bây giờ chúng ta hãy cố gắng để cải thiện khi những một chút lặp đi lặp lại, và trở lại mà khái niệm của một hàm. Và thực sự là một trong những cơ bản takeaways của các lớp thiết kế. Không chỉ viết chương trình làm việc và đó là chính xác, nhưng rất thiết kế. Và thiết kế là nhiều chủ quan hơn, và bạn sẽ nhận được tốt hơn vào nó theo thời gian. Nhưng chúng ta hãy có một số bước về phía bé bắt đầu với một chương trình hoạt động, hoàn toàn, nhưng nó không phải là rất tốt. Nó không phải là rất tốt bằng văn bản. Vì vậy, đây là một chương trình mà thực hiện điều này. Ho, ho, ho. Những gì hiện các chương trình như thế nào? Có vẻ đúng với tôi. Nó nói rằng chiếc ghế cho một thứ hai, sau đó nó chờ đợi. Sau đó, nó nói nó một lần nữa, sau đó nó chờ đợi. Sau đó, nó nói nó một lần nữa, sau đó nó chờ đợi. Và sau đó chương trình ngầm kết thúc, bởi vì không có vòng lặp. Nhưng tại sao đây là một chương trình nặng bằng văn bản? Thậm chí nếu bạn đã không bao giờ được lập trình trước? Giống như, những gì xoa sự cách sai lầm, có lẽ ở đây? Yeah? Đung [Không nghe thấy] DAVID J. Malan: Chính xác. Bạn đang lặp lại mình một lần nữa và một lần nữa. Và theo nghĩa đen, tôi sao chép và dán hai trong số những khối một lần nữa và một lần nữa. Và đó chính là loại sanity kiểm tra xem bạn nên làm. Đợi một lát. Nên tôi thực sự được làm điều này? Vì vậy, những gì này là những gì giải pháp rõ ràng có lẽ? Có một số loại vòng lặp. Và tôi không hoàn toàn thu hồi những gì các mảnh ghép là, nhưng nếu tôi nhìn vào lặp tiếp theo đây, thực sự, không có chỉ là vòng lặp mãi mãi, có lặp lại một số lần. Và vì vậy tôi đã chỉ định ba. Và bây giờ chú ý chặt chẽ hơn bao nhiêu, như thế nào nhiều hơn nữa cô đọng chương trình này là. Và trong một cảm giác, làm thế nào nhiều hơn duy trì. Nếu tôi muốn thay đổi từ ho đến cái gì khác, như achoo, giống như ông hắt hơi. Sau đó, tôi thay đổi nó trong một nơi, chứ không phải ba. Vì vậy, đây đã cảm thấy như thiết kế tốt hơn một chút. Hãy để tôi ho thay vì mở 2, ví dụ thứ ba của chúng tôi. Chú ý là một nhà khoa học máy tính, Tôi bắt đầu đếm từ 0, thông thường. Bây giờ điều này có vẻ hơi đáng sợ tại đầu tiên, nhưng hiệu quả là như nhau. Ho, ho, ho. Nhưng những gì có vẻ là cơ bản mới ở phần đầu của chương trình? Tôi đã gỡ bỏ các tiếng nói. Tôi đã gỡ bỏ để chờ đợi. Và những gì có tôi cắm vào để thay thế? Một chức năng. Một khối ho. Ý tôi là, thẳng thắn, tôi dường như loại của một thằng ngốc nếu tôi không chỉ bắt đầu với khối đó là rõ ràng được gọi là "ho", nếu đó là tất cả tôi muốn anh ta làm. Nhưng điều đó không tồn tại trong Scratch. Thay vào đó tôi đã đi đến một trong các bảng gọi khác Blocks đây, và tôi kéo điều này tím lớn ở đây cho phép tôi định nghĩa một hàm. Đó là bản chất cho phép tôi tạo câu đố của riêng tôi mảnh có thể được gọi là bất cứ điều gì tôi muốn, mà có thể làm bất cứ điều gì tôi muốn, nhưng nó mang lại cho nó một cái tên. Nó mang lại cho tôi một, tím mảnh ghép mới mà bây giờ làm bất cứ điều gì tôi nói với nó để làm. Vì vậy, điều này mảnh màu tím ở đây tương ứng với một điều này ở đây. Và nó làm gì? Nó nói ho cho một thứ hai, và sau đó nó chờ đợi. Và bây giờ tôi đã sắp xếp của tạo riêng phần tùy chỉnh câu đố của tôi, vậy là nó hành động chính xác là như vậy. Vì vậy, tôi có thể tiếp tục làm điều này. Và quả thực, có đi được nhiều hơn và nhiều cơ hội hơn cho mô-đun hóa, và cho lớp, phức tạp trên đầu trang của nhau. Nhưng ý tưởng cơ bản này, thực sự trong vấn đề nói 0. Những gì bạn đang đi để được thử thách để làm là để tải về Scratch, hoặc chỉ sử dụng nó trên web, và chỉ có niềm vui với nó. Chúng tôi sẽ cung cấp cho bạn một bộ yêu cầu, có một âm thanh, và một số số mảnh ghép. Nhưng bạn sẽ làm chính xác này. Và bạn sẽ nhận ra rằng bạn đang đi tới muốn lấy một số bước em bé ban đầu, cho đến khi chương trình của bạn được hơn và phức tạp hơn. Nhưng xem xét là điều này Cách tốt nhất tôi có thể làm điều này? Tôi có thể tránh được bản năng này có lẽ, để sao chép và dán? Nhưng trước khi Problem Set 0, và trước khi chúng ta tạm hoãn, nghĩ chúng ta sẽ mất một tình nguyện hơn nếu chúng ta có thể, cho một chương trình cuối cùng đó là có lẽ nhiều nhất phù hợp ở tất cả, cho địa điểm ngày nay. Come on xuống. Yeah. Vâng. Tên bạn là gì? Uh-oh. Vậy là được rồi. Cả hai đi xuống. Và tôi đã sẽ đối phó với điều này bằng cách nào đó trong đó mười giây tiếp theo. Vì vậy, đến trên xuống. Come on xuống. Hãy để tôi ở trên này. Thôi nào. Được rồi. Hãy xem ở đây. Vì vậy, nhận thấy thật nhanh ở đây, nếu bạn muốn đi lên trên. Chúng tôi sẽ làm hai vòng này. Và tên bạn là gì? Sabrina: Sabrina. DAVID J. Malan: Sabrina và? YING GEE: Ying Gee. DAVID J. Malan: Ying Gee. Rất vui được gặp các bạn cả. David. Vì vậy, ví dụ cuối cùng của chúng tôi ở đây là được gọi là game Hardest của Ivy. Và tại sao chúng ta không có bạn làm Level 1, và bạn làm Cấp 2. Và chúng ta sẽ xem cách xa ngoài ra chúng tôi thực sự đi. Do một sinh viên năm ngoái, phối bởi tôi do đó điều này sẽ đi qua cũng ở New Haven. Và tôi cung cấp cho bạn một trò chơi mà sẽ liên quan đến việc di chuyển các mũi tên lên và xuống, và nhận được Yale vào dòng kết thúc. Ở đây chúng tôi đi. [VIDEO PLAYBACK] [MUSIC - NFL ON FOX THEME SONG] [MUSIC - MC Hammer, "U KHÔNG THỂ CHẠM  NÀY "] -U Không thể chạm này. U không thể chạm này. Không thể chạm này. Của tôi, của tôi, của tôi, âm nhạc của tôi đánh tôi như vậy cứng, làm cho tôi nói, oh, chúa tôi. Cảm ơn bạn đã chúc lành cho tôi với một tâm trí để gieo vần và hai chân hype. Đó là tốt khi bạn biết bạn đang xuống. Một homeboy dope siêu từ Oaktown. Và tôi biết như vậy và điều này một nhịp uh, bạn không thể chạm vào. Tôi đã nói với bạn Homeboy U không thể chạm này. Vâng, đó là cách mà chúng ta đang sống và bạn biết U không thể chạm này. Hãy nhìn vào đôi mắt của tôi, người đàn ông. U không thể chạm này. Yo, hãy để tôi phá lời bài hát funky. U không thể chạm này. Đá tươi mới và quần. Bạn đã nhận nó như thế và Cậu biết cậu muốn nhảy. Vì vậy, di chuyển ra khỏi chỗ ngồi của mình và nhận được một cô gái bay và bắt nhịp này. Trong khi nó lăn giữ trên bơm hơi bit và cho họ biết những gì đang xảy ra. Như thế. Như thế. Lạnh trên một nhiệm vụ để kéo trở lại. Hãy cho họ biết rằng bạn đang quá nhiều và đây là một động thái uh bạn không thể chạm vào. Yo, tôi đã nói với bạn U không thể chạm này. Tại sao cô đứng đó người đàn ông? U không thể chạm này. Yo, âm thanh trong trường chuông của, kẻ hút. U không thể chạm này. Hãy cho tôi một bài hát, một nhịp điệu làm cho chúng đổ mồ hôi đó là những gì tôi đang đem lại cho họ bây giờ. Họ biết khi bạn nói về những Hammer bạn nói về một chương trình đó là thổi phồng. Và ca sĩ chặt chẽ là đổ mồ hôi để vượt qua chúng một mic. Hoặc một băng để tìm hiểu những gì nó sẽ mất và bây giờ anh ta sẽ đốt cháy các bảng xếp hạng. VN hoặc là công việc khó khăn hoặc bạn cũng có thể bỏ thuốc lá. Bởi vì bạn biết U không thể chạm này. U không thể chạm này. Phá vỡ nó. Dừng. Hiện Hammer. Đi với dòng chảy trong một spin nếu bạn không thể di chuyển đến đây thì có thể bạn đã chết. Vì vậy, vẫy tay trong không khí [Không nghe thấy] Điều này là nó cho một điệu nhảy chiến thắng để này và bạn đang đi để có được mỏng hơn. Di chuyển trượt mông của bạn chỉ cho một phút chúng ta hãy làm tất cả những vết sưng. Yeah. U không thể chạm này. U không thể chạm này. Bạn tốt hơn có được thổi phồng boy U không thể chạm này. Gọi lại trường chuông trong. Phá vỡ nó. Dừng. Hiện Hammer DAVID J. Malan: Đó là nó cho CS50! Cảm ơn rất nhiều vì đã tham gia với chúng tôi! Hẹn gặp các bạn bên ngoài. [END PLAYBACK] [VIDEO PLAYBACK] [MUSIC - "Seinfeld" THEME SONG] -Hey David. -Hey, David. Việc thế nào? Công việc -Có, hôm nay. -Vì Vậy bạn có nghĩ về những gì bạn đang đi để làm cho câu chuyện cười ra? -Không, Tôi đã không có gì. -Điều Gì if-- gì nếu đây là trò đùa ra? -like, Giải nén xe? -Uh-Huh. Bạn biết đấy, nó về không có gì. -Vậy Thích, không có câu chuyện, không xung đột, không có độ phân giải. Tôi không hiểu. Những gì nó về rồi? -Không Có gì. -Vậy Chúng ta phải ra đùa là về không có gì, và chúng tôi không có diễn viên. Ai sẽ được điều này? -Không không không. Ý tôi là, tôi sẽ được ở trong đó. -You'll Được ở trong đó? -Vâng! Mọi người luôn nói tôi tôi là một nhân vật. -Well, Ý tôi là, đó là sự thật. Nhưng những người khác sẽ được ở trong đó? Nó không thể chỉ là bạn. -Bạn Sẽ được ở trong đó, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, David, tất cả mọi người. -Vậy Nó về không có gì, và tất cả mọi người ở trong đó? Không có gì -Absolutely. -Đây Là vô lý.