1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Chơi nhạc] 3 00:00:10,830 --> 00:00:12,080 [MUSIC - Rossini, "RANZ DES VACHES "TỪ WILLIAM TELL] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIC - THE BEAT Tiếng Anh, "tháng ba Của người đứng đầu SWIVEL "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Vỗ tay và cổ vũ] 8 00:02:31,510 --> 00:02:33,520 >> DAVID Malan: Vì vậy, đây là CS50. 9 00:02:33,520 --> 00:02:34,730 Tên tôi là David Malan. 10 00:02:34,730 --> 00:02:39,250 Và 73% của bạn không có kinh nghiệm trước khi với khoa học máy tính, 11 00:02:39,250 --> 00:02:41,300 trái với những gì bạn nghĩ. 12 00:02:41,300 --> 00:02:45,290 Vì vậy, hôm nay chúng tôi nghĩ chúng tôi sẽ bác bỏ ở đó không quen, nhưng cũng 13 00:02:45,290 --> 00:02:48,970 cung cấp cho bạn một cảm giác, cho những người bạn với sự thoải mái hơn, mà hướng 14 00:02:48,970 --> 00:02:50,550 bạn có thể đi học kỳ này. 15 00:02:50,550 --> 00:02:51,890 >> Vì vậy, chúng ta hãy bắt đầu với điều này. 16 00:02:51,890 --> 00:02:55,490 Tôi thực sự không có ý tưởng những gì bên trong của một máy tính, mặc dù, như bạn, tôi 17 00:02:55,490 --> 00:02:56,780 sử dụng nó mỗi ngày. 18 00:02:56,780 --> 00:03:00,000 Nhưng đó là một số loại hộp, và có không nhiều đầu vào nó. 19 00:03:00,000 --> 00:03:01,350 Tối thiểu, có, những gì? 20 00:03:01,350 --> 00:03:03,120 Có thể là một dây nguồn. 21 00:03:03,120 --> 00:03:06,640 >> Và thực sự với một thành phần này, điện, chúng ta dường như có khả năng 22 00:03:06,640 --> 00:03:09,490 làm khá một chút những ngày này. 23 00:03:09,490 --> 00:03:12,130 Nhưng vào cuối ngày, chúng tôi phải đại diện cho những điều 24 00:03:12,130 --> 00:03:12,860 mà chúng tôi quan tâm. 25 00:03:12,860 --> 00:03:15,240 Chúng ta phải thể hiện thông tin trong một số hình thức. 26 00:03:15,240 --> 00:03:18,365 Và có lẽ bạn đang mơ hồ nhất quen thuộc với ý tưởng của nhị phân hoặc 27 00:03:18,365 --> 00:03:21,370 bit bằng cách nào đó hoặc khác, máy tính giảm đến số không và những người thân. 28 00:03:21,370 --> 00:03:26,320 Nhưng chúng ta có thể chấp nhận điều đó và ít nhất đặt một chút ánh sáng để điều đó không? 29 00:03:26,320 --> 00:03:28,880 >> Vì vậy, tôi có những ít đèn bàn ở đây. 30 00:03:28,880 --> 00:03:30,450 Tôi có một ổ cắm điện ở đây. 31 00:03:30,450 --> 00:03:33,930 Và tôi sẽ đề nghị bên trong máy tính của tôi là ít nhất một trong 32 00:03:33,930 --> 00:03:37,300 những điều này, một cái gì đó có khả năng đang được bật hoặc tắt. 33 00:03:37,300 --> 00:03:40,200 Trong trường hợp này, nó thực sự là một chiếc đèn bàn, nhưng ở mức độ thấp hơn, nó là một cái gì đó 34 00:03:40,200 --> 00:03:41,500 được gọi là một bóng bán dẫn. 35 00:03:41,500 --> 00:03:44,730 >> Nhưng trong thế giới của chúng tôi, đó là một chiếc đèn bàn, vì vậy Tôi sẽ đi trước và cắm này 36 00:03:44,730 --> 00:03:47,990 thành điện năng của tôi ở đây. 37 00:03:47,990 --> 00:03:52,970 Và tôi cho rằng sử dụng đơn giản, thiết bị đơn giản, chuyển đổi đơn giản này, tôi 38 00:03:52,970 --> 00:03:54,850 có thể đại diện cho thông tin. 39 00:03:54,850 --> 00:03:58,090 Ví dụ, ngay bây giờ, tôi đại diện không có gì, phải không? 40 00:03:58,090 --> 00:04:01,820 Tôi đại diện cho những gì tôi sẽ gọi 0 hoặc sai, trái ngược với một cái gì đó 41 00:04:01,820 --> 00:04:03,130 thực sự có mặt. 42 00:04:03,130 --> 00:04:07,050 Nhưng nếu tôi chỉ cần bật công tắc này, Bây giờ tôi đã đại diện cho một 1. 43 00:04:07,050 --> 00:04:10,720 Vì vậy, việc sử dụng này phần rất đơn giản bộ nhớ, nếu bạn muốn, tôi có thể đại diện 44 00:04:10,720 --> 00:04:11,450 thông tin. 45 00:04:11,450 --> 00:04:14,350 >> Bây giờ không may, máy tính của tôi không thể làm gì nhiều. 46 00:04:14,350 --> 00:04:17,430 Nó chỉ có thể đại diện cho hai giá trị trên toàn thế giới - 47 00:04:17,430 --> 00:04:18,620 0 hoặc 1. 48 00:04:18,620 --> 00:04:21,839 Nhưng một giải pháp rõ ràng là những gì, bây giờ, nếu chúng ta muốn mở rộng của máy tính của chúng tôi 49 00:04:21,839 --> 00:04:25,120 bộ nhớ và đại diện cho hơn hơn chỉ là 0 và 1? 50 00:04:25,120 --> 00:04:27,060 >> Vâng, chúng ta hãy lấy một chút như vậy. 51 00:04:27,060 --> 00:04:30,260 Chúng ta hãy lấy chuyển đổi khác, một bóng bán dẫn, tuy nhiên bạn muốn 52 00:04:30,260 --> 00:04:31,130 suy nghĩ về nó. 53 00:04:31,130 --> 00:04:34,170 Hãy để tôi đi trước và cắm này vào máy tính của tôi là tốt. 54 00:04:34,170 --> 00:04:38,270 Và tôi sẽ yêu cầu bồi thường, bây giờ, mà bởi sử dụng nhiều hơn một chút và điện 55 00:04:38,270 --> 00:04:42,290 chuyển nhiều hơn các thiết bị chuyển mạch trên và ra, tôi có thể đại diện như vậy hơn 56 00:04:42,290 --> 00:04:43,020 thông tin. 57 00:04:43,020 --> 00:04:44,660 >> Vì vậy, ngay bây giờ, đây là 1. 58 00:04:44,660 --> 00:04:48,120 Nếu tôi muốn bây giờ đại diện cho 2, tôi có thể làm điều này. 59 00:04:48,120 --> 00:04:51,510 Nhưng thông thường, quy ước, như chúng tôi sẽ cuối cùng nhìn thấy, tôi sẽ phải làm điều này. 60 00:04:51,510 --> 00:04:55,260 Vì vậy, đây là 0, đây là 1. 61 00:04:55,260 --> 00:04:56,720 Đây sẽ là 2. 62 00:04:56,720 --> 00:04:59,920 Và không đáng ngạc nhiên, điều này sẽ là 3. 63 00:04:59,920 --> 00:05:02,610 >> Vì vậy, theo cách này, vẫn còn, có thể chúng tôi đếm lên nữa không? 64 00:05:02,610 --> 00:05:06,500 Nếu tôi nhận được một chút thứ ba, một chuyển đổi thứ ba, số lượng cao nhất tôi có thể bây giờ là những gì 65 00:05:06,500 --> 00:05:09,720 tính đến từ 0? 66 00:05:09,720 --> 00:05:12,020 Vì vậy, 7 nếu tôi bắt đầu từ 0, phải không? 67 00:05:12,020 --> 00:05:15,980 Bởi vì nếu tôi biến ánh sáng này và thực sự cắm này thứ ba và cuối cùng 68 00:05:15,980 --> 00:05:20,090 ánh sáng vào ổ cắm điện của tôi ở đây, sau đó tôi có khả năng đại diện cho 69 00:05:20,090 --> 00:05:24,930 bất kỳ trong hai giá trị ở đây, hai giá trị ở đây, hai giá trị ở đây - 70 00:05:24,930 --> 00:05:32,610 và vì vậy tôi có thể đại diện cho 2 lần 2 lần 2, hoặc tám giá trị có thể. 71 00:05:32,610 --> 00:05:36,340 Và nếu tôi bắt đầu kế toán tại 0, do đó đó là 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Vì vậy, nhị phân này. 73 00:05:37,480 --> 00:05:39,420 Nó thực sự là đơn giản như vậy. 74 00:05:39,420 --> 00:05:41,930 Và tôi cho rằng điều này thực sự khá quen thuộc với hầu hết 75 00:05:41,930 --> 00:05:43,180 tất cả mọi người trong căn phòng này. 76 00:05:43,180 --> 00:05:45,710 Hãy để tôi đi trước và mở một ít soạn thảo văn bản ở đây. 77 00:05:45,710 --> 00:05:49,040 >> Và bạn có thể nhớ lại từ hồi phổ thông rằng chúng tôi đã có những thứ như hàng trăm 78 00:05:49,040 --> 00:05:51,970 nơi, nơi hàng chục, và những nơi. 79 00:05:51,970 --> 00:05:55,040 Và nhớ lại rằng nếu bạn đã có một số thập phân số, giống như một cái gì đó ngẫu nhiên 80 00:05:55,040 --> 00:05:59,470 như 123, bạn sẽ cơ bản viết ra trong các hình thức 81 00:05:59,470 --> 00:06:00,450 của ba cột. 82 00:06:00,450 --> 00:06:04,070 Và tại sao là 1, 2, 3 gì chúng ta biết như 123? 83 00:06:04,070 --> 00:06:11,220 Vâng, trong cột ngoài cùng bên trái, chúng ta có một trong 100 cộng với hai 10s, vì vậy đó là 120, 84 00:06:11,220 --> 00:06:14,250 cộng với ba số 1, vì vậy đó là 123. 85 00:06:14,250 --> 00:06:17,990 >> Bây giờ thế giới mà chúng ta chỉ được chiếu sáng là chính xác giống như 86 00:06:17,990 --> 00:06:21,150 bạn đã quen thuộc với nhiều năm, ngoại trừ bây giờ, các cột của chúng tôi 87 00:06:21,150 --> 00:06:22,060 không phải là quyền hạn của 10. 88 00:06:22,060 --> 00:06:23,780 Chúng chỉ là quyền hạn của 2. 89 00:06:23,780 --> 00:06:27,830 Vì vậy, trong khi đó là nơi những người thân, điều này là có được vị trí hàng hai, đây là 90 00:06:27,830 --> 00:06:29,540 sẽ là nơi bốn chân. 91 00:06:29,540 --> 00:06:33,260 >> Và bởi vì tôi chỉ sử dụng đơn giản các cơ chế để biến những thứ 92 00:06:33,260 --> 00:06:37,100 và tắt - điện đang chảy hoặc điện không chảy - 93 00:06:37,100 --> 00:06:40,880 Tôi hoàn toàn không có cùng ý nghĩa phạm vi như 0 đến chín. 94 00:06:40,880 --> 00:06:43,270 Chúng tôi sẽ giữ nó siêu đơn giản trong thế giới của máy tính. 95 00:06:43,270 --> 00:06:45,060 Tôi chỉ có 0 hoặc 1 - 96 00:06:45,060 --> 00:06:47,890 tắt hoặc bật, sai hay đúng. 97 00:06:47,890 --> 00:06:52,610 >> Và vì vậy những gì tôi đang đại diện cho ngay bây giờ là 1, 1, 1, bởi vì mỗi 98 00:06:52,610 --> 00:06:54,000 đèn được chiếu sáng. 99 00:06:54,000 --> 00:06:59,600 Vâng, đó là mang lại cho tôi một trong 4 cộng với một 2, do đó đó là 6, cộng với một trong 1, và đó là 7. 100 00:06:59,600 --> 00:07:03,450 Và ergo hiện trình tự này của ba bit đại diện cho số 7. 101 00:07:03,450 --> 00:07:06,330 >> Vì vậy, tất cả các thời gian này, bên trong của bạn máy tính, có được bất kỳ số 102 00:07:06,330 --> 00:07:08,090 bóng bán dẫn, bất kỳ số lượng của các bit. 103 00:07:08,090 --> 00:07:10,380 Nhưng vào cuối ngày, chúng tôi có thể đại diện cho thông tin 104 00:07:10,380 --> 00:07:12,560 như chỉ đơn giản là như vậy. 105 00:07:12,560 --> 00:07:16,770 Bây giờ không may, chúng tôi đã chỉ tính lên đến 7 trong CS50 vậy, đến nay, nhưng 106 00:07:16,770 --> 00:07:18,550 hy vọng chúng ta có thể làm một chút tốt hơn thế. 107 00:07:18,550 --> 00:07:19,550 Và thực sự chúng ta có thể. 108 00:07:19,550 --> 00:07:23,570 >> Giả sử chúng ta như con người chỉ tự ý quyết định rằng chúng ta sẽ 109 00:07:23,570 --> 00:07:28,750 kết hợp các con số như 1, 2, 3, 4, 5, 6, 7, với các chữ cái cụ thể của 110 00:07:28,750 --> 00:07:29,410 bảng chữ cái. 111 00:07:29,410 --> 00:07:32,350 Và vì lý do lịch sử, tôi sẽ bắt đầu có phần tùy tiện, nhưng tôi 112 00:07:32,350 --> 00:07:36,880 sẽ nói, con người, chúng ta sẽ quyết định như một tiêu chuẩn, trên toàn cầu, mà 113 00:07:36,880 --> 00:07:43,200 65 đại diện cho số chữ A. 66 sẽ đại diện cho B. Dot, dấu chấm, dấu chấm. 114 00:07:43,200 --> 00:07:45,140 90 sẽ đại diện cho Z. thư 115 00:07:45,140 --> 00:07:48,000 >> Và giả sử, nếu chúng ta thực sự đặt một số nghĩ vào đó, chúng ta có thể đưa ra 116 00:07:48,000 --> 00:07:50,860 với những con số cho dấu chấm than và chữ thường, và thực sự, 117 00:07:50,860 --> 00:07:52,710 những người khác đã làm điều đó cho chúng ta. 118 00:07:52,710 --> 00:07:56,410 Vì vậy, bây giờ chúng tôi đã có bit mà chúng ta có thể đại diện cho số, con số mà 119 00:07:56,410 --> 00:08:00,130 chúng ta có thể đại diện cho chữ cái, và với thư chúng tôi bây giờ có thể bắt đầu soạn 120 00:08:00,130 --> 00:08:02,650 email và in các ký tự trên màn hình. 121 00:08:02,650 --> 00:08:05,850 >> Vì vậy, hãy để tôi mời, nếu tôi có thể, tám tình nguyện viên dũng cảm - 122 00:08:05,850 --> 00:08:09,200 người không nhớ xuất hiện không chỉ trên máy ảnh nhưng trên mạng Internet - 123 00:08:09,200 --> 00:08:13,130 để đến đây và đại diện cho tám như vậy bit, thay vì ba. 124 00:08:13,130 --> 00:08:14,380 Vì vậy, làm thế nào về một, hai? 125 00:08:14,380 --> 00:08:16,290 Làm thế nào về ba? 126 00:08:16,290 --> 00:08:20,230 Làm thế nào về bốn trong ánh sáng màu xanh, năm trên kết thúc? 127 00:08:20,230 --> 00:08:21,250 Về một người nào đó ở đây? 128 00:08:21,250 --> 00:08:25,320 Sáu trước, bảy ở phía trước, và tám ở phía trước, là tốt. 129 00:08:25,320 --> 00:08:29,050 >> Vì vậy, tôi chỉ tình cờ đến chuẩn bị với một bó toàn bộ các mẩu giấy. 130 00:08:29,050 --> 00:08:34,150 Và trên những mảnh giấy là những con số đại diện cho những gì cột 131 00:08:34,150 --> 00:08:35,809 các bạn sẽ đại diện. 132 00:08:35,809 --> 00:08:36,740 Vì vậy, bạn sẽ được - tên của bạn là gì? 133 00:08:36,740 --> 00:08:37,570 >> HỌC SINH: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> DAVID Malan: Anna Leah, bạn sẽ là cột 128S. 135 00:08:40,370 --> 00:08:41,059 Bạn là? 136 00:08:41,059 --> 00:08:41,510 >> HỌC SINH: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID Malan: Chris sẽ được cột 64s. 138 00:08:43,620 --> 00:08:44,070 Bạn là? 139 00:08:44,070 --> 00:08:44,540 >> HỌC SINH: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID Malan: Dan sẽ được cột 32s. 141 00:08:46,970 --> 00:08:47,470 >> HỌC SINH: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID Malan: Pramit sẽ được cột 16s. 143 00:08:49,430 --> 00:08:50,290 >> HỌC SINH: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID Malan: Lillian sẽ là 8s. 145 00:08:51,904 --> 00:08:52,768 >> HỌC SINH: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID Malan: Jill sẽ được cột 4s. 147 00:08:55,025 --> 00:08:55,400 >> HỌC SINH: Mary. 148 00:08:55,400 --> 00:08:57,000 >> DAVID Malan: Mary sẽ là 2s, và? 149 00:08:57,000 --> 00:08:57,470 >> HỌC SINH: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID Malan: David sẽ là cột 1s. 151 00:08:59,220 --> 00:09:02,030 Vì vậy, nếu các bạn có thể bước một chút về phía trước để mọi người có thể nhìn thấy. 152 00:09:02,030 --> 00:09:05,370 Những gì các bạn không nhìn thấy là trên trở lại của những mảnh giấy là một 153 00:09:05,370 --> 00:09:09,760 cheat sheet nhỏ mà sắp hướng dẫn tám bit hoặc 154 00:09:09,760 --> 00:09:12,380 nâng cao tay của họ hay không giơ tay lên. 155 00:09:12,380 --> 00:09:14,100 Nếu bàn tay của họ tăng lên, họ đại diện cho một 1. 156 00:09:14,100 --> 00:09:17,120 Nếu tay của họ vẫn xuống, họ đại diện cho một 0. 157 00:09:17,120 --> 00:09:21,410 >> Trong khi đó, chúng tôi khán giả nên có thể tìm ra, trên cơ sở này 158 00:09:21,410 --> 00:09:26,490 lập bản đồ, những gì ba chữ cái này anh chàng này về giải thích rõ ràng. 159 00:09:26,490 --> 00:09:29,700 Vì vậy, chỉ trong một thời điểm, bạn sẽ đọc những dòng đầu tiên ra mặt sau của 160 00:09:29,700 --> 00:09:32,880 cheat sheet của bạn, và bạn đang hoặc sẽ tăng hoặc không giơ tay lên. 161 00:09:32,880 --> 00:09:35,710 Nếu bạn là 1, bạn nâng cao, nếu bạn là 0, bạn đứng đó 162 00:09:35,710 --> 00:09:38,594 lúng túng, chỉ cần như thế. 163 00:09:38,594 --> 00:09:40,386 Đi. 164 00:09:40,386 --> 00:09:43,945 Số lượng những gì, đầu tiên và quan trọng nhất, là những kẻ đại diện cho? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, phải không? 168 00:09:49,560 --> 00:09:52,400 Chúng tôi có một 1 trong cột 64s, 1 trong cột số 2. 169 00:09:52,400 --> 00:09:56,340 Cung cấp cho tôi 66, vì vậy xuất hiện được đại diện cho B. Vì vậy, 170 00:09:56,340 --> 00:09:57,075 các bạn đã viết - 171 00:09:57,075 --> 00:09:58,300 OK, thế là đủ. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Vì vậy, bây giờ chúng ta hãy chuyển sang thư thứ hai của chúng tôi. 174 00:10:01,610 --> 00:10:03,530 Đi. 175 00:10:03,530 --> 00:10:06,860 Ai là nhanh nhất ở môn toán đây? 176 00:10:06,860 --> 00:10:07,750 Vì vậy, 79. 177 00:10:07,750 --> 00:10:11,840 Một lần nữa, nếu chúng ta cộng tất cả các cột trong đó có một 1, hiện nay, chỉ 178 00:10:11,840 --> 00:10:14,840 như chúng tôi đã làm trước đây với các đơn giản nhất ví dụ 7, chúng tôi bây giờ 179 00:10:14,840 --> 00:10:16,140 có được số 79. 180 00:10:16,140 --> 00:10:19,910 Mà theo bản đồ của chúng tôi là thư O. Vì vậy, chúng tôi hầu như có. 181 00:10:19,910 --> 00:10:22,590 B, O. Và cuối cùng, đi. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Là họ đại diện cho những gì bây giờ? 184 00:10:30,120 --> 00:10:31,370 Ít sự đồng thuận. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Đó chỉ là một tiếng thì thầm tuyệt đối. 187 00:10:36,460 --> 00:10:40,090 Có, đó là trong thực tế 87. 188 00:10:40,090 --> 00:10:40,490 Tốt. 189 00:10:40,490 --> 00:10:44,480 >> Vì vậy, nếu bây giờ chúng ta trở lại bản đồ có tới - chúng ta hãy bắt đầu cuộc gọi biểu đồ ASCII của chúng tôi, 190 00:10:44,480 --> 00:10:46,450 Mã tiêu chuẩn Mỹ cho Trao đổi thông tin. 191 00:10:46,450 --> 00:10:47,700 Cung cấp cho chúng ta thư - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 không "bo" nhưng "cung". Và đó là một hoàn hảo gợi ý cho các bạn để có một cây cung 194 00:10:54,810 --> 00:10:56,100 và đầu vào trở lại. 195 00:10:56,100 --> 00:10:56,980 Cám ơn rất nhiều. 196 00:10:56,980 --> 00:10:57,886 >> [Vỗ tay] 197 00:10:57,886 --> 00:10:59,136 >> DAVID Malan: Bạn có thể giữ chúng. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Mặc dù trên thực tế, sẽ bất cứ ai như một chiếc đèn bàn, cũng? 200 00:11:05,942 --> 00:11:07,300 >> [HOOT TỪ TƯỢNG] 201 00:11:07,300 --> 00:11:08,390 >> DAVID Malan: Đèn bàn? 202 00:11:08,390 --> 00:11:10,850 >> [Cười] 203 00:11:10,850 --> 00:11:11,860 >> DAVID Malan: Thật sao? 204 00:11:11,860 --> 00:11:13,230 Đèn bàn cho tất cả mọi người? 205 00:11:13,230 --> 00:11:14,310 Được rồi. 206 00:11:14,310 --> 00:11:20,990 Vì vậy, bắt đầu từ rất đơn giản nguyên tắc, chúng tôi bây giờ không chỉ tính 207 00:11:20,990 --> 00:11:24,750 tăng từ 0 tất cả các con đường lên đến 7, chúng tôi đã cho rằng chỉ bằng cách ném hơn 208 00:11:24,750 --> 00:11:28,080 bit hoặc đèn nhiều bóng bán dẫn hơn tại vấn đề này, chúng ta có thể 209 00:11:28,080 --> 00:11:32,680 đại diện cho số lớn hơn và lớn hơn, và ergo, phạm vi lớn hơn và lớn hơn 210 00:11:32,680 --> 00:11:33,780 bảng chữ cái, như tiếng Anh. 211 00:11:33,780 --> 00:11:37,770 Và chỉ cần chúng ta hãy về đức tin cho hôm nay mà tương tự như chúng ta có thể bắt đầu 212 00:11:37,770 --> 00:11:42,220 đại diện cho đồ họa và video và bất kỳ số phương tiện truyền thông khác mà chúng tôi 213 00:11:42,220 --> 00:11:43,610 quen thuộc ngày nay. 214 00:11:43,610 --> 00:11:49,240 >> Vì vậy, đây là CS50, và trong lớp này cùng với các bạn là, một lần nữa, rất nhiều 215 00:11:49,240 --> 00:11:53,050 bạn cùng lớp có ít kinh nghiệm như bạn. 216 00:11:53,050 --> 00:11:57,730 Và tôi chỉ đề cập đến điều này bởi vì khá thường xuyên, bao gồm như gần đây là một trong những 217 00:11:57,730 --> 00:12:01,860 sinh viên năm nhất tư vấn cho các sự kiện và ở thứ hai mùa xuân cuối cùng của tư vấn 218 00:12:01,860 --> 00:12:06,420 sự kiện, chúng ta thường nghe các sinh viên từ chối khi đến với bảng CS, tốt, 219 00:12:06,420 --> 00:12:10,070 Tôi đã suy nghĩ về việc này giới thiệu lớp học, nhưng tôi không thực sự là một 220 00:12:10,070 --> 00:12:11,120 người máy tính. 221 00:12:11,120 --> 00:12:13,220 Hoặc, nhưng tất cả mọi người chắc chắn biết nhiều hơn tôi. 222 00:12:13,220 --> 00:12:17,340 Và tôi đặt điều này trong phông chữ lớn nhất có thể, để truyền tải thông điệp này 223 00:12:17,340 --> 00:12:18,730 đó không phải là trong thực tế các trường hợp. 224 00:12:18,730 --> 00:12:21,100 >> Và nếu bạn đang tự hỏi, nên Tôi, trên thực tế, ở đây? 225 00:12:21,100 --> 00:12:25,950 Nhận ra rằng không chỉ là của khóa học này tiêu đề Giới thiệu về máy tính 226 00:12:25,950 --> 00:12:31,740 Khoa học, đó là Giới thiệu về máy tính Khoa học I. Vì vậy, có thực sự là 227 00:12:31,740 --> 00:12:33,170 một thứ hai giới thiệu như vậy. 228 00:12:33,170 --> 00:12:35,390 Vì vậy, bạn không phải là, trên thực tế, tại địa điểm sai. 229 00:12:35,390 --> 00:12:39,000 Và trong số những mục tiêu của tôi có ngày hôm nay là để làm dịu bớt những lo ngại như vậy bạn 230 00:12:39,000 --> 00:12:42,430 có thể có, nhưng cũng vẽ một hình ảnh của những gì trong cửa hàng cho 231 00:12:42,430 --> 00:12:45,720 sinh viên ít hơn và thoải mái hơn cũng như trong khóa học này. 232 00:12:45,720 --> 00:12:49,320 >> Nhưng trước tiên, một từ trên một trong các tờ rơi bạn có ngày hôm nay, trong đó 233 00:12:49,320 --> 00:12:50,780 một số câu hỏi thường gặp. 234 00:12:50,780 --> 00:12:54,290 Đó là một tầm nhìn của chúng ta trong một thời gian bây giờ để giới thiệu một phân loại mới 235 00:12:54,290 --> 00:12:57,010 lựa chọn vào khóa học này - cụ thể là, SAT / UNSAT. 236 00:12:57,010 --> 00:13:01,930 Triết học đối với tôi, nó là nhiều hơn, quan trọng hơn nhiều là 237 00:13:01,930 --> 00:13:05,050 học sinh trong lớp này tham gia với vật chất, được thử thách bởi các 238 00:13:05,050 --> 00:13:09,800 tài liệu, và lo lắng xa, ít về các cơ chế điểm thực tế 239 00:13:09,800 --> 00:13:12,590 và lớp thư ở học kỳ kết thúc, nhưng thực sự nắm lấy 240 00:13:12,590 --> 00:13:13,970 khóa học và tài liệu của nó. 241 00:13:13,970 --> 00:13:18,140 Và thực sự cảm thấy điều này, nói chung, cho những gì thú vị cho họ, để 242 00:13:18,140 --> 00:13:21,390 cảm thấy thách thức và thưởng nhưng mà không sợ thất bại. 243 00:13:21,390 --> 00:13:25,030 >> Và quả thực, điều này cũng là một định kỳ chủ đề trong này và khác giới thiệu 244 00:13:25,030 --> 00:13:28,680 các khóa học trong các lĩnh vực khác, mà bạn có lo lắng này khi nói đến 245 00:13:28,680 --> 00:13:31,040 đặt ngón chân của một người trong vùng nước xa lạ. 246 00:13:31,040 --> 00:13:34,880 Bản thân tôi, vào năm 1995, là một sinh viên năm nhất. 247 00:13:34,880 --> 00:13:37,990 Tôi đã rất nhiều tập trung vào việc một chính phủ tập trung ở đây. 248 00:13:37,990 --> 00:13:41,060 Nhưng tôi sẽ luôn luôn lớn lên với một chút về sự quan tâm trong khoa học máy tính. 249 00:13:41,060 --> 00:13:42,180 Tôi luôn luôn muốn. 250 00:13:42,180 --> 00:13:47,610 >> Nhưng trở lại sau đó, thậm chí, tôi đã sợ hãi này thậm chí bước chân trong CS50, rất nhiều 251 00:13:47,610 --> 00:13:49,420 vì vậy mà tôi thậm chí không mua sắm nó sinh viên năm nhất năm. 252 00:13:49,420 --> 00:13:53,460 Và lý do duy nhất tôi đặt một chân vào thứ hai năm cửa là vì tôi 253 00:13:53,460 --> 00:13:55,340 được phép mang nó vượt qua / thất bại. 254 00:13:55,340 --> 00:13:58,920 Nhưng thậm chí đạt / không đạt yêu cầu mà tôi nhận được lên các dây thần kinh để làm cho một cuộc hẹn 255 00:13:58,920 --> 00:14:01,970 với Giáo sư Kernehan vào thời điểm đó, mang tấm lớn giấy này, và yêu cầu 256 00:14:01,970 --> 00:14:04,470 ông cho chữ ký của mình và của ông cho phép để khám phá 257 00:14:04,470 --> 00:14:05,700 vùng biển này không quen thuộc. 258 00:14:05,700 --> 00:14:09,030 >> Và nó đã không giúp đỡ trong những năm gần đây rằng khi làm điều này trong CS50, khi chúng tôi 259 00:14:09,030 --> 00:14:12,500 được sử dụng để được vượt qua / không, sẽ tương tự hàng chục hoặc hàng trăm bạn học cùng lớp của bạn 260 00:14:12,500 --> 00:14:15,970 phải đưa ra, Thiên Chúa cấm, ở trước Sanders với hình thức này, mà 261 00:14:15,970 --> 00:14:19,520 trong một số đại diện cho tâm trí không có khả năng, Tôi dám nói, để thực hiện 262 00:14:19,520 --> 00:14:20,800 là mức đồng nghiệp của bạn. 263 00:14:20,800 --> 00:14:23,410 Đó là vô lý, nhưng tôi nghĩ rằng có tâm lý đó. 264 00:14:23,410 --> 00:14:27,210 Và có bao giờ được trong nền văn hóa này của SAT / UNSAT, hoặc thông qua / không hơn 265 00:14:27,210 --> 00:14:30,610 nói chung, trong khóa học này, hoặc thực sự trong khuôn viên trường này. 266 00:14:30,610 --> 00:14:32,310 >> Vì vậy, năm nay chúng tôi thay đổi điều đó. 267 00:14:32,310 --> 00:14:35,630 Tôi sẽ là một nửa ngây ngất của lớp này hay hơn đã kết thúc 268 00:14:35,630 --> 00:14:38,700 lên tham gia CS50 SAT / UNSAT. 269 00:14:38,700 --> 00:14:42,130 Trong thời gian một năm, nó sẽ là tuyệt vời nếu gần như tất cả mọi người là. 270 00:14:42,130 --> 00:14:44,410 Sau đó có lẽ chúng ta sẽ làm việc trên lớp thư tại Đại học Harvard 271 00:14:44,410 --> 00:14:45,480 Đại học nói chung. 272 00:14:45,480 --> 00:14:48,900 Nhưng hiện nay, chúng tôi sẽ làm điều này trong của chúng tôi lĩnh vực riêng, và tôi sẽ chân thành 273 00:14:48,900 --> 00:14:53,400 khuyến khích bạn xem lại những câu hỏi thường gặp và đặt câu hỏi như bạn thấy phù hợp, do đó, 274 00:14:53,400 --> 00:14:58,000 hy vọng bạn, không giống như tôi, sẽ không khá có mà yếu tố sợ hãi tương tự khi 275 00:14:58,000 --> 00:15:01,040 khám phá những gì có thể một nơi xa lạ. 276 00:15:01,040 --> 00:15:02,786 >> Vì vậy, CS50 là gì? 277 00:15:02,786 --> 00:15:06,150 Nó là một giới thiệu về doanh nghiệp trí tuệ của máy tính 278 00:15:06,150 --> 00:15:07,700 khoa học và nghệ thuật lập trình. 279 00:15:07,700 --> 00:15:08,770 Nhưng điều đó không có thực sự nghĩa là gì? 280 00:15:08,770 --> 00:15:12,510 >> Vâng, cho đến nay, chúng ta đã nói rất ngắn gọn về đại diện thông tin. 281 00:15:12,510 --> 00:15:15,070 Nhưng giả sử rằng chúng tôi thực sự muốn làm điều gì đó với nó. 282 00:15:15,070 --> 00:15:17,890 Chúng ta cần phải giới thiệu khái niệm những gì chúng tôi sẽ gọi một thuật toán. 283 00:15:17,890 --> 00:15:21,540 Một thuật toán là một thủ tục, một quá trình, một tập hợp các hướng dẫn 284 00:15:21,540 --> 00:15:22,780 làm một cái gì đó. 285 00:15:22,780 --> 00:15:25,620 >> Và một thuật toán có thể là một cái gì đó siêu đơn giản. 286 00:15:25,620 --> 00:15:28,660 Ví dụ, một ví dụ mà một số của bạn có thể là quen thuộc là này 287 00:15:28,660 --> 00:15:29,350 điều ở đây. 288 00:15:29,350 --> 00:15:32,510 Vì vậy, cuốn sách này ở đây là ngày càng ngày, nhưng một khi có một thời gian, nó 289 00:15:32,510 --> 00:15:34,720 có một toàn bộ rất nhiều tên và số điện thoại. 290 00:15:34,720 --> 00:15:37,710 Và quả thực, nếu tôi muốn tìm một người nào đó trong danh bạ điện thoại này - 291 00:15:37,710 --> 00:15:39,800 nói, một người nào đó tên là Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Tôi có thể tìm thấy Mike Smith trong bất kỳ số cách khá đơn giản. 293 00:15:43,810 --> 00:15:47,700 Tôi có thể bắt đầu ngay từ đầu và chuyển đến trang 1, không có. 294 00:15:47,700 --> 00:15:49,240 Trang 2, không có. 295 00:15:49,240 --> 00:15:49,960 Trang 3. 296 00:15:49,960 --> 00:15:53,430 Là thuật toán, được đó quá trình, đúng không? 297 00:15:53,430 --> 00:15:54,620 >> Vì vậy, nó là đúng, phải không? 298 00:15:54,620 --> 00:15:58,070 Tôi là loại một thằng ngốc để làm nó trong rằng cách, nhưng cuối cùng tôi sẽ 299 00:15:58,070 --> 00:16:02,670 tìm họ S, và hy vọng Mike là trong phần đó, và tôi sẽ trở thành 300 00:16:02,670 --> 00:16:04,100 thực hiện với thuật toán của tôi. 301 00:16:04,100 --> 00:16:05,440 Nhưng chắc chắn nó không trực quan. 302 00:16:05,440 --> 00:16:08,020 Hầu hết mọi con người hợp lý trong này phòng sẽ không làm điều đó. 303 00:16:08,020 --> 00:16:10,180 Những gì bạn đã có thể thực hiện? 304 00:16:10,180 --> 00:16:11,480 >> Bạn muốn đã đi thẳng vào giữa, phải không? 305 00:16:11,480 --> 00:16:12,000 Khoảng vào giữa. 306 00:16:12,000 --> 00:16:16,310 Và bạn nhận ra, oh, đây là những bà Vì vậy, Mike Smith, tên là Smith, 307 00:16:16,310 --> 00:16:19,050 là không, rõ ràng, sau đó trong nửa bên trái của cuốn sách. 308 00:16:19,050 --> 00:16:21,040 Ông phải về phía S là ở bên phải. 309 00:16:21,040 --> 00:16:24,090 Và vào thời điểm này, mặc dù hầu hết chúng ta không làm điều này trong thực tế, chúng ta có thể 310 00:16:24,090 --> 00:16:27,125 nghĩa đen xé vấn đề này trong một nửa. 311 00:16:27,125 --> 00:16:27,640 >> [Cổ vũ và vỗ tay] 312 00:16:27,640 --> 00:16:28,950 >> DAVID Malan: Cảm ơn bạn. 313 00:16:28,950 --> 00:16:30,150 >> [Cổ vũ và vỗ tay] 314 00:16:30,150 --> 00:16:34,660 >> DAVID Malan: Bạn có nghĩa là có thể phá này vấn đề trong một nửa, để lại tôi với, 315 00:16:34,660 --> 00:16:36,120 nghĩa đen, một nửa vấn đề lớn. 316 00:16:36,120 --> 00:16:39,750 Vì vậy, nếu danh bạ điện thoại này là - và nó có lẽ là - khoảng 1.000 trang, bây giờ 317 00:16:39,750 --> 00:16:40,840 nó chỉ có 500. 318 00:16:40,840 --> 00:16:44,710 Nếu tôi làm điều này một lần nữa và tôi nhận ra, oh, chết tiệt, tôi đã đi quá xa, tôi đang ở Ts 319 00:16:44,710 --> 00:16:46,480 phần, tôi có thể tương tự - 320 00:16:46,480 --> 00:16:48,030 theo nghĩa bóng hoặc nghĩa đen - 321 00:16:48,030 --> 00:16:50,260 trích xuất danh bạ điện thoại - nó đã thực sự dễ dàng hơn nhiều thời điểm đó. 322 00:16:50,260 --> 00:16:53,610 Tôi nghĩa là có thể trích xuất danh bạ điện thoại một nửa, để lại cho tôi bây giờ với 323 00:16:53,610 --> 00:16:55,186 không 1000, không 500 - 324 00:16:55,186 --> 00:16:56,680 250 trang. 325 00:16:56,680 --> 00:17:00,210 Và tôi có thể đi 125, và một nửa số đó, và một nửa số đó, và một nửa số đó, 326 00:17:00,210 --> 00:17:04,760 cho đến khi cuối cùng tôi sẽ được trái với chỉ là một trang duy nhất. 327 00:17:04,760 --> 00:17:06,430 >> [Cười] 328 00:17:06,430 --> 00:17:07,589 >> DAVID Malan: Đó là một phần tôi thất bại trên. 329 00:17:07,589 --> 00:17:10,400 Một trang duy nhất mà Mike là hy vọng. 330 00:17:10,400 --> 00:17:14,630 Bây giờ những thuật toán khác nhau có thể được loại đánh giá hoặc đánh giá trong 331 00:17:14,630 --> 00:17:15,270 cách khác nhau. 332 00:17:15,270 --> 00:17:17,300 Người đầu tiên là rất tuyến tính, phải không? 333 00:17:17,300 --> 00:17:18,500 Chuyển trang, tìm kiếm Mike. 334 00:17:18,500 --> 00:17:19,630 Chuyển trang, tìm kiếm Mike. 335 00:17:19,630 --> 00:17:20,560 Nó rất tuyến tính. 336 00:17:20,560 --> 00:17:23,339 Nếu có một trang hơn trong điện thoại cuốn sách, nó có thể sẽ đưa tôi 337 00:17:23,339 --> 00:17:27,380 thứ hai hơn, thêm một đơn vị thời gian, Tuy nhiên, chúng tôi đang tính toán thời gian. 338 00:17:27,380 --> 00:17:32,470 >> Vì vậy, tôi có thể rút ra như thế này dòng này ở đây, đó là kích thước của 339 00:17:32,470 --> 00:17:34,700 vấn đề tăng dần từ trái sang phải - 340 00:17:34,700 --> 00:17:37,480 danh bạ điện thoại được nhỏ hơn để lớn hơn - 341 00:17:37,480 --> 00:17:41,080 và thời gian là sẽ tăng lên trên trục thẳng đứng, lớn hơn 342 00:17:41,080 --> 00:17:42,030 danh bạ điện thoại là. 343 00:17:42,030 --> 00:17:46,180 Vì vậy, n chỉ là một biến chung các nhà khoa học máy tính sử dụng để đại diện cho 344 00:17:46,180 --> 00:17:48,210 một số giá trị, một số số. 345 00:17:48,210 --> 00:17:50,740 Vì vậy, n sẽ tăng tuyến tính. 346 00:17:50,740 --> 00:17:53,040 Tăng gấp đôi kích thước của danh bạ điện thoại, đó là sẽ đưa tôi gấp đôi 347 00:17:53,040 --> 00:17:54,780 thời gian, rất có thể, để tìm Mike. 348 00:17:54,780 --> 00:17:56,390 >> Bây giờ tôi có thể có được thông minh về điều này, phải không? 349 00:17:56,390 --> 00:17:57,800 Tôi đã nhận được chán một cách nhanh chóng. 350 00:17:57,800 --> 00:17:58,910 Có thể làm điều này bằng cách hàng hai. 351 00:17:58,910 --> 00:18:01,870 Vì vậy, hai trang, sau đó bốn, sau đó sáu, sau đó tám. 352 00:18:01,870 --> 00:18:05,220 Và tôi có thể bắt đầu bay qua nó một nhanh hơn chút, mặc dù có nguy cơ nhỏ của 353 00:18:05,220 --> 00:18:09,210 vượt quá của Mike, nhưng đó không phải là đường cong sẽ là tất cả những gì khác nhau. 354 00:18:09,210 --> 00:18:12,550 Nó vẫn sẽ là một thẳng dòng, nhưng nhanh hơn một chút. 355 00:18:12,550 --> 00:18:13,710 >> Nhưng tôi đã làm gì? 356 00:18:13,710 --> 00:18:15,845 Tôi thực sự đã làm một cái gì đó về cơ bản tốt hơn. 357 00:18:15,845 --> 00:18:21,990 Tôi đã đạt được những gì chúng tôi sẽ gọi logarit thời gian, nhật ký của n, trong đó màu xanh lá cây này 358 00:18:21,990 --> 00:18:27,730 đường có nhiều, nhiều, nhiều hơn cạnh ít thẳng vào nó. 359 00:18:27,730 --> 00:18:33,050 Và thay vào đó, nó cho thấy, vì nó sắp xếp của phương pháp tiếp cận vô cực bao giờ nên dần dần, 360 00:18:33,050 --> 00:18:36,700 mà tôi thực sự có thể mất một 1.000 trang danh bạ điện thoại, tăng gấp đôi kích thước của nó 361 00:18:36,700 --> 00:18:39,610 năm tiếp theo - vì cho rằng rất nhiều nhiều người di chuyển vào thành phố. 362 00:18:39,610 --> 00:18:43,250 >> Vì vậy, bây giờ tôi đã có 2.000 trang, nhưng làm thế nào nhiều hơn bước là thông minh hơn 363 00:18:43,250 --> 00:18:45,200 thuật toán sẽ mất? 364 00:18:45,200 --> 00:18:46,060 Chỉ là một. 365 00:18:46,060 --> 00:18:48,060 Ý tôi là, đó là một điều mạnh mẽ. 366 00:18:48,060 --> 00:18:51,400 Nếu chúng ta đi đến 4.000 trang năm tiếp theo, đó là sẽ đưa tôi 367 00:18:51,400 --> 00:18:53,020 chỉ có hai bước nữa. 368 00:18:53,020 --> 00:18:56,500 Vì vậy, bạn có thể ném lớn hơn và lớn hơn vấn đề với tôi, không giống như các trang web là 369 00:18:56,500 --> 00:18:59,560 ném vấn đề lớn hơn và lớn hơn mỗi ngày tại của Google và Facebooks của 370 00:18:59,560 --> 00:19:01,590 thế giới, và nó không phải một vấn đề lớn. 371 00:19:01,590 --> 00:19:05,840 Bởi vì tôi đặt nhiều suy nghĩ và chăm sóc vào thuật toán của tôi mà để giải quyết 372 00:19:05,840 --> 00:19:07,020 vấn đề hiệu quả. 373 00:19:07,020 --> 00:19:09,260 >> Và quả thật, đó sẽ là một trong các mục tiêu của khóa học này. 374 00:19:09,260 --> 00:19:11,230 Bạn sẽ, trên đường đi, học cách lập trình. 375 00:19:11,230 --> 00:19:13,360 Bạn sẽ học cách lập trình trong bất kỳ số lượng ngôn ngữ. 376 00:19:13,360 --> 00:19:16,670 Nhưng vào cuối ngày, khóa học là về việc giải quyết vấn đề và nhận được 377 00:19:16,670 --> 00:19:20,490 tốt hơn giải quyết vấn đề - và, như trong trường hợp như thế này, giải quyết vấn đề 378 00:19:20,490 --> 00:19:22,030 hiệu quả hơn. 379 00:19:22,030 --> 00:19:23,990 >> Bây giờ vậy, đến nay, chúng tôi đã làm điều này khá trực quan. 380 00:19:23,990 --> 00:19:27,420 Hãy giới thiệu một cái gì đó khá chung được gọi là giả. 381 00:19:27,420 --> 00:19:29,150 Vì vậy, chúng tôi cuối cùng sẽ nhận được, trong khóa học này, để 382 00:19:29,150 --> 00:19:30,570 ngôn ngữ lập trình khác nhau. 383 00:19:30,570 --> 00:19:34,280 Nhưng hôm nay chúng tôi sẽ làm điều đó trong tiếng Anh như cú pháp, mà bạn chỉ cần loại nói 384 00:19:34,280 --> 00:19:37,330 những gì bạn có ý nghĩa, nhưng bạn đã bao giờ nên gọn gàng và bạn không lo lắng về 385 00:19:37,330 --> 00:19:38,960 ngữ pháp và câu hoàn chỉnh. 386 00:19:38,960 --> 00:19:41,600 Bạn chỉ cần thể hiện bản thân như chính xác càng tốt. 387 00:19:41,600 --> 00:19:45,400 >> Vì vậy, giả là tiếng Anh như cú pháp đại diện cho 388 00:19:45,400 --> 00:19:46,750 một ngôn ngữ lập trình. 389 00:19:46,750 --> 00:19:51,170 Và hướng tới mục tiêu đó, chúng tôi đề nghị bây giờ chúng ta mô hình quá trình chúng tôi chỉ 390 00:19:51,170 --> 00:19:54,990 mô tả các tính một chút gì đó khác nhau, lần này tham gia một 391 00:19:54,990 --> 00:19:59,040 nhìn vào phim năm phút này sản xuất bởi những người bạn của chúng tôi tại TED mà 392 00:19:59,040 --> 00:20:03,170 xác định những gì là giả, định nghĩa suy nghĩ là thuật toán, và thậm chí 393 00:20:03,170 --> 00:20:07,030 mặc dù ví dụ bạn đang về để xem , trong bản thân nó, siêu đơn giản, đó là 394 00:20:07,030 --> 00:20:09,820 sẽ bắt đầu để cho chúng ta tinh thần mô hình, từ vựng, mà để 395 00:20:09,820 --> 00:20:14,588 làm nhiều, phức tạp hơn nhiều các thuật toán khá nhanh chóng. 396 00:20:14,588 --> 00:20:15,576 >> [IMG BEGIN xem lại] 397 00:20:15,576 --> 00:20:29,920 >> [Chơi nhạc] 398 00:20:29,920 --> 00:20:31,100 >> Người kể chuyện: một thuật toán là gì? 399 00:20:31,100 --> 00:20:34,730 Khoa học máy tính, một thuật toán là một thiết lập các hướng dẫn để giải quyết một số 400 00:20:34,730 --> 00:20:36,620 bước vấn đề bằng cách bước. 401 00:20:36,620 --> 00:20:39,650 Thông thường, các thuật toán được thực hiện bởi các máy tính, nhưng con người chúng ta có 402 00:20:39,650 --> 00:20:41,230 các thuật toán, là tốt. 403 00:20:41,230 --> 00:20:43,290 Ví dụ, làm thế nào bạn sẽ đi về đếm số 404 00:20:43,290 --> 00:20:44,750 người trong một căn phòng? 405 00:20:44,750 --> 00:20:47,980 Vâng, nếu bạn đang như tôi, bạn sẽ có thể điểm ở mỗi người, một ở 406 00:20:47,980 --> 00:20:50,120 một thời gian, và đếm từ 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, và vv. 408 00:20:52,970 --> 00:20:54,140 >> Vâng, đó là một thuật toán. 409 00:20:54,140 --> 00:20:57,600 Trong thực tế, chúng ta hãy cố gắng thể hiện nó một bit chính thức hơn trong giả - 410 00:20:57,600 --> 00:21:00,700 Cú pháp tiếng Anh như tương tự như một ngôn ngữ lập trình. 411 00:21:00,700 --> 00:21:02,580 Cho N bằng 0. 412 00:21:02,580 --> 00:21:06,970 Đối với mỗi người trong phòng, thiết lập N bằng N cộng thêm 1. 413 00:21:06,970 --> 00:21:08,400 >> Làm thế nào để giải thích giả này? 414 00:21:08,400 --> 00:21:12,840 Vâng, dòng một tuyên bố, có thể nói, một biến gọi là N và khởi tạo 415 00:21:12,840 --> 00:21:14,250 giá trị của nó về 0. 416 00:21:14,250 --> 00:21:17,550 Điều này chỉ có nghĩa là vào đầu thuật toán của chúng tôi, điều mà 417 00:21:17,550 --> 00:21:19,650 chúng tôi đếm có giá trị 0. 418 00:21:19,650 --> 00:21:22,620 Sau khi tất cả, trước khi chúng tôi bắt đầu đếm, chúng tôi đã không tính bất cứ điều gì được nêu ra. 419 00:21:22,620 --> 00:21:25,340 Gọi này biến N chỉ là một quy ước. 420 00:21:25,340 --> 00:21:26,890 Tôi có thể gọi nó là hầu hết bất cứ điều gì. 421 00:21:26,890 --> 00:21:30,560 >> Bây giờ dòng hai demarks khởi đầu của một vòng lặp, một chuỗi các bước mà sẽ 422 00:21:30,560 --> 00:21:32,310 lặp lại một số lần. 423 00:21:32,310 --> 00:21:35,910 Vì vậy, trong ví dụ của chúng tôi, bước chúng tôi đang dùng đang đếm người trong phòng. 424 00:21:35,910 --> 00:21:38,730 Bên dưới dòng hai là dòng ba, trong đó mô tả chính xác như thế nào 425 00:21:38,730 --> 00:21:40,160 chúng tôi sẽ đi về đếm. 426 00:21:40,160 --> 00:21:43,440 Thụt đầu dòng có nghĩa là nó ba dòng mà sẽ lặp lại. 427 00:21:43,440 --> 00:21:47,380 >> Vì vậy, những gì mà giả được nói là rằng sau khi bắt đầu từ 0, đối với mỗi 428 00:21:47,380 --> 00:21:50,690 người trong phòng, chúng tôi sẽ tăng N 1. 429 00:21:50,690 --> 00:21:53,050 Bây giờ là thuật toán này có đúng không? 430 00:21:53,050 --> 00:21:54,580 Vâng, chúng ta hãy nổ trên nó một chút. 431 00:21:54,580 --> 00:21:57,270 Nó làm việc nếu có hai người ở trong phòng? 432 00:21:57,270 --> 00:21:58,170 Chúng ta hãy xem. 433 00:21:58,170 --> 00:22:00,260 >> Trong dòng một, chúng ta khởi N 0. 434 00:22:00,260 --> 00:22:03,660 Đối với mỗi hai người, sau đó chúng tôi tăng N 1. 435 00:22:03,660 --> 00:22:07,310 Vì vậy, trong lần đầu tiên thông qua vòng lặp, chúng tôi cập nhật N 0-1. 436 00:22:07,310 --> 00:22:11,070 Trên chuyến đi thứ hai thông qua cùng vòng lặp, chúng tôi cập nhật N 1-2. 437 00:22:11,070 --> 00:22:15,780 Và như vậy bằng cấp của thuật toán này, n là 2, mà thực sự phù hợp với số 438 00:22:15,780 --> 00:22:16,700 người trong phòng. 439 00:22:16,700 --> 00:22:17,760 >> Cho đến nay, như vậy tốt. 440 00:22:17,760 --> 00:22:19,610 Làm thế nào về một trường hợp góc, mặc dù? 441 00:22:19,610 --> 00:22:22,590 Giả sử có 0 người trong phòng - bên cạnh tôi, 442 00:22:22,590 --> 00:22:24,170 những người làm kiểm. 443 00:22:24,170 --> 00:22:27,150 Trong dòng một, chúng ta khởi N 0. 444 00:22:27,150 --> 00:22:30,280 Thời gian này, tuy nhiên, dòng ba không thực hiện ở tất cả vì không có một 445 00:22:30,280 --> 00:22:31,370 người trong phòng. 446 00:22:31,370 --> 00:22:35,260 Và do đó N vẫn là 0, mà phù hợp với số lượng người trong phòng. 447 00:22:35,260 --> 00:22:36,420 Khá đơn giản, phải không? 448 00:22:36,420 --> 00:22:39,630 >> Nhưng người tính cùng một lúc là khá hiệu quả, quá, không có? 449 00:22:39,630 --> 00:22:40,920 Chắc chắn chúng ta có thể làm tốt hơn. 450 00:22:40,920 --> 00:22:43,120 Tại sao không tính hai người tại một thời điểm? 451 00:22:43,120 --> 00:22:49,300 Thay vì đếm 1, 2, 3, 4, 5, 6, 7, 8, và vân vân, tại sao không đếm, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, và như vậy? 453 00:22:51,460 --> 00:22:53,700 Nó thậm chí có vẻ nhanh hơn, và nó chắc chắn là. 454 00:22:53,700 --> 00:22:56,240 >> Chúng ta hãy thể hiện tối ưu hóa này trong giả. 455 00:22:56,240 --> 00:22:57,800 Cho N bằng 0. 456 00:22:57,800 --> 00:23:02,450 Cho mỗi cặp người trong phòng, thiết lập N bằng N cộng 2. 457 00:23:02,450 --> 00:23:04,120 Thay đổi khá đơn giản, phải không? 458 00:23:04,120 --> 00:23:06,750 Chứ không phải là số lượng người một tại một thời điểm, chúng tôi thay vì tính 459 00:23:06,750 --> 00:23:08,300 họ hai tại một thời điểm. 460 00:23:08,300 --> 00:23:10,980 Thuật toán này là như vậy hai lần nhanh như trước. 461 00:23:10,980 --> 00:23:12,180 >> Nhưng nó là đúng? 462 00:23:12,180 --> 00:23:12,920 Chúng ta hãy xem. 463 00:23:12,920 --> 00:23:15,330 Nó làm việc nếu có hai người ở trong phòng? 464 00:23:15,330 --> 00:23:17,550 Trong dòng một, chúng ta khởi N 0. 465 00:23:17,550 --> 00:23:20,920 Cho rằng một đôi người, sau đó chúng tôi tăng N bởi hai. 466 00:23:20,920 --> 00:23:24,860 Và như vậy bằng cấp của thuật toán này, N là 2, mà thực sự phù hợp với số 467 00:23:24,860 --> 00:23:25,650 người trong phòng. 468 00:23:25,650 --> 00:23:28,250 >> Giả sử tiếp theo mà có 0 người trong phòng. 469 00:23:28,250 --> 00:23:30,840 Trong dòng một, chúng ta khởi N 0. 470 00:23:30,840 --> 00:23:34,330 Như trước đây, dòng ba không thực hiện ở tất cả, vì không có bất kỳ cặp 471 00:23:34,330 --> 00:23:35,380 của người trong phòng. 472 00:23:35,380 --> 00:23:38,350 Và do đó N vẫn là 0, mà thực sự phù hợp với số 473 00:23:38,350 --> 00:23:39,570 người trong phòng. 474 00:23:39,570 --> 00:23:42,280 >> Nhưng những gì nếu có ba người ở trong phòng? 475 00:23:42,280 --> 00:23:44,130 Làm thế nào điều này giá vé thuật toán? 476 00:23:44,130 --> 00:23:44,990 Chúng ta hãy xem. 477 00:23:44,990 --> 00:23:47,460 Trong dòng một, chúng ta khởi N 0. 478 00:23:47,460 --> 00:23:50,870 Đối với một cặp của những người này, sau đó chúng tôi tăng N 2. 479 00:23:50,870 --> 00:23:51,800 Nhưng sau đó những gì? 480 00:23:51,800 --> 00:23:54,960 Có không phải là một cặp đầy người trong phòng, vì vậy dòng hai không 481 00:23:54,960 --> 00:23:56,180 còn được áp dụng. 482 00:23:56,180 --> 00:24:00,530 Và như vậy bằng cấp của thuật toán này, N vẫn là 2, đó là không đúng. 483 00:24:00,530 --> 00:24:03,810 >> Thật vậy, thuật toán này đã cho là lỗi, bởi vì nó có một sai lầm. 484 00:24:03,810 --> 00:24:05,820 Cho phép khắc phục với một số giả mới. 485 00:24:05,820 --> 00:24:09,670 Cho n bình đẳng cho mỗi cặp 0 của người trong phòng. 486 00:24:09,670 --> 00:24:12,550 Thiết lập N bằng N cộng 2. 487 00:24:12,550 --> 00:24:17,140 Nếu một người vẫn còn độc thân, thiết lập N bằng N cộng thêm 1. 488 00:24:17,140 --> 00:24:20,140 Để giải quyết vấn đề này cụ thể, chúng tôi đã giới thiệu, trong dòng bốn, một 489 00:24:20,140 --> 00:24:24,520 điều kiện, nếu không được biết đến như một chi nhánh mà chỉ thực hiện nếu có một 490 00:24:24,520 --> 00:24:26,640 người mà chúng ta không thể đôi với nhau. 491 00:24:26,640 --> 00:24:30,440 Và vì vậy bây giờ, liệu có một hoặc ba hoặc bất kỳ số lẻ của người dân trong 492 00:24:30,440 --> 00:24:33,290 các phòng, thuật toán này bây giờ sẽ đếm chúng. 493 00:24:33,290 --> 00:24:34,560 >> Chúng ta có thể làm tốt hơn? 494 00:24:34,560 --> 00:24:38,820 Vâng, chúng ta có thể đếm trong 3s hoặc 4s hoặc thậm chí 5s và 10s, nhưng ngoài ra, nó 495 00:24:38,820 --> 00:24:41,360 sẽ có được một chút khó khăn đến điểm. 496 00:24:41,360 --> 00:24:44,660 Vào cuối ngày, cho dù thực hiện bởi các máy tính hoặc con người, 497 00:24:44,660 --> 00:24:46,750 các thuật toán chỉ là một tập hợp các hướng dẫn với 498 00:24:46,750 --> 00:24:48,290 để giải quyết vấn đề. 499 00:24:48,290 --> 00:24:49,792 Đây chỉ là ba. 500 00:24:49,792 --> 00:24:52,404 Vấn đề gì bạn sẽ giải quyết với một thuật toán? 501 00:24:52,404 --> 00:24:52,901 >> [END xem video] 502 00:24:52,901 --> 00:24:55,883 >> DAVID Malan: Đó là lần duy nhất Tôi sẽ xuất hiện dưới dạng phim hoạt hình. 503 00:24:55,883 --> 00:25:01,050 Nhưng mà câu chuyện lá đi, bây giờ, là làm thế nào chúng ta có thể làm tốt hơn? 504 00:25:01,050 --> 00:25:04,680 Chia thành ba và bốn chân, chúng ta nói, chúng ta có thể đếm người nhanh hơn, nhưng chúng ta có thể 505 00:25:04,680 --> 00:25:06,290 về cơ bản làm tốt hơn? 506 00:25:06,290 --> 00:25:07,540 Và tôi đặt cược có thể. 507 00:25:07,540 --> 00:25:11,980 >> Nếu chúng ta giới thiệu một chút của riêng của chúng tôi giả ở đây, tôi sẽ đề xuất 508 00:25:11,980 --> 00:25:14,550 chúng tôi có thể đạt được một dòng như thế này. 509 00:25:14,550 --> 00:25:17,280 Chúng tôi sẽ không tính người một, hai, ba, bốn. 510 00:25:17,280 --> 00:25:19,470 Chúng tôi sẽ không đi hai, bốn, sáu, tám. 511 00:25:19,470 --> 00:25:23,390 Chúng ta sẽ làm tốt hơn cơ bản khi xem xét lại vấn đề, và trong này 512 00:25:23,390 --> 00:25:27,080 trường hợp, tận dụng một cách khác sử dụng đúng mức tài nguyên. 513 00:25:27,080 --> 00:25:31,460 >> Chỉ trong một khoảnh khắc, tôi hy vọng bạn sẽ tha thứ và hài hước chúng tôi bằng cách đứng lên trong 514 00:25:31,460 --> 00:25:34,470 nơi, lúc này chúng ta sẽ yêu cầu mỗi của bạn để có trên trong của bạn 515 00:25:34,470 --> 00:25:36,400 tâm trí số 1. 516 00:25:36,400 --> 00:25:39,560 Sau đó bạn sẽ ngày càng lúng túng, như thời gian trôi qua, tìm 517 00:25:39,560 --> 00:25:42,740 một người khác đang đứng, kết hợp số của bạn với nhau 518 00:25:42,740 --> 00:25:43,720 bằng cách thêm chúng. 519 00:25:43,720 --> 00:25:47,490 Một trong những bạn sau đó sẽ chạy đua để ngồi xuống đầu tiên, và những người khác 520 00:25:47,490 --> 00:25:48,880 sẽ lặp lại. 521 00:25:48,880 --> 00:25:53,090 >> Vì vậy, nói cách khác, bằng cách gieo hạt tất cả bạn số 1, và sau đó 522 00:25:53,090 --> 00:25:57,800 kết hợp những số 1 vào 2 và những 2s vào 4s, với tất cả mọi người ngày càng 523 00:25:57,800 --> 00:26:02,740 ngồi xuống, chúng ta nên, vào cuối thuật toán này, chỉ có một khoản vay 524 00:26:02,740 --> 00:26:07,570 linh hồn người đã không ngồi xuống đủ nhanh nhưng người có khán giả toàn bộ số 525 00:26:07,570 --> 00:26:09,180 trong mình hoặc tâm trí cô. 526 00:26:09,180 --> 00:26:13,730 >> Vì vậy, nếu bạn muốn, chúng ta hãy đi trước và - bước một - đứng lên tại chỗ. 527 00:26:13,730 --> 00:26:15,600 Và thực hiện. 528 00:26:15,600 --> 00:26:36,580 >> [Đám đông thì thầm] 529 00:26:36,580 --> 00:26:38,820 >> DAVID Malan: Bạn có biết nơi Lauren? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Đám đông thì thầm] 532 00:27:23,350 --> 00:27:24,340 >> DAVID Malan: Tất cả phải không? 533 00:27:24,340 --> 00:27:39,110 >> [Đám đông thì thầm] 534 00:27:39,110 --> 00:27:41,365 >> DAVID Malan: Được rồi, chúng ta nên được gần kết thúc. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Chúng ta thấy một đồng nghiệp đứng ở đây vẫn còn. 537 00:27:47,670 --> 00:27:48,770 Người khác cần phải được kết hợp? 538 00:27:48,770 --> 00:27:50,020 Nếu các bạn muốn bắt cặp. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Một người nào đó lên hàng đầu. 541 00:27:56,520 --> 00:27:58,150 Tại sao tôi không giúp một tay đây. 542 00:27:58,150 --> 00:28:01,370 Cho rất ít người vẫn còn đứng, những gì con số làm bạn 543 00:28:01,370 --> 00:28:02,790 có trong tâm trí của bạn? 544 00:28:02,790 --> 00:28:04,020 >> HỌC SINH: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID Malan: 78 cộng - 546 00:28:06,010 --> 00:28:07,840 người đang đứng ở đây? 547 00:28:07,840 --> 00:28:08,370 >> HỌC SINH: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID Malan: Thêm 39. 549 00:28:09,590 --> 00:28:12,310 Cộng với những người khác vẫn còn đứng? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, những người khác? 552 00:28:15,960 --> 00:28:17,200 81 khác? 553 00:28:17,200 --> 00:28:17,860 Wow. 554 00:28:17,860 --> 00:28:19,210 Và sau đó những gì trong trở lại? 555 00:28:19,210 --> 00:28:20,360 >> HỌC SINH: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID Malan: 49, cộng với? 557 00:28:21,812 --> 00:28:22,950 >> HỌC SINH: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID Malan: 98 cộng? 559 00:28:24,980 --> 00:28:28,190 Là ai đó? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Tốt công việc. 562 00:28:30,460 --> 00:28:33,610 >> [Cười] 563 00:28:33,610 --> 00:28:34,690 >> DAVID Malan: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Tốt công việc! 566 00:28:36,220 --> 00:28:38,660 >> [Cười] 567 00:28:38,660 --> 00:28:42,570 >> [Vỗ tay] 568 00:28:42,570 --> 00:28:43,820 >> DAVID Malan: Bất cứ ai khác vẫn còn tồn tại? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Xin lỗi? 571 00:28:47,260 --> 00:28:48,110 >> HỌC SINH: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID Malan: 99. 573 00:28:49,810 --> 00:28:52,620 Bất cứ ai khác vẫn còn đứng? 574 00:28:52,620 --> 00:28:57,290 Và tổng số học sinh ở đây thực sự là, theo - 575 00:28:57,290 --> 00:28:59,400 bạn có một số lượng? 576 00:28:59,400 --> 00:29:03,170 Oh, con số thực tế của người dân trong phòng, theo tài khoản mà 577 00:29:03,170 --> 00:29:07,660 các nghiên cứu sinh giảng dạy đang làm trên đường của tất cả mọi người trong, là 729. 578 00:29:07,660 --> 00:29:11,070 Vì vậy, ra khỏi một chục sinh viên Harvard người tính bản thân, 579 00:29:11,070 --> 00:29:14,126 Câu trả lời là 637. 580 00:29:14,126 --> 00:29:15,480 >> [Cười] 581 00:29:15,480 --> 00:29:16,350 >> DAVID Malan: Vì vậy, gần gũi. 582 00:29:16,350 --> 00:29:17,360 Nhưng vẫn còn. 583 00:29:17,360 --> 00:29:22,110 OK, vì vậy đó là một giảng dạy thời điểm, phải không? 584 00:29:22,110 --> 00:29:24,120 Điều này bây giờ là những gì chúng tôi mô tả như là một lỗi. 585 00:29:24,120 --> 00:29:28,120 Một nơi nào đó trên đường đi, chúng tôi đã làm một số số học sai, hoặc một người nào đó ngồi xuống, 586 00:29:28,120 --> 00:29:29,930 hoặc trái, hoặc một cái gì đó đã đi sai. 587 00:29:29,930 --> 00:29:30,930 Nhưng đó là tốt. 588 00:29:30,930 --> 00:29:33,390 Bởi vì thậm chí vẫn còn, chúng tôi đã khá gần. 589 00:29:33,390 --> 00:29:37,480 Và tôi cho rằng chúng tôi đã đến sai trả lời nhanh hơn rất nhiều hơn tôi sẽ có 590 00:29:37,480 --> 00:29:39,770 sử dụng phương pháp tiếp cận tuyến tính hơn tôi. 591 00:29:39,770 --> 00:29:42,630 >> Vì vậy, chúng ta hãy giả sử chúng ta đã thực sự nhận được rằng sửa chữa, nhưng nghĩ rằng bây giờ về những gì 592 00:29:42,630 --> 00:29:46,870 đã xảy ra mỗi lần, so với của tôi chỉ riêng của thuật toán ngây thơ. 593 00:29:46,870 --> 00:29:48,420 Một, hai, ba. 594 00:29:48,420 --> 00:29:53,010 Nếu có thực sự là 729 hoặc 637 người ở đây, mà đã có thể lấy tôi 595 00:29:53,010 --> 00:29:57,720 nghĩa là 637 hoặc 729 pointings của các ngón tay và 596 00:29:57,720 --> 00:29:59,490 incrementing tổng số của tôi. 597 00:29:59,490 --> 00:30:01,910 Và tôi có thể làm tốt hơn một chút bởi đi hai, bốn, sáu, tám, và 598 00:30:01,910 --> 00:30:05,660 tăng gấp đôi tốc độ, thậm chí gấp ba hoặc tăng gấp bốn lần, phụ thuộc như thế nào tôi có thể 599 00:30:05,660 --> 00:30:07,110 làm điều đó đếm trong đầu tôi. 600 00:30:07,110 --> 00:30:10,720 >> Nhưng phương pháp này mà các bạn mất là cơ bản khác nhau. 601 00:30:10,720 --> 00:30:12,770 Bởi vì ngay từ đầu, tất cả các bạn đứng dậy. 602 00:30:12,770 --> 00:30:14,620 Vì vậy, tất cả 729. 603 00:30:14,620 --> 00:30:17,370 Và sau đó theo nghĩa đen một nửa các bạn ngồi xuống. 604 00:30:17,370 --> 00:30:19,720 Và sau đó, một một nửa của bạn ngồi xuống. 605 00:30:19,720 --> 00:30:22,650 Và sau đó, một một nửa của bạn ngồi xuống. 606 00:30:22,650 --> 00:30:27,470 >> Và tổng số lần mà bạn các anh có thể đã ngồi xuống là khoảng 607 00:30:27,470 --> 00:30:31,740 tám hoặc tổng số chín hoặc mười lần, phụ thuộc vào tổng số của chúng tôi là. 608 00:30:31,740 --> 00:30:33,300 Và chúng ta có thể sắp xếp của làm này theo cách khác. 609 00:30:33,300 --> 00:30:37,740 Nếu chúng tôi đã có 1.024 người trong phòng, tổng số lần bạn có thể 610 00:30:37,740 --> 00:30:41,870 giảm một nửa 1.024 người là 10. 611 00:30:41,870 --> 00:30:43,370 >> Bây giờ nghĩ về nó trong một hướng khác. 612 00:30:43,370 --> 00:30:49,170 Giả sử, lố bịch, mà chúng tôi đã, nói bốn tỉ người trong căn phòng này, 613 00:30:49,170 --> 00:30:50,860 hoặc một căn phòng lớn hơn một chút. 614 00:30:50,860 --> 00:30:54,550 Bao nhiêu lần chúng tôi đã có thể đi thông qua thuật toán này, chẳng hạn một nửa 615 00:30:54,550 --> 00:30:58,110 của lớp mà ngồi xuống? 616 00:30:58,110 --> 00:31:03,050 Nó chỉ sẽ mất 32 như vậy hoạt động, ngay cả trong một lớp học của kích thước 617 00:31:03,050 --> 00:31:03,770 bốn tỉ. 618 00:31:03,770 --> 00:31:04,055 Tại sao? 619 00:31:04,055 --> 00:31:06,980 Vì bốn tỉ đi vào hai tỷ đồng, đi đến một triệu, đi vào 620 00:31:06,980 --> 00:31:09,925 500 triệu USD, đi vào 250 triệu, dấu chấm, dấu chấm, dấu chấm. 621 00:31:09,925 --> 00:31:14,940 Tôi chỉ có thể làm phân chia một số 32 lần, lúc này, tất cả mọi người ngoại trừ 622 00:31:14,940 --> 00:31:17,820 một người sẽ còn đứng vững. 623 00:31:17,820 --> 00:31:21,590 >> Và đó cũng là sắp xếp của một mạnh mẽ ý tưởng rằng ngày càng chúng tôi sẽ cố gắng 624 00:31:21,590 --> 00:31:24,690 tận dụng trong khóa học này, và trong lập trình và khoa học máy tính hơn 625 00:31:24,690 --> 00:31:29,400 nói chung, các vi trùng của một ý tưởng với sau đó chúng ta có thể giải quyết vấn đề nhiều, 626 00:31:29,400 --> 00:31:31,130 nhiều hơn nữa mạnh mẽ. 627 00:31:31,130 --> 00:31:34,610 Vì vậy, chúng tôi bắt đầu khá đơn giản với giả và một chàng trai trong một căn phòng, nhưng 628 00:31:34,610 --> 00:31:38,205 bây giờ với một căn phòng đầy người Chúng ta đã thực hiện cơ bản tốt hơn. 629 00:31:38,205 --> 00:31:41,460 >> Vâng, bây giờ chúng ta chuyển đổi từ giả một số mã thực tế. 630 00:31:41,460 --> 00:31:44,200 Ngôn ngữ này bạn đang về để nhìn thấy xảy ra được gọi là JavaScript, và 631 00:31:44,200 --> 00:31:46,190 chúng tôi sẽ quay trở lại này đối với kết thúc học kỳ. 632 00:31:46,190 --> 00:31:49,960 Đó là một ngôn ngữ lập trình mà bạn sử dụng để làm cho trang web và như vậy khác 633 00:31:49,960 --> 00:31:51,360 phần mềm những ngày này. 634 00:31:51,360 --> 00:31:54,890 Và chúng tôi đã sử dụng nó, nhờ một người bạn của chúng ta tại Đại học Stanford, để mã hóa 635 00:31:54,890 --> 00:31:56,630 một số thông tin ẩn ở đây. 636 00:31:56,630 --> 00:31:59,500 Đây là nghệ thuật steganography, có thể nói, nơi bạn có thể ẩn 637 00:31:59,500 --> 00:32:03,990 thông tin trong những gì nếu không xuất hiện có tiếng ồn hoặc hoàn toàn khác nhau 638 00:32:03,990 --> 00:32:05,220 hình ảnh hoàn toàn. 639 00:32:05,220 --> 00:32:10,120 Nhưng nhúng trong hình ảnh đặc biệt này thực sự là một thông điệp bí mật của các loại. 640 00:32:10,120 --> 00:32:12,950 >> Vì vậy, hãy để tôi đi trước và kéo lên cùng một hình ảnh ở đây, điều này 641 00:32:12,950 --> 00:32:14,270 thời gian trong một trình duyệt web. 642 00:32:14,270 --> 00:32:17,710 Và tôi sẽ vẫy tay tại một số các chi tiết cho ngày hôm nay, đặc biệt 643 00:32:17,710 --> 00:32:21,780 đối với những người bạn của những người này trông giống như không chỉ JavaScript nhưng Hy Lạp, như một 644 00:32:21,780 --> 00:32:23,930 ngôn ngữ hoàn toàn xa lạ. 645 00:32:23,930 --> 00:32:26,190 Nhưng đây là một ví dụ về một ngôn ngữ lập trình. 646 00:32:26,190 --> 00:32:30,660 >> Và bây giờ, có trên đức tin dòng đầu tiên của mã này - 647 00:32:30,660 --> 00:32:32,470 và theo mã số, tôi chỉ có nghĩa là văn bản. 648 00:32:32,470 --> 00:32:35,660 Văn bản mà tôi có lẽ đã thật gõ vào Microsoft Word, nếu tôi có 649 00:32:35,660 --> 00:32:37,630 phần mềm phù hợp để sau đó làm điều gì đó với nó. 650 00:32:37,630 --> 00:32:42,120 Mã nguồn lập trình, lập trình mã, thực sự chỉ là văn bản, và nó 651 00:32:42,120 --> 00:32:45,420 trông khác nhau dựa trên những gì ngôn ngữ bạn đang sử dụng, không giống như tiếng Anh và tiếng 652 00:32:45,420 --> 00:32:49,200 Tây Ban Nha và Nga tất cả nhìn khác nhau khi bạn gõ vào bàn phím của bạn. 653 00:32:49,200 --> 00:32:53,520 >> Vì vậy, dòng đầu tiên này, cho bây giờ mất trên đức tin, chỉ cần mở ra một hình ảnh từ 654 00:32:53,520 --> 00:32:56,160 Internet, mà ồn ào đồ họa chúng tôi chỉ thấy. 655 00:32:56,160 --> 00:32:59,900 Dòng tiếp theo đây là một ví dụ của một vòng lặp, và chúng tôi thực sự thấy rằng cùng 656 00:32:59,900 --> 00:33:01,130 thuật ngữ trong đoạn video TED. 657 00:33:01,130 --> 00:33:03,750 Một vòng lặp là cái gì đó xảy ra lần nữa và một lần nữa, và mặc dù điều này 658 00:33:03,750 --> 00:33:08,440 hoàn toàn có vẻ khó hiểu, với từ khóa cho, và một số dấu ngoặc đơn, và 659 00:33:08,440 --> 00:33:09,510 một số dấu chấm phẩy. 660 00:33:09,510 --> 00:33:13,070 Chúng tôi sẽ trở lại mà chẳng bao lâu, nhưng vòng lặp mà có bản chất là 661 00:33:13,070 --> 00:33:17,310 nói với các chương trình, duyệt qua tất cả những điểm ồn ào, từ trái sang 662 00:33:17,310 --> 00:33:18,980 phải, trên xuống dưới. 663 00:33:18,980 --> 00:33:21,260 >> Bởi vì vào cuối ngày, một hình ảnh như thế này - và bạn có thể thực sự 664 00:33:21,260 --> 00:33:22,860 loại nhìn thấy nó trên máy chiếu này - 665 00:33:22,860 --> 00:33:25,280 thực sự chỉ là một lưới các điểm. 666 00:33:25,280 --> 00:33:29,730 Vì vậy, chúng ta có thể xác định mỗi người chấm bởi một toạ độ x, y, và với điều này 667 00:33:29,730 --> 00:33:33,890 chương trình, bây giờ chúng tôi có thể bắt đầu làm điều gì đó cho những dấu chấm. 668 00:33:33,890 --> 00:33:37,540 >> Vì vậy, những gì tôi sẽ đi trước đây và làm là tôi sẽ thực hiện một số thay đổi. 669 00:33:37,540 --> 00:33:41,000 Đầu tiên tôi sẽ đi trước để loại bỏ mọi tác động trên màu xanh lục và xanh 670 00:33:41,000 --> 00:33:43,520 tiếng ồn, và tôi sẽ đi trước và gõ như sau 671 00:33:43,520 --> 00:33:45,710 phải thừa nhận là khó hiểu cú pháp. 672 00:33:45,710 --> 00:33:48,020 im cho hình ảnh. 673 00:33:48,020 --> 00:33:53,380 thiết lập màu xanh ở vị trí x, dấu phẩy, vị trí y, 0. 674 00:33:53,380 --> 00:33:55,610 Nói cách khác, tôi muốn chỉ tắt tất cả các màu xanh 675 00:33:55,610 --> 00:33:56,920 chấm trong hình ảnh đó. 676 00:33:56,920 --> 00:33:59,800 >> Tôi sẽ đi trước bây giờ và nhấp Run này / nút Save, và bạn sẽ 677 00:33:59,800 --> 00:34:02,850 nhận thấy ở phía bên phải, kết quả hình ảnh xuất hiện. 678 00:34:02,850 --> 00:34:06,120 Bây giờ màu xanh lá cây siêu của nó, nhưng đó không phải là đáng ngạc nhiên, bởi vì tôi thật sự quay 679 00:34:06,120 --> 00:34:11,070 ra, bằng cách làm cho 1 một 0, tất cả các màu xanh trong hình ảnh đó. 680 00:34:11,070 --> 00:34:12,540 >> Vâng, bây giờ chúng ta hãy làm điều đó nhiều hơn một chút. 681 00:34:12,540 --> 00:34:16,989 im cho hình ảnh, dấu chấm setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 Và rằng chỉ có nghĩa là iterate từ trái bên phải và sau đó trên xuống dưới. 683 00:34:20,659 --> 00:34:23,520 Biến đó bằng một giá trị từ 0, là tốt. 684 00:34:23,520 --> 00:34:24,750 Tiết kiệm. 685 00:34:24,750 --> 00:34:28,100 Và trên máy chiếu, bạn có thể không thực sự thực sự nhìn thấy bất cứ điều gì cả. 686 00:34:28,100 --> 00:34:31,380 >> Trên màn hình máy tính xách tay của tôi, nếu tôi ngang chỉ đúng cách, tôi có thể thấy một chút của một 687 00:34:31,380 --> 00:34:33,300 hình ảnh, bởi vì họ vẫn còn một số màu đỏ trong đó. 688 00:34:33,300 --> 00:34:35,540 Nếu bạn đã từng nghe từ viết tắt RGB - 689 00:34:35,540 --> 00:34:36,830 màu đỏ, xanh lá cây, màu xanh - 690 00:34:36,830 --> 00:34:39,110 nó đề cập đến thành phần này của một hình ảnh sử dụng 691 00:34:39,110 --> 00:34:40,230 chỉ những người ba màu sắc. 692 00:34:40,230 --> 00:34:43,159 Và ngay bây giờ, chúng tôi đã vứt bỏ tất cả các màu xanh lá cây, tất cả các màu xanh, nhưng 693 00:34:43,159 --> 00:34:44,500 không có nhiều màu đỏ. 694 00:34:44,500 --> 00:34:45,920 >> Vì vậy, hãy để tôi khuấy động đỏ. 695 00:34:45,920 --> 00:34:47,070 Làm thế nào tôi có thể làm điều đó? 696 00:34:47,070 --> 00:34:49,300 Vâng, đầu tiên, tôi sẽ hỏi Chương trình này là một câu hỏi. 697 00:34:49,300 --> 00:34:52,030 Tôi sẽ đi trước và chúng ta hãy gọi nó một biến, giống như trong đại số. 698 00:34:52,030 --> 00:34:54,060 Bạn có thể có x hoặc y hoặc z. 699 00:34:54,060 --> 00:34:57,230 Tôi sẽ khai báo một biến và nói, đặt vào biến này, 700 00:34:57,230 --> 00:35:02,790 tạm thời, giá trị của hình ảnh getRed giá trị tại x, y. 701 00:35:02,790 --> 00:35:05,870 >> Và một lần nữa, chúng tôi sẽ trở lại với tất cả chi tiết này trong tương lai. 702 00:35:05,870 --> 00:35:10,630 Nhưng hiện nay, chỉ cần mang trên đức tin dòng này là yêu cầu của chương trình, những gì 703 00:35:10,630 --> 00:35:12,740 là giá trị màu đỏ tại x, y? 704 00:35:12,740 --> 00:35:14,450 Ở đó chấm cụ thể? 705 00:35:14,450 --> 00:35:15,710 >> Sau đó, tôi sẽ làm điều gì đó với nó. 706 00:35:15,710 --> 00:35:21,100 Sau đó, tôi sẽ làm hình ảnh bộ chấm đỏ tại x, y, y nhưng thời gian này tôi sẽ 707 00:35:21,100 --> 00:35:24,760 thúc đẩy nó bằng cách thực hiện lần màu đỏ, hãy nói, 10. 708 00:35:24,760 --> 00:35:26,870 Vì vậy, tăng nó theo hệ số 10. 709 00:35:26,870 --> 00:35:29,880 Hãy để tôi thu nhỏ bây giờ và nhấp chuột có thể chạy / Save. 710 00:35:29,880 --> 00:35:36,430 Và thì đấy, đó là có toàn bộ thời gian, mặc dù đôi mắt của con người 711 00:35:36,430 --> 00:35:37,900 không thể hoàn toàn thấy nó. 712 00:35:37,900 --> 00:35:41,470 >> Vì vậy, một lần nữa, điều này bây giờ là mã thực sự, một ví dụ về một ngôn ngữ mà chúng ta sẽ đến 713 00:35:41,470 --> 00:35:42,770 trở lại trước khi dài. 714 00:35:42,770 --> 00:35:46,670 Nhưng nhận ra, đặc biệt là những người bạn không có kinh nghiệm như vậy, nó khá 715 00:35:46,670 --> 00:35:50,280 Ngay sau đó, chính chúng ta sẽ là viết mã như rằng có. 716 00:35:50,280 --> 00:35:54,520 Trong thực tế, một công cụ mà bạn tất cả phần nào quen thuộc, có lẽ, là CS50 của 717 00:35:54,520 --> 00:35:57,330 của công cụ trình mua sắm, đó là thực sự khởi động lại vào mùa hè này bởi một số 718 00:35:57,330 --> 00:36:01,070 cựu học sinh của CS50 của, bây giờ chuyển TF. 719 00:36:01,070 --> 00:36:04,740 >> Vì vậy, điều này sẽ xảy ra là một trang web được xây dựng trong một ngôn ngữ được gọi là PHP. 720 00:36:04,740 --> 00:36:08,510 Nó sử dụng một cơ sở dữ liệu được gọi là MySQL, điều mà chúng tôi sẽ có được bàn tay của chúng tôi 721 00:36:08,510 --> 00:36:10,190 bẩn sau trong học kỳ. 722 00:36:10,190 --> 00:36:14,140 Nhưng tin hay không, thậm chí một cái gì đó như thế này cuối cùng là giảm đến 723 00:36:14,140 --> 00:36:19,480 đơn giản nhất của mạch, điều kiện và chi nhánh, giống như những người chúng ta đã thấy chỉ là một 724 00:36:19,480 --> 00:36:21,530 thời điểm trước trong video TED. 725 00:36:21,530 --> 00:36:25,180 >> Những gì tôi nghĩ rằng tôi muốn làm bây giờ là phần không chỉ một cái gì đó chúng tôi các nhân viên đã thực hiện 726 00:36:25,180 --> 00:36:28,010 cho khuôn viên trường, mà là một cái gì đó một cựu sinh viên - ba 727 00:36:28,010 --> 00:36:29,080 sinh viên, trong thực tế - 728 00:36:29,080 --> 00:36:33,950 thực hiện trong năm vừa qua, Sierra, Daniel, và Sam, người cuối cùng trong số họ không có trước 729 00:36:33,950 --> 00:36:36,370 kinh nghiệm lập trình khi ông đã CS50. 730 00:36:36,370 --> 00:36:39,950 Và dự án cuối cùng của họ, họ trưng bày, tại Hội chợ CS50, một 731 00:36:39,950 --> 00:36:43,720 ứng dụng gọi là wrdly, mà là một chương trình dựa trên web mà họ đã thực hiện 732 00:36:43,720 --> 00:36:47,670 video này mà tôi nghĩ rằng tôi muốn chia sẻ với cung cấp cho bạn một cảm giác chỉ là những gì 733 00:36:47,670 --> 00:36:49,280 có thể vào cuối hạn của. 734 00:36:49,280 --> 00:37:57,170 >> [Chơi nhạc] 735 00:37:57,170 --> 00:38:00,570 >> DAVID Malan: Đó là từ tuần của Zero đến tuần 12 năm vừa qua. 736 00:38:00,570 --> 00:38:05,470 >> [Vỗ tay] 737 00:38:05,470 --> 00:38:09,520 >> DAVID Malan: Như một lời trêu ghẹo, quá, thực sự để kích thích sự thèm ăn của bạn là gì 738 00:38:09,520 --> 00:38:14,580 có thể, bạn có thể đã thấy rồi, hoặc có thể sớm nhìn thấy, market.cs50.net, một 739 00:38:14,580 --> 00:38:17,710 công cụ mới cho đội bóng của khóa học có được làm việc trên, lần này trong 740 00:38:17,710 --> 00:38:21,530 phối hợp với sinh viên Harvard Cơ quan, như vậy mà bắt đầu trong năm nay 741 00:38:21,530 --> 00:38:24,980 và tiếp tục hy vọng vào điều này đến mùa hè, bạn sẽ có một tiêu chuẩn 742 00:38:24,980 --> 00:38:27,890 cơ hội trong khuôn viên trường để mua và bán những thứ bạn quan tâm. 743 00:38:27,890 --> 00:38:32,220 Và với các đối tác thông qua HSA, bạn sẽ cũng có thể thả các mục tắt 744 00:38:32,220 --> 00:38:35,950 trong một trong những cửa hàng vật lý HSA tại một số điểm trong tương lai, để 745 00:38:35,950 --> 00:38:39,150 điều proxy, đặc biệt là khi bạn tốt nghiệp và không nhất thiết muốn 746 00:38:39,150 --> 00:38:44,110 loại bỏ điều này, nhưng thực sự phải trả nó chuyển tiếp để folks những người có thể theo bạn 747 00:38:44,110 --> 00:38:45,270 đây trong khuôn viên trường. 748 00:38:45,270 --> 00:38:46,740 Vì vậy, thêm vào đó đi. 749 00:38:46,740 --> 00:38:49,830 >> Nhưng một chút cụ thể hơn, một công cụ đó là đi ra khỏi CS50 trong gần đây 750 00:38:49,830 --> 00:38:52,760 năm, mà một số bạn có thể quen thuộc và những người khác của bạn có thể được 751 00:38:52,760 --> 00:38:57,940 googling bây giờ, tại CS50.net/2x, bạn sẽ tìm thấy một liên kết đến một phần mở rộng Chrome 752 00:38:57,940 --> 00:39:01,250 đó là chỉ thị như thế nào bạn có thể sử dụng JavaScript, cùng một ngôn ngữ, chúng tôi 753 00:39:01,250 --> 00:39:06,660 sử dụng với tháp Eiffel một thời điểm trước đây, để thực hiện tốc độ phát lại 2x 754 00:39:06,660 --> 00:39:09,000 cho tất cả các video iSites Harvard. 755 00:39:09,000 --> 00:39:11,880 Đây là cái gì đó là xây dựng vào máy nghe nhạc video của riêng của CS50. 756 00:39:11,880 --> 00:39:14,870 Nhưng điều này cũng vậy, nếu bạn bắt đầu đào vào mã nguồn, mà chúng tôi sẽ 757 00:39:14,870 --> 00:39:18,840 hạnh phúc làm cho có sẵn, bạn sẽ thấy như thế nào bạn thậm chí có thể giải quyết vấn đề như thế, 758 00:39:18,840 --> 00:39:23,180 thúc đẩy các vật dụng trong trang web với mà bạn đã cũng quen thuộc. 759 00:39:23,180 --> 00:39:26,630 >> Vì vậy, một từ bây giờ trên sân và mong đợi và những gì ở phía trước. 760 00:39:26,630 --> 00:39:29,445 Nói chung, chúng tôi thực sự sẽ thu thập đây vào thứ Hai và thứ Tư - mặc dù 761 00:39:29,445 --> 00:39:31,490 thứ sáu này, chúng tôi sẽ thu thập bởi vì Tuần lễ mua sắm - 762 00:39:31,490 --> 00:39:34,640 1:00-2:00, mặc dù đôi khi cho đến khi 02:30. 763 00:39:34,640 --> 00:39:38,700 Cho rằng bạn nên có thể muốn hoặc phải mất một số lớp học vào lúc 2:00 PM 764 00:39:38,700 --> 00:39:42,480 trở đi, hoặc thậm chí phía trước, nhận ra Tất nhiên là ủng hộ những gì được gọi là 765 00:39:42,480 --> 00:39:45,900 tuyển sinh đồng thời, nhờ đó chúng ta sẽ hỗ trợ đơn yêu cầu Hội đồng quản trị Quảng cáo và 766 00:39:45,900 --> 00:39:49,400 dân chủ nhiệm khoa của bạn thay cho bạn nếu bạn có một cuộc xung đột ở đâu đó trong này 767 00:39:49,400 --> 00:39:50,790 1:00-2:30 loạt. 768 00:39:50,790 --> 00:39:54,110 Đầu với URL trực tuyến cho biết thêm chi tiết. 769 00:39:54,110 --> 00:39:57,750 >> Nhưng về cơ cấu hỗ trợ đặc trưng CS50, cho sinh viên 770 00:39:57,750 --> 00:40:01,750 hơn và ít thoải mái như nhau, chúng tôi cung cấp các bài hát khác nhau của các bộ phận. 771 00:40:01,750 --> 00:40:04,730 Và đây là một vài tuần đi, nhưng Không lâu sau, bạn sẽ được yêu cầu để 772 00:40:04,730 --> 00:40:05,770 mức độ thoải mái của bạn. 773 00:40:05,770 --> 00:40:08,590 Bạn có trong số những người kém thoải mái, thoải mái hơn, hoặc 774 00:40:08,590 --> 00:40:10,520 nơi nào đó ở giữa? 775 00:40:10,520 --> 00:40:13,150 >> Và chúng tôi sẽ có ba khác biệt bài hát phục vụ cho 776 00:40:13,150 --> 00:40:14,470 chính là những khán giả. 777 00:40:14,470 --> 00:40:17,900 Vì vậy, tại không có điểm trong thời hạn nên bạn thậm chí cảm thấy như bạn đang cạnh tranh 778 00:40:17,900 --> 00:40:21,390 đối với bất cứ học sinh hơn hoặc nền ít hơn bạn. 779 00:40:21,390 --> 00:40:24,160 Thật vậy, khóa học được hiểu là nhiều hơn nữa hợp tác và nhiều 780 00:40:24,160 --> 00:40:25,650 mở rộng hơn đó. 781 00:40:25,650 --> 00:40:29,030 >> Trong điều khoản của bộ vấn đề, bạn sẽ tìm kiếm, quá, mà ngoài các 782 00:40:29,030 --> 00:40:32,130 phiên bản tiêu chuẩn của vấn đề mỗi tuần thiết lập, thường có một "hacker 783 00:40:32,130 --> 00:40:37,010 phiên bản "đó là có nghĩa là để được nhắm mục tiêu tại 5% đến 10% hoặc hơn của 784 00:40:37,010 --> 00:40:40,270 nhân khẩu học của những người thực sự trong số những người thoải mái hơn và muốn biết thêm 785 00:40:40,270 --> 00:40:43,960 của một thách thức hơn so với tiêu chuẩn phiên bản của pset mà hy vọng. 786 00:40:43,960 --> 00:40:46,390 Thêm chi tiết về những người được tìm thấy trong giáo trình. 787 00:40:46,390 --> 00:40:49,430 >> Nhưng cũng có thể được tìm thấy chi tiết trên các khóa học vào cuối ngày. 788 00:40:49,430 --> 00:40:51,570 Thông thường vấn đề đặt ra là do vào thứ Năm. 789 00:40:51,570 --> 00:40:55,550 Tuy nhiên, bạn có thể kéo dài nhiều của bạn thời hạn vào mùa thu này từ thứ Năm đến 790 00:40:55,550 --> 00:41:00,010 Thứ Sáu chỉ đơn giản bằng cách đáp ứng chúng tôi nửa chừng, vậy để nói chuyện, trả lời một số khởi động 791 00:41:00,010 --> 00:41:03,370 câu hỏi trong một số vấn đề của tuần bộ, mà sẽ tự động 792 00:41:03,370 --> 00:41:05,710 sau đó cung cấp cho bạn thêm 24 giờ. 793 00:41:05,710 --> 00:41:09,120 Chúng tôi cũng sẽ giảm thấp nhất của bạn Điểm, theo các giáo trình. 794 00:41:09,120 --> 00:41:12,170 >> Để cung cấp cho bạn một cảm giác về những gì các vấn đề bộ là - bởi vì nó thực sự 795 00:41:12,170 --> 00:41:15,120 vấn đề của khóa học thiết rằng cuối cùng xác định hầu hết các 796 00:41:15,120 --> 00:41:18,760 kinh nghiệm của học sinh, nhiều hơn so với bài giảng, nhiều hơn so với phần, hơn 797 00:41:18,760 --> 00:41:21,230 hơn so với hầu hết bất kỳ khác khía cạnh của khóa học. 798 00:41:21,230 --> 00:41:25,140 Năm ngoái, ví dụ, chúng tôi bắt đầu, như chúng tôi sẽ bắt đầu trong năm nay, với cào. 799 00:41:25,140 --> 00:41:29,150 Đặc biệt là vào thứ sáu này, chúng tôi sẽ sử dụng, cho Chỉ chưa đầy một ngày, một đồ họa 800 00:41:29,150 --> 00:41:32,260 ngôn ngữ lập trình, mà chúng tôi sẽ bắt đầu chương trình bằng cách kéo và 801 00:41:32,260 --> 00:41:37,580 thả mảnh ghép mà chỉ lắp ráp vật lý nếu nó có ý nghĩa 802 00:41:37,580 --> 00:41:38,990 làm như vậy một cách hợp lý. 803 00:41:38,990 --> 00:41:43,460 >> Tuần tới, chúng tôi sẽ nhanh chóng chuyển đổi sang C, khá cũ nhưng rất nhỏ và 804 00:41:43,460 --> 00:41:48,510 ngôn ngữ đơn giản mà sẽ cho phép chúng ta thực sự đi từ 0 đến 60 trên khóa học 805 00:41:48,510 --> 00:41:52,290 chỉ một vài tuần, và sau đó xâu những kỹ năng và kiến ​​thức của cùng một 806 00:41:52,290 --> 00:41:56,160 cấu trúc lập trình cơ bản vào ngôn ngữ bậc cao như PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, nhưng những người khác vẫn còn. 808 00:41:58,240 --> 00:42:02,560 >> Năm ngoái, pset thứ ba trong khóa học là mật mã, một 809 00:42:02,560 --> 00:42:06,380 miền ứng dụng cụ thể, theo đó chúng tôi sinh viên thử thách để thực hiện bất kỳ 810 00:42:06,380 --> 00:42:11,140 chương trình số thuật toán mã hóa, mà để tranh giành hoặc xắp xếp lại các thông tin, 811 00:42:11,140 --> 00:42:11,880 mã hóa nó. 812 00:42:11,880 --> 00:42:16,300 Đối với các phiên bản của hacker, ngược lại, chúng tôi đã cho các sinh viên của hacker một tập tin 813 00:42:16,300 --> 00:42:19,900 từ một máy tính tiêu chuẩn Unix chứa tên người dùng và mật khẩu, 814 00:42:19,900 --> 00:42:22,740 thì sau đó đã được mã hóa, và chúng tôi thách thức những tin tặc 815 00:42:22,740 --> 00:42:26,850 sinh viên để giải mã, như tốt nhất có thể, những mật khẩu, vẫn còn trên đó 816 00:42:26,850 --> 00:42:27,770 cùng một miền. 817 00:42:27,770 --> 00:42:30,580 >> Tranh giành, một trò chơi mà một số của bạn có lẽ quen thuộc. 818 00:42:30,580 --> 00:42:34,410 Một mảnh pháp y, nơi mà chúng tôi yêu cầu học sinh phục hồi dữ liệu đã được 819 00:42:34,410 --> 00:42:38,530 nếu không sẽ bị xóa khỏi kỹ thuật số của riêng tôi thẻ flash nhỏ gọn của máy ảnh, bởi 820 00:42:38,530 --> 00:42:42,740 việc viết phần mềm để tìm ra, nơi là zero và những người thân trong 821 00:42:42,740 --> 00:42:46,850 mà máy ảnh kỹ thuật số mà trước đây bao gồm một hình ảnh JPEG? 822 00:42:46,850 --> 00:42:49,710 >> Một thách thức của các loại năm ngoái liên quan đến văn bản nhanh nhất 823 00:42:49,710 --> 00:42:53,160 kiểm tra chính tả có thể, cạnh tranh với bạn bè và bạn học cùng lớp nếu 824 00:42:53,160 --> 00:42:53,860 họ muốn. 825 00:42:53,860 --> 00:42:56,330 Thực hiện n Puff Huff, một chương trình nén. 826 00:42:56,330 --> 00:43:01,930 Và sau đó kết thúc học kỳ với CS50 Tài chính, một ứng dụng dựa trên web với 827 00:43:01,930 --> 00:43:06,570 mà bạn tạo ra một trang web ETrade-như mua và bán cổ phiếu, do đó, để 828 00:43:06,570 --> 00:43:09,860 nói chuyện, bởi thực sự kéo gần thời gian thực báo giá Yahoo! 829 00:43:09,860 --> 00:43:10,450 Tài chính. 830 00:43:10,450 --> 00:43:13,590 >> Những gì chúng tôi đã không làm năm ngoái là một bộ vấn đề còn lại 831 00:43:13,590 --> 00:43:14,810 dù sao một yêu thích. 832 00:43:14,810 --> 00:43:18,400 Nếu bạn đã bao giờ đi shuttle.cs50.net, bạn sẽ thấy một người sử dụng 833 00:43:18,400 --> 00:43:19,670 giao diện một chút như thế này. 834 00:43:19,670 --> 00:43:23,530 Nhưng hai năm trước đây, các lớp học thực hiện, sử dụng Google Maps và các 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in và một chút các hiểu biết với lái xe xung quanh khuôn viên trường, 836 00:43:28,570 --> 00:43:33,290 do đó mục tiêu của trò chơi này là, như bạn có thể thấy một số trong những gương mặt, 837 00:43:33,290 --> 00:43:37,530 đang lái xe xung quanh khuôn viên trường tìm kiếm nhân viên, nghiên cứu sinh giảng dạy và CA, và 838 00:43:37,530 --> 00:43:40,080 khi bạn, đặt chúng lên xe buýt đưa đón của bạn. 839 00:43:40,080 --> 00:43:44,035 Không ai trong số họ thực sự dường như có mặt ở đây, vì vậy chúng tôi sẽ nhập cheat code. 840 00:43:44,035 --> 00:43:47,150 >> [Cười] 841 00:43:47,150 --> 00:43:48,430 >> DAVID Malan: Hiện chúng tôi đi. 842 00:43:48,430 --> 00:43:49,240 Được rồi. 843 00:43:49,240 --> 00:43:51,750 Và đây hiện là nhân viên tẩm khắp khuôn viên trường. 844 00:43:51,750 --> 00:43:54,530 Và như bạn thấy, trên cánh tay phải bên của màn hình, xe buýt đưa đón 845 00:43:54,530 --> 00:43:55,510 có ghế trống. 846 00:43:55,510 --> 00:43:59,000 Và mục tiêu là viết mã với đó để mô phỏng này 847 00:43:59,000 --> 00:44:01,790 lái xe và chọn lên và thả tắt của hành khách. 848 00:44:01,790 --> 00:44:04,960 Cái đó luôn, sử dụng ngôn ngữ gọi là JavaScript. 849 00:44:04,960 --> 00:44:10,030 Vì vậy, nhận ra rằng các chương trình như thế sẽ là trên cùng một quỹ đạo của chúng tôi này 850 00:44:10,030 --> 00:44:10,910 năm, là tốt. 851 00:44:10,910 --> 00:44:13,640 >> Về, bây giờ, hỗ trợ bổ sung, chúng tôi có giờ làm việc. 852 00:44:13,640 --> 00:44:16,520 Như bạn có thể nhìn thấy trong ngôi nhà của mình phòng ăn hoặc trong Annenberg, 853 00:44:16,520 --> 00:44:19,280 chúng tôi sẽ ở trong nhà ăn phòng bốn đêm một tuần - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot và Annenberg năm nay, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 Và những gì chúng tôi nghĩ chúng ta sẽ làm trong năm nay là một cái gì đó một chút khác nhau. 856 00:44:26,830 --> 00:44:29,650 >> Nếu bạn nghe nhiều bất ổn năm ngoái đó là một chút quá căng thẳng, điều này 857 00:44:29,650 --> 00:44:32,800 giờ làm việc của năm, như chúng tôi sẽ mô tả tuần tới, sẽ có hệ thống hơn, 858 00:44:32,800 --> 00:44:36,900 theo đó khi đến nơi, bạn sẽ có cử đến một bảng cụ thể 859 00:44:36,900 --> 00:44:39,860 nơi nhiều nhân viên đang chờ đợi, và chúng tôi sẽ làm việc nhiều hơn nữa 860 00:44:39,860 --> 00:44:40,440 hữu cơ. 861 00:44:40,440 --> 00:44:43,740 Không xếp hàng hơn, iPad không hơn, nhưng chứ không có thân mật hơn 862 00:44:43,740 --> 00:44:47,300 cuộc trò chuyện xung quanh một bảng chỉ tám hoặc để học sinh, để chúng ta 863 00:44:47,300 --> 00:44:50,880 gần đúng cảm giác của những gì khác sẽ là một lớp nhỏ hơn nhiều. 864 00:44:50,880 --> 00:44:54,120 >> Chúng tôi cung cấp, cũng như, những điều chúng tôi gọi là walkthroughs, video quay tại 865 00:44:54,120 --> 00:44:57,330 thúc đẩy bởi một trong những giảng dạy của khóa học nghiên cứu sinh, Zamyla, trong đó cô 866 00:44:57,330 --> 00:45:00,690 bạn đi qua vấn đề của tuần bộ, cung cấp lời khuyên và thủ thuật cho 867 00:45:00,690 --> 00:45:02,640 thách thức ở phía trước. 868 00:45:02,640 --> 00:45:06,230 Và ngược lại, sau khi bộ vấn đề là do, năm nay, chúng tôi sẽ cũng phát hành 869 00:45:06,230 --> 00:45:09,100 clip nhỏ gọi sau khám nghiệm tử thi mà thực sự hướng dẫn bạn qua 870 00:45:09,100 --> 00:45:13,630 đại diện các giải pháp, cả tốt và xấu, thông qua đó bạn có thể suy ra như thế nào 871 00:45:13,630 --> 00:45:17,550 bạn có thể có hoặc nên có thực hiện giải pháp của riêng bạn. 872 00:45:17,550 --> 00:45:20,500 >> Và những gì chúng tôi sẽ cung cấp cho lần đầu tiên năm nay là tốt, đặc biệt 873 00:45:20,500 --> 00:45:23,420 cho những sinh viên tận dụng bản thân của của khóa học khác 874 00:45:23,420 --> 00:45:28,580 tài nguyên nhưng dù sao cũng đang gặp khó khăn tất cả quá nhiều, khóa học 875 00:45:28,580 --> 00:45:33,030 chính nó sẽ ghép những học sinh, như nguồn lực cho phép, với các giáo sư để 876 00:45:33,030 --> 00:45:35,840 bạn có một thân mật hơn nhiều cơ hội hơn nhà nhà ăn 877 00:45:35,840 --> 00:45:38,700 cho phép hỗ trợ một ngày-một. 878 00:45:38,700 --> 00:45:42,780 >> Bây giờ là một cái nhìn thoáng qua cuối cùng tại một số các trò chơi kết thúc trong cảnh. 879 00:45:42,780 --> 00:45:44,580 Bạn có thể làm quen với các CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Vâng, đến tháng mười hai này, từ 8:00 PM đến 7:00, ở đầu 881 00:45:48,120 --> 00:45:51,410 Thời gian đọc, sẽ là một cơ hội để thu thập với các bạn cùng lớp - 882 00:45:51,410 --> 00:45:53,130 này sẽ vào khoảng 9:00 PM - 883 00:45:53,130 --> 00:45:56,550 trong thời gian đó bạn nhảy vào cuối cùng của bạn thực hiện của dự án cùng với 884 00:45:56,550 --> 00:45:59,910 bạn cùng lớp, bạn bè, và thực phẩm. 885 00:45:59,910 --> 00:46:03,680 Đây sẽ là khoảng 1:00, khi các lô hàng đầu tiên của thực phẩm đến. 886 00:46:03,680 --> 00:46:08,470 Và đây là khoảng 4:00 rằng năm đặc biệt tại CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Nhưng đỉnh cao thực sự của khóa học là có nghĩa là Hội chợ CS50, một khuôn viên rộng 888 00:46:12,000 --> 00:46:15,790 triển lãm các dự án cuối cùng của mình, mà gia đình và bạn bè là tất cả 889 00:46:15,790 --> 00:46:18,730 mời, như nhà tuyển dụng của chúng tôi và bạn bè của chúng tôi từ ngành công nghiệp. 890 00:46:18,730 --> 00:46:22,170 Này, ví dụ, là một cái nhìn thoáng qua của 2.000 người cộng với những người đã tham dự 891 00:46:22,170 --> 00:46:23,160 năm qua. 892 00:46:23,160 --> 00:46:27,180 Biểu hiện như thế này không phải là hiếm, và làm tương tự như của bạn 893 00:46:27,180 --> 00:46:29,660 bạn cùng lớp thỏa thích trong điều bạn đã hoàn thành. 894 00:46:29,660 --> 00:46:33,170 >> Và trên thực tế, hướng tới mục tiêu đó, chúng tôi có một sự kiện khởi động của hạn, là tốt. 895 00:46:33,170 --> 00:46:37,400 Nếu mọi thứ như kêu gọi này đến bạn, hoặc bạn ít nhất tò mò như những gì 896 00:46:37,400 --> 00:46:41,590 này, biết rằng một truyền thống mới của Tất nhiên được gọi là CS50 Puzzle ngày. 897 00:46:41,590 --> 00:46:45,710 Và điều này đã thiết lập một vài năm trở lại thực sự là tín hiệu đến trường 898 00:46:45,710 --> 00:46:48,930 mà khoa học máy tính không phải là về lập trình, và nó chắc chắn không 899 00:46:48,930 --> 00:46:51,960 về ôm chỉ có những học sinh người có kinh nghiệm trước. 900 00:46:51,960 --> 00:46:54,200 Nó thực sự về giải quyết vấn đề nói chung. 901 00:46:54,200 --> 00:46:57,360 >> Và như vậy Puzzle ngày, trong vài qua năm nay, đã phát triển thành một tốt đẹp 902 00:46:57,360 --> 00:47:00,500 hợp tác với bạn bè của chúng tôi tại Facebook, theo đó sẽ có tuyệt vời 903 00:47:00,500 --> 00:47:04,830 giải thưởng và pizza qua sông tại i-phòng thí nghiệm này Saturday tới. 904 00:47:04,830 --> 00:47:09,180 Đi đến URL đó với hai hoặc ba bạn bè nếu bạn muốn chia 905 00:47:09,180 --> 00:47:10,830 trong truyền thống mới này. 906 00:47:10,830 --> 00:47:14,180 >> Vì vậy, tôi muốn yêu cầu bạn giữ một điều trong tâm trí, và chúng tôi đã có chỉ là một 907 00:47:14,180 --> 00:47:17,070 hai phút clip trên đó đóng cửa hôm nay. 908 00:47:17,070 --> 00:47:19,640 73% là số để nhớ. 909 00:47:19,640 --> 00:47:23,900 Bánh, quá, sẽ chờ đợi bạn ở bên ngoài này Ngang như chúng tôi hoãn lại chỉ trong một 910 00:47:23,900 --> 00:47:26,710 vài khoảnh khắc, đó là một truyền thống tất nhiên, cũng. 911 00:47:26,710 --> 00:47:29,860 Nhưng đây là trích dẫn quan trọng từ chương trình học để ghi nhớ. 912 00:47:29,860 --> 00:47:32,820 Điều cuối cùng quan trọng trong khóa học này không phải là quá nhiều, nơi bạn kết thúc 913 00:47:32,820 --> 00:47:36,580 so với các bạn cùng lớp của bạn nhưng nơi bạn, trong tuần 12, kết thúc liên quan đến 914 00:47:36,580 --> 00:47:37,960 mình trong tuần 0. 915 00:47:37,960 --> 00:47:43,670 >> Nhưng cái nhìn mà chúng ta sẽ để lại cho bạn với ở đây hôm nay là một trong những cuối cùng này đây 916 00:47:43,670 --> 00:47:47,580 bởi cùng Daniel của chúng tôi, những người đã làm Video wrdly chỉ là một thời điểm trước đây. 917 00:47:47,580 --> 00:47:50,000 Tôi để lại cho bạn cái nhìn thoáng qua này về những gì ở phía trước. 918 00:47:50,000 --> 00:47:53,360 Và khi chúng ta làm điều này, nếu chúng ta có CS50 nhân viên từ phía trước của căn phòng 919 00:47:53,360 --> 00:47:57,280 đến trên lên sân khấu để vẽ tất cả các chi tiết của một hình ảnh trực quan để 920 00:47:57,280 --> 00:47:59,100 những gì đang chờ đợi bạn trong năm nay - 921 00:47:59,100 --> 00:48:00,350 việc khó xử. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Chúng tôi sẽ kết thúc với điều này đây trên màn hình. 924 00:48:05,188 --> 00:48:18,634 >> [Chơi nhạc] 925 00:48:18,634 --> 00:48:21,124 >> DAVID Malan: Đây là CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSIC - MATT & KIM, "Không sao đâu"] 927 00:50:00,226 --> 00:50:03,245 >> SPEAKER 1: tôi yêu hơn CS50 hơn mèo. 928 00:50:03,245 --> 00:50:06,030 >> SPEAKER 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Cười] 930 00:50:06,990 --> 00:50:08,140 >> DAVID Malan: Điều này, sau đó, là CS50. 931 00:50:08,140 --> 00:50:10,050 Chúng ta sẽ thấy bạn vào thứ sáu. 932 00:50:10,050 --> 00:50:13,370 >> [Vỗ tay và cổ vũ] 933 00:50:13,370 --> 00:50:17,540 >> Người kể chuyện: Tại CS50 tiếp theo, một trên sân khấu giới thiệu không đi theo kế hoạch. 934 00:50:17,540 --> 00:50:19,080 >> DAVID Malan: Chúng tôi muốn tìm Mike Smith trong danh bạ điện thoại này. 935 00:50:19,080 --> 00:50:20,380 Vâng, bản năng của bạn là gì? 936 00:50:20,380 --> 00:50:23,750 Tôi có thể nhảy gần đến giữa danh bạ điện thoại, liếc nhìn xuống, thấy rằng 937 00:50:23,750 --> 00:50:26,830 Tôi đang ở M, và tôi biết là Mike Smith không phải là bên trái. 938 00:50:26,830 --> 00:50:27,840 Anh phải ở bên phải. 939 00:50:27,840 --> 00:50:30,515 Và vào thời điểm này, chúng tôi nghĩa là có thể xé - 940 00:50:30,515 --> 00:50:33,300 vào thời điểm này, chúng tôi theo nghĩa đen có thể phá - 941 00:50:33,300 --> 00:50:36,490 vào thời điểm này, chúng ta có thể theo nghĩa bóng xé danh bạ điện thoại trong một nửa. 942 00:50:36,490 --> 00:50:38,954 >> [UKELELE strumming]