1 00:00:00,000 --> 00:00:15,059 >> [NHẠC] 2 00:00:15,059 --> 00:00:19,170 >> Đây là CS50-- Harvard giới thiệu của Đại học 3 00:00:19,170 --> 00:00:22,070 với trí tuệ doanh nghiệp khoa học máy tính 4 00:00:22,070 --> 00:00:23,800 và nghệ thuật của chương trình. 5 00:00:23,800 --> 00:00:27,020 Và tôi tên là David Malan, và Tôi chỉ nghĩ sáng nay, 6 00:00:27,020 --> 00:00:33,120 nó được đáng kinh ngạc 20 năm nay kể từ khi tôi ngồi cuối cùng mà các bạn làm bây giờ. 7 00:00:33,120 --> 00:00:33,840 >> Đó là năm 1996. 8 00:00:33,840 --> 00:00:37,550 Tôi là một sinh viên năm hai, và tôi đã được tham gia CS50 cho lần đầu tiên. 9 00:00:37,550 --> 00:00:40,890 Và tôi đã thậm chí không nhận được lên các dây thần kinh lấy bản thân mình năm thứ nhất, 10 00:00:40,890 --> 00:00:42,500 một phần vì thời gian. 11 00:00:42,500 --> 00:00:44,782 khoa học máy tính với tôi đã được loại thích, meh. 12 00:00:44,782 --> 00:00:46,990 Tôi là một chút của một đam mê phát triển lên, nhưng tôi đã không thực sự 13 00:00:46,990 --> 00:00:49,180 có trí tuệ quan tâm đến những gì xuất hiện 14 00:00:49,180 --> 00:00:51,920 chỉ là một bó toàn bộ người lập trình tất cả các thời gian. 15 00:00:51,920 --> 00:00:53,904 >> Và tôi rất sợ phải trung thực. 16 00:00:53,904 --> 00:00:56,820 Các khóa học và khoa học máy tính hơn nói chung đã có và đến một mức độ nào, 17 00:00:56,820 --> 00:01:01,230 vẫn có uy tín này của một trường để hãy cẩn thận, nếu chỉ vì có quá nhiều người trong chúng ta 18 00:01:01,230 --> 00:01:04,410 không quen với nó và chắc chắn của nó. 19 00:01:04,410 --> 00:01:08,480 Và nó thực sự không phải là cho đến khi tôi đi mua sắm đây lớp thứ hai fall-- 20 00:01:08,480 --> 00:01:10,880 và thậm chí sau đó, tôi chỉ ghi danh vì professor-- 21 00:01:10,880 --> 00:01:13,950 một trong những cố vấn đầu tiên của tôi, Brian Kernighan tại Princeton-- 22 00:01:13,950 --> 00:01:15,700 cho phép tôi để có những đường chuyền đẳng cấp thất bại. 23 00:01:15,700 --> 00:01:18,020 Và quả thực, đó là lý do tại sao hôm nay chúng tôi cho phép và khuyến khích 24 00:01:18,020 --> 00:01:20,030 sinh viên học lớp này ngồi / unsat. 25 00:01:20,030 --> 00:01:22,040 >> Và chỉ sau đó, bởi các cuối học kỳ 26 00:01:22,040 --> 00:01:24,870 Tôi đã nhận ra như thế, wow, điều này không phải là một lĩnh vực xa lạ như vậy. 27 00:01:24,870 --> 00:01:26,850 Thật vậy, đây là một rất mạnh mẽ lĩnh vực, 28 00:01:26,850 --> 00:01:28,970 và sôi nổi hơn, đặc biệt là sau này, 29 00:01:28,970 --> 00:01:32,809 như tôi đã học trong Nghệ thuật Sân khấu 101 và Latin A 30 00:01:32,809 --> 00:01:34,600 và sau đó cuối cùng khảo cổ học grad, 31 00:01:34,600 --> 00:01:37,860 đã làm tôi thực sự bắt đầu để xem giao điểm của lĩnh vực này, máy tính 32 00:01:37,860 --> 00:01:41,979 khoa học, với các khoa học nhân văn, khoa học tự nhiên, nghệ thuật, y học, 33 00:01:41,979 --> 00:01:42,520 và như thế. 34 00:01:42,520 --> 00:01:44,420 Và đó là những gì chỉ như vậy gọn về khoa học máy tính 35 00:01:44,420 --> 00:01:46,930 cuối cùng, như chúng tôi hy vọng bạn sẽ see-- là ứng dụng của nó 36 00:01:46,930 --> 00:01:50,280 những lĩnh vực khác, và làm thế nào bạn có thể có một số của ngày hôm nay và các học kỳ 37 00:01:50,280 --> 00:01:53,070 ý tưởng và kỹ năng thực hành trở lại miền riêng của bạn, 38 00:01:53,070 --> 00:01:58,200 và thực sự khám phá ngã tư này của nghệ thuật tự do và khoa học. 39 00:01:58,200 --> 00:02:02,690 >> Vì vậy, 73% các bạn, nếu cuối cùng năm là bất kỳ dấu hiệu, 40 00:02:02,690 --> 00:02:04,390 không bao giờ lấy một khóa học CS trước. 41 00:02:04,390 --> 00:02:06,389 Vì vậy, nếu, như tôi, bạn là cảm thấy một chút 42 00:02:06,389 --> 00:02:09,190 sợ hãi, hoặc thẳng thắn bạn không thực sự chắc chắn lý do tại sao bạn ngay cả ở đây. 43 00:02:09,190 --> 00:02:11,510 Có lẽ bạn chỉ cần theo một số bạn bè lại Sanders ngay bây giờ. 44 00:02:11,510 --> 00:02:12,490 Đó là hoàn toàn tốt đẹp. 45 00:02:12,490 --> 00:02:15,059 Mục tiêu ở đây là để treo bạn và để trấn an bạn 46 00:02:15,059 --> 00:02:17,100 rằng nếu bạn nhìn vào bên trái và bên phải, 47 00:02:17,100 --> 00:02:21,480 bạn sẽ nhìn thấy các bạn cùng lớp với như kinh nghiệm ít hay nhiều 48 00:02:21,480 --> 00:02:22,890 mà bản thân bạn có thể có. 49 00:02:22,890 --> 00:02:25,280 Và quả thực, chúng tôi sẽ chia sẻ một số thống kê sau ngày hôm nay 50 00:02:25,280 --> 00:02:28,120 như những gì các nhân khẩu học của lớp thường như thế nào. 51 00:02:28,120 --> 00:02:31,440 >> Và như thêm reassurance-- và chúng tôi này không có nghĩa là kể từ khi tôi đã qua khóa học 52 00:02:31,440 --> 00:02:33,252 một số năm ago-- trong giáo trình của khóa học 53 00:02:33,252 --> 00:02:35,460 là này-- rằng những gì cuối cùng vấn đề trong khóa học này 54 00:02:35,460 --> 00:02:38,040 không phải là quá nhiều, nơi bạn kết thúc lên tương đối so với các bạn cùng lớp của mình, 55 00:02:38,040 --> 00:02:43,110 nhưng nơi bạn ở tuần 11, kết thúc của học kỳ, kết thúc tương đối so với chính mình 56 00:02:43,110 --> 00:02:46,280 trong tuần 0, đó là nơi chúng tôi đang ở đây ngày hôm nay. 57 00:02:46,280 --> 00:02:48,704 Và đây là những gì tôi nhận ra tất cả những năm trước đây. 58 00:02:48,704 --> 00:02:50,620 Và tôi biết rất nhiều các lớp học nói điều này, nhưng nó 59 00:02:50,620 --> 00:02:52,450 đặc biệt đúng trong khoa học máy tính. 60 00:02:52,450 --> 00:02:55,320 Vào cuối ngày, lĩnh vực này là không quen thuộc vì nó đã cho tôi 61 00:02:55,320 --> 00:02:58,590 và có thể là bạn, thực sự là chỉ là về giải quyết vấn đề. 62 00:02:58,590 --> 00:03:01,324 Và như vậy, nó không có điều này áp dụng để có được các lĩnh vực khác. 63 00:03:01,324 --> 00:03:03,490 Và trên thực tế, nếu chúng ta cố gắng chắt lọc những gì này có nghĩa là, 64 00:03:03,490 --> 00:03:06,897 đây là giải quyết vấn đề trong bản chất của nó, tôi dám chắc. 65 00:03:06,897 --> 00:03:09,480 Có input-- để bất cứ điều gì là bạn đang cố gắng để giải quyết. 66 00:03:09,480 --> 00:03:12,264 Có đầu ra, mà là hy vọng các giải pháp cho vấn đề đó. 67 00:03:12,264 --> 00:03:14,180 Và sau đó, như chúng ta sẽ nói trong khoa học máy tính, 68 00:03:14,180 --> 00:03:17,310 có hộp đen này trong giữa mà bạn không nhất thiết phải 69 00:03:17,310 --> 00:03:19,450 phải quan tâm đến cách thức hoạt động. 70 00:03:19,450 --> 00:03:22,230 Bạn mình cuối cùng có thể thực hiện những gì bên trong hộp. 71 00:03:22,230 --> 00:03:25,194 Nhưng đối với các mục đích của ngày hôm nay và nhiều hơn nữa nói chung trong cuộc sống, tất cả các bạn quan tâm 72 00:03:25,194 --> 00:03:26,610 là những vấn đề được giải quyết. 73 00:03:26,610 --> 00:03:29,340 >> Và tất nhiên đây là những gì cuối cùng về việc được khám phá 74 00:03:29,340 --> 00:03:31,700 giao điểm của các yếu tố đầu vào và đầu ra, 75 00:03:31,700 --> 00:03:34,410 và những cái gọi là thuật toán, như chúng ta sẽ sớm thấy, 76 00:03:34,410 --> 00:03:37,450 mà thực hiện những gì là bên dưới đó, mui xe. 77 00:03:37,450 --> 00:03:40,487 Nhưng những yếu tố đầu vào và các outputs-- những gì mà không thực sự nghĩa là gì? 78 00:03:40,487 --> 00:03:43,570 Vâng, vào cuối ngày, chúng ta cần một số cách để đại diện cho thông tin. 79 00:03:43,570 --> 00:03:46,660 Điều này đặc biệt đúng trong một máy tính, mà như lạ mắt và phức tạp vì nó 80 00:03:46,660 --> 00:03:48,160 có vẻ là một thiết bị khá ngớ ngẩn. 81 00:03:48,160 --> 00:03:52,240 Phải mất electricity-- dù từ một cáp hoặc pin như input-- 82 00:03:52,240 --> 00:03:55,820 và sau đó nó tạo ra một số phản ứng preprogramed trên màn hình. 83 00:03:55,820 --> 00:03:57,970 >> Nhưng làm thế nào để chúng ta có được từ bắt đầu để kết thúc ở đó? 84 00:03:57,970 --> 00:03:59,470 Vâng, những gì một vấn đề cần được giải quyết? 85 00:03:59,470 --> 00:04:01,050 Vâng, có lẽ chúng ta có thể, tại khi bắt đầu học kỳ, 86 00:04:01,050 --> 00:04:02,841 cố gắng để có mặt trong một căn phòng như thế này. 87 00:04:02,841 --> 00:04:04,750 Vì vậy, tôi có thể làm như một, hai, ba. 88 00:04:04,750 --> 00:04:07,060 Hoặc có lẽ, nếu tôi đã làm nó để loại theo dõi 89 00:04:07,060 --> 00:04:10,560 của myself-- để theo dõi things-- Tôi có thể nhanh chóng chạy ra khỏi ngón tay. 90 00:04:10,560 --> 00:04:14,650 Vì vậy, tôi chỉ có thể làm cho một băm marks-- người, hai, ba, bốn, năm, sáu, 91 00:04:14,650 --> 00:04:15,431 bảy tám. 92 00:04:15,431 --> 00:04:17,930 Và tất cả chúng ta có thể thực hiện điều này, cho dù trên tay của bạn 93 00:04:17,930 --> 00:04:19,680 hoặc trên một mảnh giấy. 94 00:04:19,680 --> 00:04:22,140 Và điều này là thực sự chỉ một cái gì đó gọi là nhất nguyên notation-- 95 00:04:22,140 --> 00:04:26,130 mà nếu bạn chỉ có một lá thư trong bảng chữ cái, một hoặc băm 96 00:04:26,130 --> 00:04:29,440 nhãn hiệu trong trường hợp này, đối với mỗi đầu vào bạn muốn đếm, 97 00:04:29,440 --> 00:04:32,330 bạn cần phải đặt xuống một trong những letters-- một trong các nhãn hiệu này. 98 00:04:32,330 --> 00:04:32,510 >> Tất cả các quyền. 99 00:04:32,510 --> 00:04:34,790 Đó là tất cả tốt và tốt và không phải tất cả những gì phức tạp. 100 00:04:34,790 --> 00:04:37,800 Nhưng máy tính không phải là tất cả nhiều phức tạp hơn. 101 00:04:37,800 --> 00:04:40,770 Thật vậy, hầu hết các bạn có thể biết ngay cả khi bạn đã không thực sự 102 00:04:40,770 --> 00:04:44,080 coi điều này có nghĩa, mà máy tính chỉ hiểu số không 103 00:04:44,080 --> 00:04:45,870 và ones-- cái gọi là hệ thống nhị phân. 104 00:04:45,870 --> 00:04:49,390 Con người chúng ta, trái lại, rất phức tạp hơn nhiều trong chừng mực 105 00:04:49,390 --> 00:04:51,770 như chúng ta hiểu số không qua nines. 106 00:04:51,770 --> 00:04:55,740 >> Nhưng ngay cả khi hệ nhị phân là, lúc đầu Trong nháy mắt, không phải tất cả những gì quen thuộc, 107 00:04:55,740 --> 00:05:00,330 nó quay ra nó chỉ giống như các hệ thống và những ý tưởng mà chúng ta đã biết. 108 00:05:00,330 --> 00:05:02,420 Vì vậy, ví dụ, xem xét việc này. 109 00:05:02,420 --> 00:05:03,896 Đây chỉ là một chuỗi các ký tự. 110 00:05:03,896 --> 00:05:05,770 Và tất cả các bạn, khi liếc nhìn nó, có lẽ 111 00:05:05,770 --> 00:05:09,380 nghĩ rằng không có gì 123-- thực sự thú vị ở đó. 112 00:05:09,380 --> 00:05:11,940 Nhưng tại sao nó số này, 123? 113 00:05:11,940 --> 00:05:14,440 Đây chỉ là glyphs trên màn hình-- chỉ mẫu 114 00:05:14,440 --> 00:05:16,387 nếu có người đã vẽ hoặc đánh máy. 115 00:05:16,387 --> 00:05:18,970 Nhưng nếu bạn đang như tôi, bạn có thể nhớ từ hồi phổ thông 116 00:05:18,970 --> 00:05:21,610 rằng có những loại cột hoặc nơi đây. 117 00:05:21,610 --> 00:05:25,340 Có nơi của một và nơi chục và vị trí của trăm. 118 00:05:25,340 --> 00:05:29,820 Và lí do này là 123 và không chỉ là một mô hình của ba biểu tượng 119 00:05:29,820 --> 00:05:33,090 là bởi vì, tất nhiên, nếu chúng ta có một trong các vị trí hàng trăm, 120 00:05:33,090 --> 00:05:36,610 bạn làm toán 100 lần một, và sau đó hai ở vị trí của mười. 121 00:05:36,610 --> 00:05:41,390 Vì vậy, đó là 10 lần 2, và sau đó ba trong vị thế của một và đó là 1 lần 3. 122 00:05:41,390 --> 00:05:45,670 Và khi bạn thêm tất cả những người lên, trong Tất nhiên, bạn nhận được 100 cộng với 20 cộng với 3. 123 00:05:45,670 --> 00:05:48,220 >> Vì vậy, chúng tôi bắt đầu chỉ với một mô hình của symbols-- một alphabet-- 124 00:05:48,220 --> 00:05:51,670 nhưng sau đó chúng được ánh xạ lên ý nghĩa nó bằng cách của các cột này. 125 00:05:51,670 --> 00:05:54,450 Vâng, nó chỉ ra rằng máy tính là thực sự không 126 00:05:54,450 --> 00:05:56,300 tất cả những gì khác nhau từ bạn và tôi. 127 00:05:56,300 --> 00:06:01,840 Nhưng thay vì sử dụng quyền hạn của 10, vậy để speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10.000 chỗ và do đó forth-- họ thực sự 129 00:06:04,330 --> 00:06:08,930 chỉ cần sử dụng quyền hạn của 2-- vì vậy người ta, 2, 4, và sau đó 130 00:06:08,930 --> 00:06:12,810 nếu chúng ta đặt thêm chữ số, 8, 16, 32, 64, 128, và vv. 131 00:06:12,810 --> 00:06:16,050 Và vì vậy đây là làm thế nào một máy tính sẽ đại diện cho số 0, 132 00:06:16,050 --> 00:06:17,300 giống như con người chúng ta. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- và bạn có thể đoán những mô hình của các số không và những người thân, 134 00:06:21,660 --> 00:06:24,610 nếu một máy tính chỉ có thể nói 0 hoặc 1-- gì 135 00:06:24,610 --> 00:06:29,110 mô hình sẽ đại diện cho số con người chúng ta biết như là 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Tất cả các quyền. 138 00:06:31,090 --> 00:06:35,900 Vì vậy, 0, 0, 1 là làm thế nào chúng tôi đại diện 1, do đó bạn có thể được nghiêng sau đó 139 00:06:35,900 --> 00:06:39,510 để đại diện cho số 2, nếu bạn có nơi của bốn vị trí của hai 140 00:06:39,510 --> 00:06:48,290 như một nơi, bạn có thể nói, tốt, nếu chúng ta có một 1 ở vị trí của một, 141 00:06:48,290 --> 00:06:50,430 và bây giờ chúng tôi muốn đếm đến 2, có lẽ bạn 142 00:06:50,430 --> 00:06:53,310 làm điều này và để lại điều này để có một số không. 143 00:06:53,310 --> 00:06:56,397 Nhưng tất nhiên điều này không phải là như thế nào hệ thống thập phân làm hai. 144 00:06:56,397 --> 00:06:58,230 Nếu bạn đặt một chữ số trong cả của các cột, 145 00:06:58,230 --> 00:06:59,563 bạn đã có để làm các phép tính số học. 146 00:06:59,563 --> 00:07:01,930 Vì vậy, những gì đã làm tôi số vô tình chỉ đại diện? 147 00:07:01,930 --> 00:07:06,710 >> Vì vậy, nó là 3, vì 2 lần 1 cộng 1 lần 1, tất nhiên, mang lại cho chúng ta ba. 148 00:07:06,710 --> 00:07:08,340 Vì vậy, đây sẽ là hai. 149 00:07:08,340 --> 00:07:12,730 Các bit loại flips, có thể nói, như là 0 trở thành một, giống như một vai trò trên 9 150 00:07:12,730 --> 00:07:14,840 và trở thành một 0 khi bạn mang 1. 151 00:07:14,840 --> 00:07:16,510 Điều này sau đó sẽ là ba của khóa học. 152 00:07:16,510 --> 00:07:20,170 Four-- một điều thú vị xảy ra, nơi mà những người lăn 153 00:07:20,170 --> 00:07:21,750 và bạn mang 1, vậy để nói chuyện. 154 00:07:21,750 --> 00:07:23,320 Vì vậy, tất nhiên, là 4. 155 00:07:23,320 --> 00:07:25,160 >> Nhưng nếu bạn nhanh chóng chuyển tiếp hiện nay, số lượng lớn nhất sẽ là những gì 156 00:07:25,160 --> 00:07:26,660 để được rằng một máy tính có thể đại diện? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Vì vậy, nó chỉ cần bảy trong trường hợp này, phải không? 159 00:07:32,380 --> 00:07:35,570 Bởi vì bạn có một trong bốn, một trong hai, một trong một. 160 00:07:35,570 --> 00:07:36,900 Vì vậy, đó là 4 cộng với 2 cộng với 1. 161 00:07:36,900 --> 00:07:37,972 Vì vậy, cung cấp cho bạn bảy. 162 00:07:37,972 --> 00:07:39,680 Và quả thực, nó sẽ dường như cái nhìn đầu tiên 163 00:07:39,680 --> 00:07:43,750 mà máy tính có thể đếm không cao hơn này. 164 00:07:43,750 --> 00:07:45,210 >> Nhưng điều này tất nhiên là không đúng sự thật. 165 00:07:45,210 --> 00:07:48,243 làm con người chúng ta phải làm gì khi chúng ta muốn để đếm cao hơn như 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Chỉ cần thực hiện một và chỉ thêm một chữ số thứ tư bên trái. 168 00:07:53,900 --> 00:07:55,070 Và do đó, thực sự chúng tôi có thể. 169 00:07:55,070 --> 00:07:57,900 Chúng ta có thể có một tám của đặt và địa điểm của 16, 170 00:07:57,900 --> 00:08:02,000 và địa điểm của 32, 64, và bạn 128-- chỉ có thể tiếp tục đi trên lên đến vô cùng. 171 00:08:02,000 --> 00:08:04,640 Vì vậy, các số không và ones-- cái gọi là system-- nhị phân 172 00:08:04,640 --> 00:08:10,290 là những gì một nhà khoa học máy tính sẽ thường gọi một chút, hoặc chữ số nhị phân. 173 00:08:10,290 --> 00:08:13,590 >> Nhưng bây giờ, làm thế nào chúng tôi nhận được từ các khái niệm hoặc đồ họa của những điều này 174 00:08:13,590 --> 00:08:14,620 để một máy tính thực tế? 175 00:08:14,620 --> 00:08:17,170 Chúng tôi dường như bỏ qua một bước ở đây. 176 00:08:17,170 --> 00:08:20,210 Vâng, đầu vào chỉ ở cuối trong ngày, để máy tính xách tay của tôi ở đây 177 00:08:20,210 --> 00:08:22,060 là dòng này về điện. 178 00:08:22,060 --> 00:08:24,560 Ngay cả khi nó được một dài thời gian kể từ khi bạn nghĩ về 179 00:08:24,560 --> 00:08:26,580 hoặc không bao giờ nghĩ về cách thức hoạt động điện lực, 180 00:08:26,580 --> 00:08:30,909 có các electron chảy trong hoặc ra, và đó là loại của tôi về đầu vào. 181 00:08:30,909 --> 00:08:34,659 >> Vì vậy, nếu đó là tất cả những gì chúng tôi nhận như là đầu vào ở đây, 182 00:08:34,659 --> 00:08:36,830 những gì chúng ta có thể làm gì với thông tin đó? 183 00:08:36,830 --> 00:08:40,040 Vâng, chúng ta có thể nghĩ về một số không như chỉ là không có điện. 184 00:08:40,040 --> 00:08:42,540 Không có gì là flowinw, không có gì là di chuyển, không có gì đang xảy ra. 185 00:08:42,540 --> 00:08:44,690 Đó chỉ là mặc định state-- zero. 186 00:08:44,690 --> 00:08:48,200 Nhưng nếu có dòng điện chạy, tại sao chúng ta không chỉ là tùy tiện, nhưng trên toàn cầu 187 00:08:48,200 --> 00:08:50,250 nhất quán, gọi đó là một. 188 00:08:50,250 --> 00:08:54,760 >> Vì vậy, chỉ đơn giản là bởi không có điện, chúng tôi có một số không, có quyền lực, 189 00:08:54,760 --> 00:08:57,520 chúng tôi có một cùng-- không có quyền lực, có quyền lực. 190 00:08:57,520 --> 00:09:01,520 Và bằng cách đó, sử dụng giống căng thẳng hơn hoặc điện tử 191 00:09:01,520 --> 00:09:05,340 chúng ta bắt đầu thực hiện ý tưởng này của cái gì đó hoặc là một hoặc một số không. 192 00:09:05,340 --> 00:09:07,230 Thật vậy, chúng ta chỉ có thể làm điều đó ở đây. 193 00:09:07,230 --> 00:09:10,590 Vì vậy, ở đây, tôi không có ba nhưng tám bóng đèn, mỗi trong số đó 194 00:09:10,590 --> 00:09:11,810 có công tắc riêng của mình. 195 00:09:11,810 --> 00:09:15,760 >> Và vì vậy nếu tôi muốn đại diện cho số bảy ở đây, 196 00:09:15,760 --> 00:09:18,510 Tôi có thể bật ba bóng đèn. 197 00:09:18,510 --> 00:09:21,470 Và quả thực, bên trong máy tính của tôi là hàng triệu, 198 00:09:21,470 --> 00:09:25,650 tỉ những thứ chỉ nhỏ hơn, được gọi là bóng bán dẫn, 199 00:09:25,650 --> 00:09:27,330 chuyển mạch, bạn chỉ cần bật và tắt. 200 00:09:27,330 --> 00:09:30,420 Vì vậy, đây là những big-- tương đối tắc big-- bên laptop-- của tôi 201 00:09:30,420 --> 00:09:32,150 rất nhiều, nhiều, nhiều, nhiều công tắc hơn. 202 00:09:32,150 --> 00:09:35,160 Nhưng tất cả họ làm là chính xác mà-- biến một cái gì đó vào, bật một cái gì đó đi. 203 00:09:35,160 --> 00:09:38,076 Và như vậy, một máy tính có thể đại diện, với những triệu hoặc hàng tỉ 204 00:09:38,076 --> 00:09:40,480 của bóng bán dẫn, rất nhiều và rất nhiều số không và những người thân. 205 00:09:40,480 --> 00:09:43,160 Và có phần cứng khác vẫn còn đó cho phép bạn lưu trữ thông tin lâu dài, 206 00:09:43,160 --> 00:09:45,243 để khi bạn kéo cắm, bạn không mất nó. 207 00:09:45,243 --> 00:09:46,900 Nhưng đó là một câu chuyện cho một ngày khác. 208 00:09:46,900 --> 00:09:51,170 >> Vì vậy, những gì chúng ta có thể làm gì với những thứ này? 209 00:09:51,170 --> 00:09:54,309 Phải chăng chúng ta chỉ để mất áp lực giảm của tôi-- 210 00:09:54,309 --> 00:09:56,600 ai đó có thể muốn đến lên đây và đưa lên một bản demo? 211 00:09:56,600 --> 00:09:57,516 Tôi thấy bàn tay đầu tiên này. 212 00:09:57,516 --> 00:09:58,709 Tên bạn là gì? 213 00:09:58,709 --> 00:09:59,250 MADAY: MADAY. 214 00:09:59,250 --> 00:10:00,542 DAVID Malan: MADAY, đi lên trên. 215 00:10:00,542 --> 00:10:01,250 Rất vui được gặp bạn. 216 00:10:01,250 --> 00:10:02,390 MADAY: Rất vui được gặp bạn. 217 00:10:02,390 --> 00:10:02,930 >> DAVID Malan: Hãy đến theo cách này. 218 00:10:02,930 --> 00:10:04,182 Tôi sẽ không phải môi bạn lên. 219 00:10:04,182 --> 00:10:04,682 Tất cả các quyền. 220 00:10:04,682 --> 00:10:11,090 Vì vậy, ở đây, chúng ta có, notice-- một, two-- chúng tôi sẽ chỉnh sửa mà out-- một, hai, bốn, 221 00:10:11,090 --> 00:10:13,350 tám, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Đây là chủ ý. 223 00:10:14,220 --> 00:10:17,370 Có tám bit đây-- nhị phân số không digits-- và những người thân. 224 00:10:17,370 --> 00:10:21,460 Và một chút là một đơn vị hữu ích của measure-- không hữu ích một đơn vị đo lường 225 00:10:21,460 --> 00:10:21,999 vào bản thân. 226 00:10:21,999 --> 00:10:24,290 Thông thường, bạn cần ít nhất tám trong số những điều này, còn được gọi là 227 00:10:24,290 --> 00:10:24,790 một byte. 228 00:10:24,790 --> 00:10:26,230 Vì vậy, chúng tôi có một byte bit ở đây. 229 00:10:26,230 --> 00:10:31,130 >> Vì vậy, nếu chúng ta muốn thách thức bạn với, Ví dụ, đánh vần ra, trong hệ nhị phân, 230 00:10:31,130 --> 00:10:33,230 giá trị này đây-- 42. 231 00:10:33,230 --> 00:10:35,140 Bạn muốn để mất một đâm vào đó? 232 00:10:35,140 --> 00:10:36,034 >> MADAY: [IM LẶNG]. 233 00:10:36,034 --> 00:10:38,700 DAVID Malan: Vâng, chỉ cần đẩy ít tắc màu trắng ở phía trước. 234 00:10:38,700 --> 00:10:41,290 Và bạn muốn đánh vần ra 42, và up for grabs 235 00:10:41,290 --> 00:10:44,061 là căng thẳng CS50 này bóng nếu bạn có được điều này. 236 00:10:44,061 --> 00:10:44,560 Tất cả các quyền. 237 00:10:44,560 --> 00:10:46,420 Vì vậy, bạn có 32. 238 00:10:46,420 --> 00:10:48,430 Chúng ta sẽ cần 42. 239 00:10:48,430 --> 00:10:51,410 Vì vậy, đó là một tám, vì vậy đó là 40. 240 00:10:51,410 --> 00:10:54,160 Và excellent-- rất độc đáo làm. 241 00:10:54,160 --> 00:10:55,186 Cho tôi biết. 242 00:10:55,186 --> 00:10:58,790 >> [VỖ TAY] 243 00:10:58,790 --> 00:10:59,290 Tất cả các quyền. 244 00:10:59,290 --> 00:11:00,623 Vì vậy, chúng tôi có một quả bóng căng thẳng hơn. 245 00:11:00,623 --> 00:11:03,595 Hãy làm điều này một lần nữa nếu chúng tôi có thể. 246 00:11:03,595 --> 00:11:05,368 Một tình nguyện viên khác? 247 00:11:05,368 --> 00:11:07,970 Miễn phí bóng căng thẳng, miễn phí quả bóng căng thẳng. 248 00:11:07,970 --> 00:11:08,470 ĐƯỢC. 249 00:11:08,470 --> 00:11:11,640 Trên đây ở giữa, bạn có muốn đi xuống? 250 00:11:11,640 --> 00:11:14,100 Tất cả các quyền. 251 00:11:14,100 --> 00:11:15,552 Tôi biết. 252 00:11:15,552 --> 00:11:16,360 Hiện chúng tôi đi. 253 00:11:16,360 --> 00:11:20,818 >> Vì vậy, những con số đây-- đến trên xuống. 254 00:11:20,818 --> 00:11:21,567 Tên của bạn là gì? 255 00:11:21,567 --> 00:11:21,984 >> Davey: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID Malan: Davey. 257 00:11:22,820 --> 00:11:23,320 ĐƯỢC. 258 00:11:23,320 --> 00:11:24,810 Đi lên, Davey. 259 00:11:24,810 --> 00:11:25,890 Rất vui được gặp bạn. 260 00:11:25,890 --> 00:11:28,639 Và những gì chúng ta sẽ có bạn spell-- nếu bạn có thể nán lại ở đó 261 00:11:28,639 --> 00:11:32,810 cho chỉ là một moment-- là số 50. 262 00:11:32,810 --> 00:11:36,293 Nhưng, nhưng, nhưng mà, nhưng, đây là những nam châm trường lớp cho một lý do. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Chỉ cần có khó khăn hơn một chút, tất cả phải không? 265 00:11:43,327 --> 00:11:44,160 Vẫn còn tám. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Tất cả các quyền. 268 00:11:47,320 --> 00:11:48,486 Vì vậy, chúng ta có gì trên đó? 269 00:11:48,486 --> 00:11:51,356 Chúng tôi có 32. 270 00:11:51,356 --> 00:11:54,344 Tốt đẹp. 271 00:11:54,344 --> 00:11:58,610 32 cộng với 16 cho chúng ta 48-- rất gần. 272 00:11:58,610 --> 00:12:00,390 Và tuyệt vời. 273 00:12:00,390 --> 00:12:02,831 Xin chúc mừng Davey là tốt. 274 00:12:02,831 --> 00:12:05,720 >> [VỖ TAY] 275 00:12:05,720 --> 00:12:06,516 >> Tất cả các quyền. 276 00:12:06,516 --> 00:12:09,390 Vì vậy, chúng ta có thể làm điều này cả ngày dài, và nó không có được tất cả những gì nhiều hơn nữa 277 00:12:09,390 --> 00:12:10,800 thú vị và thử thách hơn. 278 00:12:10,800 --> 00:12:13,250 Nhưng đó thực sự là point-- là cách tương đối đơn giản 279 00:12:13,250 --> 00:12:16,930 đó là, vào cuối ngày, những gì một máy tính nào để lưu trữ thông tin, 280 00:12:16,930 --> 00:12:21,740 để lưu trữ các đầu vào và cuối cùng lưu trữ hoặc đại diện cho những kết quả đầu ra. 281 00:12:21,740 --> 00:12:23,750 Nhưng số mình không tất cả những gì thú vị. 282 00:12:23,750 --> 00:12:26,069 >> Vì vậy, con người, một vài năm trước đây, quyết định, bạn biết những gì? 283 00:12:26,069 --> 00:12:27,860 Nó sẽ được tốt đẹp nếu máy tính không chỉ là 284 00:12:27,860 --> 00:12:31,030 tính cho số học hoạt động, nhưng thực sự có thể 285 00:12:31,030 --> 00:12:35,209 làm những việc như xử lý văn bản, hoặc email, hoặc hóa thân hiện đại hơn 286 00:12:35,209 --> 00:12:36,500 của các loại công nghệ. 287 00:12:36,500 --> 00:12:40,680 Và như vậy trên thế giới đã quyết định tùy tiện, nhưng phổ, 288 00:12:40,680 --> 00:12:44,380 rằng nếu bạn muốn để lưu trữ các nguồn vốn chữ A trong một máy tính, bạn biết những gì? 289 00:12:44,380 --> 00:12:47,730 Hãy chỉ tất cả đồng ý để lưu trữ một số mô hình của các số không và ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- mà cuối cùng đại diện cho số thập phân 65. 291 00:12:52,422 --> 00:12:53,630 Chúng tôi sẽ chỉ cần tất cả đồng ý về điều đó. 292 00:12:53,630 --> 00:12:56,620 >> 66 sẽ đại diện cho B, 67 sẽ đại diện cho C, 293 00:12:56,620 --> 00:13:00,210 và có chùm mô hình khác số không và những người thân, hoặc số cơ bản, 294 00:13:00,210 --> 00:13:02,224 mà sẽ đại diện chữ cái khác vẫn còn. 295 00:13:02,224 --> 00:13:04,390 Vì vậy, nếu bạn loại tinh thần hấp thụ này trong một thời điểm, 296 00:13:04,390 --> 00:13:10,900 Tôi cố tình đặt lên A đến Tôi, nơi H 72 và I là 73. 297 00:13:10,900 --> 00:13:15,830 Nếu một máy tính sau đó, trong bối cảnh một chương trình xử lý văn bản hoặc một e-mail, 298 00:13:15,830 --> 00:13:19,620 hiện ra bên dưới mui xe để có các mô hình của mô hình bits-- 299 00:13:19,620 --> 00:13:22,500 bit đại diện 72, sau đó 73, sau đó 33-- 300 00:13:22,500 --> 00:13:26,640 điều này có thể đánh vần trong chương trình? 301 00:13:26,640 --> 00:13:28,150 >> Vì vậy, hi, và sau đó một cái gì đó. 302 00:13:28,150 --> 00:13:31,460 Chúng tôi không nhất thiết phải biết, nhưng thực sự 33-- không phải trên biểu đồ earlier-- 303 00:13:31,460 --> 00:13:33,170 đơn giản chỉ là một dấu chấm than. 304 00:13:33,170 --> 00:13:38,870 Vì vậy, 72 là H, 73 tuổi là tôi, 33 xảy ra là một dấu chấm than vẫn còn. 305 00:13:38,870 --> 00:13:41,719 Nhưng đó là tất cả tốt và tốt, và trong thực tế hiện nay, chứ không phải là 306 00:13:41,719 --> 00:13:43,760 chỉ cần sử dụng bảy hay tám bit, nhờ vào một cái gì đó 307 00:13:43,760 --> 00:13:46,530 gọi là Unicode như trái ngược ASCII trở lại trong ngày, 308 00:13:46,530 --> 00:13:50,010 chúng tôi thực sự có thể đại diện cho hơn nhân vật thú vị hơn là chỉ 309 00:13:50,010 --> 00:13:52,980 những gốc tiếng Anh thiên thư. 310 00:13:52,980 --> 00:13:56,030 Nhưng chúng ta cũng có thể đại diện thậm chí thứ gọn gàng như màu sắc. 311 00:13:56,030 --> 00:13:59,750 >> Nếu bạn đã từng nghe từ viết tắt RGB, đỏ, xanh lá cây, xanh dương, mà 312 00:13:59,750 --> 00:14:03,510 chỉ có nghĩa là một máy tính thường sử dụng ba bộ bits-- 313 00:14:03,510 --> 00:14:06,760 một số số bit đại diện cho một số cho bao nhiêu màu đỏ bạn muốn, 314 00:14:06,760 --> 00:14:08,940 một tập hợp các bit cho bao nhiêu màu xanh lá cây mà bạn muốn, 315 00:14:08,940 --> 00:14:11,430 và một số thiết lập cho bao nhiêu màu xanh bạn muốn. 316 00:14:11,430 --> 00:14:14,457 Vì vậy, một số lượng lớn có nghĩa là rất nhiều màu đỏ, số lượng nhỏ có nghĩa là không có màu đỏ. 317 00:14:14,457 --> 00:14:16,290 Và do đó, đây là những loại các giá trị trung ở đây. 318 00:14:16,290 --> 00:14:20,180 >> Vì vậy, cho tôi một số màu đỏ, cho tôi một số màu xanh lá cây, và đưa cho tôi một chút màu xanh. 319 00:14:20,180 --> 00:14:24,260 Và nếu bạn trộn ba màu màu sắc với nhau, trong trường hợp này, 320 00:14:24,260 --> 00:14:26,850 bạn nhận được bóng râm âm u này màu vàng hoặc nâu. 321 00:14:26,850 --> 00:14:32,330 Nhưng đó mô hình của tám cộng với tám cộng với eight-- quá 24 bits-- 322 00:14:32,330 --> 00:14:36,550 trái sang phải, là làm thế nào một máy tính sẽ đại diện cho màu đó. 323 00:14:36,550 --> 00:14:38,090 Bây giờ đây chỉ là một dấu chấm trên một màn hình. 324 00:14:38,090 --> 00:14:42,230 Nếu bạn nhìn thật gần vào TV của bạn của bạn máy tính, bạn sẽ thấy dấu chấm hoặc pixel. 325 00:14:42,230 --> 00:14:45,420 Và nếu bạn có một mạng lưới toàn bộ pixel, chiều ngang và theo chiều dọc, 326 00:14:45,420 --> 00:14:46,630 bạn có hình ảnh. 327 00:14:46,630 --> 00:14:49,029 Và sau đó nếu bạn đi một hình ảnh và sau đó rửa 328 00:14:49,029 --> 00:14:52,070 cho mình hình ảnh khác, một hình ảnh, hình ảnh khác, hình ảnh khác, 329 00:14:52,070 --> 00:14:54,760 thực sự nhanh chóng, bạn tất nhiên có phim. 330 00:14:54,760 --> 00:14:56,109 >> Và do đó, nhận thấy nơi chúng tôi bắt đầu. 331 00:14:56,109 --> 00:14:57,650 Chúng tôi bắt đầu với những số không và những người thân. 332 00:14:57,650 --> 00:15:00,570 Chúng tôi làm việc từ đó đến thập phân số, làm thế nào chúng tôi đại diện cho họ. 333 00:15:00,570 --> 00:15:02,070 Bây giờ chúng ta có chữ của bảng chữ cái. 334 00:15:02,070 --> 00:15:05,664 Nhưng trong bối cảnh khác chờ đợi, chúng ta có thể sử dụng một vài bit hơn và thể hiện màu sắc. 335 00:15:05,664 --> 00:15:07,830 Ngay sau khi bạn có khả năng thể hiện màu sắc, 336 00:15:07,830 --> 00:15:11,200 bạn có khả năng để đại diện cho hình ảnh và hình động 337 00:15:11,200 --> 00:15:13,780 và các nhân vật khác như vậy trên màn hình. 338 00:15:13,780 --> 00:15:17,160 Và khi bạn có một bó toàn bộ hình ảnh bay của con người cùng một lúc, 339 00:15:17,160 --> 00:15:21,480 nó trông giống như hình ảnh chuyển động, và do đó bạn có được đoạn video là tốt. 340 00:15:21,480 --> 00:15:23,460 >> Vì vậy, sử dụng những rất nguyên thủy đơn giản chúng ta 341 00:15:23,460 --> 00:15:28,070 có cách đại diện cuối cùng là tất cả các hình thức truyền thông. 342 00:15:28,070 --> 00:15:30,450 Và chúng tôi đã tóm tắt lại và một lần nữa và một lần nữa, cho đến khi chúng tôi 343 00:15:30,450 --> 00:15:33,467 nhận được từ mức thấp nhất lên mức cao nhất này. 344 00:15:33,467 --> 00:15:35,550 Vì vậy, cung cấp cho chúng ta điều này ý tưởng chung của sự trừu tượng. 345 00:15:35,550 --> 00:15:36,990 Nhưng chúng tôi bắt đầu ở đây. 346 00:15:36,990 --> 00:15:38,790 >> Ở đây bây giờ, chúng ta có thể đại diện trong một máy tính 347 00:15:38,790 --> 00:15:41,920 đầu vào của chúng tôi với số không và những người thân, kết quả đầu ra của chúng tôi trong số không và những người thân, 348 00:15:41,920 --> 00:15:43,640 nhưng những gì diễn ra bên trong hộp? 349 00:15:43,640 --> 00:15:46,080 Đó là nơi mà máy tính khoa học trở nên thú vị. 350 00:15:46,080 --> 00:15:49,770 Đó là nơi mà bạn thực sự mang lại cho bạn tâm trí của riêng chịu để giải quyết vấn đề. 351 00:15:49,770 --> 00:15:52,590 Bây giờ chúng ta có thể quy định, đối với các phần còn lại của học kỳ, có. 352 00:15:52,590 --> 00:15:53,870 Tôi biết cách làm nhị phân. 353 00:15:53,870 --> 00:15:57,942 Tôi nhớ cách Ascii hoặc Unicode-- các bản đồ để letters-- công trình. 354 00:15:57,942 --> 00:15:59,650 Và chắc chắn nó đứng với lý do chúng tôi rằng 355 00:15:59,650 --> 00:16:03,470 có thể đại diện cho màu đỏ và màu xanh lá cây và màu xanh, và đại diện cho đa phương tiện là tốt. 356 00:16:03,470 --> 00:16:05,390 Nhưng đây là những thứ thú vị. 357 00:16:05,390 --> 00:16:09,790 Đây là những gì làm cho một người nào đó khả năng giải quyết vấn đề. 358 00:16:09,790 --> 00:16:11,980 >> Và một trong những vấn đề như vậy chúng tôi muốn làm, thực sự, 359 00:16:11,980 --> 00:16:15,345 đang tham dự, hoặc làm điều này thuật toán. 360 00:16:15,345 --> 00:16:16,470 Và một lần nữa, tôi có thể làm điều này. 361 00:16:16,470 --> 00:16:19,580 Tôi có thể làm một, hai, ba, bốn năm, sáu, bảy, tám chín. 362 00:16:19,580 --> 00:16:21,520 Và tôi có thể viết xuống để theo dõi nó. 363 00:16:21,520 --> 00:16:23,769 Nhưng đó chỉ là cách tôi sẽ đại diện cho các thông tin. 364 00:16:23,769 --> 00:16:27,550 Hoặc tôi có thể làm điều này faster-- hai, bốn, sáu, tám, mười, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- nó cảm thấy như hai lần nhanh nhưng nó vẫn còn 366 00:16:30,380 --> 00:16:32,050 sẽ mất rất nhiều toàn bộ thời gian. 367 00:16:32,050 --> 00:16:35,990 >> Nhưng hóa ra, nếu chúng ta tận dụng chưa một máy tính resource-- và thực tế 368 00:16:35,990 --> 00:16:38,940 những ngày này có nhiều CPU hoặc bộ não. 369 00:16:38,940 --> 00:16:41,970 Hóa ra các máy vi tính làm rất nhiều việc cùng một lúc, 370 00:16:41,970 --> 00:16:44,460 và thực sự chúng ta, trong căn phòng này, có thể đại diện cho chính xác này. 371 00:16:44,460 --> 00:16:47,130 >> Vì vậy, nó là một chút về mặt xã hội vụng về, nhưng nếu bạn sẽ hài hước tôi 372 00:16:47,130 --> 00:16:51,550 cho chỉ là một quá trình ba bước, chúng ta hãy tôi hỏi tất cả mọi người ở nơi đó chỉ 373 00:16:51,550 --> 00:16:54,640 đứng lên một lúc. 374 00:16:54,640 --> 00:16:57,380 Đứng lên. 375 00:16:57,380 --> 00:17:01,580 Vì vậy, nghĩ đến bản thân, số cùng-- để mọi người trong căn phòng này, 376 00:17:01,580 --> 00:17:05,010 ngoại trừ những người không bắt buộc, đang suy nghĩ số một. 377 00:17:05,010 --> 00:17:06,510 Vì vậy, đó là số của bạn ngay bây giờ. 378 00:17:06,510 --> 00:17:09,399 Đó là bước đầu tiên, hoặc là một khoa học máy tính hoặc một lập trình viên 379 00:17:09,399 --> 00:17:11,827 thường sẽ làm, chúng ta sẽ để bắt đầu đếm từ số không. 380 00:17:11,827 --> 00:17:14,410 Nếu số lượng nhỏ nhất chúng ta có thể đại diện với những bóng đèn 381 00:17:14,410 --> 00:17:17,410 là số không, bởi chỉ cần để lại cho họ tắt tất cả, tôi có thể cũng chỉ cần 382 00:17:17,410 --> 00:17:19,271 bắt đầu đếm từ zero là thay vì một. 383 00:17:19,271 --> 00:17:21,020 Và đó là những gì các nhà khoa học máy tính làm. 384 00:17:21,020 --> 00:17:23,750 Vì vậy, bước không, đứng lên và nghĩ của số một. 385 00:17:23,750 --> 00:17:26,339 Bước tiếp theo là này-- cặp đi với một người nào đó đứng 386 00:17:26,339 --> 00:17:27,660 và thêm số của bạn với nhau. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Quá tuyệt vời. 389 00:17:32,850 --> 00:17:37,640 >> Vì vậy, tại thời điểm này trong thời gian, nghĩa là tất cả mọi người tham gia 390 00:17:37,640 --> 00:17:41,930 được nghĩ đến con số 2, ngoại trừ cho một người kỳ lạ nếu chúng ta có 391 00:17:41,930 --> 00:17:43,450 một số lẻ của người trong phòng. 392 00:17:43,450 --> 00:17:50,640 Và bây giờ là bước thứ ba ở đây là sẽ được này-- một trong các bạn nên ngồi xuống. 393 00:17:50,640 --> 00:17:54,490 Một trong những bạn nên ngồi xuống, và nếu bạn vẫn đứng, 394 00:17:54,490 --> 00:17:56,590 quay lại bước một. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Tất cả các quyền. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Tất cả các quyền. 399 00:19:01,650 --> 00:19:03,880 Vì vậy, ngày càng nhiều người nên được ngồi xuống. 400 00:19:03,880 --> 00:19:08,280 Chú ý rằng điều này đã gây ra một loop-- một số loại chu kỳ. 401 00:19:08,280 --> 00:19:11,983 Một số bạn nên lúng túng khó khăn, đi qua lại giữa các bước một 402 00:19:11,983 --> 00:19:14,180 và hai, một và hai, một và hai. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Vậy là được rồi. 405 00:19:21,810 --> 00:19:22,630 lỗi đầu tiên của chúng tôi. 406 00:19:22,630 --> 00:19:24,740 Chúng tôi sẽ đối phó với điều đó. 407 00:19:24,740 --> 00:19:25,320 Tất cả các quyền. 408 00:19:25,320 --> 00:19:27,370 Hãy để tôi cố gắng để thúc đẩy những thứ cùng. 409 00:19:27,370 --> 00:19:31,454 >> Về lý thuyết, chỉ có một người đang đứng như mọi người vẫn tiếp tục bắt cặp. 410 00:19:31,454 --> 00:19:33,870 Nhưng hãy để tôi đẩy nhanh tốc độ với những người vẫn còn đứng. 411 00:19:33,870 --> 00:19:35,480 số gì bạn đang nghĩ đến? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 ĐƯỢC. 414 00:19:36,570 --> 00:19:37,820 Đi trước và ngồi xuống. 415 00:19:37,820 --> 00:19:39,190 Các bạn vẫn còn đang đứng. 416 00:19:39,190 --> 00:19:42,130 Ai vẫn đứng vững? 417 00:19:42,130 --> 00:19:45,240 số gì bạn đang nghĩ đến? 418 00:19:45,240 --> 00:19:46,160 ĐƯỢC. 419 00:19:46,160 --> 00:19:47,900 >> Vì vậy, chúng tôi sẽ trở về với bạn. 420 00:19:47,900 --> 00:19:49,630 Ở phía sau? 421 00:19:49,630 --> 00:19:50,790 Đó là gì? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK người khác lên top-- yeah? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 ĐƯỢC. 426 00:19:58,300 --> 00:20:02,780 Trên đây trên right-- tôi lên đây? 427 00:20:02,780 --> 00:20:06,820 132, rất đẹp. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> ĐƯỢC. 430 00:20:08,990 --> 00:20:10,031 Và người vẫn đứng vững? 431 00:20:10,031 --> 00:20:11,000 Ở đây? 432 00:20:11,000 --> 00:20:14,520 46 tuổi, rất đẹp. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Tôi không thể trì hoãn lâu hơn nữa. 435 00:20:18,220 --> 00:20:20,520 Yeah? 436 00:20:20,520 --> 00:20:22,490 30, tốt đẹp. 437 00:20:22,490 --> 00:20:24,120 Ở đây? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> Và tôi nghĩ rằng đó là tất cả mọi người ngoại trừ các bạn, không có áp lực. 441 00:20:30,920 --> 00:20:32,860 Oh, chờ đợi. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Chỉ cần tám. 445 00:20:38,281 --> 00:20:38,780 ĐƯỢC. 446 00:20:38,780 --> 00:20:41,030 Chỉ cần tám. 447 00:20:41,030 --> 00:20:42,580 Xuống đây? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Đây là việc thực hiện tồi tệ nhất của thuật toán này bao giờ. 454 00:20:54,690 --> 00:20:55,190 ĐƯỢC. 455 00:20:55,190 --> 00:20:59,760 Vì vậy, bất cứ ai khác? 456 00:20:59,760 --> 00:21:00,421 Ai khác? 457 00:21:00,421 --> 00:21:00,920 ĐƯỢC. 458 00:21:00,920 --> 00:21:03,300 Một lần nữa. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 ĐƯỢC. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 Tất cả các quyền. 463 00:21:06,010 --> 00:21:09,070 Vì vậy, nếu tôi đã không bỏ lỡ bất cứ ai trong ánh sáng chói ở đây, khi tôi nhấn Enter, 464 00:21:09,070 --> 00:21:13,091 chúng ta sẽ thấy, thuật toán, các tổng số người trong Sanders. 465 00:21:13,091 --> 00:21:16,340 Bởi vì một lần nữa, nó giống như tất cả mọi người khi bạn ngồi xuống, thông qua số điện thoại tắt 466 00:21:16,340 --> 00:21:19,215 cho người khác, cho người khác, cho người khác, vì vậy mà trong lý thuyết, 467 00:21:19,215 --> 00:21:22,304 cuối cùng, chỉ một lúng túng người nên để đứng. 468 00:21:22,304 --> 00:21:22,970 Nhưng đó là tốt. 469 00:21:22,970 --> 00:21:24,290 Chúng tôi đẩy mọi thứ lên bằng tay. 470 00:21:24,290 --> 00:21:27,590 Nó đặc biệt khó khăn để xem trong không gian đặc biệt này. 471 00:21:27,590 --> 00:21:34,200 >> Và tổng số người chúng tôi nghĩ rằng có ở đây là 546. 472 00:21:34,200 --> 00:21:37,330 Tổng số tôi là tay bởi các nghiên cứu sinh giảng dạy, 473 00:21:37,330 --> 00:21:40,660 người đã làm nó cũ học cách chậm chạp, là 820. 474 00:21:40,660 --> 00:21:43,660 >> [CƯỜI] 475 00:21:43,660 --> 00:21:47,170 >> [VỖ TAY] 476 00:21:47,170 --> 00:21:48,670 >> Vậy là được rồi. 477 00:21:48,670 --> 00:21:50,740 Vì vậy, chắc chắn sau đó, có những lỗi. 478 00:21:50,740 --> 00:21:51,460 Và đó là tốt. 479 00:21:51,460 --> 00:21:53,810 Và do đó, nghĩ lại về điều này một cái gì đó lần đầu tiên 480 00:21:53,810 --> 00:21:55,420 bạn viết không nhất thiết phải làm việc. 481 00:21:55,420 --> 00:21:57,620 Điều này đã xảy ra với tôi ở đây là tốt. 482 00:21:57,620 --> 00:22:00,844 Nhưng bây giờ chúng ta xem xét làm thế nào chúng ta có thể áp dụng ý tưởng này cùng với một cái gì đó 483 00:22:00,844 --> 00:22:03,760 bạn có thể đã thấy trước đó, mà là công nghệ học đây-- cũ này 484 00:22:03,760 --> 00:22:05,130 một cuốn sách điện thoại thực sự lớn. 485 00:22:05,130 --> 00:22:09,380 Và giả sử rằng cuốn sách điện thoại này có 1.000 trang và 1.000 tên 486 00:22:09,380 --> 00:22:11,360 và số thứ tự abc bên trong của nó. 487 00:22:11,360 --> 00:22:14,860 >> Vâng, chúng tôi loại có thể áp dụng tương tự ý tưởng cho vấn đề rất vật chất này, 488 00:22:14,860 --> 00:22:16,270 chỉ lợi dụng tôi. 489 00:22:16,270 --> 00:22:18,810 Tôi chỉ cần loại lừa bằng cách tận dụng tất cả các bạn 490 00:22:18,810 --> 00:22:23,240 với rất nhiều và rất nhiều CPU khác nhau hoặc bộ não thực hiện một số thuật toán. 491 00:22:23,240 --> 00:22:25,440 Nhưng nếu nó chỉ là chút cũ của tôi, tôi vẫn có thể 492 00:22:25,440 --> 00:22:29,630 tận dụng đó cùng bản chất của một ý tưởng phân chia và chinh phục vấn đề đó 493 00:22:29,630 --> 00:22:32,970 một lần nữa và một lần nữa, trong đó một nửa của bạn, một nửa của bạn, một nửa của bạn, một nửa của bạn, 494 00:22:32,970 --> 00:22:35,830 về mặt lý thuyết vẫn ngồi xuống, cho đến khi chúng tôi đã rời đi, về mặt lý thuyết, 495 00:22:35,830 --> 00:22:36,990 với chỉ một người. 496 00:22:36,990 --> 00:22:39,810 >> Vì vậy, trong trường học cũ này technology-- chúng tôi không 497 00:22:39,810 --> 00:22:43,030 cần này map-- này công nghệ trường học cũ, 498 00:22:43,030 --> 00:22:47,300 chúng ta có thể bắt đầu tìm kiếm một ai đó thích Mike Smith, một trang tại một thời điểm. 499 00:22:47,300 --> 00:22:49,410 Và tôi thấy rằng không có, Mike không có ở đây. 500 00:22:49,410 --> 00:22:51,110 Tôi vẫn còn trong phần A. 501 00:22:51,110 --> 00:22:53,900 Cuối cùng, tôi tìm bản thân mình trong phần B. 502 00:22:53,900 --> 00:22:56,910 Và đây là một algorithm-- bước theo các bước hướng dẫn. 503 00:22:56,910 --> 00:22:59,890 Bắt đầu vào đầu và một trang tại một thời điểm, tìm kiếm Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Đây có phải là correct-- này thuật toán hoặc cách tiếp cận? 505 00:23:03,410 --> 00:23:04,550 >> Vâng, đó là chính xác. 506 00:23:04,550 --> 00:23:06,840 Nếu Mike ở đây, cuối cùng Tôi sẽ có được anh. 507 00:23:06,840 --> 00:23:08,139 Nhưng nó không hiệu quả. 508 00:23:08,139 --> 00:23:09,180 Đó rõ ràng là rất chậm. 509 00:23:09,180 --> 00:23:11,340 Vì vậy, tôi có thể tận dụng các cùng twosies tiếp cận. 510 00:23:11,340 --> 00:23:15,350 Tôi có thể làm loại hai, bốn, sáu, tám, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Đó là nhanh gấp hai lần. 512 00:23:16,330 --> 00:23:18,290 Tôi sẽ có được để Mike nhanh hơn nếu anh ta ở đó. 513 00:23:18,290 --> 00:23:20,770 Nó có đúng không? 514 00:23:20,770 --> 00:23:22,320 Có, nhưng tôi nghe một không little--. 515 00:23:22,320 --> 00:23:24,200 Bây giờ tôi nghe một không. 516 00:23:24,200 --> 00:23:24,700 Yeah. 517 00:23:24,700 --> 00:23:26,190 Có một lỗi tiềm năng. 518 00:23:26,190 --> 00:23:29,374 Có lẽ Mike chỉ vô tình được kẹp giữa hai trang, 519 00:23:29,374 --> 00:23:31,290 bởi vì tôi đang bay qua hai này tại một thời điểm. 520 00:23:31,290 --> 00:23:33,580 Vì vậy, ít nhất chúng ta cần một số loại sửa chữa điều kiện. 521 00:23:33,580 --> 00:23:35,330 Tôi cần phải nói, hey, nếu tôi nhấn một người mà 522 00:23:35,330 --> 00:23:39,190 Tên bắt đầu với một T thay vì một S, Tôi đôi tốt hơn lại ít nhất một trang. 523 00:23:39,190 --> 00:23:40,767 Vì vậy, lỗi lúc đầu, nhưng có thể cứu vãn. 524 00:23:40,767 --> 00:23:43,850 Nhưng không ai trong chúng tôi sẽ xem xét cho Mike Smith qua điện thoại 1000 trang 525 00:23:43,850 --> 00:23:45,290 đặt một trang tại một thời điểm. 526 00:23:45,290 --> 00:23:48,486 một người bình thường sẽ làm gì? 527 00:23:48,486 --> 00:23:50,860 Bạn đang đi đến của S, nếu bạn biết nơi của S. 528 00:23:50,860 --> 00:23:54,230 Bạn có thể đi gần đến giữa hoặc hơi nghiêng về phía cuối. 529 00:23:54,230 --> 00:23:56,850 Và tôi nhìn xuống đây và Tôi đang ở phần M. 530 00:23:56,850 --> 00:23:58,952 Nhưng những gì bạn biết về vấn đề này ngay bây giờ, 531 00:23:58,952 --> 00:24:02,160 rằng chúng ta không nhất thiết phải biết trước với tất cả chúng ta chỉ cần đếm mình 532 00:24:02,160 --> 00:24:03,030 tương đương? 533 00:24:03,030 --> 00:24:06,010 Vâng, Mike sẽ rõ được trong hiệp này của cuốn sách 534 00:24:06,010 --> 00:24:07,920 nếu anh ta ở đây cả vì nó được sắp xếp. 535 00:24:07,920 --> 00:24:10,160 >> Và như vậy bạn có thể rất dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Thở hổn hển] 537 00:24:11,250 --> 00:24:12,300 >> Tôi biết. 538 00:24:12,300 --> 00:24:16,940 >> [VỖ TAY] 539 00:24:16,940 --> 00:24:19,450 >> Nó thực sự dễ dàng nếu bạn làm điều đó cả xương sống ở đó. 540 00:24:19,450 --> 00:24:22,070 Nhưng sau đó bạn có thể ném một nửa của vấn đề đi. 541 00:24:22,070 --> 00:24:25,950 Bây giờ, tôi là trái với các problem-- cùng tìm Mike Smith trong một điện thoại book-- 542 00:24:25,950 --> 00:24:29,610 nhưng bây giờ các cuốn sách điện thoại bắt đầu tại M và đi đến Z, nhưng đó là một nửa là lớn. 543 00:24:29,610 --> 00:24:30,890 >> Nhưng đây là những gì ấn tượng. 544 00:24:30,890 --> 00:24:34,170 Cũng giống như trong lý thuyết, các bạn, khi tất cả các bạn ngồi xuống chỉ còn một nửa tại một thời điểm, 545 00:24:34,170 --> 00:24:37,150 các vấn đề có một nửa là lớn, một nửa là lớn, một lần nữa và một lần nữa. 546 00:24:37,150 --> 00:24:40,260 Vì vậy, vấn đề này đã trở thành cùng một vấn đề nhưng một nửa là lớn. 547 00:24:40,260 --> 00:24:42,670 Bây giờ nó là một vấn đề 250 trang. 548 00:24:42,670 --> 00:24:45,340 Ngay sau khi tôi nhận ra, oh, tôi trong phần T vô tình. 549 00:24:45,340 --> 00:24:46,590 Tôi đã đi quá xa. 550 00:24:46,590 --> 00:24:48,500 Tôi có thể ném một nửa của cuốn sách điện thoại đi. 551 00:24:48,500 --> 00:24:50,410 Bây giờ, tôi xuống một quý của vấn đề. 552 00:24:50,410 --> 00:24:53,910 >> Và bạn có thể lặp lại, lặp lại, lặp lại cho đến khi, trong lý thuyết, bạn 553 00:24:53,910 --> 00:24:55,460 còn lại chỉ có một trang. 554 00:24:55,460 --> 00:24:59,010 Và nếu Mike là trên trang đó, bây giờ tôi có thể giải quyết vấn đề này. 555 00:24:59,010 --> 00:25:00,810 Nhưng làm thế nào nhanh chóng đã làm tôi giải quyết nó? 556 00:25:00,810 --> 00:25:05,420 Trong trường hợp đầu tiên, nó đã cho tôi như có 1.000 bước sau để tìm Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Nó có thể đã lấy tôi-- Tôi nhặt cuốn sách điện thoại 558 00:25:09,260 --> 00:25:11,440 và tôi bắt đầu tìm kiếm một trang tại một thời gian, 559 00:25:11,440 --> 00:25:13,480 và Mike có thể là 1.000 trang sau. 560 00:25:13,480 --> 00:25:16,020 >> Cách tiếp cận thứ hai có lẽ tôi phải mất 500 bước, 561 00:25:16,020 --> 00:25:17,960 bởi vì tôi đang bay thông qua hai tại một thời điểm. 562 00:25:17,960 --> 00:25:21,082 Và cách tiếp cận thứ ba mặc dù, nó đặc biệt mạnh mẽ. 563 00:25:21,082 --> 00:25:23,790 Nhưng chúng ta hãy xem xét những gì chúng ta thực sự đã làm với cách tiếp cận thứ ba này. 564 00:25:23,790 --> 00:25:27,590 Tôi sẽ có những gì tôi sẽ gọi chỉ những báo cáo vào đây, tại một thời điểm. 565 00:25:27,590 --> 00:25:28,560 Chọn một cuốn sách điện thoại. 566 00:25:28,560 --> 00:25:30,130 Mở đến giữa cuốn sách điện thoại. 567 00:25:30,130 --> 00:25:31,419 Nhìn vào tên. 568 00:25:31,419 --> 00:25:33,960 Và sau đó mọi thứ có được một chút trí tuệ thú vị hơn, 569 00:25:33,960 --> 00:25:35,170 nếu vẫn còn đơn giản. 570 00:25:35,170 --> 00:25:38,350 Nếu Smith là một trong những tên trên trang hiện tại, 571 00:25:38,350 --> 00:25:40,170 sau đó làm một cái gì đó có điều kiện. 572 00:25:40,170 --> 00:25:41,840 Nó giống như một ngã ba đường. 573 00:25:41,840 --> 00:25:42,660 Gọi Mike. 574 00:25:42,660 --> 00:25:44,930 Nếu Mike là một trong số những cái tên trên trang đó, gọi là Mike. 575 00:25:44,930 --> 00:25:49,720 Nhưng chỉ làm dòng bốn nếu dòng cây, nếu bạn sẽ, là đúng. 576 00:25:49,720 --> 00:25:51,590 Câu trả lời cho câu hỏi đó là có. 577 00:25:51,590 --> 00:25:55,520 >> Else if Smith là trước đó trong book-- nói cách khác, nếu anh ở phần M 578 00:25:55,520 --> 00:25:58,540 và tôi đang tìm một người nào đó bên trái, sau đó những gì tôi nên làm 579 00:25:58,540 --> 00:26:00,300 là một cái gì đó rất giống nhau. 580 00:26:00,300 --> 00:26:03,440 Sau đó, tôi phải mở đến giữa của nửa trái của cuốn sách. 581 00:26:03,440 --> 00:26:07,930 Vì vậy, đi lại, và sau đó quay lại bước hai. 582 00:26:07,930 --> 00:26:09,290 Nhìn vào những cái tên đó. 583 00:26:09,290 --> 00:26:12,779 >> Vì vậy, nói cách khác, làm điều tương tự, nhưng về một vấn đề đó là được giảm một nửa. 584 00:26:12,779 --> 00:26:13,570 Bạn biết những gì khác? 585 00:26:13,570 --> 00:26:16,470 Nếu Smith là sau này trong cuốn sách dựa trên trang tôi đang nhìn vào, 586 00:26:16,470 --> 00:26:18,790 mở cửa cho vào giữa nửa bên phải của cuốn sách 587 00:26:18,790 --> 00:26:22,050 và sau đó quay trở lại một lần nữa bước hai, else-- 588 00:26:22,050 --> 00:26:24,000 có một khả năng thứ tư ở đây. 589 00:26:24,000 --> 00:26:28,830 Mike tại đây hoặc sang trái hoặc bên phải hoặc không có. 590 00:26:28,830 --> 00:26:30,570 Và ở đây chúng ta nên xem xét việc này. 591 00:26:30,570 --> 00:26:33,360 Và trên thực tế, nếu bạn đã từng có máy tính của bạn chỉ cần đụng vào bạn, 592 00:26:33,360 --> 00:26:36,822 đó là đôi khi, nhưng không phải lúc nào, các kết quả của chỉ một lập trình của con người không 593 00:26:36,822 --> 00:26:39,280 nhận ra, oh bắn, có thực sự kịch bản thứ tư này. 594 00:26:39,280 --> 00:26:41,650 Và nếu bạn không viết mã để xử lý kịch bản đó, 595 00:26:41,650 --> 00:26:43,220 đôi khi bạn không biết những gì máy tính có thể làm. 596 00:26:43,220 --> 00:26:44,770 Và thực sự là một chương trình có thể sụp đổ. 597 00:26:44,770 --> 00:26:47,550 >> Nhưng trong trường hợp này, tôi nghĩ về nó, và tôi đã nói, nếu không bỏ thuốc lá, 598 00:26:47,550 --> 00:26:49,850 bởi vì đó là thứ tư kịch bản hợp lý có thể. 599 00:26:49,850 --> 00:26:51,950 Bây giờ, bạn chỉ cần thêm một số từ vựng vì vậy chúng tôi 600 00:26:51,950 --> 00:26:55,320 có thể bắt đầu quăng xung quanh thuật ngữ nếu không thì khá trực quan. 601 00:26:55,320 --> 00:26:57,870 Tất cả những điều tôi đã chỉ đánh dấu màu vàng ở đây, 602 00:26:57,870 --> 00:27:00,140 Tôi chỉ cần đi đến các chức năng hoặc thủ tục. 603 00:27:00,140 --> 00:27:01,590 Chúng chỉ là những loại hành động. 604 00:27:01,590 --> 00:27:04,900 Vì vậy, lấy, mở cửa cho, nhìn tại, gọi, mở, mở, 605 00:27:04,900 --> 00:27:09,170 quit-- đây chỉ là hành động, hoặc chúng tôi sẽ gọi họ là chính thức hơn, chức năng. 606 00:27:09,170 --> 00:27:11,410 >> Trong khi đó, bây giờ trong màu vàng, Tôi đã nhấn mạnh điều 607 00:27:11,410 --> 00:27:14,084 mà-- chúng ta hãy bắt đầu cuộc gọi chúng điều kiện hoặc các chi nhánh. 608 00:27:14,084 --> 00:27:16,750 Đây là những điểm quyết định nơi bạn có thể đi theo con đường này, theo cách này, 609 00:27:16,750 --> 00:27:18,100 hoặc một số hướng khác vẫn còn. 610 00:27:18,100 --> 00:27:19,430 Vì vậy, những người sẽ là điều kiện. 611 00:27:19,430 --> 00:27:20,930 Và bây giờ con này fancier một chút. 612 00:27:20,930 --> 00:27:24,600 Hãy gọi cho những câu hỏi này biểu thức Boolean 613 00:27:24,600 --> 00:27:26,530 sau khi một người nào đó với một tên cuối cùng Bool. 614 00:27:26,530 --> 00:27:28,340 >> Và một biểu thức Boolean chỉ là một cái gì đó 615 00:27:28,340 --> 00:27:30,290 đó là đúng hoặc sai, có hoặc không. 616 00:27:30,290 --> 00:27:35,870 Vì vậy, nó là câu hỏi mà câu trả lời của bạn quan tâm, để trong một điều kiện 617 00:27:35,870 --> 00:27:39,210 làm cho một decision-- nhận lại một câu trả lời, và sau đó đi sang trái hoặc phải, hoặc một cái gì đó 618 00:27:39,210 --> 00:27:40,450 khác hoàn toàn. 619 00:27:40,450 --> 00:27:42,860 >> Và rồi cuối cùng, những dòng đây-- đi lại 620 00:27:42,860 --> 00:27:44,737 bước hai, trở lại bước two-- chúng ta có thể 621 00:27:44,737 --> 00:27:46,320 thực hiện ý tưởng này theo những cách khác nhau. 622 00:27:46,320 --> 00:27:49,028 Và sau đó những người bạn với kinh nghiệm lập trình có thể đã thực hiện 623 00:27:49,028 --> 00:27:50,670 hoặc có thể tưởng tượng được làm điều này một cách khác nhau. 624 00:27:50,670 --> 00:27:53,170 Nhưng đối với các mục đích của ngày hôm nay, đó là chỉ là ý tưởng có vấn đề. 625 00:27:53,170 --> 00:27:55,400 Đây là những gì gây chúng ta thường sẽ gọi 626 00:27:55,400 --> 00:28:00,110 một loop-- một số loại chu kỳ, bởi vì nó làm cho tôi làm điều gì đó một lần nữa. 627 00:28:00,110 --> 00:28:03,340 >> Vì vậy, bây giờ, chúng ta hãy chỉ xem xét cách tốt thuật toán này là. 628 00:28:03,340 --> 00:28:03,899 Đúng. 629 00:28:03,899 --> 00:28:06,940 Nếu Mike trong cuốn sách, nó là một trong bốn scenarios-- một lần nữa và một lần nữa 630 00:28:06,940 --> 00:28:08,023 và một lần nữa, chúng ta sẽ tìm thấy anh ta. 631 00:28:08,023 --> 00:28:08,890 Nhưng làm thế nào tốt là nó? 632 00:28:08,890 --> 00:28:10,150 Vâng, chúng tôi không có là quá chính thức ở đây. 633 00:28:10,150 --> 00:28:12,066 Nhưng chúng ta hãy chỉ vẽ một cái gì đó, x và y, để có được 634 00:28:12,066 --> 00:28:14,470 một cảm giác hình dạng của vấn đề này. 635 00:28:14,470 --> 00:28:17,160 >> Trên trục x ở đây là kích thước của vấn đề của tôi. 636 00:28:17,160 --> 00:28:20,256 Và họ một trục y ở đây sẽ là thời gian để giải quyết. 637 00:28:20,256 --> 00:28:21,630 Vì vậy, có lẽ đây là số lượng trang. 638 00:28:21,630 --> 00:28:24,400 Có lẽ đây là giây hoặc Trang turns-- bất cứ điều gì. 639 00:28:24,400 --> 00:28:27,290 Tuy nhiên bạn muốn tính là những hình ảnh này sẽ đại diện. 640 00:28:27,290 --> 00:28:30,630 Và đó là thuật toán đầu tiên, tôi sẽ để mô tả như chỉ là một đường thẳng. 641 00:28:30,630 --> 00:28:33,120 Nếu có n trang trong danh bạ điện thoại, sau đó nó 642 00:28:33,120 --> 00:28:36,010 có thể đưa tôi nhiều như các bước n để tìm Mike. 643 00:28:36,010 --> 00:28:38,930 Nếu Verizon hoặc các công ty điện thoại thêm một trang khác trong năm tới, 644 00:28:38,930 --> 00:28:42,170 nó có thể đưa tôi thêm một step-- thêm một đơn vị thời gian để tìm Mike. 645 00:28:42,170 --> 00:28:44,230 Vì vậy, chỉ có một này với một tỷ lệ. 646 00:28:44,230 --> 00:28:45,970 Đó là một dòng dốc thẳng. 647 00:28:45,970 --> 00:28:49,110 >> Trong khi đó, rằng thứ hai algorithm-- nếu tôi 648 00:28:49,110 --> 00:28:51,570 đi hai tại một time-- hai, bốn, sáu, tám, hoặc double-- 649 00:28:51,570 --> 00:28:54,550 đi qua các trang hai lần tại một thời điểm, hai người tại một thời điểm, 650 00:28:54,550 --> 00:28:55,710 nó vẫn còn đường thẳng. 651 00:28:55,710 --> 00:28:58,720 Bây giờ có một 01:59 tỷ lệ, nhưng chỉ thấp hơn một chút. 652 00:28:58,720 --> 00:29:02,240 Vì vậy, nếu có nhiều trang này trên bảng xếp hạng ở đây trong màu vàng, 653 00:29:02,240 --> 00:29:04,800 mà có thể đưa tôi này nhiều bước hoặc giây, 654 00:29:04,800 --> 00:29:07,980 nếu không nó sẽ đưa tôi hai lần như nhiều vào dòng màu đỏ. 655 00:29:07,980 --> 00:29:10,190 >> Nhưng dòng màu xanh lá cây là takeaway thực. 656 00:29:10,190 --> 00:29:12,290 Đây là những gì chúng ta thường gọi một bản ghi logorithm-- 657 00:29:12,290 --> 00:29:13,840 n, trong đó n là số trang. 658 00:29:13,840 --> 00:29:16,450 Nhưng đó là hình dạng mà những vấn đề ngày hôm nay, bởi vì chúng tôi không có 659 00:29:16,450 --> 00:29:17,950 ngay cả suy nghĩ về âm mưu điểm. 660 00:29:17,950 --> 00:29:19,830 >> Hãy suy nghĩ về một kịch bản cực đoan. 661 00:29:19,830 --> 00:29:23,070 Giả sử ngày mai Verizon tăng gấp đôi số trang trong cuốn sách điện thoại, 662 00:29:23,070 --> 00:29:24,900 từ 1.000 đến 2.000. 663 00:29:24,900 --> 00:29:28,440 Trong thuật toán đầu tiên, tôi có thể lãng phí thêm một 1000 664 00:29:28,440 --> 00:29:32,080 bước tìm kiếm Mike, chỉ vì Verizon tăng gấp đôi kích thước của cuốn sách. 665 00:29:32,080 --> 00:29:34,740 Thứ hai nó có thể algorithm-- đưa tôi thêm 500 bước. 666 00:29:34,740 --> 00:29:38,370 hơn 1.000 trang, tôi đi hai tại một time-- hơn 500 bước để tìm Mike. 667 00:29:38,370 --> 00:29:41,020 >> Nhưng đó thuật toán thứ ba là loại ma thuật. 668 00:29:41,020 --> 00:29:44,270 Verizon tăng gấp đôi số các trang từ 1.000 đến 2.000, 669 00:29:44,270 --> 00:29:47,730 nhưng làm thế nào nhiều hơn nữa các bước làm nó đưa tôi đến tìm Mike? 670 00:29:47,730 --> 00:29:51,220 Nó chỉ là một, bởi vì tôi có thể chỉ xé cuốn sách điện thoại một lần nữa 671 00:29:51,220 --> 00:29:55,280 từ một vấn đề 2.000 trang một 1000 vấn đề trang, và thì đấy. 672 00:29:55,280 --> 00:29:57,030 Tôi đã lấy một miếng lớn ra khỏi nó. 673 00:29:57,030 --> 00:29:59,405 >> Và nếu bạn đi thực sự cực đoan, giả sử rằng các cuốn sách điện thoại 674 00:29:59,405 --> 00:30:03,600 công ty đã có một cái gì đó điên rồ như một điện thoại cuốn sách 4 tỷ trang. 675 00:30:03,600 --> 00:30:07,020 Vâng bao nhiêu bước nó có thể mất để tìm Mike Smith trong một 4 tỷ 676 00:30:07,020 --> 00:30:09,990 Trang điện thoại cuốn sách? 677 00:30:09,990 --> 00:30:16,450 Đó là một con số lớn, nhưng chỉ 4 tỷ 2000000000-1000000000 để 500 triệu đồng, 678 00:30:16,450 --> 00:30:18,720 250 million-- vẫn Nghe có vẻ như con số lớn, 679 00:30:18,720 --> 00:30:20,980 nhưng tôi rất nhanh chóng nhận được các giá trị nhỏ hơn. 680 00:30:20,980 --> 00:30:24,790 >> Và trên thực tế, nếu tôi làm toán Đúng vậy, tôi chỉ có thể chia 4 tỷ 681 00:30:24,790 --> 00:30:28,750 bằng khoảng 32 lần trước khi Tôi nhận được xuống để chỉ một. 682 00:30:28,750 --> 00:30:31,640 Vì vậy, nếu cuốn sách điện thoại đã được 4 dài tỷ trang, không có việc lớn. 683 00:30:31,640 --> 00:30:35,270 Trong vòng vài giây, có thể 32 giây, tôi có thể chia nó thành một nửa 684 00:30:35,270 --> 00:30:39,560 và cuối cùng tìm thấy Mike hay kết luận rằng ông không có ở đó. 685 00:30:39,560 --> 00:30:42,219 Và đó là bản chất của một algorithm-- một thuật toán tốt. 686 00:30:42,219 --> 00:30:44,260 Và đó là một trong những mục tiêu của một lớp học như thế này, 687 00:30:44,260 --> 00:30:47,350 đang cố gắng tìm hiểu làm cách nào giải quyết vấn đề không chỉ là một cách chính xác, 688 00:30:47,350 --> 00:30:52,360 như tôi luôn biết làm thế nào để làm điều đó một trang tại một time-- nhưng đúng và tốt. 689 00:30:52,360 --> 00:30:55,034 Làm thế nào để thiết kế tốt giải pháp cho vấn đề này? 690 00:30:55,034 --> 00:30:57,200 Vì vậy, hãy dành một chút thời đây và cung cấp cho bạn một ý nghĩa bây giờ 691 00:30:57,200 --> 00:31:00,260 của CS50 khóa học itself-- giới thiệu nhân viên một vài khóa học của. 692 00:31:00,260 --> 00:31:02,010 Ngay trước khi 02:00, chúng tôi sẽ nghỉ ngơi ngắn 693 00:31:02,010 --> 00:31:03,520 vì vậy mà những người bạn người đang mua sắm có thể 694 00:31:03,520 --> 00:31:05,130 vịt ra và đi xem xét một số lớp khác 695 00:31:05,130 --> 00:31:06,580 và xem phần còn lại của tuyến này. 696 00:31:06,580 --> 00:31:09,250 Nhưng bây giờ, hãy để tôi giới thiệu CS50, chính lớp, 697 00:31:09,250 --> 00:31:11,330 và đặc biệt là những gì là mới. 698 00:31:11,330 --> 00:31:13,960 >> Vì vậy, vào mùa xuân vừa qua, chúng tôi dành khá nhiều time-- 699 00:31:13,960 --> 00:31:17,911 nhân viên của khóa học và I-- nghĩ về những gì nó là chúng tôi muốn CS50 được, 700 00:31:17,911 --> 00:31:19,910 và sẽ trở lại đầu tiên nguyên tắc, có thể nói, 701 00:31:19,910 --> 00:31:22,760 để xem xét những gì nó là chúng tôi muốn Tất nhiên điều này trông giống như và được 702 00:31:22,760 --> 00:31:23,740 như đối với sinh viên của mình. 703 00:31:23,740 --> 00:31:26,480 Và như vậy bạn sẽ thấy trong vấn đề thiết lập không là tốt, một lời mời 704 00:31:26,480 --> 00:31:28,780 để có một cái nhìn lúc đó URL mà tóm tắt 705 00:31:28,780 --> 00:31:33,270 một số trong những động lực đằng sau sau đặc điểm của mùa thu năm 2016. 706 00:31:33,270 --> 00:31:35,570 >> Vì vậy, như bạn có thể lượm lặt từ TL: Bản tin DR, 707 00:31:35,570 --> 00:31:39,060 giáo trình hôm nay cũng như từ catalogue nhiên, năm nay CS50, 708 00:31:39,060 --> 00:31:42,540 bạn chỉ sẽ tham dự today-- nên công việc cũng done-- 709 00:31:42,540 --> 00:31:45,960 và các bài giảng cuối cùng vào ngày 21 Tháng Mười Một. 710 00:31:45,960 --> 00:31:49,150 Và bạn đang chào đón nhưng không dự kiến tham dự các bài giảng ở giữa, 711 00:31:49,150 --> 00:31:51,180 bởi vì những gì chúng tôi đang làm năm nay, được chụp 712 00:31:51,180 --> 00:31:52,661 trong thời gian thực các tài liệu của khóa học. 713 00:31:52,661 --> 00:31:54,660 Vì vậy, tất cả mọi thứ sẽ ở lại hiện tại và kết hợp 714 00:31:54,660 --> 00:31:57,410 là tốt nhất chúng tôi can-- các sự kiện hiện tại và cuộc hội thoại mà folks might 715 00:31:57,410 --> 00:32:00,400 thể có trong ngành công nghiệp trong thế giới, nhưng làm cho vật liệu 716 00:32:00,400 --> 00:32:03,892 có sẵn, kết quả là, ngay cả earlier-- hoàn chỉnh với bảng điểm toàn văn 717 00:32:03,892 --> 00:32:05,850 và khả năng tìm kiếm và liên kết đến các nguồn tài nguyên khác. 718 00:32:05,850 --> 00:32:07,930 >> Và quả thực, chúng tôi đã tuyên bố trong một thời gian 719 00:32:07,930 --> 00:32:10,830 và bây giờ chúng tôi tin điều này, rằng chúng ta có thể tạo, kỹ thuật số, 720 00:32:10,830 --> 00:32:15,170 một vai hơn, một hấp dẫn hơn kinh nghiệm giáo dục, như trái ngược 721 00:32:15,170 --> 00:32:19,110 để thu thập ở đây khoảng 23 lần trong người, có người nghe thích tôi 722 00:32:19,110 --> 00:32:22,925 chỉ đơn giản là nói chuyện về khoa học máy tính, như trái ngược với tham gia tích cực hơn. 723 00:32:22,925 --> 00:32:25,800 Vì vậy, bạn sẽ thấy trong giáo trình của khóa học một bản phác thảo của học kỳ ở đây, 724 00:32:25,800 --> 00:32:27,840 cùng với khi các bài giảng sẽ được dựng thành phim, mà bạn 725 00:32:27,840 --> 00:32:29,710 hoan nghênh, nhưng không mong đợi, và khi họ sẽ 726 00:32:29,710 --> 00:32:31,640 được phát hành trên trang web của khóa học. 727 00:32:31,640 --> 00:32:34,300 >> Và những gì chúng tôi sẽ làm ở đây trên Thứ Tư bắt đầu từ tuần tới, 728 00:32:34,300 --> 00:32:37,362 là rất nhiều mật thiết hơn, với chỉ những folks những người muốn tham gia, 729 00:32:37,362 --> 00:32:39,820 là một cái gọi là đi bộ qua, nơi mà tôi và người đứng đầu của khóa học 730 00:32:39,820 --> 00:32:41,730 thực sự sẽ làm cho mọi việc một ít thân mật hơn 731 00:32:41,730 --> 00:32:44,313 xuống đây trong dàn nhạc phần, vẫn có một số công nghệ 732 00:32:44,313 --> 00:32:46,365 và đi bộ qua vấn đề thiết lập tuần hiện tại, 733 00:32:46,365 --> 00:32:50,020 và cung cấp cho bạn particularly-- nếu trong những người kém comfortable-- tất cả các chi tiết 734 00:32:50,020 --> 00:32:52,790 hướng dẫn mà bạn có thể muốn hoặc cần cho thử thách của tuần. 735 00:32:52,790 --> 00:32:55,820 Và tương tự, đối với những người có thể không tham dự các trong người, không có việc lớn. 736 00:32:55,820 --> 00:32:58,486 Có sẽ được dẫn dắt bởi tương tự một trong những nhân viên cấp cao của khóa học, 737 00:32:58,486 --> 00:33:02,650 Zamalya, cơ hội cùng nhúng trong các vấn đề đặt ra cho mình. 738 00:33:02,650 --> 00:33:04,960 >> Vấn đề đặt ra trong năm nay sẽ được phát hành vào thứ Sáu 739 00:33:04,960 --> 00:33:08,080 và không còn làm bảy ngày sau đó, nhưng 10 ngày later-- cố tình 740 00:33:08,080 --> 00:33:10,910 chồng chéo với mỗi vấn đề thiết lập, để chứa tốt hơn, 741 00:33:10,910 --> 00:33:13,050 chúng tôi hy vọng, lên xuống và dòng chảy trong lịch trình của sinh viên, 742 00:33:13,050 --> 00:33:16,550 đặc biệt là khi kiểm tra giữa kỳ hoặc thể thao hoặc các viện nghiên cứu hoặc extracurriculars 743 00:33:16,550 --> 00:33:18,465 có xu hướng đến và đi đặc biệt là giữa học kỳ. 744 00:33:18,465 --> 00:33:21,340 Điều đó sẽ cung cấp cho bạn nhiều hơn một chút ý về việc bạn trước 745 00:33:21,340 --> 00:33:25,690 tải tuần của bạn với CS50 hoặc tải lại nó vào cuối tuần sau để thay thế. 746 00:33:25,690 --> 00:33:28,817 Vì vậy, nhìn vào giáo trình của khóa học vào đây để tiến hành. 747 00:33:28,817 --> 00:33:30,900 Và bạn sẽ nhận thấy quá số những thay đổi trong năm nay, 748 00:33:30,900 --> 00:33:34,082 cho những người quen thuộc hơn với lập trình trong quá khứ, 749 00:33:34,082 --> 00:33:36,290 chúng tôi sẽ bắt đầu học kỳ như chúng ta sẽ ngày hôm nay tại Scratch, 750 00:33:36,290 --> 00:33:39,730 tập trung đặc biệt vào các ngôn ngữ gọi là C, và sau đó chuyển tiếp không 751 00:33:39,730 --> 00:33:43,430 PHP, nhưng đến một ngôn ngữ được gọi Python vào cuối học kỳ 752 00:33:43,430 --> 00:33:46,565 trong bối cảnh của lập trình web, cùng với SQL và JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, và chưa nhiều. 754 00:33:48,930 --> 00:33:51,790 >> Và trong câu trả lời cho một câu hỏi thường gặp, nó thực sự là trường hợp 755 00:33:51,790 --> 00:33:55,520 rằng CS là không đáng sợ như tôi một lần nghĩ rằng nó được, nhưng nó là như làm việc nhiều 756 00:33:55,520 --> 00:33:57,280 như tôi đã nghe nói nó có thể được. 757 00:33:57,280 --> 00:34:03,210 Nhưng điều này là nói rằng đây là một số thống kê từ mùa thu 2015 sinh viên, 758 00:34:03,210 --> 00:34:06,460 theo đó các dòng màu xanh ngang đại diện cho số lượng trung bình của giờ 759 00:34:06,460 --> 00:34:06,960 báo cáo. 760 00:34:06,960 --> 00:34:10,570 Và bạn sẽ thấy trung bình sáu đến 10 12-- có lẽ 16 761 00:34:10,570 --> 00:34:14,580 hay như vậy và vv, nhưng với đúng cao để được rõ ràng. 762 00:34:14,580 --> 00:34:18,570 Và do đó, nhận ra rằng không chỉ có sinh viên thoải mái hơn và ít 763 00:34:18,570 --> 00:34:22,150 thoải mái trong khóa học, nhưng một sự hỗ trợ tương ứng 764 00:34:22,150 --> 00:34:25,699 cấu trúc để có được những sinh viên thông qua các học kỳ thành công. 765 00:34:25,699 --> 00:34:29,409 >> Thật vậy, trong câu trả lời cho một câu hỏi thường gặp, nên bạn có CS50 là năm đầu tiên? 766 00:34:29,409 --> 00:34:30,139 Chắc chắn rồi. 767 00:34:30,139 --> 00:34:32,690 Và trong thực tế, tôi hối tiếc không có tìm thấy con đường của tôi 768 00:34:32,690 --> 00:34:35,170 hoặc tìm thấy một lĩnh vực mới năm đầu tiên là tốt. 769 00:34:35,170 --> 00:34:39,149 Và bạn nên tận CS50 với các khóa học khác, chắc chắn như well-- 770 00:34:39,149 --> 00:34:41,940 và các lời khuyên chung chúng ta có thể cung cấp cho sinh viên, có lẽ đó là CS50 771 00:34:41,940 --> 00:34:44,929 không phải là loại lớp hoặc lớp giới thiệu mà bạn nên đi với ba 772 00:34:44,929 --> 00:34:47,199 khác hoặc bốn lớp p-thiết khác. 773 00:34:47,199 --> 00:34:50,583 Nhưng nếu bạn đang dùng hai khác p-set lớp học, cái gì khác, và CS50, 774 00:34:50,583 --> 00:34:51,499 hoàn toàn kiểm soát được. 775 00:34:51,499 --> 00:34:54,900 Tôi đã có nhiều học sinh trong qua làm như vậy hoàn toàn thành công. 776 00:34:54,900 --> 00:34:57,490 >> Và để có được bạn hướng tới đó kết thúc dòng thành công, 777 00:34:57,490 --> 00:35:00,260 không có khóa học sections-- bài nhạc khác nhau cho sinh viên 778 00:35:00,260 --> 00:35:03,100 ít thoải mái, thoải mái hơn, và đâu đó ở giữa, 779 00:35:03,100 --> 00:35:04,850 nhờ đó mà trong quá trình của đầu tiên vấn đề thiết lập, 780 00:35:04,850 --> 00:35:06,360 bạn sẽ được yêu cầu mô tả bản thân. 781 00:35:06,360 --> 00:35:09,151 Và nếu bạn là một trong những người kém thoải mái, đó là loại điều 782 00:35:09,151 --> 00:35:10,420 mà bạn chỉ cần thay biết. 783 00:35:10,420 --> 00:35:13,010 Và quả thực, đó là được các phát triển nhân khẩu học trong CS50 784 00:35:13,010 --> 00:35:14,090 cho khá một vài năm. 785 00:35:14,090 --> 00:35:17,680 >> Tính đến mùa thu năm ngoái cho Ví dụ, 58% của lớp 786 00:35:17,680 --> 00:35:20,560 mô tả mình là trong số những người ít thoải mái, 787 00:35:20,560 --> 00:35:23,210 với 9% trong số những người hơn thoải mái, và sau đó 788 00:35:23,210 --> 00:35:25,900 các học sinh khác có trong màu đỏ mô tả bản thân 789 00:35:25,900 --> 00:35:27,890 như ở đâu đó ở giữa. 790 00:35:27,890 --> 00:35:31,980 Và bạn sẽ thấy ở đây những chủ đề tổng thể và tiến độ của các bộ phận, tất cả đều 791 00:35:31,980 --> 00:35:34,820 được cung cấp trong người, trong thời gian thực, với các khóa học của 792 00:35:34,820 --> 00:35:38,320 nhân viên tuyệt vời của đồng giảng dạy và trợ nhiên, một số người trong số họ 793 00:35:38,320 --> 00:35:39,660 bạn sẽ gặp chỉ trong một khoảnh khắc. 794 00:35:39,660 --> 00:35:42,993 >> Phần mình, như bạn sẽ thấy, sẽ là ngày thứ Hai và thứ Ba và thứ Tư, 795 00:35:42,993 --> 00:35:45,910 để cho phép bạn bổ nhào trong khi tham gia, nếu bạn quá 796 00:35:45,910 --> 00:35:48,110 lựa chọn, trong quá trình của giảng vào đầu tuần này. 797 00:35:48,110 --> 00:35:51,420 Và rồi giờ làm việc, trong đó chắc chắn, với mỗi năm trôi qua, 798 00:35:51,420 --> 00:35:54,110 đã không có ít hơn của một thách thức cho khóa học. 799 00:35:54,110 --> 00:35:57,040 Và năm nay, chúng tôi đang lập kế hoạch không chỉ nắm giữ chức vụ hours-- một 800 00:35:57,040 --> 00:36:00,300 trên một cơ hội để giúp đỡ cho sinh viên vào thứ tư thứ năm 801 00:36:00,300 --> 00:36:03,790 và chủ nhật, người cuối cùng của những người là vào buổi chiều do thiết kế 802 00:36:03,790 --> 00:36:06,910 để giảm thiểu một số căng thẳng luôn xuất hiện với đêm 803 00:36:06,910 --> 00:36:10,180 p-settting với thời hạn một looming-- nhưng giờ văn phòng cũng sẽ được cung cấp 804 00:36:10,180 --> 00:36:14,920 vào các ngày thứ Hai và thứ Ba và Thứ Tư và thứ Sáu và thứ Bảy, 805 00:36:14,920 --> 00:36:17,080 nhờ bạn bè của chúng tôi tại HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 hiện nay có không gian riêng của mình cho sinh viên và nhân viên CS50, 807 00:36:20,330 --> 00:36:23,070 trên 67 Mount Auburn Street, ngay tại Quảng trường Harvard. 808 00:36:23,070 --> 00:36:26,340 Tầm nhìn đó là CS50 của TF và CA trong suốt tuần, 809 00:36:26,340 --> 00:36:29,052 khá nhiều trong suốt nhất ngày, sẽ có mặt ở đó để hỗ trợ. 810 00:36:29,052 --> 00:36:30,760 Vì vậy, nếu bạn đã có một số câu hỏi về một p-set 811 00:36:30,760 --> 00:36:33,093 hoặc bạn đang cảm thấy một chút chặn hoặc một chút bối rối, 812 00:36:33,093 --> 00:36:35,640 và heck, bạn đã có một giờ hoặc nửa giờ giữa các lớp, 813 00:36:35,640 --> 00:36:38,920 đặc biệt là trong square-- thể bạn pop trong và có câu hỏi mà trả lời 814 00:36:38,920 --> 00:36:41,720 của có sự nhầm lẫn rằng clarified-- rất nhiều trong tinh thần, 815 00:36:41,720 --> 00:36:45,490 bạn đã quen thuộc, của toán học riêng bộ phận của câu hỏi toán học trung tâm, 816 00:36:45,490 --> 00:36:49,300 nhưng khá nhiều xung quanh đồng hồ mỗi [? Gcal?] Mà chúng tôi sẽ đăng trực tuyến. 817 00:36:49,300 --> 00:36:52,400 >> Gia sư cũng có sẵn cho những người sinh viên, tự do từ các khóa học của 818 00:36:52,400 --> 00:36:54,750 nhân viên riêng nếu bạn muốn thân mật một ngày một nhiều hơn, 819 00:36:54,750 --> 00:36:58,940 hoặc hai hoặc ba bạn cùng lớp chỉ, làm việc với một trong những nhân viên của khóa học. 820 00:36:58,940 --> 00:37:02,320 Và quả thực, những đây chỉ là một số nhân viên của khóa học, 821 00:37:02,320 --> 00:37:04,120 một vài người trong số đó bạn sẽ đáp ứng chỉ trong một khoảnh khắc. 822 00:37:04,120 --> 00:37:07,440 Trong thực tế, CS50 của mình đầu giảng dạy đồng nghiệp, 823 00:37:07,440 --> 00:37:09,790 và tất nhiên đầu trợ lý, và thầy dạy, 824 00:37:09,790 --> 00:37:12,998 có thể đi trên lên, cho phép họ để chào hỏi. 825 00:37:12,998 --> 00:37:22,498 >> [VỖ TAY] 826 00:37:22,498 --> 00:37:23,456 SPEAKER 1: [IM LẶNG]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [VỖ TAY] 829 00:37:57,856 --> 00:37:58,814 SPEAKER 2: [IM LẶNG]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [VỖ TAY] 832 00:38:27,238 --> 00:38:28,196 SPEAKER 3: [IM LẶNG]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [VỖ TAY] 835 00:39:03,120 --> 00:39:06,740 >> DAVID Malan: Và cho phép chúng tôi mang trên tàu hai CS50 của hầu hết 836 00:39:06,740 --> 00:39:09,730 nhân viên cao cấp, Rob và Zamayla là tốt. 837 00:39:09,730 --> 00:39:15,120 >> [VỖ TAY] 838 00:39:15,120 --> 00:39:17,226 >> Thật vậy, cả Rob và Zamayla đã được với chúng tôi 839 00:39:17,226 --> 00:39:19,940 rất lâu, tôi đã có thể để đi vào lưu trữ CS50 của 840 00:39:19,940 --> 00:39:22,470 và tìm SD này rất cảnh của họ tham gia 841 00:39:22,470 --> 00:39:25,402 trên sân khấu chính mình cách đây vài năm. 842 00:39:25,402 --> 00:39:26,110 ROB: [IM LẶNG]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [VỖ TAY] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [IM LẶNG] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [VỖ TAY] 848 00:40:52,467 --> 00:40:53,425 DAVID Malan: Cảm ơn bạn. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Vì vậy, ngoài những thành viên trong nhóm ở đây, 851 00:40:58,030 --> 00:41:01,662 CS50 có một đội ngũ gần 100 nhân viên, tất cả đều 852 00:41:01,662 --> 00:41:04,370 sẽ có sẵn cho các bộ phận và giờ làm việc và nhiều hơn nữa. 853 00:41:04,370 --> 00:41:06,920 Và như Rob nói quá, đây là đại tu quan trọng nhất 854 00:41:06,920 --> 00:41:09,534 của CS50 trong 10 năm mà Tôi đã ở trong [IM LẶNG]. 855 00:41:09,534 --> 00:41:12,200 [IM LẶNG] tập trung đặc biệt trong việc cung cấp một cấu trúc hỗ trợ, 856 00:41:12,200 --> 00:41:14,050 cắt đi rất nhiều phần lớn đó là được 857 00:41:14,050 --> 00:41:16,870 tích lũy trong 10 năm sự phát triển của lặp đi lặp lại 858 00:41:16,870 --> 00:41:18,120 trên bộ vấn đề của khóa học. 859 00:41:18,120 --> 00:41:21,470 >> Vì vậy, năm nay, không chỉ trong lớp nhưng cũng theo hình thức vấn đề của khóa học 860 00:41:21,470 --> 00:41:24,800 bộ, bạn nên tìm những thứ để được sắp xếp hợp lý hơn, tông đơ, nhiều 861 00:41:24,800 --> 00:41:26,700 hơn quản lý hơn trong những năm qua, như chúng ta 862 00:41:26,700 --> 00:41:31,330 đổ một số hành lý đó phát triển bởi bản chất của phát triển năm 863 00:41:31,330 --> 00:41:32,970 sau năm năm và iterating. 864 00:41:32,970 --> 00:41:35,110 Vì vậy, mới và cải tiến bắt đầu ngày hôm nay. 865 00:41:35,110 --> 00:41:37,860 >> Bạn sẽ gặp một số chi tiết của nhân viên của khóa học trong các [IM LẶNG] 866 00:41:37,860 --> 00:41:40,186 lúc 2:30, nơi mà chúng tôi phục vụ, như một truyền thống, bánh. 867 00:41:40,186 --> 00:41:42,060 Có một bánh hơn chút hơn thế, nhưng bạn sẽ 868 00:41:42,060 --> 00:41:44,690 gặp Erin và Tobias và những người khác vẫn còn. 869 00:41:44,690 --> 00:41:46,470 Và hãy để tôi cung cấp cho bạn một tour du lịch trước khi chúng ta nghe 870 00:41:46,470 --> 00:41:49,600 từ một số các nhân viên khác trong lớp, những gì đang chờ đợi là tốt. 871 00:41:49,600 --> 00:41:52,730 Trong thực tế, chúng tôi luôn luôn bắt đầu của CS50 học kỳ này Saturday tới, 872 00:41:52,730 --> 00:41:54,330 với những gì được gọi là CS50 Puzzle ngày. 873 00:41:54,330 --> 00:41:56,710 >> Nó không có gì để làm với khoa học máy tính cho mỗi gia nhập, 874 00:41:56,710 --> 00:41:58,669 nhưng với về vấn đề giải quyết nói chung. 875 00:41:58,669 --> 00:42:01,210 Và nếu bạn lựa chọn để tham gia, mỗi một số lời mời, 876 00:42:01,210 --> 00:42:03,460 bạn có thể đã thấy cửa giảm hoặc trên sân khấu ở đây, 877 00:42:03,460 --> 00:42:05,830 nó là một cơ hội trong đội hai hoặc ba hoặc bốn, 878 00:42:05,830 --> 00:42:10,680 tham gia cho các câu đố và pizza và giải thưởng và more-- thứ bảy này, 879 00:42:10,680 --> 00:42:12,560 chơ cho biết thêm. 880 00:42:12,560 --> 00:42:15,082 >> Bạn sẽ tìm thấy quá rằng mỗi Thứ Sáu, tại Fire và Ice, 881 00:42:15,082 --> 00:42:16,790 không mang lại một CS50 bó toàn bộ sinh viên 882 00:42:16,790 --> 00:42:19,100 ăn trưa, để làm cho một lượng lớn lớp cảm thấy thân mật hơn, 883 00:42:19,100 --> 00:42:21,820 và thường mang lại cùng cựu sinh viên và bạn bè từ ngành công nghiệp 884 00:42:21,820 --> 00:42:24,710 để nói về những gì họ đã sao từ khi tốt nghiệp. 885 00:42:24,710 --> 00:42:27,820 Tương tự như vậy, trong năm nay, sẽ chúng tôi khai trương đầu tiên CS50 50 886 00:42:27,820 --> 00:42:31,390 mã hóa contest-- một giữa học kỳ cơ hội để cho phép tất cả mọi người 887 00:42:31,390 --> 00:42:35,430 trên một lựa chọn trong cơ sở, để có một thách thức của trí thông minh với các bạn cùng lớp, 888 00:42:35,430 --> 00:42:39,250 một lần nữa trong đội của hai hoặc ba hoặc bốn, chỉ sử dụng lập trình 889 00:42:39,250 --> 00:42:41,920 hiểu biết rằng sau đó bạn có theo vành đai của bạn chỉ sau sáu hoặc bảy 890 00:42:41,920 --> 00:42:44,710 tuần của lớp, và tham gia trong các loại hình cạnh tranh 891 00:42:44,710 --> 00:42:50,261 online-- nếu bạn muốn trau dồi của riêng bạn kỹ năng tất cả các chi tiết trong thách thức đó. 892 00:42:50,261 --> 00:42:52,760 Vào cuối học kỳ là cái gọi là CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 một cơ hội bắt đầu vào lúc 7:00 PM kết thúc vào 7:00, và trên đường đi 894 00:42:56,970 --> 00:43:01,900 12 giờ tối, trong đó để lặn vào project-- thức của khóa học 895 00:43:01,900 --> 00:43:04,820 một cơ hội để thiết kế và thực hiện bất cứ điều gì nhất quan tâm 896 00:43:04,820 --> 00:43:06,980 cho bạn với giảng dạy của bạn hướng dẫn viên của. 897 00:43:06,980 --> 00:43:09,600 Khoảng 9:00 chúng ta thường phục vụ pizza, 01:00, 898 00:43:09,600 --> 00:43:13,210 Philippe, và vài người trong chúng ta người vẫn còn tỉnh táo vào lúc 5:00 AM, 899 00:43:13,210 --> 00:43:16,310 là đưa đón bussed xuống đường để IHOP cho bữa ăn sáng. 900 00:43:16,310 --> 00:43:19,340 >> Và sau đó một vài ngày sau đó là cái gọi là CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 kết thúc của cuộc triển lãm trong học kỳ cử chỉ như thế nào đến nay rất nhiều 902 00:43:23,450 --> 00:43:28,200 của CS50 sinh viên đến từ tuần bằng không tất cả các cách để tuần, 903 00:43:28,200 --> 00:43:32,610 và giữ trong tâm trí rằng 73% những người các bạn cùng lớp và của bạn trong năm nay có 904 00:43:32,610 --> 00:43:34,840 không bao giờ lấy một lớp CS trước. 905 00:43:34,840 --> 00:43:39,226 Trong thực tế, để nhấn mạnh lại càng nhiều, ở đây là một vài gương mặt nhiều hơn từ nhân viên CS50 của. 906 00:43:39,226 --> 00:43:40,184 SPEAKER 4: [IM LẶNG]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 SPEAKER 5: [IM LẶNG]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 SPEAKER 6: [IM LẶNG]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 SPEAKER 7: [IM LẶNG]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 SPEAKER 8: [IM LẶNG] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 SPEAKER 9: [IM LẶNG]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> SPEAKER 4: [IM LẶNG]. 919 00:44:15,461 --> 00:44:16,461 >> SPEAKER 10: [IM LẶNG]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 SPEAKER 11: [IM LẶNG]. 922 00:44:23,438 --> 00:44:24,438 SPEAKER 12: [IM LẶNG]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 SPEAKER 13: [IM LẶNG] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> SPEAKER 14: [IM LẶNG]. 927 00:44:40,342 --> 00:44:42,863 >> SPEAKER 13: [IM LẶNG]. 928 00:44:42,863 --> 00:44:43,821 SPEAKER 15: [IM LẶNG] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 SPEAKER 16: [IM LẶNG]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> SPEAKER 11: [IM LẶNG] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 SPEAKER 5: [IM LẶNG]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID Malan: Một số các nhóm mình đang mua sắm các lớp học. 937 00:45:15,130 --> 00:45:17,760 Nhưng nếu những thành viên của nhân viên CS50 đang ở đây, 938 00:45:17,760 --> 00:45:19,230 có thể đi trên lên chỉ trong một khoảnh khắc. 939 00:45:19,230 --> 00:45:23,450 CS50 của TF và CA và [? cán bộ ?] thành viên đây-- đây chỉ là một vài 940 00:45:23,450 --> 00:45:28,880 của faces-- một trong những người mà bạn chỉ nhìn thấy, và một vài other-- và một vài người khác 941 00:45:28,880 --> 00:45:30,020 vẫn. 942 00:45:30,020 --> 00:45:33,242 Tại sao chúng ta không đi trước và cho phép các bạn nghỉ ngơi năm phút. 943 00:45:33,242 --> 00:45:35,450 Nếu bạn cần phải vịt ra lớp cửa hàng, đó là tốt. 944 00:45:35,450 --> 00:45:38,900 Và trong năm phút, chúng tôi sẽ tiếp tục, dùng một cái nhìn tại Scratch-- đầu tiên 945 00:45:38,900 --> 00:45:42,420 của ngôn ngữ lập trình của chúng tôi, đáp ứng nhân viên của khóa học ở đây một số chi tiết, 946 00:45:42,420 --> 00:45:45,020 và tập trung cuối cùng về vấn đề thiết lập bằng không. 947 00:45:45,020 --> 00:45:46,710 Vì vậy, chúng tôi sẽ trở lại trong năm phút. 1 00:45:46,864 --> 00:45:47,370 >> Tất cả các quyền. 2 00:45:47,370 --> 00:45:48,590 Vì vậy, chúng tôi đã trở lại. 3 00:45:48,590 --> 00:45:51,330 Và trong còn lại của chúng tôi Hiện nay, mục tiêu 4 00:45:51,330 --> 00:45:54,320 là sân chơi chung về một số thuật ngữ, 5 00:45:54,320 --> 00:45:55,297 về một số ý tưởng. 6 00:45:55,297 --> 00:45:57,380 Bởi vì thực sự, như mỗi một số bảng xếp hạng trước đó, 7 00:45:57,380 --> 00:46:00,130 có là có được một loạt các cấp độ kinh nghiệm trong lớp, 8 00:46:00,130 --> 00:46:03,210 một số có số học sinh có thực hiện một số chương trình trước đây, 9 00:46:03,210 --> 00:46:04,200 một số người trong số họ không có. 10 00:46:04,200 --> 00:46:07,430 Và như vậy với vấn đề đầu tiên này thiết lập và với ngôn ngữ đầu tiên này 11 00:46:07,430 --> 00:46:10,830 chúng ta có một cơ hội để bắt đầu để đưa cho các cấp sau ngày hôm nay 12 00:46:10,830 --> 00:46:12,960 một số từ vựng chung và ý tưởng. 13 00:46:12,960 --> 00:46:15,590 >> Và chúng tôi sẽ làm điều này bằng cách languages-- đầu tiên của khóa học 14 00:46:15,590 --> 00:46:21,070 ngoài C và Python và JavaScript và SQL và HTML và CSS, 15 00:46:21,070 --> 00:46:24,450 chúng tôi sẽ tập trung ban đầu và chỉ cho vấn đề thiết zero 16 00:46:24,450 --> 00:46:28,160 về ngôn ngữ đồ họa này, được gọi là Scratch, được phát triển bởi MIT Media Lab CỦA 17 00:46:28,160 --> 00:46:30,880 xuống đường, để giúp sinh viên và trẻ em đặc biệt 18 00:46:30,880 --> 00:46:35,070 hiện mình algorithmically-- một cách phù hợp hơn với những gì 19 00:46:35,070 --> 00:46:37,300 chúng ta có thể gọi là tư duy tính toán. 20 00:46:37,300 --> 00:46:40,985 >> Và đó là một ngôn ngữ hữu ích vì rất nhanh chóng vào tuần tới trong tuần đầu, 21 00:46:40,985 --> 00:46:44,360 chúng ta chuyển đổi sang một nhiều hơn ngôn ngữ truyền thống và phức tạp được gọi là 22 00:46:44,360 --> 00:46:46,370 C, đó hoàn toàn là văn bản. 23 00:46:46,370 --> 00:46:48,930 Bạn chỉ sử dụng bàn phím của bạn trong Để viết hướng dẫn 24 00:46:48,930 --> 00:46:50,230 như thế này trên màn hình. 25 00:46:50,230 --> 00:46:52,840 Nhưng ngay cả khi bạn chưa từng thấy một ngôn ngữ lập trình trước, 26 00:46:52,840 --> 00:46:55,170 chỉ liếc nhìn này, tất cả đều có thể là khó hiểu, 27 00:46:55,170 --> 00:47:00,010 bạn có thể đoán rằng có thể in Hello World. 28 00:47:00,010 --> 00:47:02,050 Nhưng có rất nhiều overhead cú pháp đó. 29 00:47:02,050 --> 00:47:05,770 Có băm lạ biểu tượng hoặc băm thẻ lên hàng đầu. 30 00:47:05,770 --> 00:47:08,900 Có các dấu ngoặc nhọn, một số dấu ngoặc đơn, dấu ngoặc, bán colon-- 31 00:47:08,900 --> 00:47:11,880 đó chỉ là quá nhiều hình ảnh cú pháp mà được theo cách này. 32 00:47:11,880 --> 00:47:13,940 Chúng tôi bắt đầu khóa học với Scratch để có được 33 00:47:13,940 --> 00:47:17,600 qua tất cả những trí tuệ phiền nhiễu không thú vị, 34 00:47:17,600 --> 00:47:20,290 và tập trung thay vì trên các ý tưởng. 35 00:47:20,290 --> 00:47:22,540 >> Trong thực tế, điều này có thể là trước. 36 00:47:22,540 --> 00:47:24,830 Điều này, cho điều này, tuần sau sẽ có. 37 00:47:24,830 --> 00:47:26,760 Điều này, đồ họa này Scratch ngôn ngữ, 38 00:47:26,760 --> 00:47:29,870 là làm thế nào bạn sẽ thực hiện điều đó cùng program-- một chương trình mà khi chạy, 39 00:47:29,870 --> 00:47:31,340 chỉ đơn giản là nói hello thế giới. 40 00:47:31,340 --> 00:47:34,740 Và những gì tốt đẹp về Scratch là rằng đó là lập trình đồ họa này 41 00:47:34,740 --> 00:47:38,780 môi trường có sử dụng mảnh ghép hoặc khối, mà chỉ có đan lại với nhau 42 00:47:38,780 --> 00:47:40,440 nếu nó làm cho cảm giác hợp lý để làm như vậy. 43 00:47:40,440 --> 00:47:43,810 Và với Scratch bạn có thể phát triển hình ảnh động và trò chơi tương tác 44 00:47:43,810 --> 00:47:47,270 và nghệ thuật, và bất kỳ số điều mà bạn có thể tưởng tượng trong tâm trí của riêng bạn, 45 00:47:47,270 --> 00:47:51,200 và thực hiện đơn giản bằng cách kéo và thả các mảnh ghép. 46 00:47:51,200 --> 00:47:54,265 >> Và quả thực, chúng ta sẽ có khả năng để thể hiện những ý tưởng tương tự 47 00:47:54,265 --> 00:47:56,890 mà tôi chỉ đề cập đến một thời điểm trước đây trong bối cảnh của Mike Smith 48 00:47:56,890 --> 00:48:00,670 và tìm kiếm những điều một điện thoại book-- như chức năng, chỉ hành động, 49 00:48:00,670 --> 00:48:03,070 những thứ như vòng mà làm điều một lần nữa và một lần nữa, 50 00:48:03,070 --> 00:48:05,170 biến, đó là một cái gì đó chúng tôi sẽ giới thiệu, 51 00:48:05,170 --> 00:48:08,086 nhưng nó quen thuộc có lẽ từ algebra-- chỉ một số loại giữ chỗ 52 00:48:08,086 --> 00:48:10,840 để lưu trữ một số giá trị có lẽ bạn cần biểu thức Boolean later--, 53 00:48:10,840 --> 00:48:13,720 nơi những người có hoặc không có thật câu hỏi sai từ trước. 54 00:48:13,720 --> 00:48:17,117 Điều kiện là những dĩa trong road-- những ngành như vậy để nói chuyện. 55 00:48:17,117 --> 00:48:19,700 Và sau đó có một số fancier tính năng chúng ta sẽ thấy ngay cả ngày nay, 56 00:48:19,700 --> 00:48:22,850 gọi là mảng và chủ đề và sự kiện, mà chúng tôi sau đó sẽ xem lại trên 57 00:48:22,850 --> 00:48:24,460 thời gian trong các ngôn ngữ khác nhau. 58 00:48:24,460 --> 00:48:26,790 Nhưng Scratch cho phép chúng tôi để khám phá tất cả các. 59 00:48:26,790 --> 00:48:30,779 Vì vậy, ở đây trong Scratch, này màu tím khối là những gì một chức năng thường 60 00:48:30,779 --> 00:48:31,570 sẽ trông như thế nào. 61 00:48:31,570 --> 00:48:35,620 Đây mảnh ghép màu tím mà có một số từ như nói rằng, đó là hành động, 62 00:48:35,620 --> 00:48:38,490 và sau đó nó có thể có một đối số hoặc một cách nào đó parameter-- 63 00:48:38,490 --> 00:48:41,140 các loại tùy biến những khối nào 64 00:48:41,140 --> 00:48:45,182 do đó nó không được xác định trước bởi MIT ở khối màu tím này nói. 65 00:48:45,182 --> 00:48:47,390 Trong thực tế, bạn sẽ thấy trong một lúc đó tôi có thể gõ 66 00:48:47,390 --> 00:48:49,931 những từ như hello thế giới, hoặc xin chào David, hoặc hello Zamayla, 67 00:48:49,931 --> 00:48:53,750 hoặc bất cứ điều gì tôi muốn, trong đối số cho câu đố đó piece-- hộp trắng 68 00:48:53,750 --> 00:48:54,251 chỗ đó. 69 00:48:54,251 --> 00:48:57,166 Trong khi đó, nếu tôi muốn có một vòng lặp, chúng ta sẽ thấy rằng có mảnh ghép hình 70 00:48:57,166 --> 00:48:58,640 nhìn một chút màu cam như thế này. 71 00:48:58,640 --> 00:49:01,690 Và hình dạng của loại cho thấy rằng một cái gì đó xảy ra một lần nữa và một lần nữa 72 00:49:01,690 --> 00:49:02,680 trong một chu kỳ. 73 00:49:02,680 --> 00:49:06,800 >> Vì vậy, nếu tôi quấn một khối chào thế giới với một chặn mãi mãi trong Scratch, 74 00:49:06,800 --> 00:49:10,307 nó chỉ cần đi để tiếp tục nói xin chào mãi mãi thế giới, theo đúng nghĩa đen. 75 00:49:10,307 --> 00:49:12,390 Trong khi đó, có một loại vòng lặp trong Scratch 76 00:49:12,390 --> 00:49:14,348 rằng chúng tôi sẽ see-- lặp lại block-- ở đâu, nếu bạn 77 00:49:14,348 --> 00:49:17,940 biết trước bao nhiêu lần bạn muốn vòng lặp để thực hiện 78 00:49:17,940 --> 00:49:21,850 một số hữu hạn lần trong fact-- bạn có thể xác định bằng cách gõ một số 79 00:49:21,850 --> 00:49:25,380 hoặc thậm chí cắm vào một biến, như x hoặc y như chúng ta sẽ thấy. 80 00:49:25,380 --> 00:49:27,690 >> Trong thực tế, các biến như i trong trường hợp này, 81 00:49:27,690 --> 00:49:30,109 là một tên gọi chung cho một biến số nguyên 82 00:49:30,109 --> 00:49:31,900 chỉ lưu trữ một number-- một số nguyên có thể được, 83 00:49:31,900 --> 00:49:35,470 sử dụng khối màu cam này ở đây để thiết lập một biến như tôi về không. 84 00:49:35,470 --> 00:49:38,900 Dưới đây là một ví dụ trong xanh của một biểu thức Boolean trong Scratch. 85 00:49:38,900 --> 00:49:43,700 Mặc dù điều này có vẻ giống như một toán học công thức, sự bất bình đẳng toán học như thế này 86 00:49:43,700 --> 00:49:45,320 thực sự là biểu thức Boolean. 87 00:49:45,320 --> 00:49:46,570 Đây là đúng hoặc sai. 88 00:49:46,570 --> 00:49:48,300 Tôi là ít hơn 50. 89 00:49:48,300 --> 00:49:51,815 Đó là cả một câu trả lời có hoặc không hoặc câu trả lời đúng hay sai. 90 00:49:51,815 --> 00:49:53,940 Và chúng ta thường sẽ gọi những biểu thức Boolean. 91 00:49:53,940 --> 00:49:55,148 Và nó không phải là 50. 92 00:49:55,148 --> 00:49:57,970 Nó có thể được x ít hơn y, lớn hơn y, bằng y-- 93 00:49:57,970 --> 00:50:00,020 bất kỳ số khác câu hỏi có thể được yêu cầu. 94 00:50:00,020 --> 00:50:03,250 >> Bây giờ, ở cái nhìn đầu tiên, điều này có thể trông đột nhiên khá đậm ở đây, và nó được. 95 00:50:03,250 --> 00:50:06,540 Nhưng khái niệm khôn ngoan, đó là khá quen thuộc từ trước. 96 00:50:06,540 --> 00:50:09,370 Nếu x là ít hơn so với năm trước, hơn nói nhiều như thế. 97 00:50:09,370 --> 00:50:12,230 Else if x lớn hơn y, sau đó nói nhiều như thế. 98 00:50:12,230 --> 00:50:14,260 Khác nói x bằng y. 99 00:50:14,260 --> 00:50:17,220 Vì vậy, chúng ta có một ví dụ có một scenario-- thứ ba 100 00:50:17,220 --> 00:50:20,600 chỉ ba possibility-- x là một trong hai lớn hơn, nhỏ hơn, hoặc bằng. 101 00:50:20,600 --> 00:50:22,420 Vì vậy, chúng tôi có một ngã ba ba cách trên đường. 102 00:50:22,420 --> 00:50:26,290 >> Và nhận thấy mát đây-- Scratch là những gì, nó sẽ có vẻ, chỉ có một câu đố 103 00:50:26,290 --> 00:50:28,840 mảnh, trong trường hợp này, nếu khối khác. 104 00:50:28,840 --> 00:50:32,090 Và đó dường như ngụ ý bạn có thể chỉ có một ngã ba hai cách trên đường. 105 00:50:32,090 --> 00:50:34,631 Bạn có thể đi sang bên trái hoặc phải, nhưng về những gì mà kịch bản thứ ba? 106 00:50:34,631 --> 00:50:35,760 Điều gì nếu x bằng y? 107 00:50:35,760 --> 00:50:36,500 Không phải vấn đề lớn. 108 00:50:36,500 --> 00:50:39,640 Lấy một mảnh ghép, đặt một số khác bên trong của nó 109 00:50:39,640 --> 00:50:45,759 để tạo ra tương đương ngữ nghĩa if, else if, else-- và bây giờ bạn 110 00:50:45,759 --> 00:50:47,300 có ngã ba ba theo cách của bạn trên đường. 111 00:50:47,300 --> 00:50:49,091 Và như chúng ta sẽ thấy, phần đầu câu đố 112 00:50:49,091 --> 00:50:51,820 có thể được kéo dài và phát triển, vì vậy như để nhồi nhét nhiều công cụ trong họ. 113 00:50:51,820 --> 00:50:54,420 Bạn không cần phải phù hợp với tất cả mọi thứ trong kích thước mặc định của nó. 114 00:50:54,420 --> 00:50:56,690 >> Đây là một cái gì đó chúng tôi sẽ sớm thấy được gọi là mảng. 115 00:50:56,690 --> 00:51:00,880 Nó giống như một list-- một số cách lưu trữ nhiều thông tin 116 00:51:00,880 --> 00:51:02,886 trong một biến, không chỉ là một con số. 117 00:51:02,886 --> 00:51:05,760 Những chúng ta sẽ thấy một đại diện của một cái gì đó gọi là đa luồng. 118 00:51:05,760 --> 00:51:08,280 Trong thực tế, tất cả các bạn Mac và PC hiện nay 119 00:51:08,280 --> 00:51:10,810 hỗ trợ đa luồng, có nghĩa là bạn có thể theo nghĩa đen 120 00:51:10,810 --> 00:51:12,390 làm nhiều thứ cùng một lúc. 121 00:51:12,390 --> 00:51:15,390 Bạn có thể có Microsoft Word lên trong foreground, làm việc trên một số bài luận. 122 00:51:15,390 --> 00:51:17,160 Bạn có thể có một trình duyệt trong việc mở nền 123 00:51:17,160 --> 00:51:18,720 G-mail hoặc Facebook hoặc tương tự. 124 00:51:18,720 --> 00:51:22,730 Máy tính của bạn có thể làm nhiều điều ngày nay vì nó là đa luồng, 125 00:51:22,730 --> 00:51:26,390 và các chương trình họ đang ở trong đặc biệt cũng là đa luồng. 126 00:51:26,390 --> 00:51:28,970 >> Có những thứ được gọi là sự kiện như cũng trong thế giới của Scratch, 127 00:51:28,970 --> 00:51:32,640 và sau đó có một cách quá, để làm cho riêng phần tùy chỉnh câu đố của chúng tôi nếu điều 128 00:51:32,640 --> 00:51:34,810 không thực sự tồn tại trước. 129 00:51:34,810 --> 00:51:38,260 Vì vậy, hãy động viên này như sau. 130 00:51:38,260 --> 00:51:40,580 Một vài năm trước, khi tôi đầu tiên phát hiện ra Scratch, 131 00:51:40,580 --> 00:51:43,530 khi tôi thực sự là một sinh viên grad tại MIT, chúng tôi 132 00:51:43,530 --> 00:51:45,640 mình được giao nhiệm vụ làm bài tập ở nhà. 133 00:51:45,640 --> 00:51:47,614 Và tôi implemented-- trong đó, khi nhìn lại, 134 00:51:47,614 --> 00:51:50,780 là một quyết định rất nghèo vì nó bài hát phẩn nộ nhất trên thế giới 135 00:51:50,780 --> 00:51:53,321 để nghe cho tám giờ trong khi làm việc trên homework-- của bạn 136 00:51:53,321 --> 00:51:57,180 nhưng cái gì tôi đã được gọi là Oscar thời gian, mà có lẽ là một bài hát quen thuộc. 137 00:51:57,180 --> 00:51:59,820 >> CS50s sở hữu Jordan Hayashi, một trong những nhiều nhân viên cao cấp của chúng tôi, 138 00:51:59,820 --> 00:52:03,920 đã nâng cấp nó cho năm 2015 và hiện năm 2016, kể từ khi trở lại trong ngày, 139 00:52:03,920 --> 00:52:06,610 Tôi đã có tất cả mọi thứ chỉ cần đi vào thùng rác của Oscar. 140 00:52:06,610 --> 00:52:09,320 Bây giờ chúng tôi hỗ trợ tái chế và ủ. 141 00:52:09,320 --> 00:52:12,050 >> Nhưng để vẽ lên bức tranh về những gì chúng ta có thể làm ở đây 142 00:52:12,050 --> 00:52:14,130 và để thúc đẩy một số các ví dụ mức độ thấp hơn, 143 00:52:14,130 --> 00:52:16,400 chúng ta có thể có được một khác tình nguyện viên để chỉ đến trên lên 144 00:52:16,400 --> 00:52:18,331 và chơi đầu tiên của tôi bài tập về nhà bao giờ? 145 00:52:18,331 --> 00:52:18,830 Thôi lên. 146 00:52:18,830 --> 00:52:19,250 Tên bạn là gì? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID Malan: Henry, đi lên trên. 149 00:52:22,660 --> 00:52:24,190 Thôi lên. 150 00:52:24,190 --> 00:52:27,070 Đi một trong hai cách, và bạn sẽ thấy trong một thời điểm, 151 00:52:27,070 --> 00:52:29,870 Tôi sẽ đi trước và nhấn lá cờ màu xanh lá cây ở trên bên phải 152 00:52:29,870 --> 00:52:31,100 góc, có nghĩa là đi. 153 00:52:31,100 --> 00:52:33,320 Các biểu tượng dấu chút dừng sẽ nói dừng lại, 154 00:52:33,320 --> 00:52:35,490 và đó là khi bạn bắt đầu và dừng chương trình. 155 00:52:35,490 --> 00:52:36,450 Rất vui được gặp bạn. 156 00:52:36,450 --> 00:52:36,950 Tất cả các quyền. 157 00:52:36,950 --> 00:52:39,100 Vì vậy, chúng ta sẽ thấy các hướng dẫn trên màn hình chỉ trong một khoảnh khắc. 158 00:52:39,100 --> 00:52:41,450 Và chỉ bằng cách chơi trò chơi này cho một vài seconds-- tôi tin tưởng, 159 00:52:41,450 --> 00:52:43,670 chúng tôi sẽ không muốn chơi tất cả các cách để các end-- bạn sẽ 160 00:52:43,670 --> 00:52:45,470 có được một cảm giác về những chương trình nào. 161 00:52:45,470 --> 00:52:49,170 Và nhiều hơn là chỉ tập trung vào Henry là tốt hay xấu ở trận đấu này, trọng tâm 162 00:52:49,170 --> 00:52:52,600 và làm thế nào là nó được thực hiện bởi tôi ban đầu và sau đó bởi Jordan. 163 00:52:52,600 --> 00:52:54,640 Nói cách khác, nơi có các biến? 164 00:52:54,640 --> 00:52:55,520 Đâu là những vòng? 165 00:52:55,520 --> 00:52:56,520 Đâu là những chức năng? 166 00:52:56,520 --> 00:53:00,700 Và chúng ta sẽ thấy nếu chúng ta không thấy những người bên dưới mui xe. 167 00:53:00,700 --> 00:53:03,660 >> Chỉ cần nhấp vào và kéo thùng rác vào thùng thích hợp. 168 00:53:03,660 --> 00:54:02,100 >> [NHẠC] 169 00:54:02,100 --> 00:54:02,600 Tất cả các quyền. 170 00:54:02,600 --> 00:54:03,160 Điều đó rất tốt. 171 00:54:03,160 --> 00:54:04,286 Tại sao chúng ta không dừng lại ở đó. 172 00:54:04,286 --> 00:54:04,786 Cho tôi biết. 173 00:54:04,786 --> 00:54:05,830 Xin chúc mừng Henry. 174 00:54:05,830 --> 00:54:07,002 Cho tôi biết. 175 00:54:07,002 --> 00:54:10,690 >> [VỖ TAY] 176 00:54:10,690 --> 00:54:12,450 >> Chỉ cần tưởng tượng gỡ lỗi chương trình đó. 177 00:54:12,450 --> 00:54:15,880 Nếu có một vấn đề hai vào song-- nhưng như vậy phút 178 00:54:15,880 --> 00:54:17,430 những gì đang xảy ra ở đây thực sự? 179 00:54:17,430 --> 00:54:20,900 Phức tạp như nó có thể bắt đầu có vẻ để có được thời gian, 180 00:54:20,900 --> 00:54:22,910 thực sự nhiều hơn và nhiều hơn nữa thứ bắt đầu rơi xuống, 181 00:54:22,910 --> 00:54:25,370 điều thú vị về loại này ví dụ điển 182 00:54:25,370 --> 00:54:27,270 và chúng ta sẽ thấy một vài others-- là nếu bạn 183 00:54:27,270 --> 00:54:30,416 nhìn qua sự phức tạp hoặc sự tinh tế của trò chơi, 184 00:54:30,416 --> 00:54:33,040 có một tòa nhà rất đơn giản khối play-- tất cả trong số đó, 185 00:54:33,040 --> 00:54:35,840 nếu bạn đã chưng cất chúng vào những xây dựng khối, rất dễ tiếp cận 186 00:54:35,840 --> 00:54:37,401 và thực hiện được cho đến bản thân mình. 187 00:54:37,401 --> 00:54:39,150 Ví dụ, nó được một thời gian, nhưng tôi 188 00:54:39,150 --> 00:54:42,900 khá chắc chắn những gì tôi bước đầu đã làm khi làm cho trò chơi này lần đầu tiên 189 00:54:42,900 --> 00:54:44,787 là tôi hoàn toàn như procrastinated. 190 00:54:44,787 --> 00:54:47,120 Tôi đã không tập trung vào tất cả các ngày logic hoặc các mảnh ghép, 191 00:54:47,120 --> 00:54:50,810 Tôi tập trung vào đồ họa và phát hiện các bài đường phố và các thùng rác 192 00:54:50,810 --> 00:54:51,540 và tất cả điều đó. 193 00:54:51,540 --> 00:54:53,456 Nhưng đó là những điều kiện tiên quyết nguyên liệu ở đầu tiên. 194 00:54:53,456 --> 00:54:57,220 Và một khi tôi đã hoàn thành và trì hoãn đặt ra khuôn khổ bao trùm, 195 00:54:57,220 --> 00:55:00,337 Tôi quyết định, hãy để tôi chỉ làm cho một mảnh rác rơi từ bầu trời. 196 00:55:00,337 --> 00:55:02,170 Và chúng ta sẽ thấy Scratch hỗ trợ những thứ được gọi là 197 00:55:02,170 --> 00:55:06,386 nhân vật sprites-- rằng có thể có trang phục khác nhau, vì thế họ 198 00:55:06,386 --> 00:55:07,010 trông khác. 199 00:55:07,010 --> 00:55:09,660 >> Và vì vậy tôi đặt một thùng rác trang phục trên một sprite như vậy. 200 00:55:09,660 --> 00:55:12,007 Và tôi chỉ cần nó rơi từ bầu trời. 201 00:55:12,007 --> 00:55:14,590 Và do đó, nó quay ra, Scratch, giống như hầu hết các ngôn ngữ lập trình, 202 00:55:14,590 --> 00:55:18,099 hỗ trợ các số ngẫu nhiên hoặc số ngẫu nhiên về mặt kỹ thuật giả, 203 00:55:18,099 --> 00:55:20,390 do đó bằng cách kéo và thả mảnh ghép nào đó, 204 00:55:20,390 --> 00:55:22,890 Tôi đã có thể có các thùng rác đến từ bên trái lúc đầu. 205 00:55:22,890 --> 00:55:25,580 Và sau đó, lần sau nó giảm, từ quyền và sau đó từ giữa. 206 00:55:25,580 --> 00:55:28,060 Và tất cả các trò chơi đã được chỉ có thùng rác rơi xuống từ bầu trời. 207 00:55:28,060 --> 00:55:29,770 Bạn không thể trỏ vào nó hoặc nhấp vào nó. 208 00:55:29,770 --> 00:55:31,103 Bạn không thể mở các thùng rác. 209 00:55:31,103 --> 00:55:32,160 Bạn không thể làm bất cứ điều gì. 210 00:55:32,160 --> 00:55:34,450 Nhưng đó là một bước bé hướng tới tầm nhìn cuối cùng của tôi. 211 00:55:34,450 --> 00:55:36,720 >> Và sau đó, tôi thực sự thực hiện một số loại 212 00:55:36,720 --> 00:55:41,230 các cảm biến để nếu bạn đã nhấp vào và kéo trên mảnh rác 213 00:55:41,230 --> 00:55:44,350 trong thùng rác, Oscar nắp sẽ mở và đóng. 214 00:55:44,350 --> 00:55:47,650 Không có gì sẽ xảy ra cho vào thùng rác, nhưng ít nhất là nắp sẽ mở và đóng. 215 00:55:47,650 --> 00:55:49,642 Vì vậy, sau đó kiểm tra, bước hai của hai người. 216 00:55:49,642 --> 00:55:52,100 Và đây là những gì sẽ là quan trọng trong cả hai vấn đề đặt zero 217 00:55:52,100 --> 00:55:55,970 và trong lập trình nói chung, là để có những bước em bé rất có chủ ý. 218 00:55:55,970 --> 00:55:59,390 Bởi vì nó không chỉ cho phép bạn cảm thấy thật hoàn nhiều hơn nữa 219 00:55:59,390 --> 00:56:01,250 quickly-- đó là Điều tồi tệ nhất trên thế giới 220 00:56:01,250 --> 00:56:06,149 để cố gắng thực hiện tất cả các giải Oscar thời gian, sau đó giờ sau đó nhấn lá cờ màu xanh lá cây, 221 00:56:06,149 --> 00:56:08,440 và không có gì hoạt động như dự kiến bởi vì nơi làm bạn thậm chí 222 00:56:08,440 --> 00:56:11,150 bắt đầu gỡ lỗi hoặc để khắc phục sự cố chương trình đó? 223 00:56:11,150 --> 00:56:12,470 Nó chỉ là áp đảo. 224 00:56:12,470 --> 00:56:16,792 >> Và như vậy thực sự ôm ấp ý tưởng này lấy bước em bé steps-- lại 225 00:56:16,792 --> 00:56:19,000 và again-- xây dựng một cái gì đó, cuối cùng, 226 00:56:19,000 --> 00:56:23,672 thực sự ấn tượng và phức tạp, nhưng lúc đầu, là gần như không nhiều như vậy. 227 00:56:23,672 --> 00:56:24,630 Trong thực tế, chúng ta hãy làm điều này. 228 00:56:24,630 --> 00:56:28,989 Hãy để tôi đi trước và- Scratch chính tồn tại trên web tại Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 và bạn sẽ được thông báo như nhiều lần nữa trong vấn đề 230 00:56:30,780 --> 00:56:34,200 thiết không, các đặc điểm kỹ thuật đó là đã có trên trang web của CS50. 231 00:56:34,200 --> 00:56:35,725 >> Nhưng đây là những gì Scratch chính nó là. 232 00:56:35,725 --> 00:56:38,210 Và có thực sự chỉ ba lĩnh vực chính. 233 00:56:38,210 --> 00:56:40,980 Ở phía trên cùng bên tay trái là giai đoạn được gọi là. 234 00:56:40,980 --> 00:56:41,810 Đây là Scratch. 235 00:56:41,810 --> 00:56:43,710 Bộ trang phục mặc định là một con mèo. 236 00:56:43,710 --> 00:56:46,950 Và đây là thế giới hình chữ nhật trong mà bạn có thể move-- lên, xuống, trái, 237 00:56:46,950 --> 00:56:48,130 phải và một số công cụ khác. 238 00:56:48,130 --> 00:56:51,839 Ở giữa, đây là loại của chúng tôi hoặc pallet của chúng ta về mảnh ghép, 239 00:56:51,839 --> 00:56:53,630 và màu sắc khác nhau những ý nghĩa khác nhau. 240 00:56:53,630 --> 00:56:56,520 Và nếu bạn poke xung quanh, bạn sẽ thấy những thứ như vòng lặp và điều kiện 241 00:56:56,520 --> 00:56:58,160 và các biến và các thành phần khác. 242 00:56:58,160 --> 00:57:00,060 >> Và sau đó ở đây là khu vực các kịch bản. 243 00:57:00,060 --> 00:57:03,020 Đây là nơi tôi có thể kéo và thả những mảnh ghép để làm việc. 244 00:57:03,020 --> 00:57:04,690 Vì vậy, chúng ta hãy làm một điều như vậy. 245 00:57:04,690 --> 00:57:06,630 Hãy để tôi đi trước và- và tôi biết nó ở đâu. 246 00:57:06,630 --> 00:57:10,110 Vì vậy, tôi sẽ ngay lập tức bấm vào nơi tôi biết mọi thứ đã sẵn sàng để được, 247 00:57:10,110 --> 00:57:13,140 nhưng chỉ trỏ và nhấp chuột vào và chọc xung quanh là không thể tránh khỏi. 248 00:57:13,140 --> 00:57:15,320 Vì vậy, khi lá cờ màu xanh lá cây nhấp, những gì tôi muốn làm gì? 249 00:57:15,320 --> 00:57:17,100 Tôi sẽ làm điều này. 250 00:57:17,100 --> 00:57:20,699 Tôi sẽ kéo đố tím này mảnh, chào hỏi hai giây, 251 00:57:20,699 --> 00:57:21,490 và cho tôi phóng to. 252 00:57:21,490 --> 00:57:23,865 >> Và tôi sẽ phải thay đổi này được những gì tôi muốn nó be-- 253 00:57:23,865 --> 00:57:26,471 hello thế giới trong hai giây là tốt. 254 00:57:26,471 --> 00:57:28,970 Bây giờ, tôi sẽ nhấp vào lá cờ màu xanh lá cây, hoặc nếu tôi thực sự muốn, 255 00:57:28,970 --> 00:57:31,820 Tôi hoàn toàn có thể màn hình và sau đó quay trở lại. 256 00:57:31,820 --> 00:57:34,060 Nó sẽ chỉ giữ tất cả mọi thứ trong một cửa sổ. 257 00:57:34,060 --> 00:57:36,141 Xanh flag-- hello thế giới. 258 00:57:36,141 --> 00:57:36,640 Tất cả các quyền. 259 00:57:36,640 --> 00:57:38,789 Không gì thú vị. 260 00:57:38,789 --> 00:57:40,080 Vì vậy, hãy để tôi đi trước và làm điều này. 261 00:57:40,080 --> 00:57:41,038 Hãy để tôi thử một số khác. 262 00:57:41,038 --> 00:57:44,740 Khi lá cờ màu xanh lá cây clicked-- hãy làm một cái gì đó giống như một âm thanh. 263 00:57:44,740 --> 00:57:46,880 Và nhận thấy rằng trong số hộp miễn phí bạn có được 264 00:57:46,880 --> 00:57:49,910 một âm thanh con mèo, như là ma mặc định. 265 00:57:49,910 --> 00:57:52,380 Vì vậy, bây giờ để tôi đi trước và đánh cờ xanh bây giờ. 266 00:57:52,380 --> 00:57:53,224 >> [MEOWING] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Đó là đáng yêu. 269 00:57:55,370 --> 00:57:57,040 Tôi là lập trình. 270 00:57:57,040 --> 00:57:58,550 Vì vậy, những gì đã làm gì? 271 00:57:58,550 --> 00:58:00,430 Điều này là tương đương với một chương trình. 272 00:58:00,430 --> 00:58:01,600 Đó rõ ràng là siêu đơn giản. 273 00:58:01,600 --> 00:58:05,300 Nó không thực sự mất tất cả những gì nhiều nỗ lực và MIT đã làm hầu hết công việc, 274 00:58:05,300 --> 00:58:07,890 nhưng tôi đã được gọi là một hàm. 275 00:58:07,890 --> 00:58:08,940 Tôi đã sử dụng một chức năng. 276 00:58:08,940 --> 00:58:12,480 Tôi đã thực hiện một số hành động, chỉ sử dụng rằng một màu tím mảnh ghép. 277 00:58:12,480 --> 00:58:15,960 >> Vâng, nếu tôi muốn làm ba Meows liên tiếp? 278 00:58:15,960 --> 00:58:18,570 Hãy để tôi đi trước và làm hai và ba. 279 00:58:18,570 --> 00:58:20,910 Và nhận thấy rằng khi bạn di chuột lân cận một mảnh ghép, 280 00:58:20,910 --> 00:58:22,970 một chút đường trắng xuất hiện loại từ tính, 281 00:58:22,970 --> 00:58:25,190 và nó sẽ chụp với nhau khi bạn cho đi. 282 00:58:25,190 --> 00:58:26,600 Hãy xem những gì xảy ra ở đây. 283 00:58:26,600 --> 00:58:27,920 >> [MEOWING] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Có một lỗi. 286 00:58:34,510 --> 00:58:35,650 Tôi chỉ nghe một meo meo. 287 00:58:35,650 --> 00:58:37,440 Tại sao điều đó có thể được? 288 00:58:37,440 --> 00:58:39,001 Yeah? 289 00:58:39,001 --> 00:58:39,500 Yeah. 290 00:58:39,500 --> 00:58:41,650 Chúng tôi không thực sự nghe nó, nhưng đó là trực giác tốt. 291 00:58:41,650 --> 00:58:43,400 Họ đang chơi cùng một lúc. 292 00:58:43,400 --> 00:58:44,000 Tại sao? 293 00:58:44,000 --> 00:58:46,587 Vâng, các máy tính được chỉ cần đi làm những gì bạn cho nó làm. 294 00:58:46,587 --> 00:58:48,670 Vì vậy, nếu bạn nói, âm thanh chơi, chơi âm thanh, chơi âm thanh, 295 00:58:48,670 --> 00:58:52,887 nhưng bạn không nói cho nó để chơi cho đến khi bạn đang thực hiện, chơi cho đến khi bạn thực hiện xong, 296 00:58:52,887 --> 00:58:54,970 nó sẽ thổi qua chương trình thực sự nhanh chóng 297 00:58:54,970 --> 00:58:56,830 và không chỉ những gì bạn nói với nó để làm. 298 00:58:56,830 --> 00:58:59,040 >> Vì vậy, tôi thực sự cần phải sửa chữa này trong một vài cách. 299 00:58:59,040 --> 00:59:00,623 Tôi chỉ có thể làm được điều này, thoát khỏi điều này. 300 00:59:00,623 --> 00:59:04,180 Hãy để tôi thử câu đố khác này piece-- chơi meow âm thanh cho đến khi thực hiện, 301 00:59:04,180 --> 00:59:07,072 và sau đó kéo ba những điều này và nhấn Play. 302 00:59:07,072 --> 00:59:09,430 >> [MEOWING] 303 00:59:09,430 --> 00:59:13,350 >> Nó không thực sự very-- cảm ơn bạn-- rất tự nhiên. 304 00:59:13,350 --> 00:59:16,590 Vậy tại sao không để cho I-- tôi đi để kiểm soát ở đây. 305 00:59:16,590 --> 00:59:17,090 Tốt đẹp. 306 00:59:17,090 --> 00:59:22,230 Đợi một giây, và bây giờ hãy để tôi quay trở lại với âm thanh, âm thanh và chơi cho đến khi thực hiện, 307 00:59:22,230 --> 00:59:24,620 và sau đó cho tôi được chờ đợi một giây. 308 00:59:24,620 --> 00:59:28,692 Và sau đó cho tôi đi và nhận được một nhiều âm thanh, và ở đây chúng tôi đi. 309 00:59:28,692 --> 00:59:31,350 >> [MEOWING] 310 00:59:31,350 --> 00:59:35,930 >> Một chút tự nhiên hơn, nhưng này không phải là rất hiệu quả. 311 00:59:35,930 --> 00:59:39,830 Giống như tôi đã chán, tất cả được nó ngắn gọn, nhấn lại 312 00:59:39,830 --> 00:59:42,724 và thực sự nhân đôi work-- của tôi khá nhiều việc sao chép và dán. 313 00:59:42,724 --> 00:59:44,640 Thật vậy, nếu tôi Kiểm soát nhấp hoặc phải nhấp, 314 00:59:44,640 --> 00:59:46,500 Tôi có thể chỉ cần sao chép và dán. 315 00:59:46,500 --> 00:59:49,870 Điều gì sẽ là tốt hơn xây dựng để sử dụng? 316 00:59:49,870 --> 00:59:51,090 ý tưởng gì từ trước? 317 00:59:51,090 --> 00:59:51,990 >> Yeah, do đó, một vòng lặp. 318 00:59:51,990 --> 00:59:54,580 Và trên thực tế, nếu chúng ta chọc xung quanh, chúng ta có thể tìm thấy chính xác điều đó. 319 00:59:54,580 --> 00:59:57,730 Hãy để tôi đi kiện hoặc thay Control. 320 00:59:57,730 --> 00:59:59,650 Vì vậy, tôi không repeat-- muốn nó được 10 lần. 321 00:59:59,650 --> 01:00:01,370 Điều đó sẽ gây phiền nhiễu một cách nhanh chóng. 322 01:00:01,370 --> 01:00:03,380 Nhưng tôi sẽ lặp lại ba lần. 323 01:00:03,380 --> 01:00:06,355 Hãy để tôi quay trở lại với âm thanh và phát âm thanh cho đến khi nó được thực hiện. 324 01:00:06,355 --> 01:00:08,480 Hãy để tôi quay trở lại kiểm soát và chỉ cần chờ đợi một giây. 325 01:00:08,480 --> 01:00:10,271 Và thông báo, có lẽ bạn nghĩ rằng nó không phù hợp, 326 01:00:10,271 --> 01:00:13,520 nhưng một lần nữa nếu bạn để cho nó bằng từ tính chụp tại chỗ, nó sẽ phát triển để điền vào. 327 01:00:13,520 --> 01:00:14,971 Có gì đó chơi bây giờ? 328 01:00:14,971 --> 01:00:18,500 >> [MEOWING] 329 01:00:18,500 --> 01:00:19,000 ĐƯỢC. 330 01:00:19,000 --> 01:00:19,660 Tốt đẹp. 331 01:00:19,660 --> 01:00:22,540 Và đây là những gì sẽ được gọi là một chương trình đó cũng đúng. 332 01:00:22,540 --> 01:00:27,590 Nó meowed ba lần khá tự nhiên, nhưng nó được thiết kế tốt hơn. 333 01:00:27,590 --> 01:00:29,580 Tôi đang sử dụng ít dư thừa. 334 01:00:29,580 --> 01:00:30,970 Tôi không sao chép và dán bất cứ điều gì. 335 01:00:30,970 --> 01:00:32,470 Tôi chỉ sử dụng một ý tưởng tốt hơn. 336 01:00:32,470 --> 01:00:35,340 >> Bây giờ, đây vẫn không phải là tất cả những gì thú vị với Scratch không làm 337 01:00:35,340 --> 01:00:35,930 bất cứ điều gì. 338 01:00:35,930 --> 01:00:37,388 Vì vậy, chúng ta hãy làm một cái gì đó khác thay thế. 339 01:00:37,388 --> 01:00:38,670 Hãy làm một cái gì đó mãi mãi. 340 01:00:38,670 --> 01:00:39,420 Và bạn biết những gì? 341 01:00:39,420 --> 01:00:40,470 Chuyển động có vẻ thú vị. 342 01:00:40,470 --> 01:00:45,760 Hãy có anh ta di chuyển 10 bước và nhấn play bây giờ. 343 01:00:45,760 --> 01:00:46,570 >> ĐƯỢC. 344 01:00:46,570 --> 01:00:49,300 Vâng, chúng tôi có thể loại kéo anh trở lại, và ông vẫn còn 345 01:00:49,300 --> 01:00:51,250 chạy vì ông ấy đang làm điều này mãi mãi. 346 01:00:51,250 --> 01:00:53,150 Vì vậy, các vòng lặp được thực hiện những gì nó nói để làm, 347 01:00:53,150 --> 01:00:54,650 nhưng điều này không phải là tất cả những gì thú vị. 348 01:00:54,650 --> 01:00:55,310 Làm thôi nào. 349 01:00:55,310 --> 01:00:59,870 Hãy cho tôi thêm một khối điều khiển, và sử dụng một trong những điều kiện cho lần đầu tiên. 350 01:00:59,870 --> 01:01:03,119 >> Vì vậy, nó sẽ di chuyển 10 steps-- 10 điểm, 10 điểm ảnh trên màn hình-- 351 01:01:03,119 --> 01:01:04,660 sau đó nó sẽ hỏi câu hỏi này. 352 01:01:04,660 --> 01:01:09,340 Nếu một cái gì đó là sự thật, sau đó làm một cái gì đó bên trong khối này. 353 01:01:09,340 --> 01:01:13,060 Vì vậy, nó quay ra cảm biến có một toàn bộ bó expressions-- Boolean 354 01:01:13,060 --> 01:01:16,580 câu hỏi của vâng không hoặc đúng sai form-- hãy để tôi làm điều này. 355 01:01:16,580 --> 01:01:19,260 >> Nếu touching-- và sau đó có ít trình đơn thả xuống. 356 01:01:19,260 --> 01:01:20,410 Tôi có thể tham số đó. 357 01:01:20,410 --> 01:01:23,010 Nếu chạm vào edge-- hãy làm một cái gì đó như thế. 358 01:01:23,010 --> 01:01:27,310 Vì vậy, nếu chạm edge-- hãy để tôi quay trở lại chuyển động. 359 01:01:27,310 --> 01:01:32,281 Và tại sao chúng ta không chỉ quay 180 độ? 360 01:01:32,281 --> 01:01:32,780 Tất cả các quyền. 361 01:01:32,780 --> 01:01:35,070 Vì vậy, mãi mãi, di chuyển 10 bước. 362 01:01:35,070 --> 01:01:37,670 Nếu bạn đang chạm vào cạnh, quay 180 độ. 363 01:01:37,670 --> 01:01:39,720 Và đó không phải là kết thúc chương trình bởi vì bạn đang ở trong một mãi mãi chặn, 364 01:01:39,720 --> 01:01:42,053 do đó, nó sẽ đi một lần nữa và Một lần nữa và một lần nữa và một lần nữa. 365 01:01:42,053 --> 01:01:43,980 Vì vậy, chúng ta hãy xem những gì sẽ xảy ra. 366 01:01:43,980 --> 01:01:44,785 ĐƯỢC. 367 01:01:44,785 --> 01:01:48,270 Một lỗi nhỏ, nhưng loại mát mẻ. 368 01:01:48,270 --> 01:01:51,710 >> Và chúng ta có thể thêm vào đây một số những điều ngớ ngẩn mà không phải là tất cả những trí tuệ 369 01:01:51,710 --> 01:01:52,270 hấp dẫn. 370 01:01:52,270 --> 01:01:57,210 Nhưng nếu chúng ta nhấn chút này microphone button-- ouch. 371 01:01:57,210 --> 01:01:58,480 Hãy để tôi làm sạch này lên. 372 01:01:58,480 --> 01:02:01,540 Hãy để tôi nâng cao này là họ sẽ nói trên truyền hình. 373 01:02:01,540 --> 01:02:05,400 Làm sạch mà lên, Lưu, và bây giờ đi đến kịch bản. 374 01:02:05,400 --> 01:02:07,500 >> Và bây giờ, hãy để tôi đi đến âm thanh. 375 01:02:07,500 --> 01:02:09,002 Hãy để tôi cung cấp cho nó một cái tên. 376 01:02:09,002 --> 01:02:12,440 Tôi sẽ gọi ouch này. 377 01:02:12,440 --> 01:02:13,840 Và bây giờ chơi ouch âm thanh. 378 01:02:13,840 --> 01:02:16,520 Chú ý nó xuất hiện trong ít đơn thả xuống. 379 01:02:16,520 --> 01:02:17,612 Hãy xem. 380 01:02:17,612 --> 01:02:20,444 >> [OUCH] 381 01:02:20,444 --> 01:02:24,377 >> [CƯỜI] 382 01:02:24,377 --> 01:02:25,835 Nhưng chúng ta có thể thay đổi t mình trên bay. 383 01:02:25,835 --> 01:02:28,106 Chúng tôi có thể được gấp đôi gây phiền nhiễu. 384 01:02:28,106 --> 01:02:31,760 >> [OUCH] 385 01:02:31,760 --> 01:02:35,332 >> Hoặc nếu chúng ta làm cho nó giống như 1000 bước vào một time-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> ĐƯỢC. 388 01:02:40,670 --> 01:02:42,295 Vì vậy, chúng ta sẽ để lại một trong đó một mình. 389 01:02:42,295 --> 01:02:45,290 Vì vậy, một lần nữa, xây dựng blocks-- tôi bắt đầu với một cái gì đó siêu đơn giản, 390 01:02:45,290 --> 01:02:47,930 và sau đó tôi đã thêm một tính năng, thêm một tính năng, thêm một tính năng. 391 01:02:47,930 --> 01:02:50,721 Và tôi không còn cần phải lo lắng về cách đầu tiên của những tính năng 392 01:02:50,721 --> 01:02:53,690 đã được thực hiện như tôi tiếp tục để lớp thứ trên đầu. 393 01:02:53,690 --> 01:02:55,430 Vì vậy, trong thực tế, hãy để tôi làm một khác ở đây. 394 01:02:55,430 --> 01:03:00,580 Hãy để tôi đi trước và mở một tập tin đó Tôi mang trước, gọi là cừu. 395 01:03:00,580 --> 01:03:03,970 >> Vì vậy, nó có một chút khác biệt nhân vật trông như thế này. 396 01:03:03,970 --> 01:03:07,370 Và hãy để tôi xem liệu tôi có thể không làm một cái gì đó sử dụng một truy cập 397 01:03:07,370 --> 01:03:09,310 trong này case-- một biến cái gọi là. 398 01:03:09,310 --> 01:03:15,540 Tôi sẽ đi trước và dưới Events-- hãy để tôi nhận được một lá cờ màu xanh lá cây nhấp vào. 399 01:03:15,540 --> 01:03:19,030 Sau đó, cho tôi đi đến dữ liệu, mà tôi biết từ chỉ chơi xung quanh trước, 400 01:03:19,030 --> 01:03:20,214 là nơi mà các biến được. 401 01:03:20,214 --> 01:03:21,880 Và tôi sẽ đi trước và kéo này. 402 01:03:21,880 --> 01:03:25,144 >> Vì vậy, một biến gọi là truy cập, và Tôi sẽ khởi tạo nó bằng không. 403 01:03:25,144 --> 01:03:27,560 Tôi có thể gọi nó anything-- x hoặc y hoặc z-- nhưng trong lập trình, 404 01:03:27,560 --> 01:03:30,410 gọi một cái gì đó trong một ngữ nghĩa cách hữu ích, như truy cập, 405 01:03:30,410 --> 01:03:34,540 mô tả nó là gì, đó là một dễ dàng hơn nhiều để đọc code của bạn sau này. 406 01:03:34,540 --> 01:03:37,460 Hãy để tôi đi trước và nhận được một mãi mãi chặn ở đây. 407 01:03:37,460 --> 01:03:41,289 Và hãy để tôi đi đến ngoại hình trang và làm một khối Say. 408 01:03:41,289 --> 01:03:44,330 Nhưng điều thú vị về các biến là tôi không phải chỉ cần gõ vào một cái gì đó 409 01:03:44,330 --> 01:03:47,850 như hello thế giới, mà chúng tôi đã đã thực hiện, tôi có thể thay vì đi đến dữ liệu 410 01:03:47,850 --> 01:03:50,690 và kéo biến của tôi, và thậm chí mặc dù hình dạng không hoàn toàn 411 01:03:50,690 --> 01:03:53,000 trông giống như nó phải phù hợp với, nó sẽ phát triển để điền vào. 412 01:03:53,000 --> 01:03:58,396 Và tôi sẽ chỉ nói sự truy cập cho một spoiler-- second-- anh sẽ đếm. 413 01:03:58,396 --> 01:04:00,380 Chúng tôi sẽ nói trong một giây. 414 01:04:00,380 --> 01:04:02,840 Sau đó, tôi sẽ đi và có anh ta chờ đợi cho một thứ hai, 415 01:04:02,840 --> 01:04:04,650 vì vậy nó không đếm lên quá nhanh. 416 01:04:04,650 --> 01:04:08,430 Và rồi cuối cùng, thay đổi truy cập bởi cùng-- nói cách khác, 417 01:04:08,430 --> 01:04:13,520 tăng quầy bằng một giá trị bổ sung và làm điều này mãi mãi. 418 01:04:13,520 --> 01:04:16,129 >> Vì vậy, các con chiên quá, giống như một lập trình, đếm từ 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 Và nếu chúng ta chờ đợi đủ lâu, anh sẽ làm được điều này mãi mãi. 421 01:04:23,740 --> 01:04:27,740 Nhưng đó không phải là hoàn toàn chính xác, bởi vì trong thực tế, như chúng ta sẽ khám phá ra trong tuần đầu, 422 01:04:27,740 --> 01:04:31,871 số nguyên và các máy tính nói chung, kỹ thuật chỉ có một finite-- tốt, 423 01:04:31,871 --> 01:04:33,829 chứ không phải máy tính, khi họ đại diện cho số nguyên, 424 01:04:33,829 --> 01:04:35,670 chỉ có một số hữu hạn các bit. 425 01:04:35,670 --> 01:04:37,860 Những bóng đèn có chỉ có thể đếm quá cao 426 01:04:37,860 --> 01:04:39,239 trước khi bạn ra ngoài của bóng đèn. 427 01:04:39,239 --> 01:04:41,590 Và một máy tính quá, chỉ có bộ nhớ rất nhiều, 428 01:04:41,590 --> 01:04:44,640 chỉ có rất nhiều bóng bán dẫn, vì vậy nó chỉ có thể đếm quá cao. 429 01:04:44,640 --> 01:04:47,409 >> Vì vậy, nó chỉ ra rằng những con cừu, Tôi nghĩ, có thể đếm đến 2 tỷ 430 01:04:47,409 --> 01:04:48,409 hoặc một cái gì đó khá lớn. 431 01:04:48,409 --> 01:04:50,325 Vì vậy, chúng tôi sẽ không chờ đợi điều này xảy ra. 432 01:04:50,325 --> 01:04:54,850 Nhưng cuối cùng, một số lỗi sẽ xảy ra rằng có thể có một thế giới rất thực tế 433 01:04:54,850 --> 01:04:55,970 phân nhánh. 434 01:04:55,970 --> 01:04:58,861 Nhưng ngoài những con chiên, mà chỉ giới thiệu một biến. 435 01:04:58,861 --> 01:05:01,110 Hãy đi trước và mở ra cái gì tôi làm trước 436 01:05:01,110 --> 01:05:07,430 đây gọi là vật nuôi các Cat-- Con vật cưng Cát ở đây. 437 01:05:07,430 --> 01:05:10,420 Và lưu ý ở đây đó là vài khối, nhưng khi lá cờ màu xanh lá cây 438 01:05:10,420 --> 01:05:12,474 nhấn vào, mãi mãi làm như sau. 439 01:05:12,474 --> 01:05:15,265 Nếu bạn đang chạm vào con chuột pointer-- để con trỏ trên màn hình, 440 01:05:15,265 --> 01:05:18,529 chơi arrow-- meow âm thanh và sau đó chờ hai giây. 441 01:05:18,529 --> 01:05:19,570 Và chỉ cần làm điều này mãi mãi. 442 01:05:19,570 --> 01:05:22,619 Chỉ cần không ngừng chờ đợi để xem nếu pointer-- 443 01:05:22,619 --> 01:05:24,710 nếu con mèo là chạm vào con trỏ. 444 01:05:24,710 --> 01:05:26,060 >> Vì vậy, tôi nhấn play. 445 01:05:26,060 --> 01:05:26,920 Không có gì xảy ra. 446 01:05:26,920 --> 01:05:28,980 Nhưng khi tôi di chuyển con trỏ qua các con mèo, 447 01:05:28,980 --> 01:05:31,960 >> [MEOWING] 448 01:05:31,960 --> 01:05:34,750 >> Và nếu tôi di chuyển nó đi, không vuốt ve con mèo nữa. 449 01:05:34,750 --> 01:05:38,090 Vì vậy, một số logic có điều kiện lồng bên trong một vòng lặp. 450 01:05:38,090 --> 01:05:43,070 Làm thế nào về ví dụ này, cố ý Đừng gọi thú nuôi mèo? 451 01:05:43,070 --> 01:05:45,253 Có gì này sẽ làm gì? 452 01:05:45,253 --> 01:05:47,880 >> [MEOWING] 453 01:05:47,880 --> 01:05:50,215 >> Tại sao bạn không nên nuôi mèo? 454 01:05:50,215 --> 01:05:59,440 >> [MEOWING] 455 01:05:59,440 --> 01:06:00,699 >> ĐƯỢC. 456 01:06:00,699 --> 01:06:03,880 Vì vậy, đây là một ví dụ của một nếu người nào khác. 457 01:06:03,880 --> 01:06:06,482 Đó là một điểm quyết định và bởi vì nó đang ngồi trong vòng lặp, 458 01:06:06,482 --> 01:06:07,690 chúng đều bị kiểm tra. 459 01:06:07,690 --> 01:06:08,280 Đây có phải là sự thật? 460 01:06:08,280 --> 01:06:08,760 Đây có phải là sự thật? 461 01:06:08,760 --> 01:06:09,250 Đây có phải là sự thật? 462 01:06:09,250 --> 01:06:09,791 Đây có phải là sự thật? 463 01:06:09,791 --> 01:06:11,880 Và cuối cùng, một trong những những người sẽ áp dụng 464 01:06:11,880 --> 01:06:16,480 và do đó bạn nghe thấy hoặc là meo meo hoặc tiếng gầm của sư tử trong trường hợp đó. 465 01:06:16,480 --> 01:06:21,400 >> Vâng, chúng ta hãy làm một hơi lạ mắt hơn mà tôi thực hiện trước too-- đề. 466 01:06:21,400 --> 01:06:25,210 Vì vậy, một sợi chỉ là một điều mà một máy tính có thể làm. 467 01:06:25,210 --> 01:06:29,349 Vì vậy, một chương trình đa luồng là một chương trình mà có thể làm nhiều việc cùng một lúc. 468 01:06:29,349 --> 01:06:31,140 Và tất cả các ví dụ vậy, đến nay đã có 469 01:06:31,140 --> 01:06:35,980 chỉ là một kịch bản, do đó, để speak-- một chương trình như thế này lên đây. 470 01:06:35,980 --> 01:06:38,810 Nhưng nhận thấy chương trình này có hai sprites, hai nhân vật. 471 01:06:38,810 --> 01:06:40,020 Một là một con chim. 472 01:06:40,020 --> 01:06:40,870 Một là một con mèo. 473 01:06:40,870 --> 01:06:45,080 >> Và nhận thấy khi tôi bấm vào các xuống trái, họ từng có kịch bản riêng của họ 474 01:06:45,080 --> 01:06:47,120 hoặc các chương trình liên kết với chúng. 475 01:06:47,120 --> 01:06:49,420 Và cả hai loại các chương trình, thông báo, bắt đầu 476 01:06:49,420 --> 01:06:52,600 với clicked-- cờ khi màu xanh lá cây chúng ta hãy nhìn vào cat-- 477 01:06:52,600 --> 01:06:54,030 khi lá cờ màu xanh lá cây nhấp vào. 478 01:06:54,030 --> 01:06:58,220 Và như vậy thực sự, khi tôi nhấn play bây giờ, hai điều sẽ xảy ra cùng một lúc. 479 01:06:58,220 --> 01:07:01,750 Con mèo và chim đều sẽ hoạt động cùng một lúc 480 01:07:01,750 --> 01:07:03,815 để tạo ra hiệu ứng này. 481 01:07:03,815 --> 01:07:05,440 Và bạn có thể tưởng tượng được những gì đang xảy ra. 482 01:07:05,440 --> 01:07:08,340 Có một vòng lặp và chim và con mèo đang ở trong một vòng lặp. 483 01:07:08,340 --> 01:07:11,270 Con chim chỉ được nảy như Tôi là trước khi tôi nói ouch. 484 01:07:11,270 --> 01:07:13,040 Nhưng con mèo rõ ràng có một lợi thế. 485 01:07:13,040 --> 01:07:16,040 Có một khối cảm biến trỏ con mèo cố ý 486 01:07:16,040 --> 01:07:19,836 cho con chim trong trường hợp này đây. 487 01:07:19,836 --> 01:07:22,960 Vì vậy, chúng ta có thể trêu chọc nhau, bằng cách tìm kiếm thông qua những khối, những gì đang xảy ra. 488 01:07:22,960 --> 01:07:25,460 Nhưng các thành phần quan trọng ở đây là một. 489 01:07:25,460 --> 01:07:28,520 Những con chim, vì vậy mà trò chơi này không phải là hoàn toàn boring-- hoặc animation-- này 490 01:07:28,520 --> 01:07:30,060 bắt đầu từ một hướng ngẫu nhiên. 491 01:07:30,060 --> 01:07:32,890 Và các máy tính được chọn một số giữa 90 và 180 492 01:07:32,890 --> 01:07:36,110 về cơ bản, do đó, nó là một chút hình ảnh động khác nhau mỗi lần. 493 01:07:36,110 --> 01:07:39,480 >> Và sau đó thông báo ở đây, nếu các mèo là chạm vào chim, sau đó 494 01:07:39,480 --> 01:07:42,030 chơi con sư tử bốn sound-- tiếng gầm. 495 01:07:42,030 --> 01:07:46,330 Nhưng trong khi đó ở chim bảng màu, chúng tôi có điều này. 496 01:07:46,330 --> 01:07:49,229 Mãi mãi, nếu không chạm vào con mèo, chỉ tiếp tục di chuyển ba bước. 497 01:07:49,229 --> 01:07:50,770 Và sau đó đây là một mảnh ghép. 498 01:07:50,770 --> 01:07:52,030 Nếu bạn đang ở trên bờ, tung lên. 499 01:07:52,030 --> 01:07:54,840 Vì vậy, các con chim chỉ là loại minding kinh doanh của riêng mình, 500 01:07:54,840 --> 01:07:57,330 chỉ bay xung quanh và nảy, và nó thực sự 501 01:07:57,330 --> 01:08:01,780 con mèo đó đã có những điều kiện logic để xác định xem nó đã bắt được con chim. 502 01:08:01,780 --> 01:08:02,280 Tất cả các quyền. 503 01:08:02,280 --> 01:08:08,800 Vì vậy, chúng ta hãy làm một khác ở đây, này được gọi là Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 Và một trong những điều này ở đây chỉ làm này trong một vòng lặp mãi mãi. 505 01:08:15,100 --> 01:08:18,925 Nhưng notice-- làm thế nào để chúng ta dừng lại chương trình này rất khó chịu? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Nhấn thanh không gian. 508 01:08:22,640 --> 01:08:27,990 Bởi vì nếu tôi làm điều đó, các program-- tay trái 509 01:08:27,990 --> 01:08:31,550 nhận thấy nó không ngừng listening-- là báo chí không gian chính. 510 01:08:31,550 --> 01:08:34,090 Nếu thanh không gian ép, và nếu như vậy, nó làm gì? 511 01:08:34,090 --> 01:08:35,980 Nó thực hiện một kỹ thuật rất phổ biến. 512 01:08:35,980 --> 01:08:38,590 Nó đặt ra một biến bằng một số giá trị. 513 01:08:38,590 --> 01:08:39,741 Nhưng nó Toggles giá trị đó. 514 01:08:39,741 --> 01:08:41,490 [? Vì vậy, sự xuất hiện?] dựa trên I shape-- 515 01:08:41,490 --> 01:08:43,160 có một biến mà tôi đã viết trước được gọi là 516 01:08:43,160 --> 01:08:44,770 Tắt tiếng, mà chỉ nói có hoặc không. 517 01:08:44,770 --> 01:08:45,880 Sản phẩm âm thanh tắt tiếng hay không? 518 01:08:45,880 --> 01:08:46,990 Đúng hay sai? 519 01:08:46,990 --> 01:08:51,580 Và thông báo, tôi nói nếu này-- tắt là số không, sau đó thay đổi một, 520 01:08:51,580 --> 01:08:53,840 khác thiết câm nó không. 521 01:08:53,840 --> 01:08:55,540 Vì vậy, chỉ cần lật các giá trị từ số không đến một. 522 01:08:55,540 --> 01:08:58,320 Tôi có thể có done-- thay đổi nó từ hai đến ba và 3-2 523 01:08:58,320 --> 01:09:00,162 hoặc 4-5 hoặc 4-6. 524 01:09:00,162 --> 01:09:01,870 Nhưng nó không quan trọng những số liệu mà tôi sử dụng, 525 01:09:01,870 --> 01:09:04,090 chừng nào tôi còn giữ thay đổi nó thì ngược lại. 526 01:09:04,090 --> 01:09:07,290 >> Và hầu hết các lập trình viên nào sẽ chỉ chọn không và cùng-- sai lầm và sự thật, 527 01:09:07,290 --> 01:09:09,510 tắt và on-- đại diện này. 528 01:09:09,510 --> 01:09:10,930 Và điều này vẫn chạy. 529 01:09:10,930 --> 01:09:12,190 Nếu tôi nhấn thanh không gian một lần nữa 530 01:09:12,190 --> 01:09:13,590 >> [SEAL SOUNDS] 531 01:09:13,590 --> 01:09:15,440 >> Chương trình vẫn chạy. 532 01:09:15,440 --> 01:09:18,400 Bởi vì có kịch bản này khác nói rằng, mãi mãi làm như sau. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Nếu biến tắt tiếng bằng zero-- vì vậy nếu bạn không tắt 535 01:09:24,770 --> 01:09:29,609 là logic-- nếu nó sai hay không, sau đó chơi âm thanh, 536 01:09:29,609 --> 01:09:30,650 bởi vì bạn đang không bị tắt. 537 01:09:30,650 --> 01:09:33,358 Bạn nên chơi các âm thanh và sau đó nghĩ hi hi hi hai giây 538 01:09:33,358 --> 01:09:35,790 và sau đó chờ đợi, và làm điều đó Một lần nữa và một lần nữa và một lần nữa. 539 01:09:35,790 --> 01:09:40,760 >> Và vì vậy theo cách này chúng ta có một cách để người với: cho các chương trình tương tác. 540 01:09:40,760 --> 01:09:43,120 Và họ không phải được như ngày như những người khác. 541 01:09:43,120 --> 01:09:46,280 Trong thực tế, chọc around-- không có ý định chơi chữ-- 542 01:09:46,280 --> 01:09:49,250 một người nào đó đã dành một số tiền rất lớn của Hiện trên mạng Internet thực hiện 543 01:09:49,250 --> 01:09:51,580 PokemonGo trong Scratch. 544 01:09:51,580 --> 01:09:55,440 Nó thậm chí geolocates bạn ở Cambridge hay Allston đây. 545 01:09:55,440 --> 01:10:03,120 Vì vậy, nếu bạn muốn xem quá những gì mọi người có thể làm là này-- menu rất lạ mắt. 546 01:10:03,120 --> 01:10:04,780 Click vào đây. 547 01:10:04,780 --> 01:10:07,430 >> Đây là tôi với các phím mũi tên của tôi bây giờ. 548 01:10:07,430 --> 01:10:09,446 Tôi sẽ đi sau này. 549 01:10:09,446 --> 01:10:09,946 Nhấp chuột. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 Và bây giờ bạn nhấp vào Green path. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Ý tôi là, tôi nghĩ rằng bạn đang phải bấm vào Green path. 554 01:10:20,260 --> 01:10:20,760 Tất cả các quyền. 555 01:10:20,760 --> 01:10:22,680 Vì vậy, tôi đã làm điều đó. 556 01:10:22,680 --> 01:10:23,950 Tôi có thể đi qua đây. 557 01:10:23,950 --> 01:10:27,790 Và người này thực hiện một số chi tiết PokeBalls trên đây-- ba PokeBalls. 558 01:10:27,790 --> 01:10:29,950 >> Chúng tôi sẽ đăng một liên kết đến đây trực tuyến để bạn có thể chơi. 559 01:10:29,950 --> 01:10:32,364 Nhưng chú ý là chỉ một số khối xây dựng cơ bản. 560 01:10:32,364 --> 01:10:33,780 Có vẻ đài các rất nhiều, và nó được. 561 01:10:33,780 --> 01:10:35,905 Đây là ấn tượng và nhiều hơn nữa hơn chúng ta sẽ thường 562 01:10:35,905 --> 01:10:37,740 mong đợi, chắc chắn cho vấn đề thiết lập bằng không. 563 01:10:37,740 --> 01:10:40,809 Tôi không có ý tưởng bao lâu người này gian online. 564 01:10:40,809 --> 01:10:41,850 Nhưng đó là tất cả chỉ là một vòng lặp. 565 01:10:41,850 --> 01:10:43,180 Có một sân chơi âm thanh. 566 01:10:43,180 --> 01:10:44,850 Có một số loại vòng lặp nghe cho dù tôi là 567 01:10:44,850 --> 01:10:47,558 nhấn mũi tên lên hoặc xuống mũi tên hoặc bên trái và bên phải, 568 01:10:47,558 --> 01:10:49,834 và sau đó nếu như vậy, nó đang chuyển động nó một số lượng điểm ảnh. 569 01:10:49,834 --> 01:10:51,750 Và sau đó nếu tôi bấm vào sprite khác, có 570 01:10:51,750 --> 01:10:53,390 một số loại nếu tình trạng đó. 571 01:10:53,390 --> 01:10:54,806 Vâng, điều này là nhận được quá mãnh liệt. 572 01:10:54,806 --> 01:10:56,100 Chúng ta sẽ dừng lại. 573 01:10:56,100 --> 01:10:57,750 Đó là tất cả những khối xây dựng cơ bản. 574 01:10:57,750 --> 01:11:01,530 Không có thành phần nào khác so với những người chúng ta đã xem xét đã. 575 01:11:01,530 --> 01:11:04,670 >> Và ở đây, hãy để tôi làm một trong tập cuối cùng của ví dụ 576 01:11:04,670 --> 01:11:06,960 đó vẽ một bức tranh quá về những gì bạn có thể làm ở đây. 577 01:11:06,960 --> 01:11:10,481 Dưới đây là một chương trình rất đơn giản mà chỉ làm này-- ho, ho, ho. 578 01:11:10,481 --> 01:11:12,480 Và chỉ dựa vào những gì chúng tôi đã nhìn vậy, đến nay, 579 01:11:12,480 --> 01:11:14,570 mà là rõ ràng cơ hội để cải thiện. 580 01:11:14,570 --> 01:11:15,570 Chương trình này là đúng. 581 01:11:15,570 --> 01:11:17,980 Nó ho ba lần, đó là những gì tôi dự định. 582 01:11:17,980 --> 01:11:19,650 Nhưng nó thực hiện kém. 583 01:11:19,650 --> 01:11:20,600 Nó được thiết kế xấu. 584 01:11:20,600 --> 01:11:22,000 Tại sao? 585 01:11:22,000 --> 01:11:22,500 Yeah. 586 01:11:22,500 --> 01:11:23,230 Nó không phải là một vòng lặp. 587 01:11:23,230 --> 01:11:24,610 Và nó không phải là quá nhiều rằng nó không phải là một vòng lặp, 588 01:11:24,610 --> 01:11:26,400 nó rằng có rất nhiều dự phòng. 589 01:11:26,400 --> 01:11:28,830 Có được sao chép và đang dán, vậy để nói chuyện. 590 01:11:28,830 --> 01:11:31,830 Và giải pháp có thể thực sự là một vòng lặp. 591 01:11:31,830 --> 01:11:34,350 Vì vậy, hãy để tôi đi trước và cải tiến đó. 592 01:11:34,350 --> 01:11:36,250 Và tôi sẽ kéo những hơn ở đây. 593 01:11:36,250 --> 01:11:39,986 Hãy để tôi đi trước và nhận được một sự lặp lại khối, thay đổi này đến ba. 594 01:11:39,986 --> 01:11:41,860 Tôi sẽ vứt đi một số lô. 595 01:11:41,860 --> 01:11:43,150 >> Và bạn sẽ nhận thấy nó khá trực quan. 596 01:11:43,150 --> 01:11:45,691 Bạn kéo và thả và điều xuất hiện và biến mất cuối cùng. 597 01:11:45,691 --> 01:11:49,170 Và tôi chỉ có thể kéo này ở đây, và Tôi đã có một phiên bản sạch vẫn còn. 598 01:11:49,170 --> 01:11:50,730 Nhưng bạn biết những gì? 599 01:11:50,730 --> 01:11:52,940 Có cơ hội này bây giờ cho abstraction-- 600 01:11:52,940 --> 01:11:56,350 để bắt đầu để định nghĩa từ vựng mới rằng MIT đã không lường trước được. 601 01:11:56,350 --> 01:11:59,110 Có đợi và lặp lại và mãi mãi, và nếu, 602 01:11:59,110 --> 01:12:02,590 nhưng những gì nếu tôi muốn giới thiệu ho từ như là một khối? 603 01:12:02,590 --> 01:12:06,230 Nếu tôi muốn có một mảnh ghép mục đích mà trong cuộc sống là để ho? 604 01:12:06,230 --> 01:12:10,720 >> Vâng, chúng ta hãy nhìn vào phiên bản này ở đây, mà tôi đã thực hiện như sau. 605 01:12:10,720 --> 01:12:13,579 Kỳ diệu, tôi đã tạo câu đố này mảnh ở đây, 606 01:12:13,579 --> 01:12:14,870 mà cào cho phép bạn làm. 607 01:12:14,870 --> 01:12:16,787 Và thực sự C và Python và JavaScript 608 01:12:16,787 --> 01:12:18,370 sẽ cho phép bạn làm điều này là tốt. 609 01:12:18,370 --> 01:12:21,830 Bạn có thể tạo riêng của bạn mảnh mà bạn gọi những gì bạn muốn. 610 01:12:21,830 --> 01:12:24,890 Trong trường hợp này, ho cảm như một định nghĩa hợp lý. 611 01:12:24,890 --> 01:12:27,880 Và sau đó với những mảnh xuống ở đây bạn có thể xác định những gì nó có nghĩa. 612 01:12:27,880 --> 01:12:30,290 >> Tôi kéo và thả xuống từ bảng màu này đây-- hơn 613 01:12:30,290 --> 01:12:33,500 blocks-- tím lớn này khối, nơi mà tôi đã gõ trong ho 614 01:12:33,500 --> 01:12:35,290 như tên gọi của mảnh ghép mới của tôi. 615 01:12:35,290 --> 01:12:39,920 Và sau đó tôi nói bất cứ lúc nào một người sử dụng gọi mảnh ho đố mới này, 616 01:12:39,920 --> 01:12:41,770 làm tiếng nói và chờ đợi. 617 01:12:41,770 --> 01:12:46,160 Và như vậy lên ở đây trong khối lặp lại của tôi, Tôi chỉ có thể ho ba lần. 618 01:12:46,160 --> 01:12:49,972 >> Và tôi sẽ tranh luận, đặc biệt nếu bây giờ bạn ẩn các chi tiết này. 619 01:12:49,972 --> 01:12:51,430 Ai quan tâm như thế nào ho được thực hiện? 620 01:12:51,430 --> 01:12:54,390 Tất cả tôi quan tâm là một lập trình mà tôi có thể ho. 621 01:12:54,390 --> 01:12:56,280 Tôi không quan tâm như thế nào nói được thực hiện. 622 01:12:56,280 --> 01:12:58,620 Tôi chỉ quan tâm rằng mèo có thể nói điều gì đó. 623 01:12:58,620 --> 01:13:02,720 Tôi có thể tóm tắt đi mà chi tiết và chỉ tập trung vào những gì trên màn hình ở đây. 624 01:13:02,720 --> 01:13:04,400 Nhưng tôi có thể mất thêm một bước này. 625 01:13:04,400 --> 01:13:08,070 >> Chú ý rằng ở đây, tôi có thực hiện các vòng lặp ba lần. 626 01:13:08,070 --> 01:13:11,560 Nhưng nếu thay vào đó tôi lấy phiên bản này? 627 01:13:11,560 --> 01:13:14,640 Và nếu thay trong phiên bản này ở đây, 628 01:13:14,640 --> 01:13:18,730 Tôi chỉ cần thay đổi mảnh ghép của tôi để mất một đối số và đầu vào cho chính nó? 629 01:13:18,730 --> 01:13:21,100 Và đầu vào có thể được một số giống như ba. 630 01:13:21,100 --> 01:13:24,580 Vì vậy, bây giờ, nếu tôi viết một chương trình và tôi muốn con mèo ho, 631 01:13:24,580 --> 01:13:28,270 Tôi thực sự có thể nói với các câu đố mảnh bao nhiêu lần để ho, 632 01:13:28,270 --> 01:13:31,990 vì ở dưới đây, một fancier phiên bản của những miếng tùy chỉnh câu đố 633 01:13:31,990 --> 01:13:34,500 cho phép tôi xác định rằng ho thực sự mất 634 01:13:34,500 --> 01:13:36,951 một input-- có một đối số như thế này. 635 01:13:36,951 --> 01:13:37,700 Và bạn biết những gì? 636 01:13:37,700 --> 01:13:38,890 Có lẽ tôi nhận ra, chờ một phút. 637 01:13:38,890 --> 01:13:40,680 Ho là same-- đó là cơ bản 638 01:13:40,680 --> 01:13:42,120 cùng một ý như hắt hơi. 639 01:13:42,120 --> 01:13:44,040 Nó chỉ là một khác nhau chữ trên màn hình. 640 01:13:44,040 --> 01:13:46,550 Tôi có thể tóm tắt đi hơn nữa và thực hiện 641 01:13:46,550 --> 01:13:48,750 bản cuối cùng của một ho, mà ở cái nhìn đầu tiên 642 01:13:48,750 --> 01:13:50,660 là cách phức tạp hơn tìm kiếm. 643 01:13:50,660 --> 01:13:52,140 Nhưng cần chú ý những gì tôi đã làm. 644 01:13:52,140 --> 01:13:55,930 Tôi có bây giờ generalized-- genericized really-- mảnh ghép này 645 01:13:55,930 --> 01:13:59,900 để được gọi là nói từ n lần. 646 01:13:59,900 --> 01:14:04,410 >> Và bây giờ tôi có hai mảnh ghép mới xuống đây xác định ho n lần. 647 01:14:04,410 --> 01:14:06,790 Và những gì hiện các chức năng ho làm gì? 648 01:14:06,790 --> 01:14:08,420 không tùy chỉnh của tôi mảnh ghép làm gì? 649 01:14:08,420 --> 01:14:11,996 Nó chỉ kêu gọi các khối nói, đi qua trong lời tôi muốn nói, 650 01:14:11,996 --> 01:14:13,870 đi qua trong số lần tôi muốn nói. 651 01:14:13,870 --> 01:14:18,210 Bởi vì bây giờ tôi có thể thực hiện hắt hơi bằng cách đơn giản nói achoo, 652 01:14:18,210 --> 01:14:20,320 trong trường hợp này, một số số lần. 653 01:14:20,320 --> 01:14:22,360 >> Và vì vậy tôi tạo lớp và lớp. 654 01:14:22,360 --> 01:14:25,690 Và một lần nữa, chìa khóa ở đây không phải là làm thế nào tôi thực hiện nó, nhưng thực tế 655 01:14:25,690 --> 01:14:28,070 rằng nếu tôi chỉ theo nghĩa đen di chuyển các tắt màn hình, 656 01:14:28,070 --> 01:14:31,280 tìm cách đơn giản nếu không khá chương trình của tôi bây giờ trông. 657 01:14:31,280 --> 01:14:33,930 Bởi vì nó làm những gì nó nói, tôi đã tóm tắt 658 01:14:33,930 --> 01:14:37,640 đi những gì là bên trong hộp đen. nó sẽ xảy ra là một hộp màu tím ở đây, 659 01:14:37,640 --> 01:14:41,430 nhưng tôi đã bị che khuất đi những gì bên trong bởi vì tôi không quan tâm làm thế nào nó hoạt động. 660 01:14:41,430 --> 01:14:43,650 Tôi chỉ quan tâm bây giờ mà nó hoạt động. 661 01:14:43,650 --> 01:14:46,375 >> Và quả thực, trong vấn đề thiết không, điều này là chính xác 662 01:14:46,375 --> 01:14:49,250 các loại lớp của những ý tưởng bạn sẽ có cơ hội để khám phá. 663 01:14:49,250 --> 01:14:53,510 Đó chính xác là những cơ hội để áp dụng giải quyết các vấn đề kỹ thuật, 664 01:14:53,510 --> 01:14:55,550 những gì có thể là một môi trường không quen thuộc. 665 01:14:55,550 --> 01:14:57,890 Và cho dù bạn đã không được lập trình trước hoặc lập trình trước, 666 01:14:57,890 --> 01:14:59,500 bạn sẽ thấy rằng có một chút gì đó 667 01:14:59,500 --> 01:15:00,874 trong môi trường này cho tất cả mọi người. 668 01:15:00,874 --> 01:15:02,770 Và với vấn đề thiết lập một trong thời gian một tuần, 669 01:15:02,770 --> 01:15:06,630 chúng tôi sẽ chuyển sang tập trung trên một ngôn ngữ cấp cao hơn được gọi là 670 01:15:06,630 --> 01:15:09,290 C-- hay đúng hơn là một thấp ngôn ngữ cấp gọi 671 01:15:09,290 --> 01:15:11,347 C-- mà thậm chí còn nhiều hơn mạnh mẽ, mặc dù nó 672 01:15:11,347 --> 01:15:12,930 một chút bí ẩn hơn ở cái nhìn đầu tiên. 673 01:15:12,930 --> 01:15:16,740 >> Và bạn sẽ nhận ra mỗi TL ngày nay: DR, rằng vấn đề này thiết có một ngắn hơn 674 01:15:16,740 --> 01:15:19,880 cửa sổ thời gian hơn so với những người trong tương lai, đơn giản bởi vì bạn sẽ tìm thấy nó khá 675 01:15:19,880 --> 01:15:20,420 truy cập. 676 01:15:20,420 --> 01:15:22,211 Và không phải lo lắng nếu bạn thêm lớp muộn. 677 01:15:22,211 --> 01:15:23,920 Chúng tôi sẽ giải quyết mà chẳng bao lâu. 678 01:15:23,920 --> 01:15:28,480 Và trước khi chúng tôi hoãn cho bánh, hãy kết thúc chỉ với một cái nhìn hai phút 679 01:15:28,480 --> 01:15:30,500 vào những gì đang chờ đợi bạn ở đây trong CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [NHẠC] 682 01:17:20,803 --> 01:17:21,302 Tất cả các quyền. 683 01:17:21,302 --> 01:17:22,690 Đó là nó cho CS50. 684 01:17:22,690 --> 01:17:23,650 Chúng tôi sẽ sớm gặp lại anh. 685 01:17:23,650 --> 01:17:25,526 Bánh hiện đang phục vụ. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [NHẠC] 688 01:18:14,267 --> 01:18:16,350 SPEAKER 17: Bạn đã nghe nói của một ngày phép, trưởng? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 SPEAKER 18: Có lẽ có hơn dưới mui xe. 691 01:18:31,920 --> 01:18:38,279