[Powered by Google Translate] [ROCK MUSIC] [MUSIC - "Happy Together" Những con rùa] DAVID Malan: Hôm nay, chúng tôi bắt đầu thăm dò của chúng ta về nguyên tắc cơ bản của khoa học máy tính và giới thiệu của chúng tôi, bây giờ, nghệ thuật lập trình, trong đó có nghĩa là chỉ là một ví dụ. Nhưng trong bối cảnh đó giải quyết vấn đề, biết rằng Day Puzzle truyền thống CS50 là ngày mai. Nếu bạn đã chưa RSVPed cho sự kiện này, bạn có thể vào cs50.net/rsvp. Bạn có thể mang lại cho đội của hai hoặc ba hoặc bốn. Bạn sẽ được thử thách với các vấn đề như bạn đã thấy có trong đầu. Tất cả các vấn đề mới trong năm nay nếu bạn partook năm ngoái, và bạn sẽ có một cơ hội để giành chiến thắng một số giải thưởng tuyệt vời. Trong số đó, một Wii và một số Giấy chứng nhận quà tặng và giống như, tất cả trong khi chơi với CS50 sinh viên và các bạn cùng lớp và pizza và Facebook. Vì vậy, vào ngày mai đó nếu bạn muốn. Điều này sau đó là CS50, cho những người bạn tham gia với chúng tôi. lần đầu tiên. Và biết rằng khóa học này đặc biệt được xác định để có được bạn thông qua khóa học này kết thúc cuối cùng của nó, lúc này bạn sẽ có không chỉ là một sự hiểu biết của các nguyên tắc cơ bản của khoa học máy tính, nhưng bạn sẽ phải thiết lập kỹ năng này rất thiết thực mà bạn có thể lấy lại bộ phận riêng của bạn, cho dù đó là khoa học kỹ thuật, ứng dụng toán học, khoa học vật lý, tự nhiên khoa học, hoặc tương tự. Thật vậy, rất thú vị về khoa học máy tính những ngày là rằng nó chỉ là áp dụng đối với tất cả các loại của các lĩnh vực. Và mặc dù ngày hôm nay, chúng tôi chỉ làm xước bề mặt của một ngôn ngữ lập trình truyền thống được gọi là C, chúng tôi sẽ thay vì nhìn vào một cái gì đó gọi là Scratch, một cái gì đó với rằng câu chuyện cookie tình yêu được thực hiện bởi một trong của bạn người tiền nhiệm trong năm qua, kể chuyện, để tạo trò chơi, để tạo ra nghệ thuật tương tác, và thực sự bắt đầu để bọc của chúng tôi tâm trí xung quanh một số các cấu trúc cơ bản nền tảng lập trình nhưng trong bối cảnh một, như bạn sẽ thấy, đó là ít đáng sợ, đó là ít hơn nhiều phức tạp, hơn bạn sẽ thấy trước khi dài. Và nhận ra, quá, cho những người bạn chỉ tham gia với chúng tôi học kỳ, các cụm từ mà chúng tôi đã kết thúc bài giảng của ngày thứ Tư, nó không phải là quan trọng như vậy mà bạn kết thúc liên quan đến của bạn bạn học trong lớp này, nhưng nơi bạn, vào cuối học kỳ trong tuần 11, kết thúc tương đối so với chính mình ngay ngày hôm nay. Vì vậy, không có thêm ado, đây cũng là đáng chú ý là những người kém thoải mái, những nơi nào đó ở giữa, cũng có, bởi thiết kế của khóa học này, không phải ở bất kỳ bất lợi vis-a-vis những người thoải mái hơn vào lớp này. Như bạn sẽ thấy trong những tuần tới, chúng tôi có khác nhau bài nhạc nền lại khác nhau, phần cho những người thoải mái, thoải mái hơn, những người một nơi nào đó ở giữa. Như bạn sẽ thấy cuối tuần này và tuần tới, hai phiên bản của hầu hết các vấn đề bộ trong phiên bản tiêu chuẩn, và một hacker cả hai rất rằng tất cả các bạn có thể tự lựa chọn con đường mà bạn thấy thoải mái nhất. Vì vậy, ngày hôm nay, chúng tôi lặn vào chương trình này ngôn ngữ gọi là Scratch. Đó là một ngôn ngữ lập trình đồ họa, nhưng nó có cùng các tính năng của một số ngôn ngữ cấp cao hơn chúng tôi sẽ khám phá sau này trong học kỳ, trong đó C và JavaScript và PHP. Nhưng nó sẽ cho phép chúng ta tránh một số những phiền nhiễu sớm của cú pháp, những thứ như dấu chấm phẩy, dấu ngoặc đơn, và các chi tiết phức tạp, ở cái nhìn đầu tiên, chỉ là không ở tất cả trí tuệ thú vị và có xu hướng để có được trong đường từ một số hiểu biết cơ bản. Trong điều kiện của cấu trúc hỗ trợ trước, nhận ra điều này công cụ, CS50 bàn, sẽ được liên kết trên của khóa học trang web sau ngày hôm nay, là diễn đàn thảo luận trực tuyến mà bạn sẽ có thể đặt các câu hỏi của nhau và nhân viên, và nó cũng là một công cụ, như chúng ta sẽ thấy vào tuần tới, rằng chúng tôi sẽ sử dụng khá integratedly trong giờ là tốt. Thật vậy, giờ làm việc bắt đầu vào hôm thứ Hai, và thẳng thắn, lần đầu tiên tuần giờ hành chính là chìa khóa khá thấp. Tôi không nghĩ rằng bạn sẽ tìm thấy Scratch tất cả những gì không thể tiếp cận. Đó là khá tự giải thích, như chúng ta sẽ thấy, và vì vậy những gì chúng tôi sẽ sử dụng nó cho ngày hôm nay là để trích xuất một số các ý tưởng cơ bản, sau đó, kéo dài trong suốt phần còn lại của học kỳ. Nhưng bắt đầu từ Thứ hai, lúc 8:00 PM qua 11:00 PM văn phòng giờ trong Annenberg trên nghỉ não. Sectioning hai sẽ bắt đầu vào chiều nay, này cuối tuần, để cs50.net/section, và bạn sẽ được hỏi một số câu hỏi. Trong số đó, làm thế nào bạn sẽ mô tả của bạn mức độ thoải mái của ngày hôm nay? Không có quy tắc cứng nhanh như những người trong đó xô. Nó chỉ là loại điều mà bạn có thể biết nếu bạn là một trong số những người ít thoải mái hoặc bằng cách khác. Và bây giờ, walkthroughs. Các thiết lập vấn đề đặc điểm kỹ thuật cho tuần này, cả hai tiêu chuẩn và hacker phiên bản giống nhau, là trực tuyến tại cs50.net như của bây giờ. Và bạn sẽ thấy rằng trong các phiên bản đầu tiên, bản tiêu chuẩn mỗi tuần, kèm theo một cái gì đó, chúng tôi gọi một hướng mã, một phiên họp do một trong những nghiên cứu sinh giảng dạy khóa học để hướng dẫn bạn thông qua, cung cấp lời khuyên về, và nhận được bạn xuống một con đường đặc biệt khi nói đến để bắt đầu các bài tập. Vì vậy, với mỗi vấn đề này đặt ra, nếu bạn đã bao giờ muốn cho mình, nơi để tôi bắt đầu, bạn bắt đầu với những walkthroughs. Và trên thực tế, cho phép tôi giới thiệu Zamyla Chan, năm của giáo viên giảng dạy những người sẽ được dẫn đầu mỗi một trong những walkthroughs. Zamyla? [Vỗ tay] ZAMYLA CHAN: Oh, hi, tất cả mọi người. Tên tôi là Zamyla. Tôi là một cơ sở nghiên cứu kỹ thuật trong Winthrop House. Nhưng tôi cố gắng và phù hợp như nhiều khóa học khoa học máy tính như tôi có thể, đó là lý do tại sao tôi thực sự vui mừng được dẫn này năm walkthroughs. Walkthroughs, đối với tôi, là một phần thiết yếu của CS50 của tôi kinh nghiệm. Trong walkthrough, cho mỗi tập-p, chúng ta sẽ đi qua vấn đề với nhau, nhìn qua các vấn đề, loại chia chúng thành cắn quản lý. Tôi sẽ cung cấp cho bạn lời khuyên, kỹ thuật, để có được thông qua và bắt đầu. Tôi hy vọng tất cả các bạn tại walkthroughs. Nếu bạn không thể làm cho nó trong người, sau đó hãy làm điều chỉnh trong trực tuyến. DAVID Malan: Tuyệt vời. Cảm ơn bạn, Zamyla. Vì vậy, nhận ra rằng walkthroughs, quả thật vậy, vào ngày thứ sáu buổi chiều, nhưng đây là cố ý bởi thiết kế để ngay cả khi bạn không muốn tham dự lớp học vào ngày thứ sáu buổi chiều, các video sẽ được tất cả các chi tiết nhanh chóng qua cuối tuần. Vì vậy, nhận ra rằng cs50.net sẽ được tất cả của Zamyla walkthroughs. Và đó là ngày hôm nay và thời gian, 3:00 PM, Harberd Hall, 104. Và một số các nghiên cứu sinh giảng dạy cũng đã chuẩn bị một số nhận xét cho bạn vắng mặt để cung cấp cho bạn một chút quan điểm là những gì kinh nghiệm của họ đến và đi ra ngoài CS50 là như thế nào. Vì vậy, nếu chúng ta có thể tắt đèn chỉ là một khoảnh khắc, tôi cung cấp cho bạn một số nhân viên CS50. JACKSON STEINKAMP: Tôi đã CS50 năm ngoái như là một sinh viên năm thứ nhất trong giảm, và nó hoàn toàn thổi tâm trí của tôi. Tôi chưa bao giờ thực hiện bất kỳ các lớp lập trình trước, và không bao giờ đi vào với bất cứ khoa học máy tính kinh nghiệm ở tất cả. Và chỉ, tôi nghe tin đồn về lớp quyết định mang nó. JULIA MITELMAN: Đó là thực sự thú vị, thực sự tham gia. Tôi vẫn còn đến ngày nay - Tôi chỉ vừa mới thấy có đĩa mềm mà David đã cho chúng tôi vào ngày đầu tiên của chúng tôi về bài giảng. Tôi đã treo nó trên tường của tôi. Đây có lẽ là một chút Nerdy, nhưng tôi treo ở trên của tôi bức tường trong lớp học như là một lời nhắc nhở của nó là như thế nào mát. TRAVIS DOWNS: thật xấu hổ. JACKSON STEINKAMP: Khoa học máy tính là một cái gì đó bạn nên cố gắng ngay cả khi bạn không phải là một cho truyền thống khoa học. Đó là kinh nghiệm của riêng mình, và CS50 sẽ đảm bảo rằng bạn hỗ trợ thông qua nó với quân đội tảng thật sự của TF. ALI Nahm: Tôi lấy nó như là một sinh viên năm thứ nhất, và vì vậy tôi đã thực hiện rất nhiều những người bạn mới. Tôi cũng đã giới thiệu với nồng độ này và toàn bộ trường học toàn bộ của kỹ thuật, và vì vậy tôi rất khuyên bạn nên nó và chào đón bạn với gia đình CS50 của chúng tôi. Yaniv YACOBY: CS50 chỉ dạy cho bạn làm thế nào để sử dụng các công cụ được truy cập rộng rãi. Bạn chỉ cần một máy tính xách tay, bạn cần một trình duyệt web, và bạn cần phải học để viết một số mã, và bạn thực sự có thể xây dựng gọn gàng mọi thứ. KAREN Xiao: Nó chỉ là như vậy mát mẻ để có thể làm một cái gì đó và có những người sử dụng nó và có người nhìn thấy nó, và đó là những gì tôi thực sự yêu thích nó. TIM McLaughlin: - ý thức cộng đồng, tôi nghĩ, trong Tất nhiên nhiều hơn so với bất kỳ khóa học khác tôi đã thực hiện cho đến nay. Bạn không chỉ dùng khác - bạn không điền một yêu cầu khác. Bạn không chỉ đi cho tới các bài giảng để và sẽ phần. Nhưng bạn đang làm tấn điều là tất cả về lập trình và tất cả về công nghệ, nhưng nó không thực sự cảm thấy như một lớp học hầu hết thời gian. TRAVIS DOWNS: vào ngày đầu tiên, họ đưa ra bánh, và Tôi đã ngay lập tức được bán ra. JACOB Pritt: kẹo và bánh pizza miễn phí. ZAMYLA CHAN: - bất kể mức độ quan tâm của bạn, tôi nghĩ rằng CS50, bạn sẽ có niềm vui, và bạn sẽ có trí tuệ kích thích. MARK GROZEN-SMITH: luôn luôn là một bên trong lớp học, và đó là một tiệc tùng mỗi đêm làm việc trên bộ p-. JACKSON STEINKAMP: Mỗi lần bạn hoàn thành một bộ vấn đề, bạn sẽ cảm thấy như bạn đã hoàn thành một dự án. MELISSA NIU: là sinh viên năm thứ nhất năm, và tôi đã thực hiện mua sắm. Tôi đã có bốn lớp học của tôi đã sẵn sàng, và tôi đã được ở Annenberg. Và tôi có thể đẩy vào một người bạn, và anh ấy nói, hey, tôi mua sắm lớp này được gọi là CS50, và bạn nên đi với tôi. Đã kết thúc dùng nó rơi, và sau lớp học, tôi nghĩ có lẽ tôi sẽ nhỏ trong CS. Nhưng ở đây tôi, ba năm sau, vẫn đang nghiên cứu máy tính khoa học và thực sự làm việc đó như là một lớn, và tôi yêu mọi thời điểm của nó. ROB Bowden: Tôi không có ý tưởng. ALI Nahm: Hãy xem. MELISSA NIU: điên cuồng. SPEAKER 1: Tôi cảm thấy như tôi sẽ rất cliche. Tôi chỉ muốn nói, thích, awesome. Yaniv YACOBY: Tiếp cận. JACOB Pritt: kẹo và bánh pizza miễn phí. TRAVIS DOWNS: có thể từ chối một lớp học mà tay ra bánh. TIM McLaughlin: Energetic. Vipul Shekhawat: khái quát. ROB Bowden: Hãy để tôi nghĩ đến một câu trả lời. Tôi nghĩ rằng tôi có một cái gì đó. Oh, thượng đế. Yeah, tên của Rob Bowden, và đây là CS50. [Vỗ tay] DAVID Malan: Được rồi, vì vậy hãy bắt đầu vẽ một bức tranh hướng mà chúng ta có thể đi, và chúng ta hãy giới thiệu khái niệm này được gọi là giả. Vì vậy, giả không phải là một lập trình ngôn ngữ unto chính nó. Nó không có gì kỹ thuật cho mỗi gia nhập, nhưng nó chỉ là sắp xếp của một chung cách thể hiện bản thân khá chính xác, khá thuật toán, khá thủ tục, nhưng không có phải lo lắng về những gì ngôn ngữ mà bạn đang thể hiện mình in Đó là một số mô hình của tiếng Anh và các ngôn ngữ lập trình mà bạn xảy ra để được quen thuộc, vì vậy chúng tôi có thể bắt đầu viết các loại điều này khi chúng ta đi. Và trong thực tế, Joseph, tôi có thể mượn bạn lên trên sân khấu để được người ghi chép ở đây? Tôi đã đi trước đây trước và quên đặt trên một số vớ ngày hôm nay, và điều này sẽ là một trong hơn của chúng tôi vô lý ví dụ. Bây giờ, tôi cần bạn ở đây. Tôi sẽ làm một phần tất. Vì vậy, ở đây chúng tôi có một pad đầu nhỏ. Điều này có nghĩa là chỉ cần TextEdit trong một máy Mac. Chúng tôi không thực sự sẽ viết một chương trình Runnable, nhưng chúng ta sẽ bắt đầu phác thảo ra giả dựa trên trên một số lời khuyên bạn cung cấp cho tôi ở đây. Vì vậy, đây là đống vớ ở nhà. Tôi không có vớ vào khi tôi thức dậy vào buổi sáng, và bây giờ chúng ta cần phải viết một chương trình, một thuật toán của các loại, để có được những vớ trên đôi chân của tôi. Và trên đường đi, chúng ta hãy xem nếu chúng ta đi qua, hoặc gặp phải, một số trong những ý tưởng mà bạn sẽ phải bắt đầu suy nghĩ nghiêm túc hơn khi lập trình vì sợ rằng chương trình của bạn không cư xử khá như dự định. Vì vậy, tôi ngồi xuống đây. Tôi đã có đống vớ. Điều đầu tiên con người một cách hợp lý sẽ là gì làm gì khi mục tiêu là để đưa vào một đôi vớ? Ai đó đưa cho tôi một bước, và chỉ có một bước. Yeah? Khán giả: Cúi xuống. DAVID Malan: Cúi xuống, được rồi. Bước hai. Bước hai. Khán giả: Đón vớ của bạn. DAVID Malan: Đón vớ của bạn. Được rồi, rất nhẹ không rõ ràng ở đây, và đây là một trong những người đầu tiên stumbling khối mà chúng ta cần phải cố tình gặp ở đây. Đó là một chút mơ hồ, nên chọn chiếc vớ của bạn. Tốt, tôi sẽ lấy cái này, nhưng một máy tính, nhận ra chỉ trong một bit, sẽ không có sắp xếp của bản năng con người chỉ chọn một trong những gần nhất. Chúng ta sẽ phải bắt đầu, trước khi dài, thể hiện mình chính xác hơn. Được rồi, do đó, bước hai là nhận vớ của bạn. Chúng tôi sẽ mang nó. Bước ba. Ở phía sau. Khán giả: Tìm một cặp kết hợp. DAVID Malan: Tìm cặp phù hợp. Được rồi, do đó, điều này là tốt. Tôi đã phải lựa chọn này vớ. Vì vậy, mục tiêu là để tìm thấy một chiếc vớ phù hợp với, bây giờ, nhưng những gì không có nghĩa là? Một con người hợp lý, giống như hôm thứ tư khi tôi chỉ biết làm thế nào để tìm thấy Mike Smith trong một cuốn sách điện thoại, chỉ cần loại đi với bản năng của họ. Nhưng ở đây, rõ ràng là này vớ ở đây, nhưng một máy tính sẽ không để được như vậy theo bản năng. Một máy tính là sẽ có một bộ sưu tập của các bit, như chúng ta thảo luận hôm thứ Tư, và những người tổ chức bằng cách nào đó trong bộ nhớ. Nhưng điểm là một máy tính chỉ có khả năng nhìn vào một trong những điều tại một thời điểm, và trong thực tế, thậm chí chúng tôi con người - mặc dù nó cảm thấy như Tôi liếc nhìn xuống và phân chia giây sau đó tôi biết nơi vớ là, bộ não của tôi và đôi mắt của tôi có lẽ không một cách nhanh chóng lướt qua của những người vớ, và sau đó latched trên một trong câu hỏi. Vì vậy, nếu chúng tôi có tất cả các cố ý bây giờ như một máy tính, làm thế nào để tôi tìm thấy cặp đôi này kết hợp? Vâng, chúng tôi phải lặp. Chúng ta phải có lẽ vòng qua đống lộn xộn này vớ trên sàn do đó tôi nói một cái gì đó như CHO MỖI vớ, nhặt nó VÀ NẾU cùng hình dạng và kích thước như một khác, THEN dấu chấm, dấu chấm, dấu chấm, chúng tôi sẽ tiếp tục câu chuyện. Vì vậy, đối với mỗi chiếc vớ, vì vậy tôi chọn một trong những điều này. Tôi kiểm tra này bằng một trong những điều này. Nó không phải, vì vậy tôi đặt sang một bên phụ. Sau đó, tôi lặp lại một lần nữa. Này bằng? Không, nó không, vì vậy tôi đặt nó sang một bên. Là một trong những điều này? Không. Này? Không, và vv. Và cuối cùng, hy vọng, tôi sẽ gặp phải vớ này ở đây. Vì vậy, nếu nó cùng một hình dạng, kích thước, mất nó. Và bây giờ, những gì sẽ là bước tiếp theo của chúng tôi ở đây? Yeah? Khán giả: Xác định ngay từ bên trái. DAVID Malan: Được rồi, xác định các bên phải và trái, do đó, may mắn thay, là loại công trình. Một đối xứng chút, hoặc tôi vừa mặc chúng như vậy. Được rồi, vì vậy tôi đã xác định quyền. Và bây giờ, trước khi chúng tôi tiến hành, hãy để tôi chỉ ra những gì Joseph đã và đang làm ở đây là sắp xếp của một lập trình viên thông thạo. Vì vậy, một lần nữa, không có cách nào để làm điều này, nhưng ngoài chỉ số dòng, Joseph đã bắt đầu để làm điều này sắp xếp của indentation. Thật vậy, đây là một quy ước rất phổ biến trong lập trình, theo đó khi bạn làm điều gì đó lặp đi lặp lại, vòng lặp phong cách, chúng ta đang ám chỉ với cụm từ tiếng Anh "CHO ​​MỖI vớ ", quy ước trong giả, và như chúng ta sẽ thấy, bình thường, ngôn ngữ lập trình là chỉ cần thụt lề. Nhấn thanh không gian một vài lần, nhấn phím Tab hoặc các loại tương tự, để lồng nhau bên dưới "CHO ​​MỖI vớ" là đoạn thứ mà bạn cần làm là một kết quả của vòng lặp đó. Vì vậy, đó là tất cả những gì truyền đạt ngữ nghĩa. Bây giờ trong khi đó, "Nếu đó là cùng một hình dạng và kích thước," thực tế là "nó" tiếp tục được thụt vào chỉ có nghĩa là đó là điều duy nhất bạn nên làm gì nếu tình trạng đó, nếu mà chi nhánh, đó là ngã ba trên đường, trong thực tế, đúng sự thật. Vì vậy, bây giờ đây, chúng tôi đang ở trên bốn bước, xác định phải và trái. Tôi đã xác định đúng. Hãy cho anh bước năm. Và về mặt kỹ thuật, chúng tôi thực sự có thể gọi FOR điều MỖI - có lẽ bạn nên đánh số tất cả các dòng nếu chúng ta sẽ làm điều này. JOSEPH: [không nghe được] DAVID Malan: [không nghe được? Được, tốt thôi, được rồi, chúng tôi sẽ làm theo cách của bạn. Được rồi, do đó, năm bước, làm thế nào để chúng tôi làm đúng sock? Làm thế nào để chúng ta tiến hành tiếp theo, ở đây không? Vâng? Khán giả: Nâng lên chân phải. DAVID Malan: Nâng lên chân phải, được rồi. Bước 6? Nhanh chóng. Yeah. Khán giả: Tìm một kết thúc mở của sock. DAVID Malan: Được rồi, kết thúc mở của sock. Vì vậy, tốt. Vì vậy, ở đây, trung thực, một bản năng rất phổ biến sẽ chỉ được đưa vào vớ phải, nhưng đó cũng là khá mơ hồ. Trừ khi máy tính hoặc con người biết chính xác những gì có nghĩa là, nó sẽ không phải là để thực hiện điều đó, vì vậy ở đây, tôi đã tìm thấy sự mở cửa của cổ phiếu. Bước bảy? TƯỢNG: Chạm vào ngón chân của bạn. DAVID Malan: cảm ứng ngón chân. Được rồi, vì vậy bây giờ chúng ta đi - Được rồi, tôi sẽ có một số quyền tự do ở đây. Cảm ơn. Bước tám? Đặt trên vớ. Được rồi, vì vậy bây giờ tôi nghĩ rằng chúng tôi đủ gần để sắp xếp cất một ở nhà này. Được rồi, do đó, điều này đi lên. Tôi sẽ lấy một số quyền tự do với những gì nó có nghĩa là, thực sự. Đặt sock. Được rồi, bây giờ bước 9? Khán giả: Đặt chân xuống. DAVID Malan: Cảm ơn bạn. Bước chín, đặt chân xuống, và bây giờ, chúng ta có thể lặp lại. Vì vậy, có lẽ, bây giờ chúng ta có thể đi vào bước 10 và nói xác định trái sock, nhưng đó có lẽ đã được thực hiện. Và do đó, sau đó, tôi có thể sắp xếp lặp lại các bước. Tuy nhiên, loại này đặt ra câu hỏi. Trước đây, thời gian qua, chúng tôi muốn lặp lại điều gì đó, chúng tôi đã làm nó lặp đi lặp lại, một lần nữa và một lần nữa, một CHO Mỗi vòng lặp vậy để nói chuyện. Nó sẽ làm cho cảm giác sử dụng một vòng lặp để xử lý cả hai bên trái và vớ quyền? Bởi vì nó cảm thấy giống như các hoạt động này đang có khá nhiều giống hệt nhau, ngoại trừ cho một thực tế rằng người ta bắt đầu ở đây và một bắt đầu ở đây? Chúng ta có vòng lặp, hoặc chúng ta chỉ cần giữ cho bước viết 10, 11 và 12? Khán giả: Loop. DAVID Malan: Được rồi, do đó, vòng lặp. Tôi thực sự có thể đã nói chỉ cần tiếp tục đi. Vì vậy, tại sao lại là trường hợp? Vâng, đây là thực sự đầu tiên của chúng tôi không rõ ràng quyết định thiết kế, và trong thực tế, một trong các số liệu mà chúng tôi sẽ bắt đầu để đánh giá, cho bản thân và cho bạn, chất lượng của một chương trình là như thế nào cũng được thiết kế nó là. Bạn đã thực hiện số tiền tối thiểu công việc cần thiết công việc làm một cách nhanh chóng nhất, hoặc trong điều khoản của thời gian của bạn hoặc về thời gian chạy của máy tính? Làm thế nào nhiều hoạt động cần để thực hiện? Vì vậy, có thể cho rằng đây là một cơ hội cho một vòng lặp vì ngay sau khi tôi bắt đầu sao chép và dán, như Joseph hiệu quả sẽ bắt đầu thực hiện trong một thời điểm, bạn lãng phí của bạn thời gian, và bạn đang được gấp đôi biểu cảm. Nhưng cùng một lúc, đây là thực sự chỉ là hai đặc biệt trường hợp, trái và phải. Và trong khi trước đó, tôi có thể có 10 hoặc 20 hoặc nhiều hơn vớ trong một đống, nó chắc chắn làm cho cảm giác không có 50 dòng mã nói kiểm tra này sock, sau đó tiếp theo, sau đó là một trong những kế tiếp. Ở đây, nó là một chút ít rõ ràng hơn, và tôi sẽ đề xuất chúng tôi có thể đi một trong hai cách. Chúng tôi có thể có vòng lặp đó, mặc dù nó chỉ vòng hai lần, chúng tôi chỉ đơn giản là có thể sao chép và dán chỉ là một chút ở đây để có được công việc làm. Tuy nhiên, chương trình này là lỗi, do đó, để nói chuyện. Nó có thể có một số sai lầm, sai sót, hoặc trường hợp góc, vì vậy để nói, rằng chúng tôi đã không thực sự dự đoán. Không có gì đã đi sai thời gian này, nhưng những gì có thể đã đi sai trong khi thực hiện chương trình này? Khán giả: Bạn không có bất kỳ vớ. DAVID Malan: Như vậy, có thể sẽ không có vớ gì. Vì vậy, chúng ta hãy xem xét trường hợp góc đó. Vì vậy, nếu chúng ta có thể di chuyển trở lại bước một, do đó, bước một là cúi xuống, do đó, kiểm tra. Bước hai, chọn vớ của bạn, nhưng sau đó tìm thấy vớ phù hợp, xác định đúng. Chúng tôi loại một bó toàn bộ các giả định, và điều này là, thẳng thắn, tại sao chương trình đôi khi sụp đổ. Nếu bạn, các lập trình viên, đã thực hiện một số giả định, giống như chắc chắn có sẽ là vớ hoặc chắc chắn có đi là bộ nhớ còn lại trong máy tính, chắc chắn sẽ là không gian đĩa còn lại trên ổ đĩa cứng - Vâng, nếu bạn thực hiện những giả định, và đó không phải, trong thực tế, thực tế, những người hiểu biết đôi khi những gì máy tính sẽ làm gì? Và đôi khi, khi bạn nhận được quả bóng bãi biển kéo sợi hoặc đông lạnh Windows hoặc các loại tương tự, đó là chính xác bởi vì một số lập trình viên đã không dự đoán được gọi là những trường hợp góc. Những gì có thể đã đi sai trong chương trình này? Yeah? TƯỢNG: Bạn không có một chân phải và chân trái. DAVID Malan: Được rồi, có thể không có cả một chân bên phải và một chân trái, và do đó, chương trình này có thể không được phổ áp dụng. Những người khác? Khán giả: Bạn có thể chọn một chiếc vớ trẻ mồ côi. DAVID Malan: Tôi có thể chọn một chiếc vớ trẻ mồ côi, do đó, một không phù hợp với vớ mà chỉ cần không có anh chị em vì tôi đã mất nó, nó bị rách, rửa vẫn còn, hoặc tương tự. Vì vậy, mà đã không thực sự được xử lý. Yeah? Khán giả: Bạn có thể đã có tất. DAVID Malan: Tôi đã có thể có tất. Tôi đã không thực sự kiểm tra. NẾU bạn không có vớ vào, sau đó tiến hành làm dòng một và hai. Và điều đó có thể xảy ra. Bạn ngủ với vớ của bạn và như thế, vì vậy rằng, quá, một trường hợp góc rất hợp lý. Và có lẽ một trong những khác? Khán giả: vớ là trong ra ngoài. DAVID Malan: Vì vậy, vớ bên trong ra ngoài, nên chúng tôi đã không có lỗi kiểm tra, trong ngắn hạn. Chúng tôi đã không kiểm tra xem tình trạng của thế giới là như chúng ta mong đợi. Chúng tôi đã không kiểm tra nếu chúng ta thực sự tìm thấy những gì chúng tôi đang tìm kiếm. Và mặc dù đây là loại của một ví dụ vô lý liên quan đến vớ, vào cuối ngày, điều này là đúng sắp xếp suy nghĩ bạn cần phải có trong khi viết chương trình, ngay cả trong Scratch cũng như trong C, JavaScript, PHP, bởi vì nếu không, chương trình sẽ triển lãm tương đương với quả bóng bãi biển quay hoặc chỉ mang lại không chính xác kết quả. Vì vậy, cảm ơn nhiều đây để Joseph ghi chép của chúng tôi. [Vỗ tay] DAVID Malan: Được rồi, vì vậy những gì, trong thực tế, một chương trình máy tính? Vâng, chúng ta hãy có một cái nhìn nhanh chóng tại một đại diệ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. C ngôn ngữ khá cũ những ngày này, nhưng nhiều người mới được xây dựng trên đầu trang của nó. Thật vậy, PHP, một trong các ngôn ngữ web trung tâm chúng tôi sẽ sử dụng về phía cuối nhiệm kỳ của chính nó có những gì được gọi là một thông dịch viên, một chương trình được viết bằng C, nhưng nhiều hơn về điều trong nhiều tuần kể từ bây giờ. Nhưng chương trình này, và đây là những gì nó có nghĩa là để viết một chương trình, mặc dù là một trong rất đơn giản. Chúng tôi có một số cú pháp khá khó hiểu ở đây, nhưng bạn có thể có thể đoán, ngay cả khi bạn đã không bao giờ được lập trình trước, những gì chương trình này. Thật vậy, tôi không biết những gì printf là, nhưng in chắc chắn gợi lên ý tưởng in một cái gì đó. Và do đó, có, chương trình này cuối cùng sẽ in ra dòng chữ "Hello, World." Bây giờ, cho dù bạn có một máy Mac hoặc máy PC hoặc máy tính Linux, tỷ lệ cược , ít nhất là nếu bạn đã tải về một số tự do phần mềm có sẵn, bạn có thể đã được viết chương trình trên máy tính xách tay của bạn trong một thời gian ngay bây giờ. Trên Mac OS, ví dụ, có chương trình này được gọi là Thiết bị đầu cuối mà đi kèm với một máy Mac, đó là thường của bạn Utilities thư mục, và nó thường mở ra một màu đen và màu trắng hoặc một cửa sổ màu trắng và đen mà tại đó bạn có một nhắc mà tại đó bạn có thể gõ lệnh. Vì vậy, đây thực sự là gợi nhớ về những gì máy tính được sử dụng để được trước khi người dùng đồ họa giao diện, ảnh minh hoạ, đến cùng. Bây giờ, trong Windows, bạn có một cơ chế tương tự trong các hình thức dấu nhắc lệnh. Nhưng những gì tôi đang làm ở đây là mở, hãy nói, TextEdit một lần nữa, vì vậy cùng một chương trình chúng tôi đã được sử dụng cho giả một chút thời gian trước đây, và tôi sẽ đi trước và viết chương trình đầu tiên của tôi. Bao gồm stdio.h, bất cứ điều gì đó có nghĩa là, int main void, đó có nghĩa là bất cứ điều gì, và sau đó trong giữa ở đây, printf ("hello, thế giới".). Và sau đó đóng quote, đóng dấu ngoặc, dấu chấm phẩy. Bây giờ tôi sẽ đi trước và chỉ cần nhấn Command-S. Tôi sẽ đi trước và tiết kiệm này là hello.c, do đó, các quy ước trong thế giới của lập trình C là tên tập tin dot c. Tôi sẽ chỉ cần đặt trong thư mục Home của John Harvard, ở đây, nhấp vào Lưu, và bây giờ tôi sẽ đi qua này thiết bị đầu cuối cửa sổ, mà lại là nhắc nhở này màu đen và trắng nơi tôi có thể thực hiện các lệnh. Tôi có thể chạy chương trình bằng cách nhập tên của họ, không phải bởi nhấp đúp biểu tượng theo nghĩa thông thường. Nhưng điều này là về C là một ngôn ngữ như C đầu tiên đi kèm theo hình thức này, một cái gì đó được gọi là mã nguồn. Cái gì đó trông một chút như tiếng Anh, nhưng chắc chắn ít như tiếng Anh hơn so với giả Joseph lúc trước. Đó là nhiều hơn một chút phức tạp. Nó dường như tuân theo một số mô hình hoặc các quy định. Thực tế là tôi có dấu ngoặc nhọn, dấu chấm phẩy, dấu ngoặc kép, niềng răng góc, cảm thấy như một máy tính đến với điều này loại ngôn ngữ. Nhưng nếu tôi đi, bây giờ, cửa sổ terminal này, tôi có thể chạy một lệnh để chuyển đổi mã nguồn cái gì gọi là mã đối tượng. Đó là sẽ chuyển đổi tiếng Anh như cú pháp đến số không và những người thân, cùng loại như số không và những người chúng ta nói chuyện về Thứ tư. Bây giờ, tôi sẽ chạy một lệnh gọi là kêu vang. Thêm về điều này trong những tuần tới, nhưng đó là một chương trình với mà tôi có thể chuyển đổi hello.c vào một bó toàn bộ số không và những người thân. Bây giờ, tôi đã chạy lệnh này. Tôi đã chạy Clang, và sau đó tôi chạy trên tập tin này được gọi là hello.c, mà tôi tạo ra một chút thời gian trước đây, và có vẻ như không có gì xảy ra. Nhưng thực sự, nếu tôi chọc xung quanh thư mục nhà của tôi, tôi sẽ thấy rằng điều này a.out chương trình ngớ ngẩn tên là bây giờ tồn tại. Đây chỉ là tên mặc định cho một chương trình trong khi viết C. Chúng ta có thể ghi đè lên điều này cuối cùng, nhưng a.out là tên của chương trình, tôi chỉ cần chuyển đổi thành số không và những người thân. Và bây giờ rằng đó là số không và những người thân, máy Mac của tôi, trong trường hợp này, hoặc máy tính Windows của bạn, có thể hiểu những bit, những số không và những người thân. Và như vậy khi tôi nhấn Enter, tôi thấy "hello, thế giới!" Nhưng đó là một lỗi bit. Tôi không nói "hello, thế giới: không khí: - jharvard". Không khí là tên của máy tính của tôi. Jharvard là tên của tài khoản, do đó, những gì tôi đã rõ ràng bỏ qua từ chương trình? Một số loại ngắt dòng. Tôi không đánh tương đương với Enter hoặc trở về vận chuyển, và điều này là, một lần nữa, minh chứng cho thực tế là các máy vi tính chỉ làm những gì bạn nói với họ để làm. Và thực tế là tôi đã không nói cho máy tính di chuyển con trỏ đến dòng kế tiếp - tốt, nó chắc chắn không phải sẽ chỉ làm điều đó presumptuously cho tôi. Vì vậy, nếu tôi quay trở lại chương trình của tôi, và tôi nói \ n - Vì vậy, \ n, như chúng ta sẽ sớm thấy, là con đường của đại diện cho những điều kỳ lạ như ký tự dòng mới, những điều mà nếu không sẽ là kết quả của nhấn phím Enter. Nhưng bây giờ, chỉ biết rằng nhấn phím Enter sẽ chỉ cần thực hiện mã của chúng tôi trông lẻ, do đó, thế giới đã quyết định, bạn biết những gì, để giữ cho mọi thứ đẹp hơn, để giữ cho nó trên một dòng, nói \ n đại diện cho một dòng mới. Hãy để tôi lưu lại tập tin của tôi, quay trở lại cửa sổ thiết bị đầu cuối, và lại chạy a.out, Enter. Vẫn còn lỗi, nhưng tại sao? Khán giả: không nghe được] DAVID Malan: Yeah, vì vậy tôi cần phải biên dịch nó. Vì vậy, để biên dịch chương trình chỉ có nghĩa là chuyển đổi nó từ mã nguồn mã để mã đối tượng nguồn, số không và những người thân. Bây giờ, thực tế chỉ mà tôi nhấn Save trong này TextEdit không có mang trên những số không và những người thân bởi vì lần đầu tiên tôi cần tell Clang hey, tôi đã thay đổi những dòng mã, mã nguồn. Bạn cần phải tạo a.out. Không có gì đã xảy ra, nhưng trong một máy tính, một dòng lệnh, do đó, để nói chuyện, khi không có gì xảy ra, thường có nghĩa là tất cả là tốt. Khi một cái gì đó xảy ra, nó có nghĩa là bạn sai lầm, nói chung. Vì vậy, Bây giờ chúng ta hãy đi a.out, và thực sự bây giờ, tôi có "hello, thế giới ". Và bây giờ, những gì về các số không và những người này? Ở đâu, trên thực tế, là những? Vâng, tôi có thể không thực sự chỉ loại poke xung quanh rất hiệu quả. Hãy để tôi mở TextEdit. Dưới đây là a.out. Hãy để tôi đi trước và mở, và điều này rõ ràng là những gì của tôi chương trình như thế nào. Vì vậy, tôi đã mở, không hello.c, nhưng a.out. Nhưng điều này là thực sự không phải là những gì chương trình của tôi thực sự là. Rõ ràng đây là một số loại ký tự chữ cái. Tôi thấy không có số không và những người thân, nhưng đây là vì a.out là một chương trình. Zero và những người thân - nhưng TextEdit, như tên cho thấy, đó là giống như Notepad trên Windows, chỉ là một trình soạn thảo văn bản, vì vậy nó khó hiểu tất cả những số không và những người thân như mặc dù họ đã, cái gì? Ký tự ASCII. Vì vậy, nhớ lại hôm thứ tư, chúng tôi chỉ đến với điều này tùy ý lập bản đồ số, hoặc bit, thư bảng chữ cái và các ký hiệu dấu chấm câu và các loại tương tự. Vì vậy, TextEdit, rằng đó là một trình soạn thảo văn bản được hiểu sai những người mẫu của số không và những người được cho là in ấn từ, như "thế giới, xin chào." Nó hiển thị chúng như ASCII, và đó là lý do tại sao nó trông lộn xộn một chút. Giờ đây, có một số gợi ý chính xác ở đây. Chú ý nếu tôi làm nổi bật, có một gợi ý của thực sự "hello, thế giới ", một nơi nào đó trong chương trình đó là câu tôi đã viết. Nhưng chúng ta hãy đi trước và bây giờ nhìn thấy với một chương trình khác nhau. Đây không phải là chúng tôi sẽ sử dụng thường xuyên, nhưng nó cũng đi kèm với một máy Mac và sẽ được bên trong của thiết bị CS50. Hãy để tôi đi trước và mở ra với một chương trình được gọi là xxd. Trở lại trong ngày, hầu hết các chương trình được đặt tên là khá khó hiểu, và do đó, xu hướng này vẫn tiếp tục. Nhưng-b có nghĩa là nhổ chương trình này như nhị phân. Đừng chạy nó. Hiển thị nó cho tôi là số không và những người thân, và đây là C chương trình chúng tôi chỉ viết. Bây giờ, tôi như một con người ở đây, tôi thật sự không có ý tưởng những gì các mô hình khác nhau của số không và những người đại diện. Trở lại trong ngày, tôi, với thẻ đục lỗ hoặc các loại tương tự, thực sự có để tìm kiếm các mô hình khác nhau của 01111000, thực sự đại diện. Hoặc tệ hơn, tôi sẽ cần phải làm đấm hoặc tạo ra các các mô hình số không và những người thân. Nhưng hiện nay, về đức tin rằng một CPU, Intel bên trong, do đó, để nói chuyện, bên trong tất cả các máy tính của chúng tôi những ngày này, biết làm thế nào để giải thích các số không và những người thân. Và một số số không và những người thân có nghĩa là in. Một số số không và những người thân có nghĩa là chơi một âm thanh. Một số zero và những người có nghĩa là người dùng nhập vào từ bàn phím. Có tất cả các loại mô hình khác nhau, nhưng chúng tôi may mắn, như con người, chỉ nói chung cần phải lo lắng về lập trình mức khá cao. Và trong các lớp học CS khác, bạn có thể đi sâu xuống sâu hơn và nhìn vào những thứ giống như số không và những người thân, hoặc những thứ khác vẫn còn. Vì vậy, bây giờ chúng ta hãy chuyển đổi này. Hãy di chuyển rất nhanh chóng đi từ C và di chuyển đến một cái gì đó chút an ủi, một chút thú vị hơn, trong đó chúng tôi có thể lấy lại hình ảnh động và âm thanh của chúng tôi và như thế rõ ràng đã thoát khỏi chúng ta, giao diện khá nguyên thủy. Vì vậy, chương trình này tương tự trong C có thể được đại diện trong ngôn ngữ lập trình được gọi là Scratch như sau. Đây là tương đương với chương trình này hello thế giới viết bằng mảnh ghép phong cách ngôn ngữ được gọi là Scratch. Vì vậy, hãy để tôi đi trước và mở ra chương trình này rất. Nó một lần nữa được gọi là Scratch. Đó là tự do sẵn có, và điều này là cùng một điều chúng tôi bắt đầu ngày hôm nay. Vì vậy, điều này ở đây là Scratch, và nó được chia thành một vài khác nhau miếng. Quyền hàng đầu, chúng tôi có những giai đoạn được gọi là, và quả thật vậy, đó là nơi mà các tập tin cookie thực hiện chỉ là một chút trước. Và trên sân khấu rằng điều được gọi là sprites, ký tự, hoặc đối tượng, hoặc các thực thể. Nó không thực sự quan trọng như thế nào bạn nghĩ về họ, nhưng họ được lập trình, những thứ di chuyển, và trong trường hợp này, điều này chương trình mà sinh viên của chúng tôi đã viết có một vài bánh gừng cookies, một vài cookie tròn, một bó toàn bộ trái tim, một bó toàn bộ kính đeo mắt. Bởi vì điều này, anh ta hoặc cô ấy có thể chương trình mỗi người từng ký tự riêng biệt. Bây giờ, nó có ý nghĩa gì cho chương trình những nhân vật này? Vâng, hãy để tôi đi trước và bấm vào cookie này tay trái và di chuyển trên để phía trên bên trái ở đây. Ở phía trên bên trái của màn hình của tôi bây giờ là gọi là các mã khu vực. Đây là sắp xếp của một phiến đá trắng, ban đầu, vào đó tôi có thể kéo và thả các mảnh ghép, thẳng thắn, làm chính xác những gì họ nói. Vào phần trên của chồng này mảnh ghép là từ Khi Green Flag nhấp vào, và nếu bạn không thông báo trước, cách tôi bắt đầu bài hát đó cookie cách nhấp vào, theo nghĩa đen, một lá cờ màu xanh lá cây. Vì vậy, mà mảnh ghép ở trên cùng bên trái có nghĩa là khi nhấp chuột của con người lá cờ màu xanh lá cây, tiến hành làm những điều sau đây. Bây giờ, họ Cookie đã tiến hành làm gì? Tôi không thực sự biết làm thế nào để giải thích điều này được nêu ra, nhưng Cookie dường như thiết lập đường rãnh của nó không, sau đó nó đợi ba giây, sau đó nó thay đổi nhóm của mình đến một, sau đó nó chờ đợi một giây, sau đó nó thay đổi của nó rãnh trở lại một. Và sau đó điều này thực sự trông giống như một chút của một lỗi, không nên phải thay đổi đường rãnh của nó một lần nữa và một lần nữa, trừ khi nó được thay đổi ở nơi khác, nhưng loạt các bước này là những gì khiển hành vi của các cookie này cụ thể. Vì vậy, chúng ta hãy thực sự di chuyển trở lại và không nhìn vào một cái gì đó như vậy khá phức tạp. Hãy để tôi đi trước và vào File, New, và có được một slate sạch. Vì vậy, bây giờ, tôi thực sự có một khu vực kịch bản trống rỗng, một giai đoạn trống, với Scratch sprite mặc định của chúng tôi, và ở phía trên trái trên màn hình của tôi để tôi có pallet của tất cả của họ có câu đố miếng. Và chúng tôi sẽ không đi qua gần như là nhiều người trong số những điều này ngày hôm nay vì một lần nữa, nhất là tự giải thích, nhưng chúng tôi sẽ cố gắng để phân loại chúng và chỉ ra những điểm tương đồng với những ngôn ngữ trong tương lai mà chúng ta sẽ tìm. Và ở trên cùng bên trái ở đây là lần đầu tiên Khi Xanh Flag Nhấp, vì vậy hãy để tôi kéo này ở đây, phóng to ra một chút. Và nếu tôi nhấp vào lá cờ màu xanh lá cây, không có gì thực sự xảy ra vì Tôi đã không kèm theo bất kỳ logic, bất kỳ tuyên bố như vậy để nói chuyện, mà lá cờ màu xanh lá cây, vì vậy hãy để tôi đi lên chủng loại ở đây. Tôi hiện đang trong danh mục kiểm soát. Thay vào đó, tôi sẽ đi xuống đến các loại vẻ, và có một bó toàn bộ những thứ mà nói Say, Hãy suy nghĩ, thay đổi trang phục màu Switch,. Vì vậy, bạn có thể làm những điều ngớ ngẩn với trang phục và âm thanh và các loại tương tự. Hãy để tôi đi trước và chỉ nói Say, và bây giờ nhận thấy như tôi kéo và thả các mảnh ghép này, nó sẽ muốn bám thành hình dạng tương ứng. Vì vậy, khi tôi đi trước và cho đi của con chuột của tôi, họ khóa với nhau, và bây giờ nếu tôi đi qua đây và nhấp vào lá cờ màu xanh lá cây, con mèo này trong thực tế chào bởi vì đó là những gì bên trong hộp màu trắng này. Chúng tôi sẽ sớm thấy rằng hộp màu trắng này là những gì được gọi là một đối số, hoặc một tham số. Đó là một cách thay đổi hành vi của các, trong trường hợp này, một mảnh ghép, nhưng nếu tôi muốn nói chính xác những gì tôi nói trước khi, nói xin chào, thế giới, tôi bây giờ có thể trở lại ở đây, bấm vào chơi, và "hello, thế giới" là những gì cho biết. Vì vậy, chúng tôi có nghĩa là lập trình. Đó không phải là tất cả những gì hấp dẫn của một chương trình, nhưng ít nhất đó là một chút gì đó hấp dẫn hơn trông, nháy mắt, đầu tiên như thế này. Và chúng tôi có thể nhanh chóng có được tất cả các ý nghĩa biểu cảm hơn bởi vì trong Scratch, giống như trong các ngôn ngữ khác, có tất cả các loại báo cáo, không chỉ Say hoặc in ấn một cái gì đó, nhưng bạn có thể làm những thứ như chờ đợi, như chúng ta chỉ thấy cookie, một số số giây. Bạn có thể chơi âm thanh trong môi trường của Scratch chỉ như bạn có thể trong một chương trình âm thanh máy tính chơi bình thường. Bạn có thể kiểm tra những gì được gọi là biểu thức Boolean. Vì vậy, bây giờ, chúng ta hãy bắt đầu để thêm vào bộ công cụ của chúng tôi một số thuật ngữ mà thực sự liên quan đến ví dụ mà Joseph và tôi đã làm ở đây với những đôi tất. Vì vậy, báo cáo chỉ là báo cáo của thực tế. Làm điều này. Một chỉ thị của Sprite, hoặc cho tôi những con người, để làm một cái gì đó. Một biểu thức Boolean là cái gì đó có một giá trị, một cái gọi là giá trị sự thật, hoặc là một số không hoặc một, sai hoặc đúng, tắt hoặc bật, không hoặc có. Không thực sự quan trọng như thế nào bạn nghĩ về điều này, nhưng đó là một nhị phân nhà nước. Như Nate thảo luận trong video hôm thứ Tư, hai sự việc. Vì vậy, trong Scratch, biểu thức Boolean xảy ra để xem xét giống như các đối tượng màu xanh ở đây, và trong trường hợp này, câu hỏi đánh dấu ngụ ý rằng bạn đang hỏi một câu hỏi. Con mèo, hoặc sprite chạm vào con trỏ chuột? Vì vậy, đây chỉ là một ví dụ của một khối Scratch đó đang xảy ra để cho phép chúng tôi kiểm tra có hay không, là con chuột chạm vào sprite trên màn hình? Và điều này có thể hữu ích nếu bạn thực sự muốn làm những điều với con chuột của bạn. Ngoài các biểu thức Boolean, chúng tôi có những điều như là con chuột xuống, để bạn có thể phát hiện rằng loại đặt câu hỏi là tốt. Chúng ta có thể làm toán học nếu bạn thực sự muốn, và có sử dụng thực sự hấp dẫn hơn cho việc này hơn là chỉ thuần túy số học, như chúng ta sẽ thấy. Pseudo ngẫu nhiên và làm cho chương trình của bạn xuất hiện suy nghĩ hoặc hành xử một cách khác nhau dựa trên một số giá trị dường như ngẫu nhiên, và sau đó chúng tôi có những thứ như các biểu thức Boolean như. Vì vậy, nếu bạn thực sự muốn kiểm tra hai giá trị, chúng ta sẽ thấy trong Scratch chúng ta thực sự có thể kiểm tra nếu điều này là đúng sự thật và điều này là đúng. Ví dụ, trong trường hợp vớ của tôi, tôi có thể đã ở rất cuối hỏi những câu hỏi nếu vớ trái và bên phải vớ được, bỏ thuốc lá. Bạn đang làm tất cả trong ngày, do đó, đó sẽ là một cơ hội cho điều đó. Vì vậy, chúng ta hãy đi trước và thử mảnh này lại với nhau và đi vào một vài ví dụ hấp dẫn hơn so với một trong những điều này. Vì vậy, hãy để tôi đi trước đây và mở ra một số ví dụ mà sẽ luôn luôn được trên trang web của khóa học là tốt, và mở hello2. Vì vậy, trong hello2 đây, chúng tôi có một chương trình đó là làm một vài điều, nhưng nó không làm việc đó một cách hiệu quả như chúng ta có thể. Vì vậy, ở đây nó nói "hello, thế giới" trong một giây và sau đó chờ đợi trong một giây. Và sau đó không một lần nữa, và sau đó nó một lần nữa. Vì vậy, nếu tôi nhấp vào lá cờ màu xanh lá cây, Scratch nói "Hello, world. Xin chào, thế giới. Xin chào, thế giới ". Và điều này rõ ràng là ứng cử viên bây giờ cho cải tiến. Cải biên là gì, hy vọng, chúng ta có thể bây giờ làm cho nếu Scratch hỗ trợ khái niệm? Một số loại vòng lặp. Một số loại của sự lặp lại, bây giờ, sẽ được tốt đẹp, để cho tôi thực sự cố gắng đó. Hãy để tôi thực sự đi và di chuyển này. Vì vậy, thông báo có thể tách khối dễ dàng như bạn có thể thêm vào đính kèm chúng. Hãy để tôi đi theo kiểm soát, di chuyển xuống, và thực sự, có mảnh ghép này ở đây, Repeat và Forever Mãi mãi Nếu Vì vậy, có một số cách thể hiện cấu trúc lặp Scratch. Tôi có lẽ muốn ở đây không phải là giới hạn vì tôi chỉ muốn điều này xảy ra ba lần, nhưng có lẽ Lặp lại. Vì vậy, hãy để tôi kéo Lặp lại ở đây, kéo và thả nó, và thay vì nói "hello, thế giới" ba thời điểm khác nhau, cho tôi kéo mảnh ghép này ở đây. Và mặc dù nó không có vẻ phù hợp, chương trình là thông minh đủ để nhận ra nó sẽ phát triển để điền vào, vì vậy nó là hình dạng vật chất và kích thước không phải là tuyệt đối. Hãy để tôi thay đổi sự lặp lại đến ba, và bây giờ cho tôi đi trước và kéo Chờ Một thứ hai trong đó là tốt. Nó sẽ chụp trong là tốt, và vì vậy bây giờ tôi sẽ kéo những kẻ trên đây và chỉ ném chúng đi vì tôi không cần chúng nữa. Hãy để tôi phóng to và thu nhỏ nhấp vào lá cờ màu xanh lá cây ngay bây giờ, và chúng tôi có cùng một chương trình nhưng, như tôi đã dự đoán trước, tốt hơn được thiết kế bởi vì bạn có thể tưởng tượng như thế nào xấu chương trình này sẽ nhận được, chắc chắn về mặt thẩm mỹ, nếu bạn phải bắt đầu sao chép và dán, sao chép và dán, hoặc kéo và thả các điều darn cùng một lần nữa và một lần nữa. Bây giờ, bạn chỉ cần nói rằng các công cụ trên màn hình, in ấn. màn hình, thực sự tất cả không phải là thú vị, vì vậy hãy mở cửa sổ 3 không đúng ở đây. Và bây giờ, như bạn sẽ thấy, điều này sẽ nhanh chóng được gây phiền nhiễu - [Meow] DAVID Malan: - nhưng nó cũng là loại dễ thương. [Meow] DAVID Malan: Được rồi, vì vậy tốt hơn, và chúng tôi chắc chắn có thể sử dụng cùng một quá trình chuyển đổi của chunking vào một vòng lặp cấu trúc, nhưng chúng ta hãy làm cho nó thú vị hơn. Hãy để tôi đi trước và mở ra một phương sai thứ tư ở đây, nơi tôi đi thêm một bước nữa. Vì vậy, theo quan điểm này, ngớ ngẩn mặc dù điều này là lần đầu tiên nháy mắt, chương trình này sẽ làm gì? Nó sẽ meow một lần. Tại sao? Vâng, một là, như xa như tôi biết, luôn luôn ít hơn hai. Không có khái niệm của sự ngẫu nhiên ở đây. Tôi đã theo nghĩa đen mã hóa cứng một và hai, nhưng đây là một Ví dụ bây giờ thực sự bằng cách sử dụng một biểu thức Boolean. Giống như khi Joseph đã làm trong giả của mình, thụt đầu dòng IF bạn tìm thấy vớ phù hợp THEN làm như sau, ở đây chúng tôi có một biểu hiện IF là một trong ít hơn hai THEN - và trong thực tế, chúng tôi thậm chí có một chút thụt đầu dòng, tím là hơi thụt vào bên phải - THEN bạn đang đi để chơi các meow âm thanh. Bây giờ, trong trường hợp này, đó là một trong luôn luôn ít hơn hai, do đó, điều này là một sự lãng phí một điều kiện. Nhưng chúng ta có thể, như chúng ta sẽ thấy, để cắm những thứ khác vào những placeholders nơi một và hai. Vì vậy, chúng ta hãy tiến ví dụ năm của một số những hellos và xem những gì chương trình này sẽ làm gì. Vì vậy, bây giờ, trong một câu tiếng Anh, làm thế nào thực hiện điều này chương trình hành xử? Khán giả: Meows nửa thời gian. DAVID Malan: Meow một nửa thời gian, vì vậy đây là một cách để truyền đạt một ý tưởng rất đơn giản. Mặc dù chúng tôi xảy ra để được sử dụng một số bất bình đẳng ở đây trong một số con số, điều này thực sự chỉ là một programmatical cách, một cách chính xác, nói rằng nếu đồng xu đi lên đứng đầu, trước và meow. Hoặc ngược lại, nếu đồng xu đến đuôi, không meow. Và trong trường hợp này, làm thế nào để chúng ta bày tỏ điều đó không? Chúng tôi sẽ chọn một số ngẫu nhiên từ 1 đến 10, và nếu điều đó số ít hơn 6, đi trước và meow. Và làm thế nào vào được đây? Vậy một lần nữa, nhận thấy chỉ cần kéo và thả và điều chốt vào vị trí. Vì vậy, bây giờ chúng ta hãy xem nếu ngẫu nhiên này hoạt động. Hãy để tôi đi trước và bấm vào lá cờ màu xanh lá cây. [Meow] DAVID Malan: Được rồi. [Meow] DAVID Malan: Được rồi. Được rồi, tốt, vì vậy chúng tôi có đầu, đầu, đuôi có hiệu quả. Đuôi. [Meow] DAVID Malan: Thủ trưởng. [Meow] DAVID Malan: Tuyệt vời. Nó luôn luôn vụng về khi chỉ cần thống kê bạn sẽ có được một xấu chạy, và nó là tất cả đầu, và chương trình thực hiện làm việc như bạn hy vọng. Nhưng lần này, nó đã làm việc, và chúng ta dường như có, nếu chúng ta đã làm một số lượng vô hạn của thời gian, tỷ lệ 50%. Bây giờ một lần nữa, không phải tất cả là thú vị, chỉ cần làm cho mèo meow, vì vậy chúng ta hãy xem nếu chúng ta không có thể tiến xa hơn một chút này ở đây trong phiên bản 6. Vì vậy, bây giờ, chúng tôi có phiên bản thực sự gây phiền nhiễu - [MEOWS mỗi vài giây] DAVID Malan: - và đây là những gì được biết, tổng, như là một vòng lặp vô hạn. Vì vậy, vòng lặp vô hạn trong trường hợp này cảm thấy xấu hổ. Đó chắc chắn sẽ bắt đầu nghe có vẻ xấu, và vô hạn vòng lặp là không phải lúc nào cũng xấu. Bạn có thể nghĩ bối cảnh trong các chương trình máy tính mà bạn muốn thực sự muốn một vòng lặp vô hạn? Yeah? TƯỢNG: Khi bạn muốn kiểm tra một điều kiện. DAVID Malan: Được rồi, khi bạn muốn giữ lại kiểm tra một điều kiện? Như thế nào? Khán giả: không nghe được] DAVID Malan: Được rồi, tốt, vì vậy nếu bạn đã có một số chương trình, một số loại điều tự động hóa nhà, nơi bạn muốn liên tục màn hình là một cái gì đó là trường hợp. Đèn? Đèn bởi vì có thể bạn có một bộ đếm thời gian, và bạn muốn họ đi ra, bạn có thể cần phải làm một cái gì đó một lần nữa và một lần nữa. Và trên thực tế, nói giờ, bất kỳ của bạn, những người đã đồng hồ trên máy tính của bạn hoặc đồng hồ kỹ thuật số, đó là một vòng lặp vô hạn. Nó tiếp tục cập nhật thời gian bởi vì nó liên tục kiểm tra và kiểm tra và kiểm tra có thời gian thay đổi, và nếu như vậy, oh, my god. Đồng hồ cuối cùng cũng thay đổi. Nó cần hiển thị giá trị đó cho bạn. Vì vậy, trong khi hầu hết các vòng lặp vô hạn thời gian là một sai lầm, hoặc ít nhất là một quyết định thiết kế nghèo, đôi khi họ làm có giá trị của họ. Vâng, chúng ta tiến xa hơn hello7. Vì vậy, bây giờ chương trình sẽ nhận được một chút tương tác nhiều hơn. Hãy để tôi phóng to ở đây, và một lần nữa, đây là những gì là tốt đẹp về Scratch. Và chúng tôi sẽ sử dụng nó để là rõ ràng, Scratch, chỉ ngày hôm nay và vào tuần tới vấn đề thiết lập. Nhưng vào hôm thứ Hai, chúng tôi nhảy vào C. Trong chương trình này, nó, mãi mãi, sau đây. NẾU chạm vào con trỏ chuột - bây giờ, người bối cảnh ở đây? Vâng, và thông báo rằng những người được chọn xuống đây ở phía dưới bên phải là con mèo, một sprite, vì vậy các kịch bản, điều này chương trình, áp dụng cho họ cụ thể. Vì vậy, nếu con mèo là chạm vào con trỏ chuột, sau đó nó sẽ chơi này xuống và chờ đợi hai giây, và sau đó lặp lại nauseum quảng cáo. Vì vậy, chúng ta hãy đi trước và nhấn play. Không có gì xảy ra, nhưng nếu tôi muốn vật nuôi mèo bây giờ, tôi có thể chỉ cần. [Meow] DAVID Malan: Adorable. [Meow] DAVID Malan: Được rồi, ít gây phiền nhiễu, nhưng cũng được ngu si đần độn, do đó, chúng ta hãy di chuyển và xem nếu chúng ta không có thể tiêm thêm một chút logic. Đó là ví dụ 7. Trong ví dụ 8, chúng ta sẽ giới thiệu một điều kiện ELSE. Vì vậy, giống như một ngã ba đen trên đường, trong đó bạn có thể đi trái hoặc bạn có thể đi đúng, một điều kiện trong chương trình ngôn ngữ như Scratch, hoặc là chúng ta sẽ thấy C, có thể cho phép bạn đi theo một hướng khác nhau thông qua một IF ELSE xây dựng. Vì vậy, theo đúng nghĩa đen, IF chạm vào con trỏ chuột, sẽ chơi một số âm thanh, ELSE nó sẽ chơi này khác âm thanh, meow. Bây giờ, nếu bạn có thể suy ra từ tên của những âm thanh này, bạn có thể có thể đoán những gì chương trình này có nghĩa là để gợi lên ý tưởng. Con mèo này được meowing hạnh phúc. [Meow] DAVID Malan: Hạnh phúc, nhưng không rất thích được chạm vào. [Gầm rú] DAVID Malan: Vì vậy, bây giờ chúng tôi có một con mèo sẽ la lên ở bạn. Được rồi, tốt, một ví dụ cuối cùng với những con mèo ở đây, và chúng ta hãy mở phiên bản 9 này ở đây. Vì vậy, bây giờ, chúng tôi có những âm thanh gây khó chịu nhất tiếp theo mà tôi có thể tìm kiếm, vì vậy chúng tôi có một hải mã, sư tử biển ở đây ai sẽ làm như sau. [SEAL Bark] DAVID Malan: Được rồi, do đó, điều này sẽ đi cho đến khi bạn tìm ra như thế nào chương trình này hoạt động. Vì vậy, thời gian này, loài động vật này có hai kịch bản, và những gì thú vị ở đây là các kịch bản sẽ thực hiện song song. Vì vậy, bởi vì cả hai đều bắt đầu với lá cờ màu xanh lá cây nhấn vào, nó giống như đi như thế này, và cả hai chương trình bắt đầu chạy nó một lần ngay cả khi họ đang vòng lặp mãi mãi. Vì vậy, trong kịch bản hàng đầu, tôi có một số logic. Những tính năng nào mà cung cấp lên không? [SEAL Bark] Khán giả: không nghe được] DAVID Malan: Nếu đó là những gì? [SEAL Bark] Khán giả: Nếu tắt tiếng không, nó sẽ tiếp tục chơi âm thanh. [SEAL Bark] DAVID Malan: Được rồi, tốt. Vì vậy, nếu tắt, bất cứ điều gì, điều này màu da cam là số không, THEN phát âm thanh sư tử biển và nghĩ "Oh, hi, trong hai giây. Bây giờ, tôi không biết những gì tắt là, nhưng không gợi lên ý tưởng sai hoặc tắt. Vì vậy, nếu tắt là sai, vì thế nếu không im hơi lặng tiếng, tiếp tục chơi âm thanh. Được rồi, tốt, làm thế nào để chúng tôi vô hiệu hóa điều này? Vâng, chúng ta hãy nhìn vào kịch bản thứ hai xuống. Các kịch bản thứ hai nói tắt không. Chú ý nó cũng cam, do đó, những gì Scratch không là màu sắc khối trong cùng màu nếu nó là loại của một cách hợp lý có liên quan. Vì vậy, chỉ cần tắt tiếng lên hàng đầu là cam, do đó, sẽ tắt xuống đây được đề cập trong khối cam. Nhưng đây là một bài tập biến, do đó, cũng giống như trong đại số, bạn có x và y và z, trong lập trình, bạn có biến, nhưng chúng nói chung - chúng ta hãy tạm dừng trong một thời điểm và con số như thế nào để ngăn chặn điều này sủa. Làm thế nào để làm điều này? [SEAL Bark] DAVID Malan: Được rồi. Nó dừng lại. Okay. Vì vậy, cũng giống như trong đại số, bạn có các biến x, y, z, nhưng trong lập trình, có các biến như x, y, z và nói chung là tán thành bởi vì họ không phải ở tất cả các biểu cảm. Họ không có ý nghĩa ngữ nghĩa nào, trong hầu hết các ngôn ngữ lập trình, các biến có thể có đầy đủ tên chính thức hoặc các từ hay cụm từ, như im hơi lặng tiếng, để nói những gì họ làm. Vì vậy, kịch bản thứ hai này cũng đã được nghe mãi mãi, và nó nói nếu chìa khóa, khóa bàn phím Space, ép, dấu hỏi. Vì vậy, có một điều kiện với một biểu thức Boolean đó là sẽ phải trả lời một câu hỏi hoặc trung thực hoặc sai, sau đó tôi có bên trong của nó IF không gian chính được nhấn VÀ NẾU tắt là số không, thiết lập tắt tiếng một, ELSE thiết lập tắt tiếng không. Vì vậy, điều này ngã ba trên đường, và thông báo như thế nào tôi đã lồng nhau hai IF điều kiện, là một cách để kiểm tra là Space Bar ép bởi vì nếu như vậy, tôi có muốn đi cách này hay cách đó. Và làm cách nào để đảo ngược giá trị của im hơi lặng tiếng? Tôi phải kiểm tra là nó không? Nếu vậy, làm cho nó một, người nào khác làm cho nó không đến do đó chuyển đổi hai tiểu bang. Được rồi, vì vậy chúng tôi có sau đó là một số những cơ bản xây dựng. Chúng tôi có các biểu thức Boolean, và nhận ra, quá, đây là những không phải tất cả những gì xa lạ. Trong thực tế, đây là một ảnh chụp màn hình nhanh chóng của Harvard nhiên của CS50 mua sắm công cụ, và bất kỳ trang web ra có mà có hộp kiểm thăng trầm thả thực sự, tất cả thời gian này, được sử dụng Boolean biểu thức. Trong trường hợp này ở đây, nếu bạn nhấp vào hộp kiểm bên cạnh tất nhiên lớn hơn hoặc bằng 4,5, hoặc năm tới cùng giảng viên, bạn chỉ định một biểu thức Boolean. Chỉ cho tôi các khóa học mà biểu thức đó là đúng sự thật. Hoặc để bên phải, không xung đột với các khóa học Tôi , nếu được kiểm tra, sau đó có, bạn muốn kiểm tra điều kiện đó, khác mà bạn muốn bỏ qua nó. Biểu thức Vì vậy, Boolean là loại tất cả xung quanh, nhưng khi chúng tôi đặt chúng trong điều kiện, cho dù nếu có điều kiện, IF Elses, hoặc chúng tôi thậm chí có thể mô phỏng sâu hơn cấp, IF ELSE IF ELSE - vì vậy đó là của một nhà nước ternary. Bạn có thể đi theo cách này hoặc cách này hoặc cách này. Chúng tôi có thể giữ cho mọi thứ làm tổ để đi theo những hướng khác nhau. Vì vậy, Scratch có những vòng, như giới hạn. Nó có các tính năng như Lặp lại 10, một số hữu hạn số lần. Chúng tôi có khả năng thiết lập các biến, do đó, trong trường hợp này Tôi đã tuyên bố, ví dụ, một vớ được gọi là biến. Tôi đã khởi tạo là 0, và đó là một hướng chúng ta có thể đưa lên đây với Joseph, nhờ đó mà có lẽ tôi chỉ cần theo dõi bao nhiêu vớ tôi có trên và chấm dứt chương trình khi giá trị của biến đó là 2. Đó sẽ là một cách khác để loại khái quát rằng vấn đề và làm một cái gì đó một lần nữa và một lần nữa. Vâng, chúng ta hãy đi trước và bây giờ giới thiệu một vài những điều mới. Vì vậy, những người bạn có kinh nghiệm lập trình trước biết rằng rất nhiều ngôn ngữ có mảng, véc tơ hoặc danh sách, và thực sự, Scratch có một cái gì đó như thế này, quá. Vì vậy, chúng ta hãy xem nếu chúng ta không thể có những điều để cấp độ tiếp theo ở đây. Nếu tôi có khả năng, bây giờ, với những mảnh ghép để thêm một cái gì đó, giống như một từ hoặc một số, cho một biến, tôi có thể bắt đầu tích lũy những điều. Và điều này thực sự là apropos khá cho những thứ như trò chơi, vai trò-chơi trò chơi, nơi bạn đi bộ xung quanh một số thế giới tưởng tượng những điều thu thập, chọn những thứ lên, tích luỹ điểm, hoặc tương tự. Bạn có thể muốn theo dõi của một số loại hàng tồn kho, và thực sự, đó là những gì một cựu học sinh của chúng tôi ở đây đã làm với một cái gì đó gọi là Fruitcraft RPG. Vì vậy, hãy để tôi đi trước và mở ra điều này ở đây, và trong Fruitcraft, chúng tôi có thế giới này ở đầu trang. Vì vậy, hãy để tôi đi trước và nhấp vào lá cờ màu xanh lá cây. Thông báo ở trên cùng bên trái là một số loại hàng tồn kho. Được cài đặt trong Scratch như những gì chúng ta sẽ gọi một mảng hoặc một danh sách, và bây giờ chúng ta đã có hình ảnh động. Vậy chúng ta bắt đầu trước đó với câu chuyện tình yêu cookie này, và sau đó chúng tôi tiến đến mèo và sư tử biển, bây giờ chúng tôi có thể có những điều mà thậm chí còn tương tác nhiều hơn. Và anh chàng nhỏ màu xanh này, tôi có thể bắt đầu di chuyển xung quanh của mình ít nhà đây. Vì vậy, có vẻ như ông có một lối ra ở đây, vì vậy tôi đang sử dụng các phím mũi tên lên, xuống, trái phải. Và bây giờ tôi đang ở ngoài, do đó, chúng ta hãy là những gì tôi đã có ở đây. Trông giống như một màu da cam, và quả thật, ngay sau khi tôi chạm vào cam, nó được plopped vào hàng tồn kho của tôi. Nếu tôi đi qua đây để các anh đào, bây giờ tôi có một cái gì đó khác trong hàng tồn kho của tôi. Và đây là tất cả tốt đẹp và dễ thương, nhưng suy nghĩ về cách, bây giờ, điều này được thực hiện. Vâng, chúng ta có khái niệm về một danh sách, và đó là rõ ràng là một mảnh ghép mà bạn chỉ cần nói những gì bạn muốn thêm vào đó, thêm cam, anh đào. Bây giờ, anh chàng nhỏ màu xanh này đang làm gì? Vâng, anh ấy là một sprite. Và có lẽ, cam và quả cà phê - chính họ là những sprites riêng biệt. Và bằng cách sử dụng điều kiện trong biểu thức Boolean, sinh viên có lẽ là có thể thể hiện NẾU màu xanh chàng anh đào chạm vào THEN thêm anh đào từ của mình hàng tồn kho, và sau đó cũng ẩn sprite anh đào. Vì vậy, bên dưới mui xe, có lẽ vẫn còn là một anh đào sprite. Chúng tôi đã chỉ nói với nó để trở nên hiệu quả vô hình. Bây giờ, nếu tôi tiếp tục đi bộ trên đây, chúng tôi cũng có thể làm điều này điều gần, nơi tôi có thể đi và đọc các dấu hiệu. Vì vậy, nếu anh chàng màu xanh chạm vào dấu hiệu, chúng ta có thể có khối này Say giống như con mèo nói chuyện với chúng tôi bằng lời nói, hello, trước đó, "Got một số trái cây? Mang nó đến nơi trái cây "Được rồi, vì vậy bây giờ, rõ ràng. Tôi có hướng dẫn của tôi. Tôi có thể đi đến nơi trái cây, xếp hàng bản thân mình lên với các cửa. Bây giờ, tôi đang ở đây. Tôi có thể đi với người đàn ông ở quầy. Ông phát hiện rằng tôi là gần với anh ta, vì vậy nó không phải là khá giống nhau chạm vào, và tôi đã thắng. Như vậy, có chúng tôi có Fruitcraft RPG. Vì vậy, chúng ta có thể làm những việc thậm chí còn tiên tiến hơn này. Chúng tôi có thể thêm âm thanh. Chúng ta có thể thêm ngẫu nhiên giả. Chúng ta có thể thêm phức tạp. Hãy để tôi đi trước đây, và thay vì làm điều này bản thân mình, hãy để tôi chỉ cho bạn một của các ý tưởng phức tạp hơn chúng tôi đã nhận năm ngoái từ một người nào đó tên là Blake. Chúng tôi có thể có một tình nguyện viên là người thoải mái khi xuất hiện trên máy ảnh và để chơi một trò chơi? Làm thế nào về phải có? Nào lên. Được rồi, do đó, các trò chơi mà bạn có chỉ là vô tình tình nguyện để chơi - [Vỗ tay] DAVID Malan: - là một cái gì đó từ xưa đã được gọi là "Frogger". Tên của bạn là gì? Renda: Renda. DAVID Malan: Redna? Renda: Nó giống như Brenda với b. DAVID Malan: Được rồi, Renda. David. Hân hạnh được gặp bạn. Vì vậy, ở đây trong "Frogger", và nếu chúng ta có thể tăng âm lượng chỉ một chút, bạn này ít ếch màu xanh lá cây ở phía dưới. Bạn có thể sử dụng trái, phải, lên và xuống, và mục tiêu của bạn là để băng qua đường, băng qua sông, và chạm vào miếng lily ở đầu. Aw. Một trong nhiều t - làm lại, được chứ? Hãy nhấn stop. Không ai nhìn thấy điều đó. [Vỗ tay] [Vỗ tay] DAVID Malan: Yeah. Thực hiện rất tốt. Tuyệt vời, cảm ơn bạn. Vì vậy, đó có Frogger. Bây giờ bạn biết những gì bạn đã nhận được mình vào tình nguyện viên một lần nữa cho một khác nhau trò chơi được gửi bởi một học sinh khác. Bạn muốn đi lên? Tên của bạn là gì? RICHARD: Richard. DAVID Malan: Richard. Được rồi, Richard, đi lên trên. [Vỗ tay] DAVID Malan: Bạn có cái gì đó sẽ âm thanh quen thuộc sớm, vì vậy đây là những hướng dẫn của bạn. Vì vậy, trong một thời điểm, một số mảnh ghép sẽ di chuyển lên từ màn hình nhìn hoặc trái hoặc phải lên hoặc xuống. Bạn sẽ phải nhấn các phím mũi tên theo cách như vậy nó tương ứng với những mảnh ghép xếp hàng với giữ chỗ ở đầu trang. Vì vậy, khi bạn nhìn thấy một mũi tên trái, và dòng nó với trái mũi tên, nhấn vào mũi tên bên trái. Bạn có thể bắt đầu. [MUSIC - "Stronger" Kayne West] DAVID Malan: Tất cả, phải lớn tràng pháo tay cho Richard. [Vỗ tay] DAVID Malan: Rất cũng được thực hiện. Cảm ơn bạn. [Vỗ tay] DAVID Malan: Vì vậy, vui vẻ và, dường như, sắp xếp của đáng sợ vì nó có thể thực hiện một cái gì đó như là dường như phức tạp như thế này, nhận ra rằng học sinh không đặt ra và chỉ cần viết này cùng một lúc. Thay vào đó, bạn có thể phá vỡ một vấn đề là có vẻ như phức tạp vì điều này thành những miếng nhỏ hơn nhiều, và điều này cũng là sẽ là một chủ đề. Điều tệ nhất bạn có thể làm trong việc viết một chương trình trong hầu hết bất kỳ ngôn ngữ là ngồi xuống, có được thực sự vui mừng, viết toàn bộ điều chết tiệt, và sau đó chỉ hy vọng rằng nó hoạt động. thời gian bạn đang viết xong. Thay vào đó, quá trình lập trình nên thường khoan thai, rất lặp đi lặp lại, theo đó bạn chỉ cần thiết lập các bước rất nhỏ cho mình, miếng nhỏ nào bạn muốn cắn, và do đó bạn có những sanity kiểm tra, sự kiện quan trọng ít bạn có thể đáp ứng. Và sau đó bạn xây dựng trên đầu trang của những người tạo ra nhiều hơn tinh vi điều vẫn còn. Vì vậy, ví dụ, làm thế nào chúng ta có thể đi về thực hiện một trò chơi như thế này? Vâng, thẳng thắn, tôi chắc chắn sẽ bắt đầu bằng cách chỉ hỗ trợ một trong những chìa khóa tại một thời điểm. Chúng ta chỉ cần thực hiện hỗ trợ cho các mũi tên bên trái. Vì vậy, các sinh viên đã có bằng cách nào đó tạo ra trong Photoshop, hoặc trong Scratch chính nó bằng cách sử dụng trình soạn thảo ít đồ họa, phím mũi tên trông giống như một ở đầu còn lại đó, chỉ cần giữ chỗ màu xám. Sau đó, các học sinh phải tìm ra những gì x, y phối hợp đặt nó, nơi để đặt nó trong cửa sổ. 0, 0 là ở đây, vì vậy bạn phải tìm ra số lượng pixels, hoặc dấu chấm, để bù đắp cho rằng mũi tên từ phía trên cùng của màn hình. Và sau đó một lần đó là tại chỗ, chương trình của bạn không thực sự làm bất cứ điều gì được nêu ra, do đó, sau đó bạn cần một ma thứ hai, dụ một mũi tên màu xanh lá cây đó là cũng trỏ đến lại, và bạn sau đó bạn cần để bắt đầu viết một số kịch bản cho nó. Và bạn nhận thấy, có lẽ, những điều này bắt đầu đến lúc tốc độ khác nhau, và các màu sắc khác nhau địa điểm, và đó là bởi vì các học sinh sử dụng một chút giả ngẫu nhiên. Và bằng cách giả ngẫu nhiên, tôi chỉ có nghĩa là chọn một số giữa một cái gì đó và một cái gì đó bởi vì bạn có thể bắt đầu với những thứ đồ như thế nào nếu con số này là từ một năm, tốt, chúng ta hãy làm cho điều đó màu xanh lá cây. Nếu đó là từ 6 đến 10, chúng ta hãy làm các mảnh ghép màu đỏ thay vì. Vì vậy, miễn là bạn có một cách để tạo ra một số loại ngẫu nhiên, sau đó bạn có thể làm cho quyết định trên cơ sở đó ngẫu nhiên. Và tôi tiếp tục giả nói ngẫu nhiên bởi vì có một nhỏ bẩn bí mật. Máy tính không thể đưa ra con số ngẫu nhiên. Họ chỉ có thể làm những gì họ đang nói bởi vì họ các thiết bị do con người tạo ra. Họ có thể không chỉ đoán một số giống như con người chúng ta cảm thấy như chúng tôi có thể. Một máy tính có để làm một cái gì đó toán học để gợi lên ảo giác của số toán học, đôi khi sử dụng hiện tại ngày của thời gian như một đầu vào để tìm ra những gì số trở lại, nhưng nhiều hơn về thời gian khác. Để bây giờ, chỉ biết rằng chúng ta có thể tạo ra ngẫu nhiên giả. Vì vậy, một khi tôi có khả năng cho các mũi tên bên trái để bắt đầu xuất hiện vào các thời điểm khác nhau và ở các tốc độ khác nhau, sau đó Tôi có thể quay trở lại và thêm một số trong số này nếu có điều kiện. NẾU sprite này được chạm vào một khác, và phím mũi tên trái trọng điểm đã được ép - do đó, ba điều kiện trong trường hợp đó. Tôi có thể sử dụng và ngăn chặn có lẽ, trong trường hợp đó - Sau đó, tôi muốn đi trước và tăng số điểm. Và ở đầu trang, chúng tôi có một số điểm, chúng tôi có Awesome, Cool, Tốt, Boo. Vì vậy, có vẻ như năm biến mà sinh viên này được sử dụng để theo dõi các số liệu khác nhau. Vì vậy, trong ngắn hạn, kết quả cuối cùng là tuyệt vời. Thật thú vị, nó là thú vị để chơi, nó hấp dẫn, nhưng điều này không phải là nơi học sinh bắt đầu. Anh ta hoặc cô bắt đầu tại một tập hợp nhỏ hơn nhiều bước. Vì vậy, một số khối xây dựng khác mà chúng ta có thể là những gì dệt vào các chương trình này? Vâng, có khái niệm này trong hầu hết các ngôn ngữ khác, Scratch trong số đó, được gọi là chủ đề. Vì vậy, một máy tính có thể thực sự không thực sự làm nhiều điều tại một thời gian, ít nhất là không thường. Thay vào đó, một máy tính nói chung có chỉ là một CPU, và thậm chí cả mặc dù máy tính siêu nhanh và có thể, do đó, tạo ra ảo giác làm việc cùng một lúc - kiểm tra mail của bạn, ngay lập tức tin nhắn, in một tài liệu - thực sự, một máy tính chỉ là nhảy từ in ấn để gửi tin nhắn nhanh gửi email, trở lại và trở lại và quay trở lại và ra quá nhanh đến nỗi chúng tôi con người chậm witted chỉ không nhận ra rằng nó thực sự chạy các chương trình một chút tại một thời điểm. Bây giờ, điều này một chút màu trắng nằm những ngày này bởi vì, hiện nay, nhiều máy tính của chúng tôi là những gì được gọi là đa lõi, vì vậy bạn có một CPU nhưng nhiều lõi, là loại giống như có nhiều CPU. Và do đó, đôi khi, máy tính có thể thực sự làm nhiều điều tại một thời điểm, nhưng nói chung trong một chương trình, các chương trình dựa vào những điều được gọi là chủ đề. Vì vậy, một sợi là loại giống như một chương trình thu nhỏ có thể tồn tại cùng với một chương trình khác thu nhỏ và có thể chạy song song, hoặc ít nhất là có thể chạy theo ảo tưởng rằng họ đang chạy đồng thời. Vì vậy, Scratch hỗ trợ những điều được gọi là chủ đề. Bạn có thể có các kịch bản thực hiện nhiều cùng một lúc, cũng như chúng ta đã làm với sư tử biển, và điều này cho phép chúng ta thực sự sau đó có sự tương tác giữa các sprites. Hãy để tôi đi trước đây và kéo lên, hãy nói, chủ đề, và chơi này như sau. Chúng tôi có hai sprites, mỗi người trong số chúng ta sẽ thấy có chỉ là một kịch bản. Và bạn nhận thấy dường như có một số tình báo trong con mèo trong một trong những điều này bởi vì ông nhận được gần hơn - [Gầm rú] DAVID Malan: - và gần gũi hơn với con chim nhỏ. Vì vậy, làm thế nào là hoạt động con chim? Vâng, chúng ta hãy có một cái nhìn con chim đầu tiên. Các kịch bản gia cầm cho biết khi lá cờ màu xanh lá cây được nhấp, x bằng âm 115 và y bằng 150. Vì vậy, tôi chỉ cần tìm ra một vị trí ngẫu nhiên mà tôi muốn chim để bắt đầu, và tôi chỉ ngồi phịch anh ta ở đó theo mặc định. Sau đó mãi mãi nếu không chạm vào con mèo, do đó, điều này là khác nhau loại cấu trúc vòng lặp, nhưng ý tưởng đó, làm điều này một lần nữa và một lần nữa và một lần nữa. Vì vậy, miễn là bạn không chạm vào con mèo, di chuyển ba bước, và nếu bạn đang ở trên các thư bị trả lại, cạnh, nơi mà nó sắp xếp của một phản ánh trong ý nghĩa bi-a. Vậy đó là cách chim đang di chuyển xung quanh loại dường như ngẫu nhiên, nhưng nó chỉ là bởi vì nó nảy ra khỏi các bức tường trong trường hợp này. Bây giờ, trong khi đó, con mèo là loại gian lận. Con mèo, khi lá cờ màu xanh lá cây được nhấp, có, bắt đầu một số vị trí, một vị trí ngẫu nhiên - ít nhất là trong một phần theo các lựa chọn khối ngẫu nhiên màu xanh lá cây - và sau đó mãi mãi nếu chạm vào con chim, chơi âm thanh sư tử, và sau đó dừng lại kịch bản. Vì vậy, khi tôi nói chấm dứt, hoặc thoát khỏi trước khi, có một câu đố phần trong Scratch sẽ chỉ diệt các chương trình ở đó chỉ vì nó là loại một cách hợp lý thực hiện. Nhưng nếu không, ở đây, thông báo những gì sẽ xảy ra. Điểm đối với gia cầm và di chuyển một bước. Vì vậy, thời điểm này đối với gia cầm là loại một lợi thế mèo có homing trên con chim di chuyển, và chúng tôi có thể bây giờ làm cho chương trình này tất cả các chi tiết thú vị. Thay vì di chuyển một bước tại một thời gian cho mỗi chu kỳ CPU, mỗi đánh số điện thoại của chiếc chuông, do đó, để nói chuyện, để cho tôi đi trước và di chuyển, hãy nói, năm bước tại một thời điểm như con mèo. Click chạy, và bây giờ ông thực sự thấy anh ta một cách nhanh chóng. Nếu chúng ta tăng gấp đôi đến 10 bước, nó loại đi ngay cho anh ta. Bây giờ, chúng tôi có thể cung cấp cho con chim, có lẽ, một chút của một lợi thế. Hãy để cho con chim và nói rằng thay vì di chuyển ba bước, hãy di chuyển anh ta 30 bước. Tuy nhiên, ông vẫn bị bắt cuối cùng. Vì vậy, ở đây, chúng tôi có hai chủ đề. Bị giam giữ trong Scratch với hai kịch bản và hai sprites, nhưng ý tưởng trong các ngôn ngữ khác là bạn có thể viết, về cơ bản, quá nhiều chương trình như thế này và có họ chạy thực sự, hoặc tưởng tượng, song song. Bây giờ, cũng có khái niệm này trong chương trình được gọi là các sự kiện, và điều này là một cái gì đó chúng ta sẽ không nhìn thấy trong C, ngôn ngữ được gọi là C. Chúng tôi sẽ nhìn thấy nó vào cuối học kỳ lập trình web, khi chúng tôi giới thiệu JavaScript và khái niệm của các trang web xây dựng được năng động và tương tác với người dùng. Vì vậy, trong trường hợp này, chúng tôi có một ví dụ rất đơn giản của hai sprites, cậu bé và cô gái, mỗi người trong số họ có tương ứng của họ. đề tài, nhưng bằng cách nào đó hai là liên giao tiếp bằng cách một cái gì đó gọi là sự kiện. Vì vậy, hãy để tôi đi trước đây và phóng to trên kịch bản của cậu bé, mà trông như thế này. Khi lá cờ màu xanh lá cây nhấp, mãi mãi làm như sau. Nếu không gian quan trọng, hoặc quán Space, được nhấn, nói Marco cho hai giây, đó là hoàn toàn thẩm mỹ trên màn hình, một bài phát biểu bong bóng một chút, nhưng sau đó phát sóng. Vì vậy, quảng bá là một mảnh Scratch đó là đại diện của một lớp học của các chức năng trong lập trình cho phép các chương trình khác nhau, chủ đề khác nhau, liên giao tiếp, bằng cách nào đó gửi tin nhắn, một đến khác. Đi qua một mảnh giấy trong lớp là loại công nghệ thấp tương đương. Vì vậy, phát sóng sự kiện. Tôi có thể gửi thông báo này, và sự kiện này từ là hoàn toàn tùy ý. Scratch đôi khi có những thăng trầm thả, do đó, tôi chỉ đến với một từ ngẫu nhiên như sự kiện bởi vì bây giờ, những gì cậu bé không khi tôi nhấn chính là chương trình phát sóng sự kiện này. Và nếu tôi nhìn tại kịch bản của cô gái, kịch bản của cô siêu đơn giản bởi vì tất cả những gì cô cần làm là không hành động khi lá cờ màu xanh lá cây được nhấp. Cô được thiết kế để hành động khi cô nhận được báo giá, unquote, "Sự kiện", và lúc đó, cô ấy là lắng nghe do đó cho sự kiện để được gọi là một lần nữa và một lần nữa. Ngay khi cô nhận được sự kiện đó, cô ấy sẽ hét thật to Polo cho hai giây. Và như vậy bạn có lẽ có thể suy ra từ này chính xác những gì tiếp theo kết quả là có được. Hãy để tôi nhấp vào lá cờ màu xanh lá cây. Không có gì xảy ra bởi vì tôi cần phải làm những gì? Khán giả: Space Bar. DAVID Malan: Space Bar. Boy Marco, cô gái Polo. Nhưng đó không phải là cứng mã hoá cho mỗi gia nhập. Đó là liên thông tin liên lạc giữa các kịch bản, vì vậy bây giờ chúng tôi có khả năng thực hiện các chương trình thậm chí còn phức tạp hơn hai là bằng cách nào đó liên giao tiếp. Vì vậy, những gì hướng dẫn, chúng ta có thể thực hiện việc này? Vâng, vấn đề trong thiết lập 0, thực sự, mục tiêu là để vui chơi với Scratch. Cho phiên bản hacker, thay vào đó bạn sẽ có niềm vui với một phiên bản tinh vi gọi là Scratch BYOB, Xây dựng Blocks riêng của bạn, nhưng ý tưởng là như nhau. Bạn sẽ có thể - Vâng, đó là có chủ ý. Nó đến từ Berkeley. BYOB là phiên bản của hacker phiên bản này, nhưng cả hai nhân khẩu học, bản tiêu chuẩn và phiên bản của hacker như nhau, mục tiêu ở tay cho tuần tới thực sự là chỉ để nhảy vào sâu, có được bàn tay của bạn bẩn với lập trình, và làm cho một cái gì đó thú vị, làm cho một cái gì đó tương tác, một cái gì đó nghệ thuật, làm cho niềm vui một cái gì đó để thực sự chứng minh, để đến cuối tuần, bạn sẽ có một dự án, không chỉ cho pset CS50 1, nhưng bạn sẽ có một ít cái gì mà bạn có thể hiển thị trong Annenberg bạn bè hay gia đình thậm chí bằng cách tải lên trang web của MIT. Và như tôi đã nói hôm thứ tư, chúng tôi hy vọng 90% của lớp, nói chung, để làm các phiên bản tiêu chuẩn. Nhận ra rằng cũng có lối thoát cho những người bạn của những người nếu không có thể tìm cho mình một chút chán với những điều cơ bản và thực sự muốn nhảy vào và phác thảo một tầm nhìn bạn đã có với nền trước trong này thân thiện hơn môi trường. Vì vậy, hãy để tôi kéo lên một ví dụ khác là một trong những cũ của chúng tôi sinh viên ở đây đã làm và nói một chút gì đó thông qua bài hát. Điều đó tương tự như vậy, khi lượt này, suy nghĩ về cách bạn đi về triển khai thực hiện chương trình này bằng cách sử dụng chính xác những xây dựng các khối, một chút ngẫu nhiên giả, và một bit của bài hát quen thuộc. Nếu chúng ta có thể nâng cao khối lượng chỉ là một chút? [MUSIC - "trời mưa MEN" THE GIRLS DỰ BÁO THỜI TIẾT] DAVID Malan: Đó là nó cho CS50. Chúng ta sẽ thấy bạn vào thứ hai. [Vỗ tay]