1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [ROCK MUSIC] 2 00:00:32,435 --> 00:00:35,429 [MUSIC - "Happy Together" Những con rùa] 3 00:01:27,330 --> 00:01:30,170 DAVID Malan: Hôm nay, chúng tôi bắt đầu thăm dò của chúng ta về 4 00:01:30,170 --> 00:01:32,710 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, 5 00:01:32,710 --> 00:01:35,070 bây giờ, nghệ thuật lập trình, trong đó có nghĩa là 6 00:01:35,070 --> 00:01:36,260 chỉ là một ví dụ. 7 00:01:36,260 --> 00:01:39,600 Nhưng trong bối cảnh đó giải quyết vấn đề, biết rằng 8 00:01:39,600 --> 00:01:42,080 Day Puzzle truyền thống CS50 là ngày mai. 9 00:01:42,080 --> 00:01:45,190 Nếu bạn đã chưa RSVPed cho sự kiện này, bạn có thể vào 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Bạn có thể mang lại cho đội của hai hoặc ba hoặc bốn. 12 00:01:50,940 --> 00:01:53,080 Bạn sẽ được thử thách với các vấn đề như bạn đã thấy 13 00:01:53,080 --> 00:01:54,190 có trong đầu. 14 00:01:54,190 --> 00:01:57,000 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 15 00:01:57,000 --> 00:01:59,680 sẽ có một cơ hội để giành chiến thắng một số giải thưởng tuyệt vời. 16 00:01:59,680 --> 00:02:02,750 Trong số đó, một Wii và một số Giấy chứng nhận quà tặng và giống như, 17 00:02:02,750 --> 00:02:05,650 tất cả trong khi chơi với CS50 sinh viên và các bạn cùng lớp 18 00:02:05,650 --> 00:02:07,720 và pizza và Facebook. 19 00:02:07,720 --> 00:02:10,430 Vì vậy, vào ngày mai đó nếu bạn muốn. 20 00:02:10,430 --> 00:02:13,330 >> Điều này sau đó là CS50, cho những người bạn tham gia với chúng tôi. 21 00:02:13,330 --> 00:02:14,510 lần đầu tiên. 22 00:02:14,510 --> 00:02:18,030 Và biết rằng khóa học này đặc biệt được xác định để có được 23 00:02:18,030 --> 00:02:22,605 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 24 00:02:22,605 --> 00:02:24,270 sẽ có không chỉ là một sự hiểu biết của các 25 00:02:24,270 --> 00:02:26,450 nguyên tắc cơ bản của khoa học máy tính, nhưng bạn sẽ phải 26 00:02:26,450 --> 00:02:29,120 thiết lập kỹ năng này rất thiết thực mà bạn có thể lấy lại 27 00:02:29,120 --> 00:02:31,370 bộ phận riêng của bạn, cho dù đó là khoa học kỹ thuật, 28 00:02:31,370 --> 00:02:33,570 ứng dụng toán học, khoa học vật lý, tự nhiên 29 00:02:33,570 --> 00:02:34,780 khoa học, hoặc tương tự. 30 00:02:34,780 --> 00:02:37,030 Thật vậy, rất thú vị về khoa học máy tính những 31 00:02:37,030 --> 00:02:39,900 ngày là rằng nó chỉ là áp dụng đối với 32 00:02:39,900 --> 00:02:40,990 tất cả các loại của các lĩnh vực. 33 00:02:40,990 --> 00:02:46,210 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 34 00:02:46,210 --> 00:02:49,020 ngôn ngữ lập trình truyền thống được gọi là C, chúng tôi sẽ 35 00:02:49,020 --> 00:02:51,040 thay vì nhìn vào một cái gì đó gọi là Scratch, một cái gì đó với 36 00:02:51,040 --> 00:02:53,420 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 37 00:02:53,420 --> 00:02:57,020 người tiền nhiệm trong năm qua, kể chuyện, để tạo trò chơi, 38 00:02:57,020 --> 00:03:00,060 để 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 39 00:03:00,060 --> 00:03:02,240 tâm trí xung quanh một số các cấu trúc cơ bản 40 00:03:02,240 --> 00:03:05,390 nền tảng lập trình nhưng trong bối cảnh một, như bạn sẽ thấy, đó là 41 00:03:05,390 --> 00:03:09,140 ít đáng sợ, đó là ít hơn nhiều phức tạp, hơn bạn sẽ thấy 42 00:03:09,140 --> 00:03:10,140 trước khi dài. 43 00:03:10,140 --> 00:03:12,410 Và nhận ra, quá, cho những người bạn chỉ tham gia với chúng tôi 44 00:03:12,410 --> 00:03:16,170 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ư, 45 00:03:16,170 --> 00:03:20,260 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 46 00:03:20,260 --> 00:03:22,950 bạn học trong lớp này, nhưng nơi bạn, vào cuối học kỳ 47 00:03:22,950 --> 00:03:27,190 trong tuần 11, kết thúc tương đối so với chính mình ngay ngày hôm nay. 48 00:03:27,190 --> 00:03:32,000 >> Vì vậy, không có thêm ado, đây cũng là đáng chú ý là 49 00:03:32,000 --> 00:03:34,450 những người kém thoải mái, những nơi nào đó ở giữa, 50 00:03:34,450 --> 00:03:36,825 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 51 00:03:36,825 --> 00:03:38,760 vis-a-vis những người thoải mái hơn 52 00:03:38,760 --> 00:03:39,920 vào lớp này. 53 00:03:39,920 --> 00:03:41,810 Như bạn sẽ thấy trong những tuần tới, chúng tôi có khác nhau 54 00:03:41,810 --> 00:03:44,600 bài nhạc nền lại khác nhau, phần cho những người 55 00:03:44,600 --> 00:03:46,500 thoải mái, thoải mái hơn, những người một nơi nào đó 56 00:03:46,500 --> 00:03:47,250 ở giữa. 57 00:03:47,250 --> 00:03:49,520 Như bạn sẽ thấy cuối tuần này và tuần tới, hai phiên bản của 58 00:03:49,520 --> 00:03:52,410 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 59 00:03:52,410 --> 00:03:55,390 rằng tất cả các bạn có thể tự lựa chọn con đường mà bạn 60 00:03:55,390 --> 00:03:56,615 thấy thoải mái nhất. 61 00:03:56,615 --> 00:03:58,770 >> Vì vậy, ngày hôm nay, chúng tôi lặn vào chương trình này 62 00:03:58,770 --> 00:04:00,060 ngôn ngữ gọi là Scratch. 63 00:04:00,060 --> 00:04:02,250 Đó là một ngôn ngữ lập trình đồ họa, nhưng nó có 64 00:04:02,250 --> 00:04:04,500 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ẽ 65 00:04:04,500 --> 00:04:07,050 khám phá sau này trong học kỳ, trong đó C và 66 00:04:07,050 --> 00:04:08,670 JavaScript và PHP. 67 00:04:08,670 --> 00:04:11,890 Nhưng nó sẽ cho phép chúng ta tránh một số những phiền nhiễu 68 00:04:11,890 --> 00:04:14,890 sớm của cú pháp, những thứ như dấu chấm phẩy, dấu ngoặc đơn, 69 00:04:14,890 --> 00:04:17,720 và các chi tiết phức tạp, ở cái nhìn đầu tiên, chỉ là không 70 00:04:17,720 --> 00:04:19,916 ở tất cả trí tuệ thú vị và có xu hướng để có được trong 71 00:04:19,916 --> 00:04:22,310 đường từ một số hiểu biết cơ bản. 72 00:04:22,310 --> 00:04:24,870 Trong điều kiện của cấu trúc hỗ trợ trước, nhận ra điều này 73 00:04:24,870 --> 00:04:27,570 công cụ, CS50 bàn, sẽ được liên kết trên của khóa học 74 00:04:27,570 --> 00:04:30,320 trang web sau ngày hôm nay, là diễn đàn thảo luận trực tuyến 75 00:04:30,320 --> 00:04:32,480 mà bạn sẽ có thể đặt các câu hỏi của nhau và 76 00:04:32,480 --> 00:04:35,020 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, 77 00:04:35,020 --> 00:04:37,240 rằng chúng tôi sẽ sử dụng khá integratedly trong 78 00:04:37,240 --> 00:04:38,780 giờ là tốt. 79 00:04:38,780 --> 00:04:41,670 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 80 00:04:41,670 --> 00:04:43,930 tuần giờ hành chính là chìa khóa khá thấp. 81 00:04:43,930 --> 00:04:46,820 >> 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. 82 00:04:46,820 --> 00:04:48,930 Đó là khá tự giải thích, như chúng ta sẽ thấy, và vì vậy những gì 83 00:04:48,930 --> 00:04:51,380 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 84 00:04:51,380 --> 00:04:53,990 ý tưởng cơ bản, sau đó, kéo dài trong suốt 85 00:04:53,990 --> 00:04:54,900 phần còn lại của học kỳ. 86 00:04:54,900 --> 00:04:57,980 Nhưng bắt đầu từ Thứ hai, lúc 8:00 PM qua 11:00 PM 87 00:04:57,980 --> 00:05:01,530 văn phòng giờ trong Annenberg trên nghỉ não. 88 00:05:01,530 --> 00:05:04,490 Sectioning hai sẽ bắt đầu vào chiều nay, này 89 00:05:04,490 --> 00:05:07,260 cuối tuần, để cs50.net/section, và bạn sẽ 90 00:05:07,260 --> 00:05:08,530 được hỏi một số câu hỏi. 91 00:05:08,530 --> 00:05:10,290 Trong số đó, làm thế nào bạn sẽ mô tả của bạn 92 00:05:10,290 --> 00:05:12,040 mức độ thoải mái của ngày hôm nay? 93 00:05:12,040 --> 00:05:14,450 Không có quy tắc cứng nhanh như những người trong đó xô. 94 00:05:14,450 --> 00:05:17,170 Nó chỉ là loại điều mà bạn có thể biết nếu bạn 95 00:05:17,170 --> 00:05:20,280 là một trong số những người ít thoải mái hoặc bằng cách khác. 96 00:05:20,280 --> 00:05:21,350 >> Và bây giờ, walkthroughs. 97 00:05:21,350 --> 00:05:24,020 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 98 00:05:24,020 --> 00:05:28,560 và hacker phiên bản giống nhau, là trực tuyến tại cs50.net như của bây giờ. 99 00:05:28,560 --> 00:05:31,500 Và bạn sẽ thấy rằng trong các phiên bản đầu tiên, 100 00:05:31,500 --> 00:05:33,940 bản tiêu chuẩn mỗi tuần, kèm theo một cái gì đó, chúng tôi 101 00:05:33,940 --> 00:05:36,550 gọi một hướng mã, một phiên họp do một trong những 102 00:05:36,550 --> 00:05:39,100 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 103 00:05:39,100 --> 00:05:42,290 lời khuyên về, và nhận được bạn xuống một con đường đặc biệt khi nói đến 104 00:05:42,290 --> 00:05:44,150 để bắt đầu các bài tập. 105 00:05:44,150 --> 00:05:46,790 Vì vậy, với mỗi vấn đề này đặt ra, nếu bạn đã bao giờ muốn 106 00:05:46,790 --> 00:05:50,250 cho mình, nơi để tôi bắt đầu, bạn bắt đầu với những 107 00:05:50,250 --> 00:05:50,890 walkthroughs. 108 00:05:50,890 --> 00:05:53,450 Và trên thực tế, cho phép tôi giới thiệu Zamyla Chan, 109 00:05:53,450 --> 00:05:55,870 năm của giáo viên giảng dạy những người sẽ được dẫn đầu mỗi 110 00:05:55,870 --> 00:05:56,910 một trong những walkthroughs. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Vỗ tay] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHAN: Oh, hi, tất cả mọi người. 114 00:06:03,975 --> 00:06:05,130 Tên tôi là Zamyla. 115 00:06:05,130 --> 00:06:08,250 Tôi là một cơ sở nghiên cứu kỹ thuật trong Winthrop House. 116 00:06:08,250 --> 00:06:10,890 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 117 00:06:10,890 --> 00:06:13,350 có thể, đó là lý do tại sao tôi thực sự vui mừng được dẫn này 118 00:06:13,350 --> 00:06:14,590 năm walkthroughs. 119 00:06:14,590 --> 00:06:16,950 Walkthroughs, đối với tôi, là một phần thiết yếu của CS50 của tôi 120 00:06:16,950 --> 00:06:17,910 kinh nghiệm. 121 00:06:17,910 --> 00:06:22,710 Trong walkthrough, cho mỗi tập-p, chúng ta sẽ đi qua 122 00:06:22,710 --> 00:06:25,580 vấn đề với nhau, nhìn qua các vấn đề, loại 123 00:06:25,580 --> 00:06:27,360 chia chúng thành cắn quản lý. 124 00:06:27,360 --> 00:06:28,990 Tôi sẽ cung cấp cho bạn lời khuyên, kỹ thuật, để có được 125 00:06:28,990 --> 00:06:30,820 thông qua và bắt đầu. 126 00:06:30,820 --> 00:06:33,510 Tôi hy vọng tất cả các bạn tại walkthroughs. 127 00:06:33,510 --> 00:06:34,720 Nếu bạn không thể làm cho nó trong người, sau đó 128 00:06:34,720 --> 00:06:36,580 hãy làm điều chỉnh trong trực tuyến. 129 00:06:36,580 --> 00:06:36,840 >> DAVID Malan: Tuyệt vời. 130 00:06:36,840 --> 00:06:37,950 Cảm ơn bạn, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Vì vậy, nhận ra rằng walkthroughs, quả thật vậy, vào ngày thứ sáu 132 00:06:40,870 --> 00:06:43,110 buổi chiều, nhưng đây là cố ý bởi thiết kế để 133 00:06:43,110 --> 00:06:45,750 ngay cả khi bạn không muốn tham dự lớp học vào ngày thứ sáu 134 00:06:45,750 --> 00:06:48,490 buổi chiều, các video sẽ được tất cả các chi tiết nhanh chóng qua 135 00:06:48,490 --> 00:06:48,990 cuối tuần. 136 00:06:48,990 --> 00:06:51,880 Vì vậy, nhận ra rằng cs50.net sẽ được tất cả của Zamyla 137 00:06:51,880 --> 00:06:53,130 walkthroughs. 138 00:06:54,800 --> 00:06:56,890 Và đó là ngày hôm nay và thời gian, 3:00 PM, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 Và một số các nghiên cứu sinh giảng dạy cũng đã chuẩn bị 141 00:07:00,080 --> 00:07:03,250 một số nhận xét cho bạn vắng mặt để cung cấp cho bạn một chút 142 00:07:03,250 --> 00:07:06,760 quan điểm là những gì kinh nghiệm của họ đến và 143 00:07:06,760 --> 00:07:08,990 đi ra ngoài CS50 là như thế nào. 144 00:07:08,990 --> 00:07:11,250 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 145 00:07:11,250 --> 00:07:18,100 một số nhân viên CS50. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON STEINKAMP: Tôi đã CS50 năm ngoái như là một sinh viên năm thứ nhất trong 147 00:07:20,440 --> 00:07:22,880 giảm, và nó hoàn toàn thổi tâm trí của tôi. 148 00:07:22,880 --> 00:07:25,090 Tôi chưa bao giờ thực hiện bất kỳ các lớp lập trình trước, 149 00:07:25,090 --> 00:07:26,380 và không bao giờ đi vào với bất cứ khoa học máy tính 150 00:07:26,380 --> 00:07:27,320 kinh nghiệm ở tất cả. 151 00:07:27,320 --> 00:07:29,240 Và chỉ, tôi nghe tin đồn về lớp 152 00:07:29,240 --> 00:07:30,050 quyết định mang nó. 153 00:07:30,050 --> 00:07:31,780 >> JULIA MITELMAN: Đó là thực sự thú vị, thực sự tham gia. 154 00:07:31,780 --> 00:07:33,480 Tôi vẫn còn đến ngày nay - 155 00:07:33,480 --> 00:07:36,560 Tôi chỉ vừa mới thấy có đĩa mềm mà David đã cho chúng tôi 156 00:07:36,560 --> 00:07:38,140 vào ngày đầu tiên của chúng tôi về bài giảng. 157 00:07:38,140 --> 00:07:40,020 Tôi đã treo nó trên tường của tôi. 158 00:07:40,020 --> 00:07:42,410 Đây có lẽ là một chút Nerdy, nhưng tôi treo ở trên của tôi 159 00:07:42,410 --> 00:07:46,930 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. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: thật xấu hổ. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON STEINKAMP: Khoa học máy tính là một cái gì đó bạn 162 00:07:50,770 --> 00:07:52,370 nên cố gắng ngay cả khi bạn không phải là một cho 163 00:07:52,370 --> 00:07:54,980 truyền thống khoa học. 164 00:07:54,980 --> 00:07:58,510 Đó là kinh nghiệm của riêng mình, và CS50 sẽ đảm bảo rằng bạn 165 00:07:58,510 --> 00:08:01,520 hỗ trợ thông qua nó với quân đội tảng thật sự của TF. 166 00:08:01,520 --> 00:08:03,700 >> 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 167 00:08:03,700 --> 00:08:04,215 những người bạn mới. 168 00:08:04,215 --> 00:08:07,170 Tôi cũng đã giới thiệu với nồng độ này và toàn bộ 169 00:08:07,170 --> 00:08:10,770 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ó 170 00:08:10,770 --> 00:08:14,360 và chào đón bạn với gia đình CS50 của chúng tôi. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv YACOBY: CS50 chỉ dạy cho bạn làm thế nào để sử dụng các công cụ 172 00:08:17,510 --> 00:08:19,210 được truy cập rộng rãi. 173 00:08:19,210 --> 00:08:21,840 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 174 00:08:21,840 --> 00:08:26,030 cần phải học để viết một số mã, và bạn thực sự có thể xây dựng 175 00:08:26,030 --> 00:08:27,400 gọn gàng mọi thứ. 176 00:08:27,400 --> 00:08:31,660 >> KAREN Xiao: Nó chỉ là như vậy mát mẻ để có thể làm một cái gì đó 177 00:08:31,660 --> 00:08:34,580 và có những người sử dụng nó và có người nhìn thấy nó, và đó là 178 00:08:34,580 --> 00:08:35,900 những gì tôi thực sự yêu thích nó. 179 00:08:35,900 --> 00:08:37,429 >> TIM McLaughlin: - ý thức cộng đồng, tôi nghĩ, trong 180 00:08:37,429 --> 00:08:39,470 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. 181 00:08:39,470 --> 00:08:41,350 Bạn không chỉ dùng khác - 182 00:08:41,350 --> 00:08:42,740 bạn không điền một yêu cầu khác. 183 00:08:42,740 --> 00:08:45,310 Bạn không chỉ đi cho tới các bài giảng để và sẽ phần. 184 00:08:45,310 --> 00:08:49,630 Nhưng bạn đang làm tấn điều là tất cả về 185 00:08:49,630 --> 00:08:51,560 lập trình và tất cả về công nghệ, nhưng nó không 186 00:08:51,560 --> 00:08:53,090 thực sự cảm thấy như một lớp học hầu hết thời gian. 187 00:08:53,090 --> 00:08:55,012 >> TRAVIS DOWNS: vào ngày đầu tiên, họ đưa ra bánh, và 188 00:08:55,012 --> 00:08:56,215 Tôi đã ngay lập tức được bán ra. 189 00:08:56,215 --> 00:08:57,822 >> JACOB Pritt: kẹo và bánh pizza miễn phí. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - bất kể mức độ quan tâm của bạn, tôi nghĩ rằng 191 00:08:59,820 --> 00:09:05,170 CS50, bạn sẽ có niềm vui, và bạn sẽ có trí tuệ 192 00:09:05,170 --> 00:09:06,070 kích thích. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: luôn luôn là một bên trong lớp học, và đó là một 194 00:09:07,926 --> 00:09:09,990 tiệc tùng mỗi đêm làm việc trên bộ p-. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON STEINKAMP: Mỗi lần bạn hoàn thành một bộ vấn đề, bạn 196 00:09:11,880 --> 00:09:13,710 sẽ cảm thấy như bạn đã hoàn thành một dự án. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: là sinh viên năm thứ nhất năm, và tôi đã thực hiện mua sắm. 198 00:09:16,580 --> 00:09:19,030 Tôi đã có bốn lớp học của tôi đã sẵn sàng, và tôi đã được ở Annenberg. 199 00:09:19,030 --> 00:09:21,670 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 200 00:09:21,670 --> 00:09:24,330 lớp này được gọi là CS50, và bạn nên đi với tôi. 201 00:09:24,330 --> 00:09:28,150 Đã kết thúc dùng nó rơi, và sau lớp học, tôi 202 00:09:28,150 --> 00:09:30,510 nghĩ có lẽ tôi sẽ nhỏ trong CS. 203 00:09:30,510 --> 00:09:33,760 Nhưng ở đây tôi, ba năm sau, vẫn đang nghiên cứu máy tính 204 00:09:33,760 --> 00:09:36,680 khoa học và thực sự làm việc đó như là một lớn, và tôi yêu mọi 205 00:09:36,680 --> 00:09:37,780 thời điểm của nó. 206 00:09:37,780 --> 00:09:39,030 >> ROB Bowden: Tôi không có ý tưởng. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: Hãy xem. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: điên cuồng. 209 00:09:49,200 --> 00:09:50,610 >> SPEAKER 1: Tôi cảm thấy như tôi sẽ rất cliche. 210 00:09:50,610 --> 00:09:52,530 Tôi chỉ muốn nói, thích, awesome. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv YACOBY: Tiếp cận. 212 00:09:53,540 --> 00:09:55,080 >> JACOB Pritt: kẹo và bánh pizza miễn phí. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: có thể từ chối một lớp học mà tay ra bánh. 214 00:09:57,310 --> 00:09:58,510 >> TIM McLaughlin: Energetic. 215 00:09:58,510 --> 00:10:00,040 >> Vipul Shekhawat: khái quát. 216 00:10:00,040 --> 00:10:02,636 >> ROB Bowden: Hãy để tôi nghĩ đến một câu trả lời. 217 00:10:02,636 --> 00:10:04,480 Tôi nghĩ rằng tôi có một cái gì đó. 218 00:10:04,480 --> 00:10:07,092 Oh, thượng đế. 219 00:10:07,092 --> 00:10:13,370 Yeah, tên của Rob Bowden, và đây là CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Vỗ tay] 221 00:10:20,810 --> 00:10:23,390 DAVID Malan: Được rồi, vì vậy hãy bắt đầu vẽ một bức tranh 222 00:10:23,390 --> 00:10:26,230 hướng mà chúng ta có thể đi, và chúng ta hãy giới thiệu 223 00:10:26,230 --> 00:10:28,190 khái niệm này được gọi là giả. 224 00:10:28,190 --> 00:10:29,560 Vì vậy, giả không phải là một lập trình 225 00:10:29,560 --> 00:10:30,810 ngôn ngữ unto chính nó. 226 00:10:30,810 --> 00:10:33,250 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 227 00:10:33,250 --> 00:10:36,490 chung cách thể hiện bản thân khá chính xác, 228 00:10:36,490 --> 00:10:39,730 khá thuật toán, khá thủ tục, nhưng không có 229 00:10:39,730 --> 00:10:42,570 phải lo lắng về những gì ngôn ngữ mà bạn đang thể hiện 230 00:10:42,570 --> 00:10:43,150 mình in 231 00:10:43,150 --> 00:10:46,280 Đó là một số mô hình của tiếng Anh và các ngôn ngữ lập trình 232 00:10:46,280 --> 00:10:48,790 mà bạn xảy ra để được quen thuộc, vì vậy chúng tôi có thể bắt đầu 233 00:10:48,790 --> 00:10:50,600 viết các loại điều này khi chúng ta đi. 234 00:10:50,600 --> 00:10:54,450 Và trong thực tế, Joseph, tôi có thể mượn bạn lên trên sân khấu để được 235 00:10:54,450 --> 00:10:55,490 người ghi chép ở đây? 236 00:10:55,490 --> 00:11:00,130 Tôi đã đi trước đây trước và quên đặt 237 00:11:00,130 --> 00:11:02,920 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 238 00:11:02,920 --> 00:11:03,780 vô lý ví dụ. 239 00:11:03,780 --> 00:11:04,580 >> Bây giờ, tôi cần bạn ở đây. 240 00:11:04,580 --> 00:11:05,630 Tôi sẽ làm một phần tất. 241 00:11:05,630 --> 00:11:08,040 Vì vậy, ở đây chúng tôi có một pad đầu nhỏ. 242 00:11:08,040 --> 00:11:09,940 Điều này có nghĩa là chỉ cần TextEdit trong một máy Mac. 243 00:11:09,940 --> 00:11:12,270 Chúng tôi không thực sự sẽ viết một chương trình Runnable, nhưng 244 00:11:12,270 --> 00:11:14,220 chúng ta sẽ bắt đầu phác thảo ra giả dựa trên 245 00:11:14,220 --> 00:11:17,830 trên một số lời khuyên bạn cung cấp cho tôi ở đây. 246 00:11:17,830 --> 00:11:20,760 Vì vậy, đây là đống vớ ở nhà. 247 00:11:20,760 --> 00:11:23,320 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 248 00:11:23,320 --> 00:11:26,280 cần phải viết một chương trình, một thuật toán của các loại, 249 00:11:26,280 --> 00:11:27,900 để có được những vớ trên đôi chân của tôi. 250 00:11:27,900 --> 00:11:30,860 Và trên đường đi, chúng ta hãy xem nếu chúng ta đi qua, hoặc gặp phải, 251 00:11:30,860 --> 00:11:32,860 một số trong những ý tưởng mà bạn sẽ phải bắt đầu 252 00:11:32,860 --> 00:11:35,470 suy nghĩ nghiêm túc hơn khi lập trình 253 00:11:35,470 --> 00:11:37,950 vì sợ rằng chương trình của bạn không cư xử khá như dự định. 254 00:11:37,950 --> 00:11:39,580 >> Vì vậy, tôi ngồi xuống đây. 255 00:11:39,580 --> 00:11:41,180 Tôi đã có đống vớ. 256 00:11:41,180 --> 00:11:43,780 Điều đầu tiên con người một cách hợp lý sẽ là gì 257 00:11:43,780 --> 00:11:46,600 làm gì khi mục tiêu là để đưa vào một đôi vớ? 258 00:11:46,600 --> 00:11:49,190 Ai đó đưa cho tôi một bước, và chỉ có một bước. 259 00:11:49,190 --> 00:11:49,796 Yeah? 260 00:11:49,796 --> 00:11:50,690 Khán giả: Cúi xuống. 261 00:11:50,690 --> 00:11:54,290 DAVID Malan: Cúi xuống, được rồi. 262 00:11:54,290 --> 00:11:55,540 Bước hai. 263 00:11:59,975 --> 00:12:00,645 Bước hai. 264 00:12:00,645 --> 00:12:01,840 Khán giả: Đón vớ của bạn. 265 00:12:01,840 --> 00:12:03,220 DAVID Malan: Đón vớ của bạn. 266 00:12:03,220 --> 00:12:07,610 Đượ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 267 00:12:07,610 --> 00:12:09,380 stumbling khối mà chúng ta cần phải cố tình 268 00:12:09,380 --> 00:12:10,290 gặp ở đây. 269 00:12:10,290 --> 00:12:14,110 Đó là một chút mơ hồ, nên chọn chiếc vớ của bạn. 270 00:12:14,110 --> 00:12:17,425 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 271 00:12:17,425 --> 00:12:20,420 bit, sẽ không có sắp xếp của bản năng con người chỉ 272 00:12:20,420 --> 00:12:21,490 chọn một trong những gần nhất. 273 00:12:21,490 --> 00:12:23,590 Chúng ta sẽ phải bắt đầu, trước khi dài, thể hiện 274 00:12:23,590 --> 00:12:24,610 mình chính xác hơn. 275 00:12:24,610 --> 00:12:26,600 >> Được rồi, do đó, bước hai là nhận vớ của bạn. 276 00:12:26,600 --> 00:12:27,520 Chúng tôi sẽ mang nó. 277 00:12:27,520 --> 00:12:28,620 Bước ba. 278 00:12:28,620 --> 00:12:29,532 Ở phía sau. 279 00:12:29,532 --> 00:12:30,900 Khán giả: Tìm một cặp kết hợp. 280 00:12:30,900 --> 00:12:32,060 DAVID Malan: Tìm cặp phù hợp. 281 00:12:32,060 --> 00:12:34,740 Được rồi, do đó, điều này là tốt. 282 00:12:34,740 --> 00:12:35,650 Tôi đã phải lựa chọn này vớ. 283 00:12:35,650 --> 00:12:39,200 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ì 284 00:12:39,200 --> 00:12:39,990 không có nghĩa là? 285 00:12:39,990 --> 00:12:42,130 Một con người hợp lý, giống như hôm thứ tư khi tôi chỉ 286 00:12:42,130 --> 00:12:44,700 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 287 00:12:44,700 --> 00:12:45,640 đi với bản năng của họ. 288 00:12:45,640 --> 00:12:49,220 Nhưng ở đây, rõ ràng là này vớ ở đây, nhưng một máy tính 289 00:12:49,220 --> 00:12:51,350 sẽ không để được như vậy theo bản năng. 290 00:12:51,350 --> 00:12:53,830 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 291 00:12:53,830 --> 00:12:55,380 thảo luận hôm thứ Tư, và những người 292 00:12:55,380 --> 00:12:56,710 tổ chức bằng cách nào đó trong bộ nhớ. 293 00:12:56,710 --> 00:13:00,400 Nhưng điểm là một máy tính chỉ có khả năng 294 00:13:00,400 --> 00:13:03,390 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 295 00:13:03,390 --> 00:13:05,980 con người - mặc dù nó cảm thấy như Tôi liếc nhìn xuống và phân chia 296 00:13:05,980 --> 00:13:08,900 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 297 00:13:08,900 --> 00:13:12,000 có lẽ không một cách nhanh chóng lướt qua của những người vớ, và sau đó latched 298 00:13:12,000 --> 00:13:13,400 trên một trong câu hỏi. 299 00:13:13,400 --> 00:13:15,780 >> 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, 300 00:13:15,780 --> 00:13:17,780 làm thế nào để tôi tìm thấy cặp đôi này kết hợp? 301 00:13:17,780 --> 00:13:18,890 Vâng, chúng tôi phải lặp. 302 00:13:18,890 --> 00:13:21,440 Chúng ta phải có lẽ vòng qua đống lộn xộn này vớ trên 303 00:13:21,440 --> 00:13:25,760 sàn do đó tôi nói một cái gì đó như CHO MỖI vớ, nhặt nó 304 00:13:25,760 --> 00:13:30,195 VÀ NẾU cùng hình dạng và kích thước như một khác, THEN 305 00:13:30,195 --> 00:13:32,150 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. 306 00:13:32,150 --> 00:13:34,430 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. 307 00:13:34,430 --> 00:13:36,520 Tôi kiểm tra này bằng một trong những điều này. 308 00:13:36,520 --> 00:13:38,250 Nó không phải, vì vậy tôi đặt sang một bên phụ. 309 00:13:38,250 --> 00:13:39,220 Sau đó, tôi lặp lại một lần nữa. 310 00:13:39,220 --> 00:13:40,340 Này bằng? 311 00:13:40,340 --> 00:13:42,010 Không, nó không, vì vậy tôi đặt nó sang một bên. 312 00:13:42,010 --> 00:13:42,710 Là một trong những điều này? 313 00:13:42,710 --> 00:13:43,200 Không. 314 00:13:43,200 --> 00:13:43,670 Này? 315 00:13:43,670 --> 00:13:44,520 Không, và vv. 316 00:13:44,520 --> 00:13:48,730 Và cuối cùng, hy vọng, tôi sẽ gặp phải vớ này ở đây. 317 00:13:48,730 --> 00:13:51,350 Vì vậy, nếu nó cùng một hình dạng, kích thước, mất nó. 318 00:13:51,350 --> 00:13:53,980 >> Và bây giờ, những gì sẽ là bước tiếp theo của chúng tôi ở đây? 319 00:13:53,980 --> 00:13:54,402 Yeah? 320 00:13:54,402 --> 00:13:56,090 Khán giả: Xác định ngay từ bên trái. 321 00:13:56,090 --> 00:13:58,980 DAVID Malan: Được rồi, xác định các bên phải và trái, do đó, 322 00:13:58,980 --> 00:14:01,870 may mắn thay, là loại công trình. 323 00:14:01,870 --> 00:14:04,020 Một đối xứng chút, hoặc tôi vừa mặc chúng như vậy. 324 00:14:04,020 --> 00:14:07,020 Được rồi, vì vậy tôi đã xác định quyền. 325 00:14:07,020 --> 00:14:09,980 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 326 00:14:09,980 --> 00:14:12,890 đã và đang làm ở đây là sắp xếp của một lập trình viên thông thạo. 327 00:14:12,890 --> 00:14:15,800 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ỉ 328 00:14:15,800 --> 00:14:18,480 số dòng, Joseph đã bắt đầu để làm điều này 329 00:14:18,480 --> 00:14:19,460 sắp xếp của indentation. 330 00:14:19,460 --> 00:14:21,950 Thật vậy, đây là một quy ước rất phổ biến trong lập trình, 331 00:14:21,950 --> 00:14:26,110 theo đó khi bạn làm điều gì đó lặp đi lặp lại, vòng lặp phong cách, 332 00:14:26,110 --> 00:14:28,480 chúng ta đang ám chỉ với cụm từ tiếng Anh "CHO ​​MỖI 333 00:14:28,480 --> 00:14:31,090 vớ ", quy ước trong giả, và như chúng ta sẽ thấy, 334 00:14:31,090 --> 00:14:33,410 bình thường, ngôn ngữ lập trình là chỉ cần thụt lề. 335 00:14:33,410 --> 00:14:36,240 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ự, 336 00:14:36,240 --> 00:14:40,660 để lồng nhau bên dưới "CHO ​​MỖI vớ" là đoạn 337 00:14:40,660 --> 00:14:43,430 thứ mà bạn cần làm là một kết quả của vòng lặp đó. 338 00:14:43,430 --> 00:14:45,940 Vì vậy, đó là tất cả những gì truyền đạt ngữ nghĩa. 339 00:14:45,940 --> 00:14:48,620 Bây giờ trong khi đó, "Nếu đó là cùng một hình dạng và kích thước," 340 00:14:48,620 --> 00:14:51,590 thực tế là "nó" tiếp tục được thụt vào chỉ có nghĩa là 341 00:14:51,590 --> 00:14:54,370 đó là điều duy nhất bạn nên làm gì nếu tình trạng đó, 342 00:14:54,370 --> 00:14:59,770 nếu mà chi nhánh, đó là ngã ba trên đường, trong thực tế, đúng sự thật. 343 00:14:59,770 --> 00:15:02,130 >> 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. 344 00:15:02,130 --> 00:15:03,410 Tôi đã xác định đúng. 345 00:15:03,410 --> 00:15:05,150 Hãy cho anh bước năm. 346 00:15:05,150 --> 00:15:07,880 Và về mặt kỹ thuật, chúng tôi thực sự có thể gọi 347 00:15:07,880 --> 00:15:09,510 FOR điều MỖI - 348 00:15:09,510 --> 00:15:11,450 có lẽ bạn nên đánh số tất cả các dòng nếu 349 00:15:11,450 --> 00:15:12,190 chúng ta sẽ làm điều này. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [không nghe được] 351 00:15:14,006 --> 00:15:14,610 DAVID Malan: [không nghe được? 352 00:15:14,610 --> 00:15:16,070 Được, tốt thôi, được rồi, chúng tôi sẽ làm theo cách của bạn. 353 00:15:16,070 --> 00:15:19,590 Được rồi, do đó, năm bước, làm thế nào để chúng tôi làm đúng sock? 354 00:15:19,590 --> 00:15:22,310 Làm thế nào để chúng ta tiến hành tiếp theo, ở đây không? 355 00:15:22,310 --> 00:15:22,730 Vâng? 356 00:15:22,730 --> 00:15:24,300 Khán giả: Nâng lên chân phải. 357 00:15:24,300 --> 00:15:27,100 DAVID Malan: Nâng lên chân phải, được rồi. 358 00:15:27,100 --> 00:15:29,330 Bước 6? 359 00:15:29,330 --> 00:15:30,728 Nhanh chóng. 360 00:15:30,728 --> 00:15:31,202 Yeah. 361 00:15:31,202 --> 00:15:33,100 Khán giả: Tìm một kết thúc mở của sock. 362 00:15:33,100 --> 00:15:34,440 DAVID Malan: Được rồi, kết thúc mở của sock. 363 00:15:34,440 --> 00:15:34,840 Vì vậy, tốt. 364 00:15:34,840 --> 00:15:37,180 Vì vậy, ở đây, trung thực, một bản năng rất phổ biến sẽ chỉ được 365 00:15:37,180 --> 00:15:39,880 đưa vào vớ phải, nhưng đó cũng là khá mơ hồ. 366 00:15:39,880 --> 00:15:42,750 Trừ khi máy tính hoặc con người biết chính xác những gì có nghĩa là, 367 00:15:42,750 --> 00:15:45,160 nó sẽ không phải là để thực hiện điều đó, vì vậy ở đây, tôi đã 368 00:15:45,160 --> 00:15:46,520 tìm thấy sự mở cửa của cổ phiếu. 369 00:15:46,520 --> 00:15:48,222 Bước bảy? 370 00:15:48,222 --> 00:15:49,700 TƯỢNG: Chạm vào ngón chân của bạn. 371 00:15:49,700 --> 00:15:51,070 DAVID Malan: cảm ứng ngón chân. 372 00:15:51,070 --> 00:15:53,546 Được rồi, vì vậy bây giờ chúng ta đi - 373 00:15:53,546 --> 00:15:56,480 Được rồi, tôi sẽ có một số quyền tự do ở đây. 374 00:15:56,480 --> 00:15:57,110 Cảm ơn. 375 00:15:57,110 --> 00:15:59,210 Bước tám? 376 00:15:59,210 --> 00:16:00,060 Đặt trên vớ. 377 00:16:00,060 --> 00:16:02,060 Đượ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 378 00:16:02,060 --> 00:16:03,480 một ở nhà này. 379 00:16:03,480 --> 00:16:05,980 Được rồi, do đó, điều này đi lên. 380 00:16:05,980 --> 00:16:07,950 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ự. 381 00:16:07,950 --> 00:16:08,920 Đặt sock. 382 00:16:08,920 --> 00:16:10,853 Được rồi, bây giờ bước 9? 383 00:16:10,853 --> 00:16:11,740 Khán giả: Đặt chân xuống. 384 00:16:11,740 --> 00:16:12,510 DAVID Malan: Cảm ơn bạn. 385 00:16:12,510 --> 00:16:15,610 Bước chín, đặt chân xuống, và bây giờ, chúng ta có thể lặp lại. 386 00:16:15,610 --> 00:16:19,540 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 387 00:16:19,540 --> 00:16:21,960 trái sock, nhưng đó có lẽ đã được thực hiện. 388 00:16:21,960 --> 00:16:24,100 >> Và do đó, sau đó, tôi có thể sắp xếp lặp lại các bước. 389 00:16:24,100 --> 00:16:25,260 Tuy nhiên, loại này đặt ra câu hỏi. 390 00:16:25,260 --> 00:16:28,100 Trước đây, thời gian qua, chúng tôi muốn lặp lại điều gì đó, chúng tôi 391 00:16:28,100 --> 00:16:30,730 đã 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 392 00:16:30,730 --> 00:16:32,660 Mỗi vòng lặp vậy để nói chuyện. 393 00:16:32,660 --> 00:16:36,420 Nó sẽ làm cho cảm giác sử dụng một vòng lặp để xử lý cả hai 394 00:16:36,420 --> 00:16:38,470 bên trái và vớ quyền? 395 00:16:38,470 --> 00:16:40,460 Bởi vì nó cảm thấy giống như các hoạt động này đang có khá nhiều 396 00:16:40,460 --> 00:16:43,090 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 397 00:16:43,090 --> 00:16:44,850 bắt đầu ở đây? 398 00:16:44,850 --> 00:16:47,400 Chúng ta có vòng lặp, hoặc chúng ta chỉ cần giữ cho bước viết 399 00:16:47,400 --> 00:16:48,745 10, 11 và 12? 400 00:16:48,745 --> 00:16:50,540 Khán giả: Loop. 401 00:16:50,540 --> 00:16:52,240 >> DAVID Malan: Được rồi, do đó, vòng lặp. 402 00:16:52,240 --> 00:16:54,730 Tôi thực sự có thể đã nói chỉ cần tiếp tục đi. 403 00:16:54,730 --> 00:16:55,720 Vì vậy, tại sao lại là trường hợp? 404 00:16:55,720 --> 00:16:57,940 Vâng, đây là thực sự đầu tiên của chúng tôi không rõ ràng 405 00:16:57,940 --> 00:17:01,210 quyết định thiết kế, và trong thực tế, một trong các số liệu mà 406 00:17:01,210 --> 00:17:03,990 chúng tôi sẽ bắt đầu để đánh giá, cho bản thân và cho bạn, 407 00:17:03,990 --> 00:17:06,780 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à. 408 00:17:06,780 --> 00:17:09,619 Bạn đã thực hiện số tiền tối thiểu công việc cần thiết 409 00:17:09,619 --> 00:17:12,480 công việc làm một cách nhanh chóng nhất, hoặc trong điều khoản của 410 00:17:12,480 --> 00:17:15,430 thời gian của bạn hoặc về thời gian chạy của máy tính? 411 00:17:15,430 --> 00:17:17,589 Làm thế nào nhiều hoạt động cần để thực hiện? 412 00:17:17,589 --> 00:17:20,180 Vì vậy, có thể cho rằng đây là một cơ hội cho một vòng lặp vì 413 00:17:20,180 --> 00:17:22,829 ngay sau khi tôi bắt đầu sao chép và dán, như Joseph hiệu quả 414 00:17:22,829 --> 00:17:25,010 sẽ bắt đầu thực hiện trong một thời điểm, bạn lãng phí của bạn 415 00:17:25,010 --> 00:17:27,140 thời gian, và bạn đang được gấp đôi biểu cảm. 416 00:17:27,140 --> 00:17:30,260 >> Nhưng cùng một lúc, đây là thực sự chỉ là hai đặc biệt 417 00:17:30,260 --> 00:17:31,890 trường hợp, trái và phải. 418 00:17:31,890 --> 00:17:34,930 Và trong khi trước đó, tôi có thể có 10 hoặc 20 hoặc nhiều hơn vớ trong 419 00:17:34,930 --> 00:17:37,960 một đống, nó chắc chắn làm cho cảm giác không có 50 dòng 420 00:17:37,960 --> 00:17:40,180 mã nói kiểm tra này sock, sau đó tiếp theo, 421 00:17:40,180 --> 00:17:41,300 sau đó là một trong những kế tiếp. 422 00:17:41,300 --> 00:17:43,450 Ở đây, nó là một chút ít rõ ràng hơn, và tôi sẽ đề xuất 423 00:17:43,450 --> 00:17:44,390 chúng tôi có thể đi một trong hai cách. 424 00:17:44,390 --> 00:17:46,720 Chúng tôi có thể có vòng lặp đó, mặc dù nó chỉ vòng 425 00:17:46,720 --> 00:17:50,620 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 426 00:17:50,620 --> 00:17:53,270 ở đây để có được công việc làm. 427 00:17:53,270 --> 00:17:55,210 Tuy nhiên, chương trình này là lỗi, do đó, để nói chuyện. 428 00:17:55,210 --> 00:17:59,120 Nó có thể có một số sai lầm, sai sót, hoặc trường hợp góc, vì vậy để 429 00:17:59,120 --> 00:18:00,860 nói, rằng chúng tôi đã không thực sự dự đoán. 430 00:18:00,860 --> 00:18:03,400 Không có gì đã đi sai thời gian này, nhưng những gì có thể đã đi sai 431 00:18:03,400 --> 00:18:06,100 trong khi thực hiện chương trình này? 432 00:18:06,100 --> 00:18:07,040 Khán giả: Bạn không có bất kỳ vớ. 433 00:18:07,040 --> 00:18:08,980 >> DAVID Malan: Như vậy, có thể sẽ không có vớ gì. 434 00:18:08,980 --> 00:18:10,380 Vì vậy, chúng ta hãy xem xét trường hợp góc đó. 435 00:18:10,380 --> 00:18:14,670 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à 436 00:18:14,670 --> 00:18:16,540 cúi xuống, do đó, kiểm tra. 437 00:18:16,540 --> 00:18:21,250 Bước hai, chọn vớ của bạn, nhưng sau đó tìm thấy vớ phù hợp, 438 00:18:21,250 --> 00:18:22,420 xác định đúng. 439 00:18:22,420 --> 00:18:25,050 Chúng tôi loại một bó toàn bộ các giả định, và điều này là, 440 00:18:25,050 --> 00:18:27,720 thẳng thắn, tại sao chương trình đôi khi sụp đổ. 441 00:18:27,720 --> 00:18:30,240 Nếu bạn, các lập trình viên, đã thực hiện một số giả định, giống như 442 00:18:30,240 --> 00:18:33,000 chắc chắn có sẽ là vớ hoặc chắc chắn có đi 443 00:18:33,000 --> 00:18:35,310 là bộ nhớ còn lại trong máy tính, chắc chắn sẽ 444 00:18:35,310 --> 00:18:37,420 là không gian đĩa còn lại trên ổ đĩa cứng - 445 00:18:37,420 --> 00:18:39,040 Vâng, nếu bạn thực hiện những giả định, và đó không phải, 446 00:18:39,040 --> 00:18:41,880 trong thực tế, thực tế, những người hiểu biết đôi khi những gì máy tính 447 00:18:41,880 --> 00:18:42,520 sẽ làm gì? 448 00:18:42,520 --> 00:18:44,450 Và đôi khi, khi bạn nhận được quả bóng bãi biển kéo sợi hoặc 449 00:18:44,450 --> 00:18:47,750 đông lạnh Windows hoặc các loại tương tự, đó là chính xác bởi vì một số 450 00:18:47,750 --> 00:18:50,980 lập trình viên đã không dự đoán được gọi là những trường hợp góc. 451 00:18:50,980 --> 00:18:53,050 Những gì có thể đã đi sai trong chương trình này? 452 00:18:53,050 --> 00:18:53,330 Yeah? 453 00:18:53,330 --> 00:18:55,950 >> TƯỢNG: Bạn không có một chân phải và chân trái. 454 00:18:55,950 --> 00:18:58,920 DAVID Malan: Được rồi, có thể không có cả một chân bên phải và một 455 00:18:58,920 --> 00:19:01,940 chân trái, và do đó, chương trình này có thể không được phổ 456 00:19:01,940 --> 00:19:02,590 áp dụng. 457 00:19:02,590 --> 00:19:03,658 Những người khác? 458 00:19:03,658 --> 00:19:05,650 Khán giả: Bạn có thể chọn một chiếc vớ trẻ mồ côi. 459 00:19:05,650 --> 00:19:07,970 DAVID Malan: Tôi có thể chọn một chiếc vớ trẻ mồ côi, do đó, một 460 00:19:07,970 --> 00:19:11,250 không phù hợp với vớ mà chỉ cần không có anh chị em vì tôi đã 461 00:19:11,250 --> 00:19:13,650 mất nó, nó bị rách, rửa vẫn còn, hoặc tương tự. 462 00:19:13,650 --> 00:19:15,550 Vì vậy, mà đã không thực sự được xử lý. 463 00:19:15,550 --> 00:19:15,790 Yeah? 464 00:19:15,790 --> 00:19:17,510 Khán giả: Bạn có thể đã có tất. 465 00:19:17,510 --> 00:19:19,050 DAVID Malan: Tôi đã có thể có tất. 466 00:19:19,050 --> 00:19:20,080 Tôi đã không thực sự kiểm tra. 467 00:19:20,080 --> 00:19:23,350 NẾU bạn không có vớ vào, sau đó tiến hành làm 468 00:19:23,350 --> 00:19:24,330 dòng một và hai. 469 00:19:24,330 --> 00:19:24,980 Và điều đó có thể xảy ra. 470 00:19:24,980 --> 00:19:26,880 Bạn ngủ với vớ của bạn và như thế, vì vậy 471 00:19:26,880 --> 00:19:28,860 rằng, quá, một trường hợp góc rất hợp lý. 472 00:19:28,860 --> 00:19:29,630 Và có lẽ một trong những khác? 473 00:19:29,630 --> 00:19:31,310 Khán giả: vớ là trong ra ngoài. 474 00:19:31,310 --> 00:19:34,000 DAVID Malan: Vì vậy, vớ bên trong ra ngoài, nên chúng tôi đã không có lỗi 475 00:19:34,000 --> 00:19:35,330 kiểm tra, trong ngắn hạn. 476 00:19:35,330 --> 00:19:38,550 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. 477 00:19:38,550 --> 00:19:41,310 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. 478 00:19:41,310 --> 00:19:43,310 >> Và mặc dù đây là loại của một ví dụ vô lý 479 00:19:43,310 --> 00:19:46,110 liên quan đến vớ, vào cuối ngày, điều này là đúng 480 00:19:46,110 --> 00:19:48,740 sắp xếp suy nghĩ bạn cần phải có trong khi viết chương trình, 481 00:19:48,740 --> 00:19:51,740 ngay cả trong Scratch cũng như trong C, JavaScript, PHP, 482 00:19:51,740 --> 00:19:53,920 bởi vì nếu không, chương trình sẽ triển lãm 483 00:19:53,920 --> 00:19:56,980 tương đương với quả bóng bãi biển quay hoặc chỉ mang lại 484 00:19:56,980 --> 00:19:58,210 không chính xác kết quả. 485 00:19:58,210 --> 00:20:00,250 Vì vậy, cảm ơn nhiều đây để Joseph ghi chép của chúng tôi. 486 00:20:00,250 --> 00:20:05,060 [Vỗ tay] 487 00:20:05,060 --> 00:20:06,850 >> DAVID Malan: Được rồi, vì vậy những gì, trong 488 00:20:06,850 --> 00:20:08,230 thực tế, một chương trình máy tính? 489 00:20:08,230 --> 00:20:09,670 Vâng, chúng ta hãy có một cái nhìn nhanh chóng tại một 490 00:20:09,670 --> 00:20:11,100 đại diện ở đây. 491 00:20:11,100 --> 00:20:15,260 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 492 00:20:15,260 --> 00:20:17,830 ngôn ngữ khá cũ những ngày này, nhưng nhiều người mới được xây dựng 493 00:20:17,830 --> 00:20:18,460 trên đầu trang của nó. 494 00:20:18,460 --> 00:20:21,180 Thật vậy, PHP, một trong các ngôn ngữ web trung tâm chúng tôi sẽ 495 00:20:21,180 --> 00:20:24,050 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 496 00:20:24,050 --> 00:20:27,550 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 497 00:20:27,550 --> 00:20:28,690 trong nhiều tuần kể từ bây giờ. 498 00:20:28,690 --> 00:20:30,840 Nhưng chương trình này, và đây là những gì nó có nghĩa là để viết một 499 00:20:30,840 --> 00:20:32,880 chương trình, mặc dù là một trong rất đơn giản. 500 00:20:32,880 --> 00:20:35,540 Chúng tôi có một số cú pháp khá khó hiểu ở đây, nhưng bạn có thể 501 00:20:35,540 --> 00:20:38,340 có thể đoán, ngay cả khi bạn đã không bao giờ được lập trình trước, những gì 502 00:20:38,340 --> 00:20:39,750 chương trình này. 503 00:20:39,750 --> 00:20:43,640 Thật vậy, tôi không biết những gì printf là, nhưng in chắc chắn 504 00:20:43,640 --> 00:20:45,700 gợi lên ý tưởng in một cái gì đó. 505 00:20:45,700 --> 00:20:48,590 Và do đó, có, chương trình này cuối cùng sẽ in ra 506 00:20:48,590 --> 00:20:50,250 dòng chữ "Hello, World." 507 00:20:50,250 --> 00:20:53,390 >> 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 508 00:20:53,390 --> 00:20:55,550 , ít nhất là nếu bạn đã tải về một số tự do 509 00:20:55,550 --> 00:20:58,000 phần mềm có sẵn, bạn có thể đã được viết chương trình trên 510 00:20:58,000 --> 00:21:00,310 máy tính xách tay của bạn trong một thời gian ngay bây giờ. 511 00:21:00,310 --> 00:21:03,040 Trên Mac OS, ví dụ, có chương trình này được gọi là 512 00:21:03,040 --> 00:21:05,340 Thiết bị đầu cuối mà đi kèm với một máy Mac, đó là thường của bạn 513 00:21:05,340 --> 00:21:07,550 Utilities thư mục, và nó thường mở ra một màu đen và 514 00:21:07,550 --> 00:21:09,820 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 515 00:21:09,820 --> 00:21:11,410 nhắc mà tại đó bạn có thể gõ lệnh. 516 00:21:11,410 --> 00:21:13,060 Vì vậy, đây thực sự là gợi nhớ về những gì máy tính 517 00:21:13,060 --> 00:21:15,100 được sử dụng để được trước khi người dùng đồ họa 518 00:21:15,100 --> 00:21:16,710 giao diện, ảnh minh hoạ, đến cùng. 519 00:21:16,710 --> 00:21:19,200 Bây giờ, trong Windows, bạn có một cơ chế tương tự trong các hình thức 520 00:21:19,200 --> 00:21:20,130 dấu nhắc lệnh. 521 00:21:20,130 --> 00:21:23,430 >> Nhưng những gì tôi đang làm ở đây là mở, hãy nói, 522 00:21:23,430 --> 00:21:26,580 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 523 00:21:26,580 --> 00:21:28,870 giả một chút thời gian trước đây, và tôi sẽ đi trước và 524 00:21:28,870 --> 00:21:30,080 viết chương trình đầu tiên của tôi. 525 00:21:30,080 --> 00:21:34,030 Bao gồm stdio.h, bất cứ điều gì đó có nghĩa là, int main 526 00:21:34,030 --> 00:21:36,880 void, đó có nghĩa là bất cứ điều gì, và sau đó trong giữa ở đây, 527 00:21:36,880 --> 00:21:40,560 printf ("hello, thế giới".). Và sau đó đóng quote, 528 00:21:40,560 --> 00:21:42,340 đóng dấu ngoặc, dấu chấm phẩy. 529 00:21:42,340 --> 00:21:44,460 Bây giờ tôi sẽ đi trước và chỉ cần nhấn Command-S. Tôi sẽ 530 00:21:44,460 --> 00:21:47,650 đi trước và tiết kiệm này là hello.c, do đó, các quy ước trong 531 00:21:47,650 --> 00:21:50,530 thế giới của lập trình C là tên tập tin dot c. 532 00:21:50,530 --> 00:21:52,880 Tôi sẽ chỉ cần đặt trong thư mục Home của John Harvard, 533 00:21:52,880 --> 00:21:56,370 ở đây, nhấp vào Lưu, và bây giờ tôi sẽ đi qua này 534 00:21:56,370 --> 00:21:59,110 thiết bị đầu cuối cửa sổ, mà lại là nhắc nhở này màu đen và trắng 535 00:21:59,110 --> 00:22:00,860 nơi tôi có thể thực hiện các lệnh. 536 00:22:00,860 --> 00:22:04,550 >> 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 537 00:22:04,550 --> 00:22:06,710 nhấp đúp biểu tượng theo nghĩa thông thường. 538 00:22:06,710 --> 00:22:10,590 Nhưng điều này là về C là một ngôn ngữ như C đầu tiên 539 00:22:10,590 --> 00:22:13,150 đi kèm theo hình thức này, một cái gì đó được gọi là mã nguồn. 540 00:22:13,150 --> 00:22:15,400 Cái gì đó trông một chút như tiếng Anh, nhưng 541 00:22:15,400 --> 00:22:17,980 chắc chắn ít như tiếng Anh hơn so với giả Joseph 542 00:22:17,980 --> 00:22:18,930 lúc trước. 543 00:22:18,930 --> 00:22:20,560 Đó là nhiều hơn một chút phức tạp. 544 00:22:20,560 --> 00:22:22,830 Nó dường như tuân theo một số mô hình hoặc các quy định. 545 00:22:22,830 --> 00:22:25,300 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, 546 00:22:25,300 --> 00:22:28,240 niềng răng góc, cảm thấy như một máy tính đến với điều này 547 00:22:28,240 --> 00:22:29,250 loại ngôn ngữ. 548 00:22:29,250 --> 00:22:32,010 Nhưng nếu tôi đi, bây giờ, cửa sổ terminal này, tôi có thể chạy một 549 00:22:32,010 --> 00:22:35,250 lệnh để chuyển đổi mã nguồn 550 00:22:35,250 --> 00:22:36,610 cái gì gọi là mã đối tượng. 551 00:22:36,610 --> 00:22:39,690 Đó là sẽ chuyển đổi tiếng Anh như cú pháp đến số không 552 00:22:39,690 --> 00:22:41,760 và những người thân, cùng loại như số không và những người chúng ta 553 00:22:41,760 --> 00:22:42,820 nói chuyện về Thứ tư. 554 00:22:42,820 --> 00:22:44,810 Bây giờ, tôi sẽ chạy một lệnh gọi là kêu vang. 555 00:22:44,810 --> 00:22:47,750 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 556 00:22:47,750 --> 00:22:52,330 mà tôi có thể chuyển đổi hello.c vào một bó toàn bộ 557 00:22:52,330 --> 00:22:53,640 số không và những người thân. 558 00:22:53,640 --> 00:22:54,950 >> Bây giờ, tôi đã chạy lệnh này. 559 00:22:54,950 --> 00:22:57,940 Tôi đã chạy Clang, và sau đó tôi chạy trên tập tin này 560 00:22:57,940 --> 00:23:00,630 được gọi là hello.c, mà tôi tạo ra một chút thời gian trước đây, và 561 00:23:00,630 --> 00:23:02,090 có vẻ như không có gì xảy ra. 562 00:23:02,090 --> 00:23:05,550 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 563 00:23:05,550 --> 00:23:09,620 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. 564 00:23:09,620 --> 00:23:12,250 Đây chỉ là tên mặc định cho một chương trình trong khi viết 565 00:23:12,250 --> 00:23:15,140 C. Chúng ta có thể ghi đè lên điều này cuối cùng, nhưng a.out là 566 00:23:15,140 --> 00:23:18,340 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. 567 00:23:18,340 --> 00:23:21,490 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 568 00:23:21,490 --> 00:23:24,670 máy tính Windows của bạn, có thể hiểu những bit, những 569 00:23:24,670 --> 00:23:25,410 số không và những người thân. 570 00:23:25,410 --> 00:23:29,130 Và như vậy khi tôi nhấn Enter, tôi thấy "hello, thế giới!" 571 00:23:29,130 --> 00:23:31,270 >> Nhưng đó là một lỗi bit. 572 00:23:31,270 --> 00:23:34,110 Tôi không nói "hello, thế giới: không khí: - jharvard". Không khí là 573 00:23:34,110 --> 00:23:35,020 tên của máy tính của tôi. 574 00:23:35,020 --> 00:23:37,730 Jharvard là tên của tài khoản, do đó, những gì tôi đã rõ ràng 575 00:23:37,730 --> 00:23:41,070 bỏ qua từ chương trình? 576 00:23:41,070 --> 00:23:42,480 Một số loại ngắt dòng. 577 00:23:42,480 --> 00:23:45,150 Tôi không đánh tương đương với Enter hoặc trở về vận chuyển, 578 00:23:45,150 --> 00:23:47,760 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 579 00:23:47,760 --> 00:23:49,800 chỉ làm những gì bạn nói với họ để làm. 580 00:23:49,800 --> 00:23:52,400 Và thực tế là tôi đã không nói cho máy tính di chuyển 581 00:23:52,400 --> 00:23:53,860 con trỏ đến dòng kế tiếp - 582 00:23:53,860 --> 00:23:55,200 tốt, nó chắc chắn không phải sẽ chỉ làm điều đó 583 00:23:55,200 --> 00:23:56,750 presumptuously cho tôi. 584 00:23:56,750 --> 00:24:00,860 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 - 585 00:24:00,860 --> 00:24:03,180 Vì vậy, \ n, như chúng ta sẽ sớm thấy, là con đường của 586 00:24:03,180 --> 00:24:06,910 đại diện cho những điều kỳ lạ như ký tự dòng mới, những điều 587 00:24:06,910 --> 00:24:08,840 mà nếu không sẽ là kết quả của 588 00:24:08,840 --> 00:24:09,940 nhấn phím Enter. 589 00:24:09,940 --> 00:24:11,730 Nhưng bây giờ, chỉ biết rằng nhấn phím Enter sẽ 590 00:24:11,730 --> 00:24:14,170 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 591 00:24:14,170 --> 00:24:16,580 những gì, để giữ cho mọi thứ đẹp hơn, để giữ cho nó trên một dòng, 592 00:24:16,580 --> 00:24:19,070 nói \ n đại diện cho một dòng mới. 593 00:24:19,070 --> 00:24:22,260 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à 594 00:24:22,260 --> 00:24:25,290 lại chạy a.out, Enter. 595 00:24:25,290 --> 00:24:28,374 Vẫn còn lỗi, nhưng tại sao? 596 00:24:28,374 --> 00:24:29,750 >> Khán giả: không nghe được] 597 00:24:29,750 --> 00:24:31,540 DAVID Malan: Yeah, vì vậy tôi cần phải biên dịch nó. 598 00:24:31,540 --> 00:24:34,610 Vì vậy, để biên dịch chương trình chỉ có nghĩa là chuyển đổi nó từ mã nguồn 599 00:24:34,610 --> 00:24:37,660 mã để mã đối tượng nguồn, số không và những người thân. 600 00:24:37,660 --> 00:24:40,830 Bây giờ, thực tế chỉ mà tôi nhấn Save trong này TextEdit không có 601 00:24:40,830 --> 00:24:43,450 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 602 00:24:43,450 --> 00:24:48,260 tell Clang hey, tôi đã thay đổi những dòng mã, 603 00:24:48,260 --> 00:24:49,040 mã nguồn. 604 00:24:49,040 --> 00:24:51,010 Bạn cần phải tạo a.out. 605 00:24:51,010 --> 00:24:52,990 Không có gì đã xảy ra, nhưng trong một máy tính, 606 00:24:52,990 --> 00:24:55,820 một dòng lệnh, do đó, để nói chuyện, khi không có gì xảy ra, 607 00:24:55,820 --> 00:24:57,510 thường có nghĩa là tất cả là tốt. 608 00:24:57,510 --> 00:24:59,040 Khi một cái gì đó xảy ra, nó có nghĩa là 609 00:24:59,040 --> 00:25:00,420 bạn sai lầm, nói chung. 610 00:25:00,420 --> 00:25:04,020 >> 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, 611 00:25:04,020 --> 00:25:04,440 thế giới ". 612 00:25:04,440 --> 00:25:05,990 Và bây giờ, những gì về các số không và những người này? 613 00:25:05,990 --> 00:25:07,520 Ở đâu, trên thực tế, là những? 614 00:25:07,520 --> 00:25:10,710 Vâng, tôi có thể không thực sự chỉ loại poke xung quanh rất 615 00:25:10,710 --> 00:25:11,210 hiệu quả. 616 00:25:11,210 --> 00:25:12,650 Hãy để tôi mở TextEdit. 617 00:25:12,650 --> 00:25:14,060 Dưới đây là a.out. 618 00:25:14,060 --> 00:25:17,390 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 619 00:25:17,390 --> 00:25:19,080 chương trình như thế nào. 620 00:25:19,080 --> 00:25:21,570 Vì vậy, tôi đã mở, không hello.c, nhưng a.out. 621 00:25:21,570 --> 00:25:23,960 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à. 622 00:25:23,960 --> 00:25:26,450 Rõ ràng đây là một số loại ký tự chữ cái. 623 00:25:26,450 --> 00:25:28,670 Tôi thấy không có số không và những người thân, nhưng đây là 624 00:25:28,670 --> 00:25:30,780 vì a.out là một chương trình. 625 00:25:30,780 --> 00:25:33,540 Zero và những người thân - nhưng TextEdit, như tên cho thấy, đó là 626 00:25:33,540 --> 00:25:37,130 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ó 627 00:25:37,130 --> 00:25:39,730 khó hiểu tất cả những số không và những người thân như 628 00:25:39,730 --> 00:25:41,870 mặc dù họ đã, cái gì? 629 00:25:41,870 --> 00:25:43,380 Ký tự ASCII. 630 00:25:43,380 --> 00:25:45,020 >> Vì vậy, nhớ lại hôm thứ tư, chúng tôi chỉ đến với điều này 631 00:25:45,020 --> 00:25:48,740 tùy ý lập bản đồ số, hoặc bit, thư 632 00:25:48,740 --> 00:25:51,690 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ự. 633 00:25:51,690 --> 00:25:54,920 Vì vậy, TextEdit, rằng đó là một trình soạn thảo văn bản được hiểu sai 634 00:25:54,920 --> 00:25:57,270 những người mẫu của số không và những người được cho là 635 00:25:57,270 --> 00:25:59,990 in ấn từ, như "thế giới, xin chào." Nó hiển thị chúng 636 00:25:59,990 --> 00:26:02,150 như ASCII, và đó là lý do tại sao nó trông lộn xộn một chút. 637 00:26:02,150 --> 00:26:04,910 Giờ đây, có một số gợi ý chính xác ở đây. 638 00:26:04,910 --> 00:26:08,090 Chú ý nếu tôi làm nổi bật, có một gợi ý của thực sự "hello, 639 00:26:08,090 --> 00:26:10,810 thế giới ", một nơi nào đó trong chương trình đó là 640 00:26:10,810 --> 00:26:12,120 câu tôi đã viết. 641 00:26:12,120 --> 00:26:14,610 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. 642 00:26:14,610 --> 00:26:17,420 Đâ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 643 00:26:17,420 --> 00:26:19,970 một máy Mac và sẽ được bên trong của thiết bị CS50. 644 00:26:19,970 --> 00:26:23,940 Hãy để tôi đi trước và mở ra với một chương trình được gọi là xxd. 645 00:26:23,940 --> 00:26:26,530 >> 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, 646 00:26:26,530 --> 00:26:28,200 và do đó, xu hướng này vẫn tiếp tục. 647 00:26:28,200 --> 00:26:31,160 Nhưng-b có nghĩa là nhổ chương trình này như nhị phân. 648 00:26:31,160 --> 00:26:32,330 Đừng chạy nó. 649 00:26:32,330 --> 00:26:35,770 Hiển thị nó cho tôi là số không và những người thân, và đây là C 650 00:26:35,770 --> 00:26:37,190 chương trình chúng tôi chỉ viết. 651 00:26:37,190 --> 00:26:39,920 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ì 652 00:26:39,920 --> 00:26:42,230 các mô hình khác nhau của số không và những người đại diện. 653 00:26:42,230 --> 00:26:45,320 Trở lại trong ngày, tôi, với thẻ đục lỗ hoặc các loại tương tự, 654 00:26:45,320 --> 00:26:48,080 thực sự có để tìm kiếm các mô hình khác nhau của 655 00:26:48,080 --> 00:26:51,560 01111000, thực sự đại diện. 656 00:26:51,560 --> 00:26:54,390 Hoặc tệ hơn, tôi sẽ cần phải làm đấm hoặc tạo ra các 657 00:26:54,390 --> 00:26:56,130 các mô hình số không và những người thân. 658 00:26:56,130 --> 00:27:00,410 Nhưng hiện nay, về đức tin rằng một CPU, Intel bên trong, do đó, 659 00:27:00,410 --> 00:27:03,440 để 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 660 00:27:03,440 --> 00:27:05,100 làm thế nào để giải thích các số không và những người thân. 661 00:27:05,100 --> 00:27:07,010 Và một số số không và những người thân có nghĩa là in. 662 00:27:07,010 --> 00:27:09,040 Một số số không và những người thân có nghĩa là chơi một âm thanh. 663 00:27:09,040 --> 00:27:13,630 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. 664 00:27:13,630 --> 00:27:15,960 Có tất cả các loại mô hình khác nhau, nhưng chúng tôi may mắn, 665 00:27:15,960 --> 00:27:19,680 như con người, chỉ nói chung cần phải lo lắng về lập trình 666 00:27:19,680 --> 00:27:21,270 mức khá cao. 667 00:27:21,270 --> 00:27:24,320 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 668 00:27:24,320 --> 00:27:26,820 vào những thứ giống như số không và những người thân, hoặc 669 00:27:26,820 --> 00:27:28,000 những thứ khác vẫn còn. 670 00:27:28,000 --> 00:27:29,210 >> Vì vậy, bây giờ chúng ta hãy chuyển đổi này. 671 00:27:29,210 --> 00:27:32,550 Hãy di chuyển rất nhanh chóng đi từ C và di chuyển đến một cái gì đó 672 00:27:32,550 --> 00:27:36,390 chút an ủi, một chút thú vị hơn, trong đó 673 00:27:36,390 --> 00:27:39,340 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ế 674 00:27:39,340 --> 00:27:40,940 rõ ràng đã thoát khỏi chúng ta, 675 00:27:40,940 --> 00:27:42,480 giao diện khá nguyên thủy. 676 00:27:42,480 --> 00:27:46,430 Vì vậy, chương trình này tương tự trong C có thể được đại diện trong 677 00:27:46,430 --> 00:27:50,060 ngôn ngữ lập trình được gọi là Scratch như sau. 678 00:27:50,060 --> 00:27:54,230 Đây là tương đương với chương trình này hello thế giới viết bằng 679 00:27:54,230 --> 00:27:57,370 mảnh ghép phong cách ngôn ngữ được gọi là Scratch. 680 00:27:57,370 --> 00:28:00,600 Vì vậy, hãy để tôi đi trước và mở ra chương trình này rất. 681 00:28:00,600 --> 00:28:01,850 Nó một lần nữa được gọi là Scratch. 682 00:28:01,850 --> 00:28:03,880 Đó là tự do sẵn có, và điều này là cùng một điều chúng tôi 683 00:28:03,880 --> 00:28:05,120 bắt đầu ngày hôm nay. 684 00:28:05,120 --> 00:28:07,790 >> Vì vậy, điều này ở đây là Scratch, và nó được chia thành một vài 685 00:28:07,790 --> 00:28:09,700 khác nhau miếng. 686 00:28:09,700 --> 00:28:12,690 Quyền hàng đầu, chúng tôi có những giai đoạn được gọi là, và 687 00:28:12,690 --> 00:28:13,670 quả thật vậy, đó là nơi mà các tập tin cookie 688 00:28:13,670 --> 00:28:15,440 thực hiện chỉ là một chút trước. 689 00:28:15,440 --> 00:28:19,660 Và trên sân khấu rằng điều được gọi là sprites, ký tự, hoặc 690 00:28:19,660 --> 00:28:21,030 đối tượng, hoặc các thực thể. 691 00:28:21,030 --> 00:28:23,320 Nó không thực sự quan trọng như thế nào bạn nghĩ về họ, nhưng họ 692 00:28:23,320 --> 00:28:26,740 được lập trình, những thứ di chuyển, và trong trường hợp này, điều này 693 00:28:26,740 --> 00:28:30,730 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 694 00:28:30,730 --> 00:28:32,990 cookies, một vài cookie tròn, một bó toàn bộ 695 00:28:32,990 --> 00:28:35,430 trái tim, một bó toàn bộ kính đeo mắt. 696 00:28:38,170 --> 00:28:42,420 Bởi vì điều này, anh ta hoặc cô ấy có thể chương trình mỗi người 697 00:28:42,420 --> 00:28:44,720 từng ký tự riêng biệt. 698 00:28:44,720 --> 00:28:46,480 >> Bây giờ, nó có ý nghĩa gì cho chương trình những nhân vật này? 699 00:28:46,480 --> 00:28:49,440 Vâng, hãy để tôi đi trước và bấm vào cookie này tay trái 700 00:28:49,440 --> 00:28:51,830 và di chuyển trên để phía trên bên trái ở đây. 701 00:28:51,830 --> 00:28:53,670 Ở phía trên bên trái của màn hình của tôi bây giờ là 702 00:28:53,670 --> 00:28:55,280 gọi là các mã khu vực. 703 00:28:55,280 --> 00:28:58,790 Đây là sắp xếp của một phiến đá trắng, ban đầu, vào đó tôi có thể 704 00:28:58,790 --> 00:29:01,540 kéo và thả các mảnh ghép, thẳng thắn, làm 705 00:29:01,540 --> 00:29:03,020 chính xác những gì họ nói. 706 00:29:03,020 --> 00:29:05,820 Vào phần trên của chồng này mảnh ghép là từ 707 00:29:05,820 --> 00:29:09,340 Khi Green Flag nhấp vào, và nếu bạn không thông báo trước, 708 00:29:09,340 --> 00:29:12,300 cách tôi bắt đầu bài hát đó cookie cách nhấp vào, theo nghĩa đen, 709 00:29:12,300 --> 00:29:13,320 một lá cờ màu xanh lá cây. 710 00:29:13,320 --> 00:29:16,590 Vì vậy, mà mảnh ghép ở trên cùng bên trái có nghĩa là khi 711 00:29:16,590 --> 00:29:19,780 nhấp chuột của con người lá cờ màu xanh lá cây, tiến hành làm 712 00:29:19,780 --> 00:29:21,110 những điều sau đây. 713 00:29:21,110 --> 00:29:23,330 >> Bây giờ, họ Cookie đã tiến hành làm gì? 714 00:29:23,330 --> 00:29:25,810 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 715 00:29:25,810 --> 00:29:29,220 Cookie dường như thiết lập đường rãnh của nó không, sau đó nó đợi 716 00:29:29,220 --> 00:29:31,740 ba giây, sau đó nó thay đổi nhóm của mình đến một, sau đó nó 717 00:29:31,740 --> 00:29:33,590 chờ đợi một giây, sau đó nó thay đổi của nó 718 00:29:33,590 --> 00:29:35,100 rãnh trở lại một. 719 00:29:35,100 --> 00:29:37,373 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 720 00:29:37,373 --> 00:29:39,440 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ó 721 00:29:39,440 --> 00:29:43,380 được thay đổi ở nơi khác, nhưng loạt các bước này là những gì 722 00:29:43,380 --> 00:29:46,800 khiển hành vi của các cookie này cụ thể. 723 00:29:46,800 --> 00:29:49,180 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ì đó 724 00:29:49,180 --> 00:29:50,430 như vậy khá phức tạp. 725 00:29:50,430 --> 00:29:52,260 Hãy để tôi đi trước và vào File, New, 726 00:29:52,260 --> 00:29:53,560 và có được một slate sạch. 727 00:29:53,560 --> 00:29:56,590 >> 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, 728 00:29:56,590 --> 00:29:59,380 với Scratch sprite mặc định của chúng tôi, và ở phía trên trái 729 00:29:59,380 --> 00:30:01,670 trên màn hình của tôi để tôi có pallet của tất cả của họ 730 00:30:01,670 --> 00:30:03,400 có câu đố miếng. 731 00:30:03,400 --> 00:30:06,300 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 732 00:30:06,300 --> 00:30:09,470 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ẽ 733 00:30:09,470 --> 00:30:12,370 cố gắng để phân loại chúng và chỉ ra những điểm tương đồng 734 00:30:12,370 --> 00:30:15,380 với những ngôn ngữ trong tương lai mà chúng ta sẽ tìm. 735 00:30:15,380 --> 00:30:19,180 Và ở trên cùng bên trái ở đây là lần đầu tiên Khi Xanh Flag Nhấp, 736 00:30:19,180 --> 00:30:22,170 vì vậy hãy để tôi kéo này ở đây, phóng to ra một chút. 737 00:30:22,170 --> 00:30:25,780 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ì 738 00:30:25,780 --> 00:30:29,360 Tôi đã không kèm theo bất kỳ logic, bất kỳ tuyên bố như vậy để nói chuyện, 739 00:30:29,360 --> 00:30:31,040 mà lá cờ màu xanh lá cây, vì vậy hãy để tôi đi lên 740 00:30:31,040 --> 00:30:32,500 chủng loại ở đây. 741 00:30:32,500 --> 00:30:34,840 Tôi hiện đang trong danh mục kiểm soát. 742 00:30:34,840 --> 00:30:37,630 Thay vào đó, tôi sẽ đi xuống đến các loại vẻ, và 743 00:30:37,630 --> 00:30:39,970 có một bó toàn bộ những thứ mà nói Say, 744 00:30:39,970 --> 00:30:43,110 Hãy suy nghĩ, thay đổi trang phục màu Switch,. 745 00:30:43,110 --> 00:30:44,860 >> Vì vậy, bạn có thể làm những điều ngớ ngẩn với trang phục và 746 00:30:44,860 --> 00:30:45,870 âm thanh và các loại tương tự. 747 00:30:45,870 --> 00:30:49,970 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 748 00:30:49,970 --> 00:30:52,940 và thả các mảnh ghép này, nó sẽ muốn bám 749 00:30:52,940 --> 00:30:55,010 thành hình dạng tương ứng. 750 00:30:55,010 --> 00:30:58,020 Vì vậy, khi tôi đi trước và cho đi của con chuột của tôi, họ khóa 751 00:30:58,020 --> 00:31:01,770 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, 752 00:31:01,770 --> 00:31:05,910 con mèo này trong thực tế chào bởi vì đó là những gì bên trong 753 00:31:05,910 --> 00:31:06,980 hộp màu trắng này. 754 00:31:06,980 --> 00:31:08,900 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 755 00:31:08,900 --> 00:31:10,250 đối số, hoặc một tham số. 756 00:31:10,250 --> 00:31:12,560 Đó là một cách thay đổi hành vi của các, trong trường hợp này, một 757 00:31:12,560 --> 00:31:15,070 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 758 00:31:15,070 --> 00:31:18,610 trước khi, nói xin chào, thế giới, tôi bây giờ có thể trở lại ở đây, 759 00:31:18,610 --> 00:31:21,990 bấm vào chơi, và "hello, thế giới" là những gì cho biết. 760 00:31:21,990 --> 00:31:24,340 >> Vì vậy, chúng tôi có nghĩa là lập trình. 761 00:31:24,340 --> 00:31:27,540 Đó 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 762 00:31:27,540 --> 00:31:30,140 đó là một chút gì đó hấp dẫn hơn trông, 763 00:31:30,140 --> 00:31:31,300 nháy mắt, đầu tiên như thế này. 764 00:31:31,300 --> 00:31:34,190 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 765 00:31:34,190 --> 00:31:36,600 bởi vì trong Scratch, giống như trong các ngôn ngữ khác, có tất cả 766 00:31:36,600 --> 00:31:40,010 các loại báo cáo, không chỉ Say hoặc in ấn một cái gì đó, nhưng 767 00:31:40,010 --> 00:31:42,650 bạn có thể làm những thứ như chờ đợi, như chúng ta chỉ thấy 768 00:31:42,650 --> 00:31:44,240 cookie, một số số giây. 769 00:31:44,240 --> 00:31:46,440 Bạn có thể chơi âm thanh trong môi trường của Scratch chỉ 770 00:31:46,440 --> 00:31:49,050 như bạn có thể trong một chương trình âm thanh máy tính chơi bình thường. 771 00:31:49,050 --> 00:31:52,440 Bạn có thể kiểm tra những gì được gọi là biểu thức Boolean. 772 00:31:52,440 --> 00:31:55,630 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ữ 773 00:31:55,630 --> 00:31:58,840 mà thực sự liên quan đến ví dụ mà Joseph và tôi đã làm 774 00:31:58,840 --> 00:32:00,080 ở đây với những đôi tất. 775 00:32:00,080 --> 00:32:03,040 Vì vậy, báo cáo chỉ là báo cáo của thực tế. 776 00:32:03,040 --> 00:32:04,160 Làm điều này. 777 00:32:04,160 --> 00:32:07,370 Một chỉ thị của Sprite, hoặc cho tôi những con người, để làm một cái gì đó. 778 00:32:07,370 --> 00:32:10,420 Một biểu thức Boolean là cái gì đó có một giá trị, một 779 00:32:10,420 --> 00:32:14,580 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 780 00:32:14,580 --> 00:32:17,890 đúng, tắt hoặc bật, không hoặc có. 781 00:32:17,890 --> 00:32:19,730 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 782 00:32:19,730 --> 00:32:20,700 nhị phân nhà nước. 783 00:32:20,700 --> 00:32:22,610 Như Nate thảo luận trong video hôm thứ Tư, hai 784 00:32:22,610 --> 00:32:23,570 sự việc. 785 00:32:23,570 --> 00:32:25,740 >> Vì vậy, trong Scratch, biểu thức Boolean xảy ra để xem xét 786 00:32:25,740 --> 00:32:28,910 giống như các đối tượng màu xanh ở đây, và trong trường hợp này, câu hỏi 787 00:32:28,910 --> 00:32:30,960 đánh dấu ngụ ý rằng bạn đang hỏi một câu hỏi. 788 00:32:30,960 --> 00:32:34,250 Con mèo, hoặc sprite chạm vào con trỏ chuột? 789 00:32:34,250 --> 00:32:36,580 Vì vậy, đây chỉ là một ví dụ của một khối Scratch đó đang xảy ra 790 00:32:36,580 --> 00:32:39,950 để cho phép chúng tôi kiểm tra có hay không, là con chuột chạm vào 791 00:32:39,950 --> 00:32:40,790 sprite trên màn hình? 792 00:32:40,790 --> 00:32:42,840 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 793 00:32:42,840 --> 00:32:43,820 với con chuột của bạn. 794 00:32:43,820 --> 00:32:46,470 Ngoài các biểu thức Boolean, chúng tôi có những điều 795 00:32:46,470 --> 00:32:49,110 như là con chuột xuống, để bạn có thể phát hiện rằng loại 796 00:32:49,110 --> 00:32:50,200 đặt câu hỏi là tốt. 797 00:32:50,200 --> 00:32:52,590 Chúng ta có thể làm toán học nếu bạn thực sự muốn, và có 798 00:32:52,590 --> 00:32:55,170 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 799 00:32:55,170 --> 00:32:56,400 số học, như chúng ta sẽ thấy. 800 00:32:56,400 --> 00:32:59,690 Pseudo ngẫu nhiên và làm cho chương trình của bạn xuất hiện suy nghĩ 801 00:32:59,690 --> 00:33:03,490 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, 802 00:33:03,490 --> 00:33:06,610 và sau đó chúng tôi có những thứ như các biểu thức Boolean như. 803 00:33:06,610 --> 00:33:08,830 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 804 00:33:08,830 --> 00:33:11,110 Scratch chúng ta thực sự có thể kiểm tra nếu điều này là 805 00:33:11,110 --> 00:33:13,190 đúng sự thật và điều này là đúng. 806 00:33:13,190 --> 00:33:15,300 Ví dụ, trong trường hợp vớ của tôi, tôi có thể đã ở 807 00:33:15,300 --> 00:33:19,045 rất cuối hỏi những câu hỏi nếu vớ trái và bên phải vớ 808 00:33:19,045 --> 00:33:20,610 được, bỏ thuốc lá. 809 00:33:20,610 --> 00:33:22,710 Bạn đang làm tất cả trong ngày, do đó, đó sẽ là một 810 00:33:22,710 --> 00:33:24,300 cơ hội cho điều đó. 811 00:33:24,300 --> 00:33:27,740 >> Vì vậy, chúng ta hãy đi trước và thử mảnh này lại với nhau 812 00:33:27,740 --> 00:33:31,570 và đi vào một vài ví dụ 813 00:33:31,570 --> 00:33:32,610 hấp dẫn hơn so với một trong những điều này. 814 00:33:32,610 --> 00:33:35,770 Vì vậy, hãy để tôi đi trước đây và mở ra một số ví dụ 815 00:33:35,770 --> 00:33:38,350 mà sẽ luôn luôn được trên trang web của khóa học là tốt, và 816 00:33:38,350 --> 00:33:39,870 mở hello2. 817 00:33:39,870 --> 00:33:42,910 Vì vậy, trong hello2 đây, chúng tôi có một chương trình đó là làm một vài 818 00:33:42,910 --> 00:33:46,290 điều, nhưng nó không làm việc đó một cách hiệu quả như chúng ta có thể. 819 00:33:46,290 --> 00:33:48,900 Vì vậy, ở đây nó nói "hello, thế giới" trong một giây và sau đó chờ đợi 820 00:33:48,900 --> 00:33:49,450 trong một giây. 821 00:33:49,450 --> 00:33:51,720 Và sau đó không một lần nữa, và sau đó nó một lần nữa. 822 00:33:51,720 --> 00:33:55,530 Vì vậy, nếu tôi nhấp vào lá cờ màu xanh lá cây, Scratch nói "Hello, world. 823 00:33:55,530 --> 00:33:57,160 Xin chào, thế giới. 824 00:33:57,160 --> 00:34:00,080 Xin chào, thế giới ". Và điều này rõ ràng là ứng cử viên bây giờ cho 825 00:34:00,080 --> 00:34:00,860 cải tiến. 826 00:34:00,860 --> 00:34:03,070 >> Cải biên là gì, hy vọng, chúng ta có thể 827 00:34:03,070 --> 00:34:07,610 bây giờ làm cho nếu Scratch hỗ trợ khái niệm? 828 00:34:07,610 --> 00:34:08,310 Một số loại vòng lặp. 829 00:34:08,310 --> 00:34:10,960 Một số loại của sự lặp lại, bây giờ, sẽ được tốt đẹp, để cho tôi 830 00:34:10,960 --> 00:34:11,920 thực sự cố gắng đó. 831 00:34:11,920 --> 00:34:13,870 Hãy để tôi thực sự đi và di chuyển này. 832 00:34:13,870 --> 00:34:16,449 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 833 00:34:16,449 --> 00:34:17,420 đính kèm chúng. 834 00:34:17,420 --> 00:34:20,730 Hãy để tôi đi theo kiểm soát, di chuyển xuống, và thực sự, 835 00:34:20,730 --> 00:34:24,000 có mảnh ghép này ở đây, Repeat và Forever 836 00:34:24,000 --> 00:34:24,870 Mãi mãi Nếu 837 00:34:24,870 --> 00:34:28,500 Vì vậy, có một số cách thể hiện cấu trúc lặp 838 00:34:28,500 --> 00:34:29,340 Scratch. 839 00:34:29,340 --> 00:34:31,730 Tôi có lẽ muốn ở đây không phải là giới hạn vì tôi chỉ 840 00:34:31,730 --> 00:34:34,639 muốn điều này xảy ra ba lần, nhưng có lẽ Lặp lại. 841 00:34:34,639 --> 00:34:38,449 Vì vậy, hãy để tôi kéo Lặp lại ở đây, kéo và thả nó, và 842 00:34:38,449 --> 00:34:42,530 thay vì nói "hello, thế giới" ba thời điểm khác nhau, 843 00:34:42,530 --> 00:34:44,230 cho tôi kéo mảnh ghép này ở đây. 844 00:34:44,230 --> 00:34:46,610 Và mặc dù nó không có vẻ phù hợp, chương trình là thông minh 845 00:34:46,610 --> 00:34:48,920 đủ để nhận ra nó sẽ phát triển để điền vào, vì vậy nó là 846 00:34:48,920 --> 00:34:51,270 hình dạng vật chất và kích thước không phải là tuyệt đối. 847 00:34:51,270 --> 00:34:54,030 Hãy để tôi thay đổi sự lặp lại đến ba, và bây giờ cho tôi đi 848 00:34:54,030 --> 00:34:56,560 trước và kéo Chờ Một thứ hai trong đó là tốt. 849 00:34:56,560 --> 00:34:59,220 Nó sẽ chụp trong là tốt, và vì vậy bây giờ tôi sẽ kéo 850 00:34:59,220 --> 00:35:01,370 những kẻ trên đây và chỉ ném chúng đi vì tôi 851 00:35:01,370 --> 00:35:02,710 không cần chúng nữa. 852 00:35:02,710 --> 00:35:05,920 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ó 853 00:35:05,920 --> 00:35:09,600 cùng một chương trình nhưng, như tôi đã dự đoán trước, tốt hơn 854 00:35:09,600 --> 00:35:12,200 đượ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 855 00:35:12,200 --> 00:35:14,410 sẽ nhận được, chắc chắn về mặt thẩm mỹ, nếu bạn phải 856 00:35:14,410 --> 00:35:16,640 bắt đầu sao chép và dán, sao chép và dán, hoặc 857 00:35:16,640 --> 00:35:20,020 kéo và thả các điều darn cùng một lần nữa và một lần nữa. 858 00:35:20,020 --> 00:35:22,260 >> 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. 859 00:35:22,260 --> 00:35:25,350 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ổ 860 00:35:25,350 --> 00:35:26,580 3 không đúng ở đây. 861 00:35:26,580 --> 00:35:29,810 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 - 862 00:35:29,810 --> 00:35:30,850 [Meow] 863 00:35:30,850 --> 00:35:31,940 DAVID Malan: - nhưng nó cũng là loại dễ thương. 864 00:35:31,940 --> 00:35:35,244 [Meow] 865 00:35:35,244 --> 00:35:37,460 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 866 00:35:37,460 --> 00:35:41,060 cùng một quá trình chuyển đổi của chunking vào một vòng lặp 867 00:35:41,060 --> 00:35:43,520 cấu trúc, nhưng chúng ta hãy làm cho nó thú vị hơn. 868 00:35:43,520 --> 00:35:47,480 >> Hãy để tôi đi trước và mở ra một phương sai thứ tư ở đây, nơi tôi 869 00:35:47,480 --> 00:35:50,020 đi thêm một bước nữa. 870 00:35:50,020 --> 00:35:54,450 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 871 00:35:54,450 --> 00:35:58,530 nháy mắt, chương trình này sẽ làm gì? 872 00:35:58,530 --> 00:35:59,790 Nó sẽ meow một lần. 873 00:35:59,790 --> 00:36:00,160 Tại sao? 874 00:36:00,160 --> 00:36:03,340 Vâng, một là, như xa như tôi biết, luôn luôn ít hơn hai. 875 00:36:03,340 --> 00:36:04,890 Không có khái niệm của sự ngẫu nhiên ở đây. 876 00:36:04,890 --> 00:36:07,240 Tôi đã theo nghĩa đen mã hóa cứng một và hai, nhưng đây là một 877 00:36:07,240 --> 00:36:10,370 Ví dụ bây giờ thực sự bằng cách sử dụng một biểu thức Boolean. 878 00:36:10,370 --> 00:36:13,650 Giống như khi Joseph đã làm trong giả của mình, thụt đầu dòng IF 879 00:36:13,650 --> 00:36:17,170 bạn tìm thấy vớ phù hợp THEN làm như sau, ở đây chúng tôi có 880 00:36:17,170 --> 00:36:19,750 một biểu hiện IF là một trong ít hơn hai THEN - 881 00:36:19,750 --> 00:36:21,820 và trong thực tế, chúng tôi thậm chí có một chút thụt đầu dòng, 882 00:36:21,820 --> 00:36:24,480 tím là hơi thụt vào bên phải - 883 00:36:24,480 --> 00:36:26,600 THEN bạn đang đi để chơi các meow âm thanh. 884 00:36:26,600 --> 00:36:30,060 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 885 00:36:30,060 --> 00:36:31,970 là một sự lãng phí một điều kiện. 886 00:36:31,970 --> 00:36:34,890 Nhưng chúng ta có thể, như chúng ta sẽ thấy, để cắm những thứ khác vào 887 00:36:34,890 --> 00:36:37,420 những placeholders nơi một và hai. 888 00:36:37,420 --> 00:36:41,340 Vì vậy, chúng ta hãy tiến ví dụ năm của một số những 889 00:36:41,340 --> 00:36:45,850 hellos và xem những gì chương trình này sẽ làm gì. 890 00:36:45,850 --> 00:36:48,710 >> 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 891 00:36:48,710 --> 00:36:51,460 chương trình hành xử? 892 00:36:51,460 --> 00:36:52,950 Khán giả: Meows nửa thời gian. 893 00:36:52,950 --> 00:36:55,380 DAVID Malan: Meow một nửa thời gian, vì vậy đây là một cách để 894 00:36:55,380 --> 00:36:56,700 truyền đạt một ý tưởng rất đơn giản. 895 00:36:56,700 --> 00:36:59,400 Mặc dù chúng tôi xảy ra để được sử dụng một số bất bình đẳng ở đây 896 00:36:59,400 --> 00:37:01,860 trong một số con số, điều này thực sự chỉ là một programmatical 897 00:37:01,860 --> 00:37:09,490 cách, một cách chính xác, nói rằng nếu đồng xu đi lên đứng đầu, 898 00:37:09,490 --> 00:37:10,270 trước và meow. 899 00:37:10,270 --> 00:37:13,540 Hoặc ngược lại, nếu đồng xu đến đuôi, không meow. 900 00:37:13,540 --> 00:37:15,110 Và trong trường hợp này, làm thế nào để chúng ta bày tỏ điều đó không? 901 00:37:15,110 --> 00:37:17,950 Chúng tôi sẽ chọn một số ngẫu nhiên từ 1 đến 10, và nếu điều đó 902 00:37:17,950 --> 00:37:21,110 số ít hơn 6, đi trước và meow. 903 00:37:21,110 --> 00:37:22,260 Và làm thế nào vào được đây? 904 00:37:22,260 --> 00:37:24,620 Vậy một lần nữa, nhận thấy chỉ cần kéo và thả và 905 00:37:24,620 --> 00:37:26,190 điều chốt vào vị trí. 906 00:37:26,190 --> 00:37:28,020 >> Vì vậy, bây giờ chúng ta hãy xem nếu ngẫu nhiên này hoạt động. 907 00:37:28,020 --> 00:37:29,845 Hãy để tôi đi trước và bấm vào lá cờ màu xanh lá cây. 908 00:37:29,845 --> 00:37:31,120 [Meow] 909 00:37:31,120 --> 00:37:32,000 DAVID Malan: Được rồi. 910 00:37:32,000 --> 00:37:33,430 [Meow] 911 00:37:33,430 --> 00:37:35,260 DAVID Malan: Được rồi. 912 00:37:35,260 --> 00:37:38,510 Được rồi, tốt, vì vậy chúng tôi có đầu, đầu, đuôi có hiệu quả. 913 00:37:38,510 --> 00:37:39,295 Đuôi. 914 00:37:39,295 --> 00:37:39,590 [Meow] 915 00:37:39,590 --> 00:37:41,829 DAVID Malan: Thủ trưởng. 916 00:37:41,829 --> 00:37:43,220 [Meow] 917 00:37:43,220 --> 00:37:44,040 DAVID Malan: Tuyệt vời. 918 00:37:44,040 --> 00:37:46,220 Nó luôn luôn vụng về khi chỉ cần thống kê bạn sẽ có được một xấu 919 00:37:46,220 --> 00:37:48,510 chạy, và nó là tất cả đầu, và chương trình thực hiện 920 00:37:48,510 --> 00:37:49,230 làm việc như bạn hy vọng. 921 00:37:49,230 --> 00:37:51,210 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 922 00:37:51,210 --> 00:37:53,830 một số lượng vô hạn của thời gian, tỷ lệ 50%. 923 00:37:53,830 --> 00:37:56,950 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 924 00:37:56,950 --> 00:37:59,840 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 925 00:37:59,840 --> 00:38:01,820 ở đây trong phiên bản 6. 926 00:38:01,820 --> 00:38:05,620 Vì vậy, bây giờ, chúng tôi có phiên bản thực sự gây phiền nhiễu - 927 00:38:05,620 --> 00:38:08,215 [MEOWS mỗi vài giây] 928 00:38:08,215 --> 00:38:10,640 DAVID Malan: - và đây là những gì được biết, tổng, như là một 929 00:38:10,640 --> 00:38:11,670 vòng lặp vô hạn. 930 00:38:11,670 --> 00:38:14,190 >> Vì vậy, vòng lặp vô hạn trong trường hợp này cảm thấy xấu hổ. 931 00:38:14,190 --> 00:38:16,970 Đó chắc chắn sẽ bắt đầu nghe có vẻ xấu, và vô hạn 932 00:38:16,970 --> 00:38:18,740 vòng lặp là không phải lúc nào cũng xấu. 933 00:38:18,740 --> 00:38:20,910 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 934 00:38:20,910 --> 00:38:22,910 thực sự muốn một vòng lặp vô hạn? 935 00:38:22,910 --> 00:38:23,691 Yeah? 936 00:38:23,691 --> 00:38:26,520 TƯỢNG: Khi bạn muốn kiểm tra một điều kiện. 937 00:38:26,520 --> 00:38:28,240 DAVID Malan: Được rồi, khi bạn muốn giữ lại kiểm tra một điều kiện? 938 00:38:28,240 --> 00:38:29,190 Như thế nào? 939 00:38:29,190 --> 00:38:30,440 Khán giả: không nghe được] 940 00:38:36,060 --> 00:38:38,170 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ố 941 00:38:38,170 --> 00:38:40,440 loại điều tự động hóa nhà, nơi bạn muốn liên tục 942 00:38:40,440 --> 00:38:41,980 màn hình là một cái gì đó là trường hợp. 943 00:38:41,980 --> 00:38:42,850 Đèn? 944 00:38:42,850 --> 00:38:45,020 Đèn bởi vì có thể bạn có một bộ đếm thời gian, và 945 00:38:45,020 --> 00:38:47,360 bạn muốn họ đi ra, bạn có thể cần phải làm một cái gì đó 946 00:38:47,360 --> 00:38:48,290 một lần nữa và một lần nữa. 947 00:38:48,290 --> 00:38:50,540 Và trên thực tế, nói giờ, bất kỳ của bạn, những người đã 948 00:38:50,540 --> 00:38:53,100 đồng hồ trên máy tính của bạn hoặc đồng hồ kỹ thuật số, đó là một 949 00:38:53,100 --> 00:38:54,210 vòng lặp vô hạn. 950 00:38:54,210 --> 00:38:56,980 Nó tiếp tục cập nhật thời gian bởi vì nó liên tục 951 00:38:56,980 --> 00:38:59,750 kiểm tra và kiểm tra và kiểm tra có thời gian thay đổi, 952 00:38:59,750 --> 00:39:01,000 và nếu như vậy, oh, my god. 953 00:39:03,670 --> 00:39:04,740 Đồng hồ cuối cùng cũng thay đổi. 954 00:39:04,740 --> 00:39:07,020 Nó cần hiển thị giá trị đó cho bạn. 955 00:39:07,020 --> 00:39:10,880 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, 956 00:39:10,880 --> 00:39:13,950 hoặc ít nhất là một quyết định thiết kế nghèo, đôi khi họ làm 957 00:39:13,950 --> 00:39:14,785 có giá trị của họ. 958 00:39:14,785 --> 00:39:18,170 >> Vâng, chúng ta tiến xa hơn hello7. 959 00:39:18,170 --> 00:39:20,410 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. 960 00:39:20,410 --> 00:39:23,120 Hãy để tôi phóng to ở đây, và một lần nữa, đây là những gì là tốt đẹp 961 00:39:23,120 --> 00:39:23,640 về Scratch. 962 00:39:23,640 --> 00:39:26,760 Và chúng tôi sẽ sử dụng nó để là rõ ràng, Scratch, chỉ ngày hôm nay và vào 963 00:39:26,760 --> 00:39:27,780 tuần tới vấn đề thiết lập. 964 00:39:27,780 --> 00:39:31,920 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ó, 965 00:39:31,920 --> 00:39:33,190 mãi mãi, sau đây. 966 00:39:33,190 --> 00:39:35,890 NẾU chạm vào con trỏ chuột - bây giờ, người 967 00:39:35,890 --> 00:39:36,420 bối cảnh ở đây? 968 00:39:36,420 --> 00:39:39,670 Vâng, và thông báo rằng những người được chọn xuống đây ở phía dưới 969 00:39:39,670 --> 00:39:43,060 bên phải là con mèo, một sprite, vì vậy các kịch bản, điều này 970 00:39:43,060 --> 00:39:45,720 chương trình, áp dụng cho họ cụ thể. 971 00:39:45,720 --> 00:39:48,950 Vì vậy, nếu con mèo là chạm vào con trỏ chuột, sau đó nó sẽ 972 00:39:48,950 --> 00:39:51,350 chơi này xuống và chờ đợi hai giây, và 973 00:39:51,350 --> 00:39:53,030 sau đó lặp lại nauseum quảng cáo. 974 00:39:53,030 --> 00:39:55,360 >> Vì vậy, chúng ta hãy đi trước và nhấn play. 975 00:39:55,360 --> 00:39:57,580 Không có gì xảy ra, nhưng nếu tôi muốn vật nuôi 976 00:39:57,580 --> 00:39:59,310 mèo bây giờ, tôi có thể chỉ cần. 977 00:39:59,310 --> 00:40:01,130 [Meow] 978 00:40:01,130 --> 00:40:02,244 DAVID Malan: Adorable. 979 00:40:02,244 --> 00:40:05,956 [Meow] 980 00:40:05,956 --> 00:40:08,750 DAVID Malan: Được rồi, ít gây phiền nhiễu, nhưng cũng được ngu si đần độn, 981 00:40:08,750 --> 00:40:11,480 do đó, chúng ta hãy di chuyển và xem nếu chúng ta không có thể tiêm 982 00:40:11,480 --> 00:40:12,460 thêm một chút logic. 983 00:40:12,460 --> 00:40:14,300 Đó là ví dụ 7. 984 00:40:14,300 --> 00:40:16,090 >> Trong ví dụ 8, chúng ta sẽ 985 00:40:16,090 --> 00:40:18,670 giới thiệu một điều kiện ELSE. 986 00:40:18,670 --> 00:40:21,440 Vì vậy, giống như một ngã ba đen trên đường, trong đó bạn có thể đi 987 00:40:21,440 --> 00:40:24,260 trái hoặc bạn có thể đi đúng, một điều kiện trong chương trình 988 00:40:24,260 --> 00:40:28,120 ngôn ngữ như Scratch, hoặc là chúng ta sẽ thấy C, có thể cho phép bạn 989 00:40:28,120 --> 00:40:32,230 đi theo một hướng khác nhau thông qua một IF ELSE xây dựng. 990 00:40:32,230 --> 00:40:35,160 Vì vậy, theo đúng nghĩa đen, IF chạm vào con trỏ chuột, 991 00:40:35,160 --> 00:40:38,680 sẽ chơi một số âm thanh, ELSE nó sẽ chơi này khác 992 00:40:38,680 --> 00:40:39,800 âm thanh, meow. 993 00:40:39,800 --> 00:40:42,510 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ể 994 00:40:42,510 --> 00:40:45,310 có thể đoán những gì chương trình này có nghĩa là để gợi lên 995 00:40:45,310 --> 00:40:46,250 ý tưởng. 996 00:40:46,250 --> 00:40:48,742 Con mèo này được meowing hạnh phúc. 997 00:40:48,742 --> 00:40:49,230 [Meow] 998 00:40:49,230 --> 00:40:51,410 DAVID Malan: Hạnh phúc, nhưng không 999 00:40:51,410 --> 00:40:52,926 rất thích được chạm vào. 1000 00:40:52,926 --> 00:40:54,550 [Gầm rú] 1001 00:40:54,550 --> 00:40:57,500 DAVID Malan: Vì vậy, bây giờ chúng tôi có một con mèo sẽ la lên ở bạn. 1002 00:40:57,500 --> 00:41:00,570 >> Được rồi, tốt, một ví dụ cuối cùng với những con mèo ở đây, và 1003 00:41:00,570 --> 00:41:02,920 chúng ta hãy mở phiên bản 9 này ở đây. 1004 00:41:02,920 --> 00:41:06,190 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ể 1005 00:41:06,190 --> 00:41:11,630 tìm kiếm, vì vậy chúng tôi có một hải mã, sư tử biển ở đây ai sẽ 1006 00:41:11,630 --> 00:41:13,222 làm như sau. 1007 00:41:13,222 --> 00:41:20,870 [SEAL Bark] 1008 00:41:20,870 --> 00:41:23,310 DAVID Malan: Được rồi, do đó, điều này sẽ đi cho đến khi bạn tìm ra như thế nào 1009 00:41:23,310 --> 00:41:24,640 chương trình này hoạt động. 1010 00:41:24,640 --> 00:41:28,560 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ì 1011 00:41:28,560 --> 00:41:31,050 thú vị ở đây là các kịch bản sẽ thực hiện 1012 00:41:31,050 --> 00:41:32,260 song song. 1013 00:41:32,260 --> 00:41:35,340 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, 1014 00:41:35,340 --> 00:41:38,080 nó giống như đi như thế này, và cả hai chương trình bắt đầu chạy nó 1015 00:41:38,080 --> 00:41:41,370 một lần ngay cả khi họ đang vòng lặp mãi mãi. 1016 00:41:41,370 --> 00:41:44,420 Vì vậy, trong kịch bản hàng đầu, tôi có một số logic. 1017 00:41:44,420 --> 00:41:49,275 Những tính năng nào mà cung cấp lên không? 1018 00:41:49,275 --> 00:41:50,740 [SEAL Bark] 1019 00:41:50,740 --> 00:41:51,670 Khán giả: không nghe được] 1020 00:41:51,670 --> 00:41:53,295 DAVID Malan: Nếu đó là những gì? 1021 00:41:53,295 --> 00:41:53,760 [SEAL Bark] 1022 00:41:53,760 --> 00:41:55,852 Khán giả: Nếu tắt tiếng không, nó sẽ tiếp tục chơi 1023 00:41:55,852 --> 00:41:58,410 âm thanh. [SEAL Bark] 1024 00:41:58,410 --> 00:41:58,940 DAVID Malan: Được rồi, tốt. 1025 00:41:58,940 --> 00:42:01,960 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, 1026 00:42:01,960 --> 00:42:05,370 THEN phát âm thanh sư tử biển và nghĩ "Oh, 1027 00:42:05,370 --> 00:42:06,770 hi, trong hai giây. 1028 00:42:06,770 --> 00:42:09,380 Bây giờ, tôi không biết những gì tắt là, nhưng không gợi lên 1029 00:42:09,380 --> 00:42:11,230 ý tưởng sai hoặc tắt. 1030 00:42:11,230 --> 00:42:14,490 Vì vậy, nếu tắt là sai, vì thế nếu không im hơi lặng tiếng, 1031 00:42:14,490 --> 00:42:15,660 tiếp tục chơi âm thanh. 1032 00:42:15,660 --> 00:42:17,350 Được rồi, tốt, làm thế nào để chúng tôi vô hiệu hóa điều này? 1033 00:42:17,350 --> 00:42:19,310 >> Vâng, chúng ta hãy nhìn vào kịch bản thứ hai xuống. 1034 00:42:19,310 --> 00:42:22,130 Các kịch bản thứ hai nói tắt không. 1035 00:42:22,130 --> 00:42:25,180 Chú ý nó cũng cam, do đó, những gì Scratch không là màu sắc 1036 00:42:25,180 --> 00:42:27,400 khối trong cùng màu nếu nó là loại 1037 00:42:27,400 --> 00:42:28,850 của một cách hợp lý có liên quan. 1038 00:42:28,850 --> 00:42:32,850 Vì vậy, chỉ cần tắt tiếng lên hàng đầu là cam, do đó, sẽ tắt xuống đây 1039 00:42:32,850 --> 00:42:34,060 được đề cập trong khối cam. 1040 00:42:34,060 --> 00:42:36,170 Nhưng đây là một bài tập biến, do đó, cũng giống như trong 1041 00:42:36,170 --> 00:42:39,170 đại số, bạn có x và y và z, trong lập trình, bạn có 1042 00:42:39,170 --> 00:42:41,440 biến, nhưng chúng nói chung - 1043 00:42:41,440 --> 00:42:42,580 chúng ta hãy tạm dừng trong một thời điểm và con số như thế nào 1044 00:42:42,580 --> 00:42:44,280 để ngăn chặn điều này sủa. 1045 00:42:44,280 --> 00:42:45,480 Làm thế nào để làm điều này? 1046 00:42:45,480 --> 00:42:46,480 [SEAL Bark] 1047 00:42:46,480 --> 00:42:47,920 DAVID Malan: Được rồi. 1048 00:42:47,920 --> 00:42:49,490 Nó dừng lại. Okay. 1049 00:42:49,490 --> 00:42:52,230 >> Vì vậy, cũng giống như trong đại số, bạn có các biến x, y, z, nhưng trong 1050 00:42:52,230 --> 00:42:55,260 lập trình, có các biến như x, y, z và nói chung là 1051 00:42:55,260 --> 00:42:57,330 tán thành bởi vì họ không phải ở tất cả các biểu cảm. 1052 00:42:57,330 --> 00:43:00,070 Họ không có ý nghĩa ngữ nghĩa nào, trong hầu hết các 1053 00:43:00,070 --> 00:43:02,110 ngôn ngữ lập trình, các biến có thể có đầy đủ 1054 00:43:02,110 --> 00:43:05,270 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 1055 00:43:05,270 --> 00:43:06,030 những gì họ làm. 1056 00:43:06,030 --> 00:43:09,380 Vì vậy, kịch bản thứ hai này cũng đã được nghe mãi mãi, và nó nói 1057 00:43:09,380 --> 00:43:12,100 nếu chìa khóa, khóa bàn phím Space, 1058 00:43:12,100 --> 00:43:13,370 ép, dấu hỏi. 1059 00:43:13,370 --> 00:43:16,300 Vì vậy, có một điều kiện với một biểu thức Boolean đó là 1060 00:43:16,300 --> 00:43:19,010 sẽ phải trả lời một câu hỏi hoặc trung thực hoặc sai, 1061 00:43:19,010 --> 00:43:22,880 sau đó tôi có bên trong của nó IF không gian chính được nhấn VÀ 1062 00:43:22,880 --> 00:43:28,020 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. 1063 00:43:28,020 --> 00:43:30,510 Vì vậy, điều này ngã ba trên đường, và thông báo như thế nào tôi đã 1064 00:43:30,510 --> 00:43:33,500 lồng nhau hai IF điều kiện, là một cách để kiểm tra là 1065 00:43:33,500 --> 00:43:36,610 Space Bar ép bởi vì nếu như vậy, tôi có muốn đi 1066 00:43:36,610 --> 00:43:38,000 cách này hay cách đó. 1067 00:43:38,000 --> 00:43:40,210 Và làm cách nào để đảo ngược giá trị của im hơi lặng tiếng? 1068 00:43:40,210 --> 00:43:41,410 Tôi phải kiểm tra là nó không? 1069 00:43:41,410 --> 00:43:45,890 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 1070 00:43:45,890 --> 00:43:47,670 hai tiểu bang. 1071 00:43:47,670 --> 00:43:50,030 >> Được rồi, vì vậy chúng tôi có sau đó là một số những cơ bản 1072 00:43:50,030 --> 00:43:50,540 xây dựng. 1073 00:43:50,540 --> 00:43:52,810 Chúng tôi có các biểu thức Boolean, và nhận ra, quá, đây là những 1074 00:43:52,810 --> 00:43:54,050 không phải tất cả những gì xa lạ. 1075 00:43:54,050 --> 00:43:56,730 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 1076 00:43:56,730 --> 00:43:59,740 mua sắm công cụ, và bất kỳ trang web ra có mà có hộp kiểm 1077 00:43:59,740 --> 00:44:02,420 thăng trầm thả thực sự, tất cả thời gian này, được sử dụng 1078 00:44:02,420 --> 00:44:03,430 Boolean biểu thức. 1079 00:44:03,430 --> 00:44:05,760 Trong trường hợp này ở đây, nếu bạn nhấp vào hộp kiểm bên cạnh 1080 00:44:05,760 --> 00:44:08,620 tất nhiên lớn hơn hoặc bằng 4,5, hoặc năm tới cùng 1081 00:44:08,620 --> 00:44:11,200 giảng viên, bạn chỉ định một biểu thức Boolean. 1082 00:44:11,200 --> 00:44:14,780 Chỉ cho tôi các khóa học mà biểu thức đó là đúng sự thật. 1083 00:44:14,780 --> 00:44:17,080 Hoặc để bên phải, không xung đột với các khóa học Tôi 1084 00:44:17,080 --> 00:44:20,440 , nếu được kiểm tra, sau đó có, bạn muốn kiểm tra 1085 00:44:20,440 --> 00:44:22,890 điều kiện đó, khác mà bạn muốn bỏ qua nó. 1086 00:44:22,890 --> 00:44:25,170 Biểu thức Vì vậy, Boolean là loại tất cả xung quanh, nhưng khi 1087 00:44:25,170 --> 00:44:28,080 chúng tôi đặt chúng trong điều kiện, cho dù nếu có điều kiện, IF 1088 00:44:28,080 --> 00:44:30,480 Elses, hoặc chúng tôi thậm chí có thể mô phỏng sâu hơn 1089 00:44:30,480 --> 00:44:32,830 cấp, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 vì vậy đó là của một nhà nước ternary. 1091 00:44:34,430 --> 00:44:36,920 Bạn có thể đi theo cách này hoặc cách này hoặc cách này. 1092 00:44:36,920 --> 00:44:39,680 Chúng tôi có thể giữ cho mọi thứ làm tổ để đi theo những hướng khác nhau. 1093 00:44:39,680 --> 00:44:41,800 >> Vì vậy, Scratch có những vòng, như giới hạn. 1094 00:44:41,800 --> 00:44:44,750 Nó có các tính năng như Lặp lại 10, một số 1095 00:44:44,750 --> 00:44:46,260 hữu hạn số lần. 1096 00:44:46,260 --> 00:44:49,040 Chúng tôi có khả năng thiết lập các biến, do đó, trong trường hợp này 1097 00:44:49,040 --> 00:44:51,810 Tôi đã tuyên bố, ví dụ, một vớ được gọi là biến. 1098 00:44:51,810 --> 00:44:54,340 Tôi đã khởi tạo là 0, và đó là một hướng 1099 00:44:54,340 --> 00:44:56,940 chúng ta có thể đưa lên đây với Joseph, nhờ đó mà có lẽ tôi 1100 00:44:56,940 --> 00:45:00,150 chỉ cần theo dõi bao nhiêu vớ tôi có trên và chấm dứt 1101 00:45:00,150 --> 00:45:03,490 chương trình khi giá trị của biến đó là 2. 1102 00:45:03,490 --> 00:45:05,660 Đó sẽ là một cách khác để loại khái quát rằng 1103 00:45:05,660 --> 00:45:08,820 vấn đề và làm một cái gì đó một lần nữa và một lần nữa. 1104 00:45:08,820 --> 00:45:12,080 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. 1105 00:45:12,080 --> 00:45:14,100 Vì vậy, những người bạn có kinh nghiệm lập trình trước 1106 00:45:14,100 --> 00:45:17,120 biết rằng rất nhiều ngôn ngữ có mảng, véc tơ hoặc 1107 00:45:17,120 --> 00:45:19,970 danh sách, và thực sự, Scratch có một cái gì đó như thế này, quá. 1108 00:45:19,970 --> 00:45:22,510 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. 1109 00:45:22,510 --> 00:45:24,920 Nếu tôi có khả năng, bây giờ, với những mảnh ghép để 1110 00:45:24,920 --> 00:45:29,080 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ể 1111 00:45:29,080 --> 00:45:30,550 bắt đầu tích lũy những điều. 1112 00:45:30,550 --> 00:45:33,630 Và điều này thực sự là apropos khá cho những thứ như trò chơi, 1113 00:45:33,630 --> 00:45:35,810 vai trò-chơi trò chơi, nơi bạn đi bộ xung quanh 1114 00:45:35,810 --> 00:45:38,600 một số thế giới tưởng tượng những điều thu thập, chọn những thứ lên, 1115 00:45:38,600 --> 00:45:39,900 tích luỹ điểm, hoặc tương tự. 1116 00:45:39,900 --> 00:45:42,310 Bạn có thể muốn theo dõi của một số loại hàng tồn kho, và 1117 00:45:42,310 --> 00:45:45,180 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 1118 00:45:45,180 --> 00:45:47,750 một cái gì đó gọi là Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Vì vậy, hãy để tôi đi trước và mở ra điều này ở đây, và trong 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, chúng tôi có thế giới này ở đầu trang. 1121 00:45:56,260 --> 00:45:58,820 Vì vậy, hãy để tôi đi trước và nhấp vào lá cờ màu xanh lá cây. 1122 00:45:58,820 --> 00:46:01,040 Thông báo ở trên cùng bên trái là một số loại hàng tồn kho. 1123 00:46:01,040 --> 00:46:04,110 Được cài đặt trong Scratch như những gì chúng ta sẽ gọi một mảng hoặc 1124 00:46:04,110 --> 00:46:06,890 một danh sách, và bây giờ chúng ta đã có hình ảnh động. 1125 00:46:06,890 --> 00:46:10,440 Vậy chúng ta bắt đầu trước đó với câu chuyện tình yêu cookie này, 1126 00:46:10,440 --> 00:46:13,320 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ó 1127 00:46:13,320 --> 00:46:15,100 những điều mà thậm chí còn tương tác nhiều hơn. 1128 00:46:15,100 --> 00:46:18,250 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 1129 00:46:18,250 --> 00:46:19,500 ít nhà đây. 1130 00:46:19,500 --> 00:46:22,570 Vì vậy, có vẻ như ông có một lối ra ở đây, vì vậy tôi đang sử dụng 1131 00:46:22,570 --> 00:46:25,260 các phím mũi tên lên, xuống, trái phải. 1132 00:46:25,260 --> 00:46:28,370 Và bây giờ tôi đang ở ngoài, do đó, chúng ta hãy là những gì tôi đã có ở đây. 1133 00:46:28,370 --> 00:46:30,920 Trông giống như một màu da cam, và quả thật, ngay sau khi tôi chạm vào 1134 00:46:30,920 --> 00:46:33,110 cam, nó được plopped vào hàng tồn kho của tôi. 1135 00:46:33,110 --> 00:46:35,640 Nếu tôi đi qua đây để các anh đào, bây giờ tôi có một cái gì đó 1136 00:46:35,640 --> 00:46:36,760 khác trong hàng tồn kho của tôi. 1137 00:46:36,760 --> 00:46:39,100 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 1138 00:46:39,100 --> 00:46:39,840 được thực hiện. 1139 00:46:39,840 --> 00:46:42,490 Vâng, chúng ta có khái niệm về một danh sách, và đó là rõ ràng là một 1140 00:46:42,490 --> 00:46:45,470 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 1141 00:46:45,470 --> 00:46:46,950 cam, anh đào. 1142 00:46:46,950 --> 00:46:48,540 Bây giờ, anh chàng nhỏ màu xanh này đang làm gì? 1143 00:46:48,540 --> 00:46:49,810 Vâng, anh ấy là một sprite. 1144 00:46:49,810 --> 00:46:52,190 Và có lẽ, cam và quả cà phê - 1145 00:46:52,190 --> 00:46:54,140 chính họ là những sprites riêng biệt. 1146 00:46:54,140 --> 00:46:56,980 Và bằng cách sử dụng điều kiện trong biểu thức Boolean, 1147 00:46:56,980 --> 00:47:00,530 sinh viên có lẽ là có thể thể hiện NẾU màu xanh chàng 1148 00:47:00,530 --> 00:47:04,590 anh đào chạm vào THEN thêm anh đào từ của mình 1149 00:47:04,590 --> 00:47:07,890 hàng tồn kho, và sau đó cũng ẩn sprite anh đào. 1150 00:47:07,890 --> 00:47:10,600 Vì vậy, bên dưới mui xe, có lẽ vẫn còn là một anh đào 1151 00:47:10,600 --> 00:47:11,350 sprite. 1152 00:47:11,350 --> 00:47:14,160 Chúng tôi đã chỉ nói với nó để trở nên hiệu quả vô hình. 1153 00:47:14,160 --> 00:47:16,340 >> 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 1154 00:47:16,340 --> 00:47:19,150 điều gần, nơi tôi có thể đi và đọc các dấu hiệu. 1155 00:47:19,150 --> 00:47:23,170 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 1156 00:47:23,170 --> 00:47:26,455 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 1157 00:47:26,455 --> 00:47:26,880 một số trái cây? 1158 00:47:26,880 --> 00:47:29,290 Mang nó đến nơi trái cây "Được rồi, vì vậy bây giờ, rõ ràng. 1159 00:47:29,290 --> 00:47:30,550 Tôi có hướng dẫn của tôi. 1160 00:47:30,550 --> 00:47:33,050 Tôi có thể đi đến nơi trái cây, xếp hàng bản thân mình lên 1161 00:47:33,050 --> 00:47:33,740 với các cửa. 1162 00:47:33,740 --> 00:47:35,390 Bây giờ, tôi đang ở đây. 1163 00:47:35,390 --> 00:47:38,120 Tôi có thể đi với người đàn ông ở quầy. 1164 00:47:38,120 --> 00:47:40,330 Ô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à 1165 00:47:40,330 --> 00:47:46,780 khá giống nhau chạm vào, và tôi đã thắng. 1166 00:47:46,780 --> 00:47:49,890 Như vậy, có chúng tôi có Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> 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. 1168 00:47:52,200 --> 00:47:53,200 Chúng tôi có thể thêm âm thanh. 1169 00:47:53,200 --> 00:47:54,610 Chúng ta có thể thêm ngẫu nhiên giả. 1170 00:47:54,610 --> 00:47:56,260 Chúng ta có thể thêm phức tạp. 1171 00:47:56,260 --> 00:47:58,490 Hãy để tôi đi trước đây, và thay vì làm điều này bản thân mình, 1172 00:47:58,490 --> 00:48:01,240 hãy để tôi chỉ cho bạn một của các ý tưởng phức tạp hơn 1173 00:48:01,240 --> 00:48:06,640 chúng tôi đã nhận năm ngoái từ một người nào đó tên là Blake. 1174 00:48:06,640 --> 00:48:08,910 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 1175 00:48:08,910 --> 00:48:12,600 máy ảnh và để chơi một trò chơi? 1176 00:48:12,600 --> 00:48:13,450 Làm thế nào về phải có? 1177 00:48:13,450 --> 00:48:15,380 Nào lên. 1178 00:48:15,380 --> 00:48:19,680 Được rồi, do đó, các trò chơi mà bạn có chỉ là vô tình 1179 00:48:19,680 --> 00:48:20,780 tình nguyện để chơi - 1180 00:48:20,780 --> 00:48:25,910 [Vỗ tay] 1181 00:48:25,910 --> 00:48:28,610 DAVID Malan: - là một cái gì đó từ xưa đã được gọi là 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Tên của bạn là gì? 1183 00:48:30,100 --> 00:48:30,730 Renda: Renda. 1184 00:48:30,730 --> 00:48:31,050 DAVID Malan: Redna? 1185 00:48:31,050 --> 00:48:32,530 Renda: Nó giống như Brenda với b. 1186 00:48:32,530 --> 00:48:33,190 DAVID Malan: Được rồi, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Hân hạnh được gặp bạn. 1189 00:48:34,580 --> 00:48:38,690 >> Vì vậy, ở đây trong "Frogger", và nếu chúng ta có thể tăng âm lượng chỉ 1190 00:48:38,690 --> 00:48:39,780 một chút, bạn này ít 1191 00:48:39,780 --> 00:48:41,010 ếch màu xanh lá cây ở phía dưới. 1192 00:48:41,010 --> 00:48:43,940 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à để 1193 00:48:43,940 --> 00:48:46,510 băng qua đường, băng qua sông, và chạm vào miếng lily 1194 00:48:46,510 --> 00:48:47,760 ở đầu. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Một trong nhiều t - 1197 00:48:54,630 --> 00:48:56,400 làm lại, được chứ? 1198 00:48:56,400 --> 00:48:58,890 Hãy nhấn stop. 1199 00:48:58,890 --> 00:49:00,140 Không ai nhìn thấy điều đó. 1200 00:49:10,470 --> 00:49:12,930 [Vỗ tay] 1201 00:49:17,023 --> 00:49:17,850 [Vỗ tay] 1202 00:49:17,850 --> 00:49:19,341 DAVID Malan: Yeah. 1203 00:49:19,341 --> 00:49:20,832 Thực hiện rất tốt. 1204 00:49:20,832 --> 00:49:22,082 Tuyệt vời, cảm ơn bạn. 1205 00:49:27,300 --> 00:49:29,430 >> Vì vậy, đó có Frogger. Bây giờ bạn biết những gì bạn đã 1206 00:49:29,430 --> 00:49:32,170 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 1207 00:49:32,170 --> 00:49:34,910 trò chơi được gửi bởi một học sinh khác. 1208 00:49:34,910 --> 00:49:35,560 Bạn muốn đi lên? 1209 00:49:35,560 --> 00:49:36,576 Tên của bạn là gì? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 DAVID Malan: Richard. 1212 00:49:37,420 --> 00:49:39,732 Được rồi, Richard, đi lên trên. 1213 00:49:39,732 --> 00:49:42,187 [Vỗ tay] 1214 00:49:45,140 --> 00:49:47,030 DAVID Malan: Bạn có cái gì đó sẽ âm thanh 1215 00:49:47,030 --> 00:49:54,180 quen thuộc sớm, vì vậy đây là những hướng dẫn của bạn. 1216 00:49:54,180 --> 00:49:56,580 Vì vậy, trong một thời điểm, một số mảnh ghép sẽ di chuyển lên 1217 00:49:56,580 --> 00:49:58,150 từ màn hình nhìn hoặc trái 1218 00:49:58,150 --> 00:49:59,450 hoặc phải lên hoặc xuống. 1219 00:49:59,450 --> 00:50:01,230 Bạn sẽ phải nhấn các phím mũi tên theo cách như vậy 1220 00:50:01,230 --> 00:50:04,540 nó tương ứng với những mảnh ghép xếp hàng với 1221 00:50:04,540 --> 00:50:05,720 giữ chỗ ở đầu trang. 1222 00:50:05,720 --> 00:50:07,500 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 1223 00:50:07,500 --> 00:50:09,260 mũi tên, nhấn vào mũi tên bên trái. 1224 00:50:09,260 --> 00:50:10,866 Bạn có thể bắt đầu. 1225 00:50:10,866 --> 00:50:13,674 [MUSIC - "Stronger" Kayne West] 1226 00:51:21,222 --> 00:51:23,470 DAVID Malan: Tất cả, phải lớn tràng pháo tay cho Richard. 1227 00:51:23,470 --> 00:51:26,082 [Vỗ tay] 1228 00:51:32,426 --> 00:51:33,720 DAVID Malan: Rất cũng được thực hiện. 1229 00:51:33,720 --> 00:51:34,110 Cảm ơn bạn. 1230 00:51:34,110 --> 00:51:37,104 [Vỗ tay] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID Malan: Vì vậy, vui vẻ và, dường như, sắp xếp của 1232 00:51:44,330 --> 00:51:46,590 đáng sợ vì nó có thể thực hiện một cái gì đó như là 1233 00:51:46,590 --> 00:51:49,550 dường như phức tạp như thế này, nhận ra rằng học sinh 1234 00:51:49,550 --> 00:51:51,450 không đặt ra và chỉ cần viết này cùng một lúc. 1235 00:51:51,450 --> 00:51:54,200 Thay vào đó, bạn có thể phá vỡ một vấn đề là có vẻ như phức tạp 1236 00:51:54,200 --> 00:51:56,840 vì điều này thành những miếng nhỏ hơn nhiều, và điều này cũng là 1237 00:51:56,840 --> 00:51:57,560 sẽ là một chủ đề. 1238 00:51:57,560 --> 00:52:00,490 Đ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ỳ 1239 00:52:00,490 --> 00:52:03,480 ngôn ngữ là ngồi xuống, có được thực sự vui mừng, viết 1240 00:52:03,480 --> 00:52:07,200 toàn bộ điều chết tiệt, và sau đó chỉ hy vọng rằng nó hoạt động. 1241 00:52:07,200 --> 00:52:08,510 thời gian bạn đang viết xong. 1242 00:52:08,510 --> 00:52:10,920 Thay vào đó, quá trình lập trình nên thường 1243 00:52:10,920 --> 00:52:13,440 khoan thai, rất lặp đi lặp lại, theo đó bạn chỉ cần 1244 00:52:13,440 --> 00:52:16,955 thiết lập các bước rất nhỏ cho mình, miếng nhỏ 1245 00:52:16,955 --> 00:52:20,070 nào bạn muốn cắn, và do đó bạn có những sanity 1246 00:52:20,070 --> 00:52:21,740 kiểm tra, sự kiện quan trọng ít bạn có thể đáp ứng. 1247 00:52:21,740 --> 00:52:24,170 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 1248 00:52:24,170 --> 00:52:25,400 tinh vi điều vẫn còn. 1249 00:52:25,400 --> 00:52:26,820 >> Vì vậy, ví dụ, làm thế nào chúng ta có thể đi về 1250 00:52:26,820 --> 00:52:28,380 thực hiện một trò chơi như thế này? 1251 00:52:28,380 --> 00:52:30,160 Vâng, thẳng thắn, tôi chắc chắn sẽ bắt đầu bằng cách chỉ 1252 00:52:30,160 --> 00:52:32,260 hỗ trợ một trong những chìa khóa tại một thời điểm. 1253 00:52:32,260 --> 00:52:34,840 Chúng ta chỉ cần thực hiện hỗ trợ cho các mũi tên bên trái. 1254 00:52:34,840 --> 00:52:37,610 Vì vậy, các sinh viên đã có bằng cách nào đó tạo ra trong Photoshop, hoặc trong 1255 00:52:37,610 --> 00:52:40,340 Scratch chính nó bằng cách sử dụng trình soạn thảo ít đồ họa, 1256 00:52:40,340 --> 00:52:42,680 phím mũi tên trông giống như một ở đầu còn lại đó, chỉ cần 1257 00:52:42,680 --> 00:52:43,910 giữ chỗ màu xám. 1258 00:52:43,910 --> 00:52:46,610 Sau đó, các học sinh phải tìm ra những gì x, y phối hợp 1259 00:52:46,610 --> 00:52:48,380 đặt nó, nơi để đặt nó trong cửa sổ. 1260 00:52:48,380 --> 00:52:50,730 0, 0 là ở đây, vì vậy bạn phải tìm ra số lượng 1261 00:52:50,730 --> 00:52:53,690 pixels, hoặc dấu chấm, để bù đắp cho rằng mũi tên từ 1262 00:52:53,690 --> 00:52:54,800 phía trên cùng của màn hình. 1263 00:52:54,800 --> 00:52:57,040 Và sau đó một lần đó là tại chỗ, chương trình của bạn không thực sự 1264 00:52:57,040 --> 00:53:00,380 làm bất cứ điều gì được nêu ra, do đó, sau đó bạn cần một ma thứ hai, 1265 00:53:00,380 --> 00:53:04,470 dụ một mũi tên màu xanh lá cây đó là cũng trỏ đến lại, và bạn 1266 00:53:04,470 --> 00:53:06,710 sau đó bạn cần để bắt đầu viết một số kịch bản cho nó. 1267 00:53:06,710 --> 00:53:09,310 >> Và bạn nhận thấy, có lẽ, những điều này bắt đầu đến lúc 1268 00:53:09,310 --> 00:53:11,470 tốc độ khác nhau, và các màu sắc khác nhau 1269 00:53:11,470 --> 00:53:13,750 địa điểm, và đó là bởi vì các học sinh sử dụng một chút 1270 00:53:13,750 --> 00:53:14,990 giả ngẫu nhiên. 1271 00:53:14,990 --> 00:53:17,440 Và bằng cách giả ngẫu nhiên, tôi chỉ có nghĩa là chọn một số 1272 00:53:17,440 --> 00:53:20,230 giữa một cái gì đó và một cái gì đó bởi vì bạn có thể 1273 00:53:20,230 --> 00:53:22,890 bắt đầu với những thứ đồ như thế nào nếu con số này là từ một 1274 00:53:22,890 --> 00:53:24,940 năm, tốt, chúng ta hãy làm cho điều đó màu xanh lá cây. 1275 00:53:24,940 --> 00:53:28,290 Nếu đó là từ 6 đến 10, chúng ta hãy làm các mảnh ghép 1276 00:53:28,290 --> 00:53:29,730 màu đỏ thay vì. 1277 00:53:29,730 --> 00:53:31,840 Vì vậy, miễn là bạn có một cách để tạo ra một số loại 1278 00:53:31,840 --> 00:53:34,730 ngẫu nhiên, sau đó bạn có thể làm cho quyết định trên cơ sở đó 1279 00:53:34,730 --> 00:53:35,260 ngẫu nhiên. 1280 00:53:35,260 --> 00:53:37,490 Và tôi tiếp tục giả nói ngẫu nhiên bởi vì có một 1281 00:53:37,490 --> 00:53:38,390 nhỏ bẩn bí mật. 1282 00:53:38,390 --> 00:53:41,130 Máy tính không thể đưa ra con số ngẫu nhiên. 1283 00:53:41,130 --> 00:53:42,800 Họ chỉ có thể làm những gì họ đang nói bởi vì 1284 00:53:42,800 --> 00:53:44,110 họ các thiết bị do con người tạo ra. 1285 00:53:44,110 --> 00:53:45,880 Họ có thể không chỉ đoán một số giống như con người chúng ta 1286 00:53:45,880 --> 00:53:46,960 cảm thấy như chúng tôi có thể. 1287 00:53:46,960 --> 00:53:50,970 Một máy tính có để làm một cái gì đó toán học để gợi lên 1288 00:53:50,970 --> 00:53:53,970 ảo giác của số toán học, đôi khi sử dụng 1289 00:53:53,970 --> 00:53:57,420 hiện tại ngày của thời gian như một đầu vào để tìm ra những gì 1290 00:53:57,420 --> 00:53:59,570 số trở lại, nhưng nhiều hơn về thời gian khác. 1291 00:53:59,570 --> 00:54:02,060 Để bây giờ, chỉ biết rằng chúng ta có thể tạo ra ngẫu nhiên giả. 1292 00:54:02,060 --> 00:54:04,610 >> 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 1293 00:54:04,610 --> 00:54:07,990 xuất hiện vào các thời điểm khác nhau và ở các tốc độ khác nhau, sau đó 1294 00:54:07,990 --> 00:54:10,230 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. 1295 00:54:10,230 --> 00:54:14,950 NẾU sprite này được chạm vào một khác, và phím mũi tên trái 1296 00:54:14,950 --> 00:54:16,330 trọng điểm đã được ép - 1297 00:54:16,330 --> 00:54:17,900 do đó, ba điều kiện trong trường hợp đó. 1298 00:54:17,900 --> 00:54:20,750 Tôi có thể sử dụng và ngăn chặn có lẽ, trong trường hợp đó - 1299 00:54:20,750 --> 00:54:23,210 Sau đó, tôi muốn đi trước và tăng số điểm. 1300 00:54:23,210 --> 00:54:25,130 Và ở đầu trang, chúng tôi có một số điểm, chúng tôi có Awesome, 1301 00:54:25,130 --> 00:54:26,510 Cool, Tốt, Boo. 1302 00:54:26,510 --> 00:54:29,810 Vì vậy, có vẻ như năm biến mà sinh viên này 1303 00:54:29,810 --> 00:54:32,220 được sử dụng để theo dõi các số liệu khác nhau. 1304 00:54:32,220 --> 00:54:34,180 Vì vậy, trong ngắn hạn, kết quả cuối cùng là tuyệt vời. 1305 00:54:34,180 --> 00:54:37,320 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à 1306 00:54:37,320 --> 00:54:38,380 nơi học sinh bắt đầu. 1307 00:54:38,380 --> 00:54:42,210 Anh ta hoặc cô bắt đầu tại một tập hợp nhỏ hơn nhiều bước. 1308 00:54:42,210 --> 00:54:44,470 >> Vì vậy, một số khối xây dựng khác mà chúng ta có thể là những gì 1309 00:54:44,470 --> 00:54:45,760 dệt vào các chương trình này? 1310 00:54:45,760 --> 00:54:48,750 Vâng, có khái niệm này trong hầu hết các ngôn ngữ khác, 1311 00:54:48,750 --> 00:54:50,730 Scratch trong số đó, được gọi là chủ đề. 1312 00:54:50,730 --> 00:54:54,660 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 1313 00:54:54,660 --> 00:54:56,730 thời gian, ít nhất là không thường. 1314 00:54:56,730 --> 00:54:59,930 Thay vào đó, một máy tính nói chung có chỉ là một CPU, và thậm chí cả 1315 00:54:59,930 --> 00:55:02,230 mặc dù máy tính siêu nhanh và có thể, do đó, 1316 00:55:02,230 --> 00:55:04,740 tạo ra ảo giác làm việc cùng một lúc - 1317 00:55:04,740 --> 00:55:06,180 kiểm tra mail của bạn, ngay lập tức 1318 00:55:06,180 --> 00:55:07,770 tin nhắn, in một tài liệu - 1319 00:55:07,770 --> 00:55:11,530 thực sự, một máy tính chỉ là nhảy từ in ấn để gửi tin nhắn nhanh 1320 00:55:11,530 --> 00:55:15,160 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 1321 00:55:15,160 --> 00:55:18,170 con người chậm witted chỉ không nhận ra rằng nó thực sự 1322 00:55:18,170 --> 00:55:21,240 chạy các chương trình một chút tại một thời điểm. 1323 00:55:21,240 --> 00:55:23,960 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, 1324 00:55:23,960 --> 00:55:26,740 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 1325 00:55:26,740 --> 00:55:29,760 có một CPU nhưng nhiều lõi, là loại giống như 1326 00:55:29,760 --> 00:55:31,760 có nhiều CPU. 1327 00:55:31,760 --> 00:55:35,020 >> Và do đó, đôi khi, máy tính có thể thực sự làm nhiều điều 1328 00:55:35,020 --> 00:55:38,500 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 1329 00:55:38,500 --> 00:55:40,200 dựa vào những điều được gọi là chủ đề. 1330 00:55:40,200 --> 00:55:43,160 Vì vậy, một sợi là loại giống như một chương trình thu nhỏ có thể 1331 00:55:43,160 --> 00:55:46,540 tồn tại cùng với một chương trình khác thu nhỏ và có thể chạy 1332 00:55:46,540 --> 00:55:51,250 song song, hoặc ít nhất là có thể chạy theo ảo tưởng rằng 1333 00:55:51,250 --> 00:55:52,990 họ đang chạy đồng thời. 1334 00:55:52,990 --> 00:55:55,060 Vì vậy, Scratch hỗ trợ những điều được gọi là chủ đề. 1335 00:55:55,060 --> 00:55:57,580 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 1336 00:55:57,580 --> 00:56:00,220 đã làm với sư tử biển, và điều này cho phép chúng ta thực sự 1337 00:56:00,220 --> 00:56:03,620 sau đó có sự tương tác giữa các sprites. 1338 00:56:03,620 --> 00:56:09,910 Hãy để tôi đi trước đây và kéo lên, hãy nói, chủ đề, và 1339 00:56:09,910 --> 00:56:11,870 chơi này như sau. 1340 00:56:11,870 --> 00:56:13,950 Chúng tôi có hai sprites, mỗi người trong số chúng ta sẽ thấy 1341 00:56:13,950 --> 00:56:15,720 có chỉ là một kịch bản. 1342 00:56:15,720 --> 00:56:18,000 Và bạn nhận thấy dường như có một số tình báo trong 1343 00:56:18,000 --> 00:56:21,335 con mèo trong một trong những điều này bởi vì ông nhận được gần hơn - 1344 00:56:21,335 --> 00:56:21,730 [Gầm rú] 1345 00:56:21,730 --> 00:56:24,540 DAVID Malan: - và gần gũi hơn với con chim nhỏ. 1346 00:56:24,540 --> 00:56:26,570 >> Vì vậy, làm thế nào là hoạt động con chim? 1347 00:56:26,570 --> 00:56:28,200 Vâng, chúng ta hãy có một cái nhìn con chim đầu tiên. 1348 00:56:28,200 --> 00:56:31,220 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 1349 00:56:31,220 --> 00:56:34,020 bằng âm 115 và y bằng 150. 1350 00:56:34,020 --> 00:56:37,010 Vì vậy, tôi chỉ cần tìm ra một vị trí ngẫu nhiên mà tôi muốn 1351 00:56:37,010 --> 00:56:39,580 chim để bắt đầu, và tôi chỉ ngồi phịch anh ta ở đó theo mặc định. 1352 00:56:39,580 --> 00:56:42,800 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 1353 00:56:42,800 --> 00:56:45,080 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à 1354 00:56:45,080 --> 00:56:45,780 một lần nữa và một lần nữa. 1355 00:56:45,780 --> 00:56:49,410 Vì vậy, miễn là bạn không chạm vào con mèo, di chuyển ba bước, và 1356 00:56:49,410 --> 00:56:51,680 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 1357 00:56:51,680 --> 00:56:53,320 phản ánh trong ý nghĩa bi-a. 1358 00:56:53,320 --> 00:56:56,140 Vậy đó là cách chim đang di chuyển xung quanh loại 1359 00:56:56,140 --> 00:56:58,890 dường như ngẫu nhiên, nhưng nó chỉ là bởi vì nó nảy ra khỏi 1360 00:56:58,890 --> 00:57:00,170 các bức tường trong trường hợp này. 1361 00:57:00,170 --> 00:57:03,170 >> Bây giờ, trong khi đó, con mèo là loại gian lận. 1362 00:57:03,170 --> 00:57:05,520 Con mèo, khi lá cờ màu xanh lá cây được nhấp, có, bắt đầu 1363 00:57:05,520 --> 00:57:07,390 một số vị trí, một vị trí ngẫu nhiên - 1364 00:57:07,390 --> 00:57:09,590 ít nhất là trong một phần theo các lựa chọn 1365 00:57:09,590 --> 00:57:11,430 khối ngẫu nhiên màu xanh lá cây - 1366 00:57:11,430 --> 00:57:14,660 và sau đó mãi mãi nếu chạm vào con chim, chơi âm thanh sư tử, 1367 00:57:14,660 --> 00:57:15,790 và sau đó dừng lại kịch bản. 1368 00:57:15,790 --> 00:57:18,560 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 đố 1369 00:57:18,560 --> 00:57:20,600 phần trong Scratch sẽ chỉ diệt các chương trình ở đó 1370 00:57:20,600 --> 00:57:22,900 chỉ vì nó là loại một cách hợp lý thực hiện. 1371 00:57:22,900 --> 00:57:25,030 Nhưng nếu không, ở đây, thông báo những gì sẽ xảy ra. 1372 00:57:25,030 --> 00:57:28,470 Điểm đối với gia cầm và di chuyển một bước. 1373 00:57:28,470 --> 00:57:31,390 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 1374 00:57:31,390 --> 00:57:34,640 có homing trên con chim di chuyển, và chúng tôi có thể 1375 00:57:34,640 --> 00:57:37,370 bây giờ làm cho chương trình này tất cả các chi tiết thú vị. 1376 00:57:37,370 --> 00:57:41,520 Thay vì di chuyển một bước tại một thời gian cho mỗi chu kỳ CPU, mỗi 1377 00:57:41,520 --> 00:57:44,280 đánh số điện thoại của chiếc chuông, do đó, để nói chuyện, để cho tôi đi trước và 1378 00:57:44,280 --> 00:57:47,350 di chuyển, hãy nói, năm bước tại một thời điểm như con mèo. 1379 00:57:47,350 --> 00:57:51,120 Click chạy, và bây giờ ông thực sự thấy anh ta một cách nhanh chóng. 1380 00:57:51,120 --> 00:57:55,620 Nếu chúng ta tăng gấp đôi đến 10 bước, nó loại đi 1381 00:57:55,620 --> 00:57:56,370 ngay cho anh ta. 1382 00:57:56,370 --> 00:57:57,750 Bây giờ, chúng tôi có thể cung cấp cho con chim, 1383 00:57:57,750 --> 00:57:59,540 có lẽ, một chút của một lợi thế. 1384 00:57:59,540 --> 00:58:02,370 Hãy để cho con chim và nói rằng thay vì di chuyển ba bước, 1385 00:58:02,370 --> 00:58:07,140 hãy di chuyển anh ta 30 bước. 1386 00:58:07,140 --> 00:58:08,700 Tuy nhiên, ông vẫn bị bắt cuối cùng. 1387 00:58:08,700 --> 00:58:10,430 >> Vì vậy, ở đây, chúng tôi có hai chủ đề. 1388 00:58:10,430 --> 00:58:13,230 Bị giam giữ trong Scratch với hai kịch bản và hai 1389 00:58:13,230 --> 00:58:16,150 sprites, nhưng ý tưởng trong các ngôn ngữ khác là bạn có thể 1390 00:58:16,150 --> 00:58:19,220 viết, về cơ bản, quá nhiều chương trình như thế này và có 1391 00:58:19,220 --> 00:58:22,950 họ chạy thực sự, hoặc tưởng tượng, song song. 1392 00:58:22,950 --> 00:58:25,280 >> Bây giờ, cũng có khái niệm này trong chương trình được gọi là 1393 00:58:25,280 --> 00:58:28,010 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, 1394 00:58:28,010 --> 00:58:30,500 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ỳ 1395 00:58:30,500 --> 00:58:33,240 lập trình web, khi chúng tôi giới thiệu JavaScript và 1396 00:58:33,240 --> 00:58:36,970 khái niệm của các trang web xây dựng được năng động và tương tác 1397 00:58:36,970 --> 00:58:37,710 với người dùng. 1398 00:58:37,710 --> 00:58:40,430 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 1399 00:58:40,430 --> 00:58:43,860 sprites, cậu bé và cô gái, mỗi người trong số họ có tương ứng của họ. 1400 00:58:43,860 --> 00:58:48,040 đề tài, nhưng bằng cách nào đó hai là liên giao tiếp bằng cách 1401 00:58:48,040 --> 00:58:49,490 một cái gì đó gọi là sự kiện. 1402 00:58:49,490 --> 00:58:52,750 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é, 1403 00:58:52,750 --> 00:58:54,050 mà trông như thế này. 1404 00:58:54,050 --> 00:58:57,510 Khi lá cờ màu xanh lá cây nhấp, mãi mãi làm như sau. 1405 00:58:57,510 --> 00:59:01,510 Nếu không gian quan trọng, hoặc quán Space, được nhấn, nói 1406 00:59:01,510 --> 00:59:03,900 Marco cho hai giây, đó là hoàn toàn thẩm mỹ trên 1407 00:59:03,900 --> 00:59:06,860 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. 1408 00:59:06,860 --> 00:59:09,240 >> Vì vậy, quảng bá là một mảnh Scratch đó là 1409 00:59:09,240 --> 00:59:12,050 đại diện của một lớp học của các chức năng trong lập trình 1410 00:59:12,050 --> 00:59:15,080 cho phép các chương trình khác nhau, chủ đề khác nhau, 1411 00:59:15,080 --> 00:59:17,120 liên giao tiếp, bằng cách nào đó gửi 1412 00:59:17,120 --> 00:59:18,520 tin nhắn, một đến khác. 1413 00:59:18,520 --> 00:59:21,930 Đi qua một mảnh giấy trong lớp là loại công nghệ thấp 1414 00:59:21,930 --> 00:59:22,700 tương đương. 1415 00:59:22,700 --> 00:59:24,300 Vì vậy, phát sóng sự kiện. 1416 00:59:24,300 --> 00:59:26,210 Tôi có thể gửi thông báo này, và sự kiện này từ 1417 00:59:26,210 --> 00:59:27,270 là hoàn toàn tùy ý. 1418 00:59:27,270 --> 00:59:30,000 Scratch đôi khi có những thăng trầm thả, do đó, tôi chỉ đến 1419 00:59:30,000 --> 00:59:33,230 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 1420 00:59:33,230 --> 00:59:36,600 khi tôi nhấn chính là chương trình phát sóng sự kiện này. 1421 00:59:36,600 --> 00:59:39,270 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ô 1422 00:59:39,270 --> 00:59:42,690 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 1423 00:59:42,690 --> 00:59:44,100 lá cờ màu xanh lá cây được nhấp. 1424 00:59:44,100 --> 00:59:47,910 Cô được thiết kế để hành động khi cô nhận được báo giá, unquote, 1425 00:59:47,910 --> 00:59:51,210 "Sự kiện", và lúc đó, cô ấy là lắng nghe do đó cho 1426 00:59:51,210 --> 00:59:52,960 sự kiện để được gọi là một lần nữa và một lần nữa. 1427 00:59:52,960 --> 00:59:55,790 Ngay khi cô nhận được sự kiện đó, cô ấy sẽ hét thật to 1428 00:59:55,790 --> 00:59:57,680 Polo cho hai giây. 1429 00:59:57,680 --> 01:00:01,090 >> Và như vậy bạn có lẽ có thể suy ra từ này chính xác những gì 1430 01:00:01,090 --> 01:00:03,190 tiếp theo kết quả là có được. 1431 01:00:03,190 --> 01:00:04,910 Hãy để tôi nhấp vào lá cờ màu xanh lá cây. 1432 01:00:04,910 --> 01:00:06,610 Không có gì xảy ra bởi vì tôi cần phải làm những gì? 1433 01:00:06,610 --> 01:00:07,310 Khán giả: Space Bar. 1434 01:00:07,310 --> 01:00:08,630 DAVID Malan: Space Bar. 1435 01:00:08,630 --> 01:00:11,990 Boy Marco, cô gái Polo. 1436 01:00:11,990 --> 01:00:13,670 Nhưng đó không phải là cứng mã hoá cho mỗi gia nhập. 1437 01:00:13,670 --> 01:00:16,740 Đó 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 1438 01:00:16,740 --> 01:00:19,240 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 1439 01:00:19,240 --> 01:00:22,830 hai là bằng cách nào đó liên giao tiếp. 1440 01:00:22,830 --> 01:00:25,260 >> Vì vậy, những gì hướng dẫn, chúng ta có thể thực hiện việc này? 1441 01:00:25,260 --> 01:00:28,260 Vâng, vấn đề trong thiết lập 0, thực sự, mục tiêu là để 1442 01:00:28,260 --> 01:00:29,830 vui chơi với Scratch. 1443 01:00:29,830 --> 01:00:32,440 Cho phiên bản hacker, thay vào đó bạn sẽ có niềm vui với một 1444 01:00:32,440 --> 01:00:35,850 phiên bản tinh vi gọi là Scratch BYOB, Xây dựng 1445 01:00:35,850 --> 01:00:38,040 Blocks riêng của bạn, nhưng ý tưởng là như nhau. 1446 01:00:38,040 --> 01:00:38,780 Bạn sẽ có thể - 1447 01:00:38,780 --> 01:00:39,710 Vâng, đó là có chủ ý. 1448 01:00:39,710 --> 01:00:42,450 Nó đến từ Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB là phiên bản của hacker phiên bản này, nhưng cả hai 1450 01:00:45,200 --> 01:00:48,180 nhân khẩu học, bản tiêu chuẩn và phiên bản của hacker như nhau, 1451 01:00:48,180 --> 01:00:50,940 mục tiêu ở tay cho tuần tới thực sự là chỉ để nhảy vào 1452 01:00:50,940 --> 01:00:53,050 sâu, có được bàn tay của bạn bẩn với lập trình, và làm cho 1453 01:00:53,050 --> 01:00:55,240 một cái gì đó thú vị, làm cho một cái gì đó tương tác, 1454 01:00:55,240 --> 01:00:58,020 một cái gì đó nghệ thuật, làm cho niềm vui một cái gì đó để thực sự 1455 01:00:58,020 --> 01:01:01,020 chứng minh, để đến cuối tuần, bạn sẽ có một dự án, 1456 01:01:01,020 --> 01:01:03,770 không chỉ cho pset CS50 1, nhưng bạn sẽ có một 1457 01:01:03,770 --> 01:01:05,620 ít cái gì mà bạn có thể hiển thị trong Annenberg 1458 01:01:05,620 --> 01:01:08,830 bạn bè hay gia đình thậm chí bằng cách tải lên trang web của MIT. 1459 01:01:08,830 --> 01:01:11,760 Và như tôi đã nói hôm thứ tư, chúng tôi hy vọng 90% của lớp, 1460 01:01:11,760 --> 01:01:13,970 nói chung, để làm các phiên bản tiêu chuẩn. 1461 01:01:13,970 --> 01:01:16,660 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 1462 01:01:16,660 --> 01:01:18,990 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 1463 01:01:18,990 --> 01:01:21,650 và thực sự muốn nhảy vào và phác thảo một tầm nhìn bạn đã 1464 01:01:21,650 --> 01:01:25,380 có với nền trước trong này thân thiện hơn 1465 01:01:25,380 --> 01:01:26,240 môi trường. 1466 01:01:26,240 --> 01:01:29,030 >> 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 1467 01:01:29,030 --> 01:01:33,830 sinh viên ở đây đã làm và nói một chút gì đó thông qua bài hát. 1468 01:01:33,830 --> 01:01:37,430 Điều đó tương tự như vậy, khi lượt này, suy nghĩ về cách bạn đi về 1469 01:01:37,430 --> 01:01:40,520 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 1470 01:01:40,520 --> 01:01:44,180 xây dựng các khối, một chút ngẫu nhiên giả, và một 1471 01:01:44,180 --> 01:01:46,010 bit của bài hát quen thuộc. 1472 01:01:46,010 --> 01:01:47,910 Nếu chúng ta có thể nâng cao khối lượng chỉ là một chút? 1473 01:01:47,910 --> 01:01:49,160 [MUSIC - "trời mưa MEN" THE GIRLS DỰ BÁO THỜI TIẾT] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID Malan: Đó là nó cho CS50. 1475 01:03:03,930 --> 01:03:05,860 Chúng ta sẽ thấy bạn vào thứ hai. 1476 01:03:05,860 --> 01:03:21,152 [Vỗ tay]