[NHẠC] [NHẠC] DAVID Malan: Tất cả các quyền. Đây là CS50. [MUSIC CHƠI Tritonal, Tiền Tiền,  "Untouchable"] [NHẠC] SPEAKER 1: Tôi sẽ Pháp, và bạn đang đi, quá. [NHẠC] DAVID Malan: Đây là CS50, giới thiệu của Đại học Harvard với trí tuệ doanh nghiệp khoa học máy tính và nghệ thuật của program-- và lần đầu tiên trong lịch sử, của Đại học Yale là tốt. Thật vậy, cho dù bạn đang ở đây ở Cambridge hoặc ở New Haven hay Miami hoặc St. Louis hoặc Amsterdam hoặc bất cứ nơi vòng quanh thế giới tham CS50, máy tính khoa học E50, CS50X, CS50 AP, chúng ta đều là một và giống nhau. Chào mừng bạn đến CS50. Những gì chúng ta có-- [VỖ TAY] [Cười] [VỖ TAY] Vì vậy, tôi đã làm sai bản thân mình một số thời gian trước khi tôi bắt đầu học đại học. Và tôi đã học đại học, và tôi quyết định thẳng thắn, dính trong vùng thoải mái của tôi. Tôi đã kết thúc tuyên bố một sự tập trung, hoặc một lớn, của chính phủ. Ant mà chủ yếu là một chức năng của tôi đang được khá quen thuộc với chính phủ hoặc ít nhất là lịch sử hay tôi thực sự thích luật hiến pháp ở trường trung học. Và như vậy khi tôi đã ở đây, tôi loại của xoay quanh các điều mà tôi đã quen thuộc. Đúng? Thiên Chúa cấm tôi làm kém trong lớp. Tôi chắc chắn muốn ở lại trong vùng thoải mái của tôi, và nó đã không được cho đến năm thứ hai mà tôi cuối cùng đứng lên các dây thần kinh để bước chân trong một lớp học được gọi là CS50. Và vào thời điểm đó, đã làm tôi cuối cùng đã nhận ra rằng, Chúa ơi, bài tập về nhà có thể thực sự được vui vẻ. Thật vậy, tôi là một trong những đứa trẻ mà vào các buổi tối thứ Sáu khi P-SETS sẽ được phát hành, tôi sẽ quay trở lại phòng và lặn của tôi vào đêm P-SETS. Và đối với tôi, đó là một dấu hiệu rằng đây là một lĩnh vực cho tôi. Nhưng điều quan trọng hơn là thực tế là tôi đã nhận được lên dây thần kinh này để khám phá vùng biển xa lạ với tôi và vượt ra khỏi vùng thoải mái của riêng tôi và thẳng thắn, tôi chỉ có thể làm điều đó năm thứ hai bằng cách tham gia lớp này vượt qua thất bại. Thật vậy, đó là ngày cuối cùng mà cuối cùng tôi chuyển qua và cuối cùng tuyên bố CS như nồng độ của tôi, đặt gov tại điểm đó sau lưng tôi. Và vì vậy chúng tôi không đặt ra trong Tất nhiên điều này để biến tất cả các bạn vào chuyên ngành CS hoặc làm đậm đặc, nhưng chứ không phải để cung cấp cho bạn một cơ hội để hy vọng vượt ra ngoài thế giới mà bạn đang quen thuộc và mang lại từ thế giới này kỹ năng và kiến ​​thức và hiểu biết mà bạn có thể áp dụng cho bạn thế giới riêng, cho dù đó là trong khoa học nhân văn, khoa học xã hội, khoa học tự nhiên, hoặc xa hơn nữa. Thật vậy, nếu bạn cảm thấy một chút dũng cảm về được trong phòng này hãy để một mình trong lớp này, nhận ra rằng nếu lịch sử là bất kỳ dấu hiệu cho thấy, 72% của bạn không bao giờ lấy một khóa học CS trước. Vì vậy, nó là bằng mọi cách không phải là trường hợp là học sinh ngồi bên trái hoặc bên phải hoặc ở phía trước hoặc phía sau bạn biết thêm rất nhiều về CS hoặc lập trình đặc biệt hơn bạn. Đó không phải là trong thực tế các trường hợp. Và quả thực, nhiều cấu trúc hỗ trợ mà chúng tôi đã thiết lập ở đây Tất nhiên trong nhiều năm qua đã được cho chính xác đó reason-- để cung cấp một trên đoạn đường nối mà vẫn thoát chỉ như một cách chặt chẽ và chỉ cao như ever-- nhưng độ dốc trong đó cho phép sinh viên ít thoải mái và tiện nghi hơn cũng như để thành công không phân biệt của nền trước của mình. Thật vậy, những gì cuối cùng các vấn đề trong lớp này không phải là rất nhiều nơi bạn kết thúc tương đối so với các bạn cùng lớp của bạn nhưng nơi bạn ở tuần 12 kết thúc tương đối so với chính mình trong tuần không, mà là nơi chúng tôi đang ở đây ngày hôm nay. Thật vậy và điều này có thể rất tốt và có lẽ không giống như Hy Lạp để nhiều bạn. Nhưng yên tâm, rằng này và nhiều hơn nữa sẽ là hoàn toàn trong vòng của bạn nắm bắt chỉ trong một chút thời gian. Nhưng hôm nay, chúng tôi tập trung vào một số những ý tưởng cấp cao hơn để cung cấp cho bạn một hương vị của CS50 và khoa học máy tính trong một cảm giác gì bạn đang đăng ký. Và quả thực, khoa học máy tính có thể được chưng cất nhiều đơn giản là tính toán thinking-- suy nghĩ như một máy tính, nếu bạn muốn. Và có rất nhiều thứ khác nhau thành phần mà đi vào đó, nhưng chúng ta hãy chỉ đề xuất ba cho ngày hôm nay. Nếu mục tiêu của lớp cuối cùng không phải là để dạy cho bạn lập trình, không phải là để dạy cho bạn C hay PHP hay SQL hoặc bất kỳ số lượng các từ và từ viết tắt trong Mô tả khóa học của, mà là để dạy cho bạn để giải quyết vấn đề hiệu quả hơn và suy nghĩ có phương pháp hơn và thuật toán nhiều hơn, do đó, để nói chuyện. Hãy xem chính xác những gì này có nghĩa. Vì vậy, tôi sẽ đề xuất suy nghĩ rằng tính toán nắm để giải quyết vấn đề. Những gì bạn cần để giải quyết một vấn đề? Bạn cần phải input-- như đầu vào cho problem-- bạn cần một đầu ra, mà là hy vọng các giải pháp, và sau đó bạn cần một quá trình để giải quyết vấn đề đó, mà chúng tôi sẽ gọi một algorithm-- một bộ hướng dẫn giải quyết một số vấn đề. Nhưng trước tiên, chúng ta hãy tập trung vào ngày đầu tiên và cuối cùng của các yếu tố đầu vào và đầu ra. Máy vi tính sau khi tất cả, rõ ràng chỉ hiểu số không và những người thân. Nhưng làm thế nào có thể có thể được? Thậm chí nếu bạn không quen thuộc với tất cả với những gì bên dưới mui xe, bạn có thể ít nhất nghe nói rằng máy tính hiểu binary-- chỉ số không và ones-- nhưng làm thế nào có thể bạn có thể làm bất cứ điều gì thú vị? Vâng, một trong những chủ đề của lớp được đi được điều này layering-- nơi mà ngày nay, chúng ta sẽ có một cái nhìn nhanh chóng ở mức thấp nhất chi tiết, nhưng với mỗi qua ngày, nơi mà chúng tôi lớp hoặc trừu tượng trên đầu trang của những chi tiết để thực sự giải quyết mức độ cao hơn vấn đề quan tâm đối với chúng tôi. Vì vậy, đây là những gì chúng ta có thể gọi binary-- chỉ với một bảng chữ cái của 0 và 1. Nhưng con người là chủ yếu quen thuộc với số thập phân. Tháng Mười Hai 10 ý nghĩa. Bi có nghĩa là hai. Và như vậy trong các số thập phân hệ thống, chúng tôi có 10 chữ số tại disposal-- của chúng tôi Tất nhiên, không thông qua chín. Vì vậy, nếu bạn nhìn vào một số như thế này, hầu hết các bạn trực giác chỉ cần nắm đó là 123. Không có gì thực sự khó khăn về điều đó. Nhưng tại sao nó 123? Vâng, nếu bạn nghĩ lại lớp school-- hoặc ít nhất cách tôi học được điều này loại world-- bạn có thể nhớ lại rằng chúng tôi xử lý các điều trong cột, hoặc nơi. Vì vậy, chúng tôi có nơi những người ở bên phải. Hàng chục đặt ở giữa. Hàng trăm đặt bên trái. Và sau đó làm thế nào để chúng ta có được từ mô hình này symbols-- 1 2 3-- đến mức độ cao hơn này ý tưởng mà chúng ta biết như 123? Vâng, nó chỉ là một số số học đơn giản. Đúng? Người đó là cơ bản có nghĩa cung cấp cho chúng tôi 100 lần 1 cộng 10 lần 2 cộng với 1 lần 3. Và tất nhiên nếu chúng ta làm ra toán có, đó là 100 cộng với 20 cộng 3-- hay còn gọi là 123. Vì vậy, nếu bạn đang ở cùng một trang như là đúng mà bây giờ và cảm thấy thoải mái với cái gọi là hệ thập phân như một con người, nó thực sự tốt trong vòng phạm vi của bạn thoải mái để xem xét tại các hệ thống nhị phân. Hãy hoang dã guess-- này đại diện, trong thế giới của máy tính trong số những gì binary--? Zero. Nhưng tại sao vậy? Vâng, nó chỉ ra rằng các cột hoặc nơi đây-- họ không phải quyền hạn của 10. 1, 10, 100, 1000, và vv. Họ đang thay vào đó, khá đơn giản, quyền hạn của 2. Vì vậy, 1, 2, 4, 8, 16, 32, và như vậy. Và bây giờ chúng ta tất nhiên có được 0 ở đây chỉ đơn giản là vì chúng tôi có 4 lần 0 cộng với 2 lần 0 cộng với 1 lần 0, mà các khóa học mang lại cho chúng ta 0. Nhưng làm thế nào để tôi đi về đại diện cho số 1? các mô hình của những gì số không và những người đại diện cho số con người chúng ta biết như là 1? 001. Và 2? 010. Và bây giờ các mô hình bắt đầu lặp đi lặp lại. Bây giờ nó là 011. Và một lần nữa, 0 bằng bốn chân, một trong 2, một trong 1. Vì vậy, 2 cộng với 1. Đó là 3. Và bây giờ để đại diện cho 4, chúng tôi không chỉ thay đổi điều đó 0 đến 1. Bạn như phải thực hiện, vậy để nói chuyện, và những con số bắt đầu lật xung quanh chỉ như trong thế giới thập phân. Vì vậy, đây là 4. Đây là 5. Đây là 6. Đây là 7. Và vì vậy chúng tôi đã tính cao như 7. Bây giờ tất cả chúng ta cần là nhiều hơn một bits-- hơn số không và một người. Và thực sự "bit", nếu bạn đã nghe chữ số nhị phân term-- này. Bit là nơi mà đến từ. Và vì vậy nếu chúng tôi muốn đại diện cho số lớn hơn, chúng ta cần nhiều bit. Nhưng chúng ta hãy di chuyển ra khỏi slide hiện một cái gì đó thực tế hơn một chút. Giả sử chúng ta muốn thực sự đại diện cho điều này. Vâng chúng ta hãy có một cái nhìn tại tại một cuộc biểu tình nhỏ. Vì vậy, đây là một ứng dụng dựa trên web rằng một trong những của riêng, Michael G CS50 của, đặt lại với nhau trong mùa hè này để giúp chúng tôi làm sáng tỏ chính xác ý tưởng này. Và sẽ có người thích mạo hiểm trên sân khấu ở phía trước của tất cả các bạn học của mình? Ngay trước mặt. Thôi lên. Bạn phải cảm thấy thoải mái trên máy ảnh và internet. Oh, ngay tại đây. ĐƯỢC. Chúng tôi đang OK. Được rồi. Thôi lên. Tên bạn là gì? Emily đi lên trên. Vì vậy, đây là Emily. năm những gì bạn đang có? Sinh viên năm nhất. Emily, rất vui được gặp các bạn. David. Được rồi. Vì vậy, lên trên màn hình ở đây, chúng tôi có màn hình cảm ứng đó là sẽ cho phép chúng tôi thực sự tương tác với chương trình này, và nó chỉ là một trình duyệt. Nó Chrome đầy đủ chiếu vào lúc này, nhưng nó được lập trình bởi Michael đáp ứng một cách mà cho phép chúng tôi chơi xung quanh với số nhị phân. Vì vậy, ví dụ, ở đây chúng tôi có không ba nhưng tám số không bits-- và những người thân. Ngay bây giờ, chúng tôi nhìn vào số 0. Và thực sự, tất cả tám số không trong hệ thập phân có nghĩa là không. Vì vậy, đó là tất cả những gì được ám chỉ ở đây. Vì vậy, nếu bạn muốn đại diện cho số 8, các mô hình của số không là gì và những người mà bạn muốn? Bạn chỉ cần nhấn lên hoặc xuống hoặc số tự. Được rồi. Vì vậy, đó tất nhiên là 8, như bạn có thể thấy ở trên đó. Và nếu chúng ta muốn làm 16, chúng ta làm gì? Đúng, chỉ cần chạm vào nó một lần nữa. 16. Được rồi. Vì vậy, đây là tất cả tốt và tốt, nó vẫn còn rất thấp. Chúng ta cần một cách trong thế giới thực cho Emily của thực sự đại diện cho những điều này. Và do đó, giả sử rằng chúng ta biến những số không và những người thân, mà là rất khái niệm, vào bóng đèn thực tế. Đúng? Một máy tính là một vật lý, cơ khí, thiết bị điện. Và input-- của nó ít nhất là nếu bạn cắm nó vào hoặc phí it-- là phải có sức mạnh và pin electron chảy vào và ra. Vì vậy, bây giờ, tại sao chúng ta không ngừng suy nghĩ về bit là số không và những người thân, nhưng thể chất một cái gì đó nhiều hơn như bóng đèn ở đây. Và nếu Dan Armendáriz có thể tham gia tôi chỉ là một moment-- đi trên up-- chúng ta sẽ phải xếp hàng một ứng dụng. Come on, Emily. Xin lỗi này là nhất bản demo khó xử cho bạn bao giờ hết. Đi qua đây. Chúng ta sẽ phải xếp hàng lên với nhờ Dan Armendáriz, một thành viên khác của đội ngũ nhân viên của chúng tôi, một ứng dụng được gọi là bóng đèn nhị phân. Vì vậy, những gì chúng tôi có ở đây là một ứng dụng iPad có người dùng sau giao diện trên màn hình cho Emily. Nó chỉ có giao diện người dùng chính xác cùng về cơ bản đó là ở đó. Và nếu bây giờ bạn muốn đại diện cho số, nói 8, làm thế nào bạn sẽ đi về làm Nhận ra điều này ở bên phải, các bóng đèn mà chúng ta có ở đây? Ah-ha. Magical. Vì vậy, nếu chúng ta muốn bây giờ biến điều này thành một chút gì đó khó khăn hơn, và chúng ta hãy đi trước và chọn một cách ngẫu nhiên số như số 50 ở đây. Đầu vào này. Và nếu bây giờ bạn có thể được thử thách để đến với số lượng 50, chúng tôi sẽ có một giải thưởng tuyệt vời cho bạn. EMILY: OK. Ôi chúa ơi. DAVID Malan: Arithmetic thực sự là khó khăn ở phía trước của hàng trăm bạn học cùng lớp. Nhưng 50 đã được các câu trả lời ở đây. [VỖ TAY] Và vì vậy bây giờ, điều này có nghĩa là để là minh chứng cho Emily. Vì vậy, ở đây, là một số ánh sáng bóng đèn khá như thế này, nhưng nó thực sự là dải từ nhỏ. Và điều thú vị về những điều này và lý do chúng ta sử dụng chúng trong CS50 là họ ủng hộ một cái gì đó gọi là một API-- một lập trình ứng dụng giao diện, mà chỉ là một cách ưa thích nói rằng những gì một trong những nhân viên của chúng tôi đã qua mùa hè đã tạo một ứng dụng iPad ở đây mà nói chuyện qua internet để các bóng đèn ở đây, đó là không dây kết nối với thiết bị khác. Nhưng điều này hiện là một lựa chọn cho các dự án chính thức. Và do đó, Emily, nếu bạn sẽ rất như, vào cuối nhiệm kỳ, bạn có thể tô điểm cho căn phòng ký túc xá của bạn trong khi đó với những người. Cảm ơn bạn Emily là tốt. [VỖ TAY] Nhưng bây giờ, chúng ta hãy quay sự chú ý của chúng tôi với những gì tin nhắn có thể trông như thế, và đó là một chút gì đó như thế này. Trong thực tế, đây là một Ví dụ như một lời trêu ghẹo của những gì sẽ đến của những gì được gọi là một yêu cầu API. Và vì vậy những gì chúng tôi có ở đây chỉ đơn giản là chính xác các loại thông điệp rằng sau một vài tuần Hiện tại CS50, bạn sẽ có thể gửi cho một cái gì đó khá quen thuộc như rằng để thực sự bật và tắt. Nhưng điều này là tất cả tốt và tốt. Đúng? Chúng tôi có các mô hình về tinh thần hy vọng cho đại diện cho số với zero và một người. Và từ số không và những người thân, chúng ta có thể có được con số cao hơn như 50, Emily vừa làm, hoặc chúng tôi có thể di chuyển lên từ đó. Và tôi cho rằng chúng tôi có thể đại diện những thứ như chữ là tốt. Đúng? Máy vi tính là xa hơn thú vị hơn là chỉ số. Và do đó, làm thế nào để bạn đi về những từ đại diện trên màn hình hoặc email hoặc tiểu luận hoặc như thế nào? Vâng, nó chỉ ra rằng các máy tính đơn giản trừu tượng trên đầu trang của các mức thấp chi tiết, và con người một số thời gian trước đây, đến với một tùy ý, nhưng nhất quán, lập bản đồ số để letters-- vậy rằng bất cứ lúc nào bạn nhìn thấy một bức thư vốn A trên máy tính của bạn màn hình, tỷ lệ cược là gì bên dưới mui xe là một mô hình của các số không và những người thân đại diện cho số lượng, mỗi biểu đồ này, 65. Và thể chất hơn bên trong máy tính của bạn, hàng triệu điều được gọi là transistors-- những days-- mà chỉ chuyển nếu bạn sẽ, điều mà có thể đi vào và tắt và để tưởng tượng. Không tám của những bóng đèn lớn nhưng hàng triệu những chút ánh sáng nhỏ xíu bóng đèn, hoặc chuyển mạch hoặc bóng bán dẫn, có thể bật và tắt dựa vào cách bạn chương trình họ. Và bây giờ chúng ta có một cách đại diện cho chữ là tốt. Trong thực tế, nếu tôi được sử dụng này lập bản đồ ở đây và cố gắng thực sự chính tả một cái gì đó, chúng ta sẽ tìm ở mô hình này của các chữ số thập phân ngay bây giờ. Vì vậy, chúng tôi sẽ không để mặc tập trung vào nhị phân nữa. Hãy chỉ coi chúng là số thập phân số 72, 73, 33. Nhưng điều này có thể đại diện? Bất cứ ai cũng có đủ bộ nhớ chụp ảnh để biết đánh vần trên màn hình ở đây? Vâng một vài. Vì vậy, hi. H-I và sau đó là một dấu chấm than, đó là không thực sự trên màn hình. Nhưng thực sự đó là một ánh xạ cho mỗi thư mỗi số mà bạn có thể muốn gõ trên bàn phím của bạn. Nhưng con số này không phải đại diện chỉ thư. Đúng? Tất cả chúng ta biết về hình ảnh và hình ảnh và các file âm thanh và các file video và muốn. Vì vậy, rõ ràng chúng ta có thể đại diện mức điều còn cao hơn. Và vì vậy những gì một máy tính không chỉ đơn giản là chọn để giải thích các mô hình không những khác nhau dựa vào ngữ cảnh. Nếu bạn kích đúp vào một biểu tượng Microsoft Word, bạn nhìn thấy chữ trên màn hình thay vì màu sắc và hình ảnh vì từ biết rằng đây là một bài luận mà bạn đã thực sự gõ. Nếu bạn thay vì nhấp đúp chuột vào trên JPEG hoặc GIF hoặc PNG, nó mở ra và là một hình ảnh vì PNG hoặc .docx hoặc bất cứ file phần mở rộng là gì và bất cứ phần mềm bạn đang sử dụng biết để giải thích một mô hình của các số không và những người khác dựa trên những gì mục đích của nó trong cuộc sống. Vì vậy, ví dụ, điều này cùng một chuỗi các con số có thể đại diện cho bao nhiêu màu đỏ làm bạn muốn, bao nhiêu xanh gì bạn muốn, và bao nhiêu màu xanh nào bạn muốn. Và quả thực, nếu bạn đã từng nghe nói RGB-- vì vậy chỉ cần đỏ xanh xanh. Và vì vậy nếu tôi thấy số như, này cho tôi 72 màu đỏ, đưa cho tôi 73 màu xanh lá cây, và 33 màu xanh, đây là làm thế nào một máy tính sử dụng ba bytes-- nơi một byte là tám bit hoặc 24 bits-- sẽ đại diện cho một bóng khá khó chịu nâu hoặc màu vàng ở đây. Và trong hoàn cảnh khác nhau, có thể những mô hình chính xác cùng một trong số không và những người thân có nghĩa là một cái gì đó hoàn toàn khác nhau là tốt. Vì vậy, chúng tôi bây giờ có một cách để đại diện cho số không tin về Người và những người thân. Ngày đầu đó, chúng tôi nhận được thư. Ngày đầu đó, chúng ta có thể có được màu sắc. Và chúng ta hãy giả định cho ngày hôm nay rằng chúng ta có thể nhận được âm thanh và video và những thứ nhiều hơn nữa tinh vi hơn. Nhưng bây giờ chúng ta hãy xem xét cách chúng tôi sử dụng các đầu vào và sản xuất những kết quả đầu ra bây giờ mà chúng tôi có một cách để đại diện cho thông tin đó. Vâng, chúng ta cần một cái gì đó được gọi là một thuật toán. Một lần nữa, một tập hợp các hướng dẫn để giải quyết một số vấn đề từng step-- và chính xác hơn, tốt hơn. Và như vậy một ví dụ mà con người phải thừa nhận là không quen thuộc những ngày này, nhưng dù sao vẫn còn với chúng tôi trong phần mềm, là quá trình tìm kiếm lên một ai đó trong một cuốn sách điện thoại. Bây giờ, ít hơn và ít hơn folks biết mỗi năm những gì di tích này thực sự là ở đây. Nhưng trở lại trong ngày của tôi, đây là một cuốn sách điện thoại với hàng ngàn trang và số và tên của người dân từ A đến Z. Và mặc dù chúng ta đang loại gian lận một bit-- này chủ yếu là các trang vàng. Ngoài ra còn có màu trắng trang vào thời điểm đó, mà đã có tất cả những cái tên đó và số của con người thực sự. Và nếu tôi muốn nhìn một ai đó trong một danh bạ điện thoại như ngày hôm nay, tất nhiên, Tôi chỉ cần gõ vào vài đầu tiên ký tự tên của mình, và điện thoại của tôi tìm thấy thông tin đó. Nhưng quá trình mà điện thoại iPhone hoặc Android của bạn hoặc bất cứ điều gì là thực sự tìm kiếm một người nào đó trong danh sách liên lạc của bạn là giống hệt với những gì con người chúng ta có lẽ đã làm cho một số thời gian. Bây giờ tôi có thể thực hiện việc này vấn đề, nếu bạn muốn, và các đầu vào đây không phải là số không và những người thân. Họ đang pages-- như, hãy nói rằng 1.000 trang. Và nếu tôi muốn nhìn lên một ai đó thích Mike Smith trong danh bạ điện thoại này, Tôi có thể bắt đầu ngay từ đầu và thấy rằng tôi là trong phần A và sau đó lần lượt từng trang một thời gian, tìm kiếm và tìm kiếm như tôi làm để của B và C và D's và vv cho Mike Smith. Smith bắt đầu bằng S, tôi sẽ hy vọng cuối cùng tìm thấy anh ta. Là algorithm-- này rằng process-- đúng? Yeah. Đúng. Tôi sẽ tìm thấy Mike nếu anh ta đang ở đây, nhưng là những gì báo trước rằng bạn có thể cung cấp. Đó là chậm. Đúng? Tôi biết Mike S là loại đối nửa sau của cuốn sách điện thoại. Tại sao các heck tôi bắt đầu từ đầu và đi từng trang của trang. Vì vậy, tất nhiên, tôi có thể lật nó xung quanh và bắt đầu từ phía sau, nhưng đó là sẽ có được tôi có cùng tốc độ, nếu bạn willl-- trang sau khi trang sau khi trang. Và nó sẽ không làm việc nếu tôi muốn để tìm kiếm một người nào khác mà Tên đến trước đó trong bảng chữ cái. Vì vậy, những gì nếu tôi làm những gì tôi học ở trường lớp, một lần nữa, làm những việc không bởi những người mà bởi twos. Vì vậy, 2, 4, 6, 8, 10, 12, và vv. Đúng không? Không. Đó là loại chính xác. Nhưng một số bạn người thì thầm không có, mà là vấn đề, hoặc các lỗi, những sai lầm như vậy để nói chuyện. Yeah. HỌC SINH: Bạn có thể bỏ qua qua các mục bên phải. DAVID Malan: Yeah. Tôi có thể bỏ qua Mike Smith bởi vì tôi đã lấy hai trang cùng một lúc và ông chỉ xảy ra được kẹp giữa hai trang. Tôi có thể nhận ra rằng Tôi sang phần T không có tìm thấy Mike Smith chưa. Và vì vậy những gì có thể cố định có được? Vâng, nếu tôi làm nhấn Ts trong sổ điện thoại, Tôi có thể cần phải tăng gấp đôi sao một hoặc để trang. Vì vậy, nó có thể cứu vãn, nhưng nó không phải là khá đơn giản như chỉ cần đi bằng hai để tăng tốc độ hiệu suất của tôi. Nhưng cái gì? Nào. là những gì những gì hầu hết con người đang đi để làm với các loại sách điện thoại? Bạn đang đưa ra các cuốn sách điện thoại. Bạn làm nghề gì? Cái gì thế? Tới giữa. Vì vậy, tôi nghe đi vào giữa, và tôi thấy mình gần ở phần M, vậy để nói chuyện. Và bây giờ những gì tôi muốn làm gì? Làm tốt lắm. Tên bạn là gì? JAMES: James. DAVID Malan: James, được rồi. Tôi phải làm gì tiếp theo? JAMES: Bạn đi trong nửa có của S. DAVID Malan: Tất cả các quyền. Tôi sẽ đi vào một nửa có của S trong đó bởi vì, một lần nữa, một quy định ở đây là mà điều này được sắp xếp. Đó là một khá vô dụng 1000 trang Verizon nếu không thực sự sắp xếp những việc này cho chúng tôi từ A đến Z. Vì vậy, nếu tôi biết Mike có lẽ là ở nửa sau của cuốn sách điện thoại, Tôi có thể ngay bây giờ. [Cười] Xé vấn đề trong một nửa. [VỖ TAY] Cảm ơn bạn. Xé vấn đề trong một nửa. Điều đó đã thực sự real-- cuộc đấu tranh đó. Vì vậy, xé sổ điện thoại một nửa, để lại bản thân mình với cơ bản cùng một vấn đề. Nhưng tất nhiên, một nửa là lớn. Và nếu tôi làm theo James tư vấn một lần nữa, và tôi đi đây. Tôi nói, oh bây giờ tôi trong phần T. Và do đó, tất nhiên, tôi có thể phá danh bạ điện thoại trong nửa một lần nữa, để lại tôi có một vấn đề đó là bây giờ là một phần tư kích thước. Vì vậy, tôi đã đi từ 1.000 đến 500 250 đến 125 và vv. Nó cảm thấy như tôi là lấy cắn lớn ra của vấn đề này với nhau lặp đi lặp lại, hoặc từng bước trong đó. Và quả thực, lúc đó tôi đang đi để dành tìm Mike Smith trong ví dụ này là rất ít bởi vì cuối cùng tôi đi gọt cuốn bánh ngô này xuống để chỉ một trang duy nhất. Và nếu Mike là trên trang đó, tôi sẽ đi trước và cho anh ta một cuộc gọi đã tìm thấy anh ta. Nhưng chỉ thế nào tốt hơn là algorithm-- mà dám nói trực quan algorithm-- hơn những người chúng tôi bắt đầu mà chúng tôi đang rất linear-- trái sang right-- với tốc độ của 1 hoặc 2x? Vâng, chúng ta hãy vẽ này. Chúng tôi không cần phải lo lắng quá nhiều về toán hoặc số trong trường hợp này đây. Chúng tôi chỉ cần nhìn vào một âm mưu. Vì vậy, trên x, hoặc trục ngang, là kích thước của problem-- bao nhiêu trang đang có. Trên y, hoặc thẳng đứng trục, có bao nhiêu thời gian là nó sẽ đưa tôi để giải quyết nó. Và có lẽ đó là bao nhiêu lượt trang, bao nhiêu giây, cách many-- một số đơn vị của các biện pháp. Và tôi đã vẽ một đường thẳng màu đỏ ở đây vì nếu mỗi trang thêm của cuốn sách điện thoại, tôi yêu cầu để thực hiện một bước bổ sung. Vì vậy, nếu Verizon cho biết thêm một nhiều trang trong năm tới, Tôi có thể có để lật một trang khác để tìm một người như Mike Smith. Trong khi đó, các thuật toán thứ hai, Tôi đi một twos, có hình dạng giống nhau. Nó vẫn còn rất tuyến tính, rất trái sang phải, lấy byte bằng mỗi lần, nhưng độ dốc thấp hơn một chút. Ví dụ, nếu kích thước của vấn đề là khoảng ở đây và tôi sử dụng thuật toán đầu tiên của tôi, Tôi có thể kết thúc tất cả các cách ở trên cùng của dòng màu đỏ. Nhưng nếu tôi thay vì sử dụng để twosies tiếp cận, đường màu vàng cho thấy vì nó thấp hơn, rằng nó sẽ mất tôi ít thời gian giải quyết. Nhưng hình dạng của những gì algorithm-- thứ ba một lần nữa, cho là các thuật toán trực quan nhất? Vâng, có vẻ một chút một cái gì đó như thế này. Nó cong, hoặc logarit, trong hình dạng. Và mặc dù nó không bao giờ loại flattens ra, nó tiệm inch và lên và lên nhưng cực kỳ chậm chạp so với tất cả mọi thứ khác. Và những gì đang lấy đi? Vâng, chúng ta gọi nó log n. Nhưng điều đó thực sự có nghĩa gì? Vâng, nếu Verizon tăng gấp đôi số trang trong sổ điện thoại năm tiếp theo từ 1000 đến 2000. Làm thế nào nhiều hơn nữa bước là của tôi Thuật toán đầu tiên sẽ mất? Thuật toán đầu tiên của tôi. Có lẽ 1000 bước nữa. Nếu họ tăng gấp đôi danh bạ điện thoại, tôi sẽ phải lật qua một 1.000 trang để tìm Mike. Tất nhiên, nếu thứ hai thuật toán, có lẽ bởi vì tôi là 500 đi nhanh gấp hai lần. Nhưng nếu Verizon tăng gấp đôi số trang giữa năm nay và năm tới, với ba tôi algorithm-- sự phân chia và chinh phục mà James đề nghị, đi một nửa và một nửa và half-- bao nhiêu bước nữa sẽ nó đưa tôi vào năm tới để có một cuốn sách điện thoại có kích thước 2.000? Chỉ một. Bởi vì với một vết cắn, tôi có thể mất, ra khỏi vấn đề đó, một nửa số trang cách xa. Và nếu bạn nghĩ về điều này một chút điên cuồng now-- nếu cuốn sách điện thoại không có 1.000 hoặc 2.000 trang, nhưng giả sử 4 tỷ pages-- đó là một điện thoại lớn book-- cách nhiều lần hoặc có bao nhiêu bước là nó sẽ đưa tôi đến tìm Mike Smith trong sổ điện thoại với 4 tỷ trang. Bạn có thể sắp xếp bắt đầu để làm toán. Được rồi. 4 tỷ chia cho 2. Vì vậy, đó là 2 tỷ chia cho 1. Kết quả là 1 tỷ đồng. Sau đó nửa tỷ. Sau đó 250-- vì vậy bạn có thể làm điều này một lần nữa và một lần nữa nhưng không phải là nhiều lần trước bạn nhận được một trang. Và thực sự, ngay cả khi điện thoại cuốn sách này dài 4 tỷ trang hoặc cơ sở dữ liệu bạn đang tìm kiếm dài 4 tỷ hồ sơ, nó sẽ đưa bạn cho hoặc mất 32 bước chỉ để thấy Mike Smith. Và nếu bạn gấp đôi sách điện thoại tiếp theo năm 4000000000-8000000000, 33 bước thay vì chỉ 32. Và đây là di chúc với một trong những ý tưởng rằng chúng ta có thể nắm lấy trong máy tính khoa học nói chung, trong đó là tư duy tính toán này và tiếp cận một vấn đề thẳng thắn sử dụng công cụ từ công cụ đã quen thuộc của bạn kit-- thế giới thực bằng mà bạn đã quen thuộc, nhưng việc khai thác những ý tưởng để thực sự giải quyết vấn đề. Nhưng chúng ta cần để chính thức của chúng tôi giải pháp cho những vấn đề này. Và vì vậy hãy để tôi giới thiệu cho một thời điểm một cái gì đó chúng ta có thể gọi là giả. Phần lớn các học kỳ, chúng ta sẽ dành sử dụng mã thực tế trong các ngôn ngữ như C và PHP và JavaScript và SQL và muốn. Nhưng hiện nay, chúng ta hãy chỉ cần nhìn tại một cái gì đó khá trực quan như tiếng Anh. Tôi có thể chưng cất mà thuật toán mà Tôi thấy Mike thành các bước như thế này. Nhấc điện thoại cuốn sách Open để giữa cuốn sách điện thoại Nhìn vào tên của Nếu Mike là một trong những tên của gọi Mike Else if Smith là trước đó trong cuốn sách Mở đến giữa nửa bên trái của cuốn sách Khác đi xếp hàng 3 Else if Smith là sau này trong cuốn sách Mở cửa cho vào giữa nửa bên phải của cuốn sách Đến dòng ba khác Bỏ cuộc Và có một vài đặc điểm hiện nay điều này mà là giá trị chỉ ra. Vì vậy, một, tất cả các dòng Tôi đã đánh dấu màu vàng chúng ta sẽ bắt đầu cuộc gọi báo cáo hoặc các chức năng hoặc thủ tục. Chúng chỉ là những hành động làm này, và có không tất cả những biến đổi nhiều đến nó. Bước tiếp theo ở đây, mặc dù là những conditions-- nếu, khác, nếu người nào khác, khác. Và đây là những gọi là điều kiện, hoặc chi nhánh, và họ là điểm quyết định. Và họ cho phép chúng tôi làm một cái gì đó có điều kiện. Và trên thực tế, chúng ta hãy nhanh chóng nhìn vào có lẽ là một face-- quen thuộc chúng tôi sẽ gọi anh ta Bill-- và chính xác những gì các điều kiện, làm thế nào những có thể được sử dụng. Bill Gates: Mọi người làm quyết định mỗi ngày. Ví dụ, trước khi bạn đi ra ngoài bạn loại có một tuyên bố nếu mà nói, nếu trời mưa, sau đó tôi cần để có được chiếc áo khoác của tôi. Và các máy tính là tuyệt vời khi bạn quyết định những loại báo cáo rằng họ đáng tin cậy có thể thực hiện những điều ở tốc độ không thể tin được. Và do đó, một chương trình máy tính thực sự là một chút ít về toán học và một số nếu báo cáo nơi các quyết định được thực hiện. DAVID Malan: Bây giờ chúng ta hãy tập trung trên một vài lines-- khác nhau những cái tôi đã nêu bật màu vàng ở đây. Và nó có khác nhau cách thể hiện ý tưởng này. Nhưng trực giác những dòng của chúng tôi 8 và 11 mà tôi đã nêu bật ở đây nói với bạn làm? Vâng, vào dòng 3, nhưng những gì hành vi đó thực sự gây? Đó là một số loại vòng lặp hoặc chu kỳ, và bạn có thể phần nào thấy nó. Đúng? Nếu trên dòng 8, bạn hãy quay lại dòng 3, và sau đó bạn nhấn dòng 8 một lần nữa, bạn có thể quay lại dòng 3, quay lại dòng 3, trở lại dòng 3. Có loại này của chu kỳ hoặc lặp. Và quả thực, điều đó gây ra trong dòng 11 có khả năng là tốt. Và đây là một cơ bản lập trình xây dựng là tốt. Bạn có thể không muốn chỉ làm điều gì đó với một tuyên bố hoặc làm điều gì đó có điều kiện với một điều kiện hoặc chi nhánh. Bạn có thể muốn làm một cái gì đó theo chu kỳ với một vòng lặp. Và chúng tôi sẽ có một người nào khác mà bạn có thể familiar-- chúng tôi sẽ gọi anh ta Mark-- giải thích khái niệm này ở đây. Mark Zuckerberg: Một điều rằng máy tính là thực sự tốt tại đang lặp lại lệnh. Như một người, bạn sẽ nhận được thực sự buồn chán nếu bạn đã phải làm điều tương tự rất nhiều lần trong một hàng, nhưng một máy tính có thể làm điều tương tự hàng triệu hoặc thậm chí hàng tỷ lần và không cảm thấy buồn chán và có thể để thực hiện điều đó ra thực sự tốt. Vì vậy, ví dụ, nếu tôi muốn chúc tất cả mọi người trên Facebook một sinh nhật hạnh phúc bằng cách gửi cho họ một email, nó có thể đưa tôi hơn một thế kỷ để thực sự viết ra tất cả những email đến tất cả mọi người. Nhưng chỉ với một vài dòng mã, tôi có thể có một hệ thống gửi email đến tất cả mọi người trên Facebook có nhu cầu cho họ một sinh nhật hạnh phúc. Vì vậy, đó là những gì các vòng được và tại sao họ có giá trị và một cái gì đó máy tính có thể làm rất tốt. DAVID Malan: Rất cám ơn đến bạn bè của chúng tôi tại code.org cho hai bộ phim. Và tuần trước, bạn có thể có thấy rằng Mark Zuckerberg và Facebook gửi thông báo này, đó là chúng chỉ đã thông qua một quan trọng cột mốc lần đầu tiên bao giờ hết. 1 tỷ người sử dụng Facebook trong một ngày, đặc biệt thứ hai tuần trước. Một trong bảy con người trên trái đất dường như đã đăng nhập vào Facebook. Vâng, điều này dường như là một cơ hội tốt để nhìn lại nơi mà Facebook đã bắt đầu, và chúng tôi đã đi qua riêng của CS50 lưu trữ vì thực ra trong năm 2005, Đánh dấu đã thuyết giảng của khách trong CS50. Bạn sẽ thấy rằng giá trị sản xuất là không hoàn toàn trở lại cùng sau đó về công nghệ có sẵn, và bạn cũng sẽ thấy thấy rằng sự hiện diện bài giảng của khách này không nhất thiết phải khơi gợi sự quan tâm của sinh viên, những người tiền nhiệm của mình, nhiều như nó có thể có chỉ một vài năm sau đó. Vì vậy, chúng ta hãy có một cái nhìn tại Trung tâm Khoa học C. SPEAKER 2: Xin hãy cùng tôi, và chào đón. [VỖ TAY] Mark Zuckerberg: Yo. Được rồi. Mát mẻ này là lần đầu tiên tôi đã từng đã phải giữ một trong những điều này. Vì vậy, tôi chỉ cần đi tới đính kèm nó thực sự nhanh chóng. Được rồi. Bạn có thể nghe được? Cái này tốt không? Đây có phải là khuếch đại ở tất cả? Được rồi. Ngọt. Vì vậy, điều này giống như một trong những lần đầu tiên Tôi đã đến một bài giảng tại Đại học Harvard, nhưng-- DAVID Malan: Vì vậy, cuối cùng các Khoa học Trung tâm đã phóng to video, nhưng không phải trước khi chụp này trích đoạn mà nói chuyện của Mark, mà ông đã thảo luận của mình bạn cùng phòng, Dustin, người muốn giúp một tay với điều này trang web gọi là Facebook.com và nhận ra rằng Mark sắp đề cập đến lập trình languages-- một gọi là Perl, một gọi PHP-- như ông thảo luận nguồn gốc của sự đóng góp của Dustin. Mark Zuckerberg: Tôi bắt đầu chạy các trang web và đưa nó vào Harvard vào tháng Hai năm 2004. Vì vậy, tôi đoán gần hai năm trước đây bây giờ. Và trong vòng một vài tuần, một vài nghìn người đã đăng ký, và chúng tôi bắt đầu nhận được một số email từ những người ở các trường khác yêu cầu để chúng tôi khởi động nó tại trường học của họ. Và tôi đã được tham gia 161 vào thời điểm đó. Vì vậy, tôi không biết nếu các bạn biết danh tiếng của khóa học đó, nhưng nó là loại nặng. Đó là một khóa học thực sự vui vẻ, nhưng nó không để lại cho tôi với nhiều thời gian để làm bất cứ điều gì khác với Facebook. Vì vậy, bạn cùng phòng của tôi Dustin, người mà tôi đoán vừa hoàn thành CS50, giống như, hey. Tôi muốn giúp đỡ. Tôi muốn làm việc mở rộng và giúp đỡ bạn tìm ra cách để làm các công cụ. Vì vậy, tôi đã thích, đó là khá mát mẻ, dude. Nhưng bạn thực sự không biết bất kỳ PHP hoặc bất cứ điều gì như thế. Vì vậy, cuối tuần anh ấy về nhà, mua cuốn sách Perl cho Dummies, đã trở lại và được như thế, tất cả các quyền. Tôi sẵn sàng đi. Tôi giống như, dude, trang web được viết trong PHP không Perl, nhưng đó là mát mẻ. Vì vậy, ông nhặt PHP qua giống như một vài ngày vì tôi hứa rằng nếu bạn có một nền tảng tốt trong C, PHP là một điều rất đơn giản để chọn lên. Và ông chỉ là loại đi lại làm việc. Trước khi chúng tôi có một cái nhìn tại nơi tất nhiên là đi, cho phép tôi mời một số chỉ của nhân viên SC50 của lên đến sân khấu. Một số trong số họ đang mua sắm các khóa học của mình. Nhưng nếu những TF và CA và khóa học đầu người ở đây có thể đi trên lên và tham gia cùng tôi cho một hello nhanh chóng. Cho phép tôi để giới thiệu đặc biệt, Hanna, Maria, Daven, và Rob, Tất nhiên CS50 của người đứng đầu ở đây tại Cambridge. [VỖ TAY] DAVID Malan: Thật vậy, minh chứng cho cơ cấu hỗ trợ khoá học đó có xây dựng ra trong nhiều năm qua, nhân viên CS50 số năm nay gần như 100, và đó là ở đây tại Cambridge một mình. Trong khi đó, tại New Haven, đang có một số 40 TF và CA và nhân viên có một cách tự nhiên là tốt. Cho phép chúng tôi để giới thiệu đầu tiên, Rob Bowden. ROB Bowden: Hi. Tôi Rob. Đây là năm thứ sáu của tôi TFing trong khóa học. Vì vậy, tất cả các cách trở lại trong tôi năm thứ nhất, tôi đã không mất CS50. sinh viên năm nhất của bạn fall-- bạn có thể quen mà bạn chỉ có thể mất bốn khóa học và có rất nhiều các khóa học ngày hôm nay. Vì vậy, tôi thấy mình giống như, eh. Tôi lấy AP CS năm cuối cấp của tôi trường cao nó thật kinh khủng. Vì vậy, tôi là như thế, eh. khoa học máy tính không phải là cho tôi. Vì vậy, sau đó nó đã qua trình sinh viên năm nhất của tôi rơi, rằng tôi đã có một người bạn ở CS50, và Tôi nghĩ rằng tôi đã tham dự một bài giảng với cô ấy. Nó giống như, oh, đây là loại tốt hơn hơn những gì tôi đã có trong trường trung học. Và trong quá trình của các năm, tôi đã có bộ vấn đề của riêng tôi trong khóa học tôi đã thực sự tham gia. Nhưng tôi thấy rằng bất cứ khi nào tôi muốn trì hoãn trên những, Tôi sẽ quay trở lại và CS50 xem xét một số các công cụ đó. Vì vậy, yeah. Tôi ngầu. Tôi chần chừ với mã hóa. Vì vậy, sau đó nó vào cuối mùa thu mà tôi nhận ra, hey, khoa học máy tính là khá mát mẻ. Tôi sẽ chỉ dùng CS51. Trong học kỳ tiếp theo, Tôi sẽ chỉ dùng CS61. Và tất cả từ đó, sau đó tôi kết thúc khai báo khoa học máy tính, mà tôi đã có hoàn toàn không có ý định làm khi tôi bước vào đại học. Và bây giờ tôi đang ở đây. Vì vậy, tất nhiên là những gì bạn làm cho nó. Tôi hy vọng bạn thích nó. [VỖ TAY] DAVID Malan: Cảm ơn bạn Rob. Và bây giờ Maria, của chúng tôi đầu trợ lý khóa học. MARIA: Hey guys. Tôi tên là Maria. Tôi là một sinh viên năm hai ở Cabot House, đến từ Bulgaria, và tôi là siêu vui mừng được một phần của các nhân viên trong năm nay. Tôi lấy CS50 là một sinh viên năm nhất năm ngoái, và tôi không bao giờ thậm chí nghĩ về CS trước. Vì vậy, tôi hoàn toàn thích khóa học, và tôi hy vọng tất cả các bạn yêu thích nó nhiều như tôi đã làm. Và, yeah. Chào mừng bạn đến CS50. DAVID Malan: Cảm ơn bạn Maria. [VỖ TAY] Bây giờ Hanna, giảng dạy đầu của chúng tôi đồng. HANNA: Xin chào, tôi Hanna. Tôi là một cấp cao trong Cabot nghiên cứu khoa học máy tính. Tôi lấy CS50 là một sinh viên năm nhất và có được TFing-- này sẽ là năm thứ ba của tôi. Vì vậy, tôi sẽ được tham gia vui vẻ trong CS50 cho tất cả bốn năm, và tôi đang mong chờ để làm việc với tất cả các bạn. DAVID Malan: Cảm ơn bạn Hanna. [VỖ TAY] Và cuối cùng, Daven, precepter của chúng tôi. Daven: Hey guys. Tôi là một giới qua trong khoa học máy tính ở đây. Điều này sẽ được giảng dạy năm thứ tư của tôi. Tôi cũng giúp quản lý khóa học. Vì vậy, tôi chắc chắn bạn sẽ thấy tôi xung quanh, đặc biệt là vào giờ hành chính. Tôi luôn luôn ở giờ hành chính. Vì vậy, nếu bạn thấy tôi đi bộ xung quanh, chắc chắn đến thăm anh. Tôi thích gặp gỡ mọi người. Nếu không, vui chơi, và tôi sẽ xem bạn xung quanh. DAVID Malan: Cảm ơn bạn Daven là tốt. Vì vậy, bạn sẽ đáp ứng tất cả những người này trước khi dài. Nhưng mà không có thêm ado, nếu các bạn sẽ muốn tiếp tục chỗ ngồi của bạn từ trước đó. Cho phép tôi giới thiệu từ xa tại một số bạn bè của chúng tôi từ New Haven, trong đầu của khóa học cụ thể ai sẽ thắng? được giám sát CS50 there-- Giáo sư Brian Scassellati, Jason, và Andi, người just-- để chúng ta không cám dỗ số phận với bất kỳ FaceTime hoặc like-- tôi vừa gửi cho chúng tôi phút trước video sau mà họ nói lời chào từ giảng đường tại Yale, trong đó bài giảng đang được xem trực ngay bây giờ. Vì vậy, bạn bè của chúng tôi từ Yale. BRIAN SCASSELLATI: Hi, David. Hi, tất cả mọi người tại Harvard. Chúng tôi rất vui mừng được mang CS50 đến Yale học kỳ này. Tên tôi là Brian Scassellati, nhưng tất cả mọi người chỉ gọi tôi SCAS. Và tôi ở đây ngày hôm nay để giới thiệu cho bạn các nhân viên CS50. [HÂN HOAN] Và quan trọng hơn, tôi đây để giới thiệu cũng tất cả các học sinh ở Yale là sáng nay đã thực hiện điều này phổ biến nhất khóa học tại Yale các sinh viên CS50. [HÂN HOAN] Vì vậy, chúng tôi rất vui mừng để được nhìn thấy bạn ở đây vào thứ Sáu và ngày thứ bảy cho Puzzle ngày và có một bài giảng tuyệt vời. Từ biệt. [VỖ TAY] DAVID Malan: Trên màn hình ở đây là tên của một số nhân viên 140 thành viên đang chờ đợi bạn trong trình semester-- một số trong số họ đây tại Cambridge, một số của họ ở đây ở New Haven. Và thực sự, bạn sẽ có một cơ hội thứ bảy này, như ghi chú SCAS, để tham dự CS50 Puzzle ngày. Bạn có thể đã thấy mảnh ghép nhỏ trượt dưới cửa của bạn gần đây. Chúng tôi có một vài tính năng bổ sung ở đây sau này khi bạn tồn tại. Nếu bạn lắp ráp tất cả bốn câu đố mảnh và hợp nhất các lực lượng với phòng bạn gần đó trong bạn nhà hoặc ký túc xá, họ sẽ lắp ráp thành một code-- QR hoặc một hai chiều mã vạch, mà khi lắp ráp và quét với điện thoại của bạn sẽ dẫn bạn một số giải thưởng tuyệt vời or-- Tôi giả sử bạn chỉ có thể chụp ảnh này ngay bây giờ cũng. Nhưng tìm những mảnh ghép dù sao để giành chiến thắng mà giải thưởng tuyệt vời. Và thực sự là một trong những truyền thống trong SC50-- ah, quá chậm. Một trong những truyền thống trong CS50 là phục vụ bánh sau buổi giảng đầu tiên. Và như vậy thực sự, trong một vài từ giờ phút, sẽ có bánh phục vụ bên ngoài cả ở đây và New Haven là tốt. Nhưng first-- chúng tôi trang trí chúng ta. Nhưng first-- và hy vọng ở đó sẽ có đủ. Nhưng trước tiên, một cái nhìn nhanh chóng. Vì vậy, bài giảng được thực sự sẽ là sản xuất chủ yếu ở đây tại Cambridge. Nhưng mỗi tháng, chúng tôi sẽ nhảy xuống Yale với đội ngũ sản xuất CS50 và dòng khóa học trong ngược hướng cũng vì vậy như mang theo hai cơ sở này thực sự là lần đầu tiên trong lịch sử càng gần nhau càng tốt là một trong những khóa học tương tự. Xét về mặt cấu trúc hỗ trợ đó là được đứng lên đây ở Cambridge cũng như ở New Haven, là phần. Thật vậy, như một số bạn có thể biết, chúng tôi có các bài hát khác nhau trong khóa học cho những người kém thoải mái, thoải mái hơn, và nơi nào đó ở giữa để không phân biệt nền trước của bạn, bạn có thể cuối cùng thành công trong các lớp học. Thời gian làm việc trong khi đó, là một cơ hội vào các ngày thứ Hai và thứ Ba và buổi tối thứ năm để làm việc cả ở đây và ở New Haven vào khóa học của chúng tôi Vấn đề đặt ra với hàng chục nhân viên của khóa học gần bạn. Vấn đề đặt ra trong khi đó, là được hỗ trợ bởi những thứ mà chúng ta gọi walkthrough, được video dựa hướng dẫn mà thực sự trả lời các câu hỏi thường gặp về nơi để bắt đầu thách thức trong một tuần. Và postmortems đi bạn thông qua các giải pháp có thể để kết thúc Vấn đề đặt quá, bạn biết chính xác những gì bạn có thể làm khác nhau hoặc hoàn toàn khác. Vấn đề đặt ra cho mình đi trong hai phiên bản, một phiên bản tiêu chuẩn mà chúng ta mong đợi và mời nhất các class-- khoảng 90% cộng để do-- và một cái gọi là phiên bản của hacker mà mỗi trang là trang trí phù hiệu Hacker bản, hacker phiên bản, hacker phiên bản, để bạn có nghiệp mà nếu bạn sẽ, lặn vào các phiên bản cao cấp hơn bộ vấn đề của khóa học độ che phủ bề ngoài là các vật liệu tương tự nhưng với một cách tiếp cận phức tạp hơn và với nền thêm đôi khi giới thiệu. Trong khi đó, đang có chín ngày cuối năm đó bạn có thể áp dụng cho các vấn đề của khóa học bộ cũng như số điểm thấp nhất, mà chúng tôi thả tại các điều khoản cuối cùng. Nhưng những gì đang chờ đợi? Vâng, một hương vị của vấn đề đặt tay vào thứ Sáu và tuần tiếp theo, nơi chúng tôi đến lĩnh chỉ một vài ngày trong một cái gì đó gọi Scratch, một lập trình đồ họa ngôn ngữ được phát triển bởi những người bạn của chúng tôi tại Media Lab của MIT cho phép bạn chương trình hoặc là cho lần đầu tiên hoặc trong một môi trường hoàn toàn mới sử dụng kéo và thả môi trường loại. Nhờ đó mà mảnh ghép chỉ đan lại với nhau nếu nó làm cho cảm giác hợp lý để làm như vậy. Trong khi đó trong vấn đề thiết lập hai năm ngoái chẳng hạn, chúng tôi đã giới thiệu các lớp học với thế giới của mật mã, nghệ thuật mã hóa hoặc xáo trộn thông tin. Thật vậy, văn bản này ở đây nếu giải mã, sẽ thực sự dẫn bạn đến một số điểm đến thú vị. Và trong những vấn đề thiết lập, những gì chúng tôi đã có sinh viên làm là thực hiện chính xác những loại things-- một thuật toán, hoặc thiết lập các hướng dẫn xáo trộn và xáo trộn thông tin. Và trong phiên bản của hacker đó thiết lập cùng một vấn đề, chúng tôi đã thách đố học sinh để có một tập tin được mã hóa từ một máy tính điển hình hệ thống với rất nhiều tên người dùng và mật khẩu được mã hóa và để crack những passwords-- thực sự tìm ra chúng là gì mà không biết gì một tiên về những mật khẩu thực tế. Trong khi đó, chúng ta chuyển đổi trong các vấn đề bộ để sau đó nhìn vào thế giới đồ họa. Và trong thực tế, bạn có thể tưởng tượng bây giờ mà điều này có thể có lẽ là cách đơn giản nhất để đại diện cho một hình ảnh màu đen và trắng. Một điểm ảnh màu trắng, hoặc hình vuông, như ở trên bên phải có, có thể được đại diện với 1 và một hình vuông màu đen này được thể hiện với một 0. Và chỉ bằng cách sử dụng nhiều bit như chúng tôi đề xuất trước đó với 72 và 73 và 33, chúng ta có thể đại diện cho các điểm ảnh màu là tốt. Và những gì chúng ta làm trong suốt vấn đề thiết lập này là thường đi dạo xung quanh khuôn viên trường với một máy ảnh kỹ thuật số, chụp ảnh người, địa điểm và sự vật. Sau đó, bằng cách nào đó mỗi học kỳ, chúng ta dường như vô tình xóa hoặc bị hỏng thẻ nhớ mà trên đó tất cả những bức ảnh là, và do đó, bạn được thử thách để sau đó viết phần mềm nào đó để khôi phục lại những hình ảnh JPEG từ một bản sao của thẻ máy ảnh của chúng tôi. Trong khi đó, chúng ta đưa cho bạn sau này trong những hạn một từ điển các từ tiếng Anh có 143.000 từ, và bạn cần phải đi lên với một cách thông minh tải chúng vào bộ nhớ, hoặc RAM vậy để nói chuyện, để trả lời truy vấn có dạng: là này một từ, đây là một từ, thực hiện Kiểm tra chính tả nhanh nhất mà bạn có thể, thậm chí ghim mình có khả năng chống lại các bạn cùng lớp xem ai trong số bạn sử dụng số tiền ít nhất của thời gian khi chạy mã của bạn và thậm chí số tiền ít nhất của bộ nhớ. Sau đó trong thời hạn làm bạn thực sự thực hiện các máy chủ web của riêng bạn. Vì vậy, không chỉ là một trang web trong một ngôn ngữ gọi là HTML và nhiều hơn nữa, nhưng một máy chủ web mà thực sự lắng nghe các yêu cầu trên internet và đáp ứng cho họ. Và quả thực, đây là cách chúng tôi cầu thế giới của chúng ta về C mà bạn sẽ trở nên quen thuộc trong tuần tới và PHP và HTML và JavaScript và CSS và muốn. Bởi vì một trong những trang web đầu tiên dựa dự án chúng tôi làm sau này trong thuật ngữ là lịch sử CS50 Tài chính. Etrade.com phong cách một trang web cho phép bạn mua và bán cổ phiếu hầu như trong khi cũng viết code để nói chuyện với Yahoo Tài chính nhận bán chứng khoán thời gian thực trích dẫn để cập nhật danh mục đầu tư của riêng bạn. Nhưng cuối cùng tất nhiên, là project-- thức một cơ hội để làm bất cứ điều gì nhất quan tâm đến bạn để giải quyết một vấn đề ở đây hoặc vượt quá quan tâm đến bạn rằng bằng cách nào đó cảm hứng bởi những bài học kinh nghiệm trong lớp. Và các lớp, như bạn có thể biết, lên đến đỉnh điểm trong cái gọi là CS50 Hackathon và CS50 Fair và số bất kỳ các sự kiện văn hóa khác suốt học kỳ cho phép bạn tham gia vào với nhau và nhân viên của khóa học. Ví dụ, tại Fire và Ice trong Sitar năm nay, tốt, vào các buổi chiều thứ Sáu, chúng tôi mời một số 50 sinh viên đi ăn trưa, bất cứ ai muốn tham gia với chúng tôi, bản thân mình, và các nhân viên, và bạn bè của chúng tôi từ công nghiệp và cựu sinh viên để trò chuyện về cuộc sống trong thế giới thực và xa hơn nữa trong khi thưởng thức một bữa ăn trưa tốt. Tại Hackathon sẽ bạn nhìn thấy hình ảnh như vậy thế này, bao gồm nhiều candy-- và như năm 2014 cho time-- đầu tiên rau. [VỖ TAY] Nhưng bằng 05:00, hiện các cảnh thường nhìn một chút gì đó như thế này. Và sau đó chỉ cần một tuần hoặc như vậy sau này, là Hội chợ CS50 mà một số cộng 2000 sinh viên và nhân viên và giảng viên các thành viên từ khắp khuôn viên trường và giữa các trường trong năm nay đến xem và thỏa thích trong thành tựu của sinh viên CS50, mà bây giờ là bạn. Và quả thực, trong khi năm nay chúng tôi sẽ được mời và busing ai ở tại Yale người muốn đi đến Cambridge vào thứ Bảy này cho CS50 Puzzle Ngày, và chúng tôi sẽ làm điều tương tự vào tháng cho CS50 Hackathon để sinh viên Harvard và Yale chia sẻ cùng nhau trong cả hai sự kiện. Chúng tôi cũng sẽ tổ chức các hội chợ trong CS50 Cambridge và ở New Haven năm nay để sinh viên trên cả hai cơ sở và đội ngũ nhân viên và giảng viên có thể nhìn thấy nhau tương ứng tựu trường của. Và những thành tựu sẽ tạo ra bộ nhớ đó vì điều này và điều này và cuối cùng này, trong đó tất cả các bạn thoát khỏi lớp mặc một chút một cái gì đó trong đó bạn là hy vọng hạnh phúc hay tự hào nói rằng tôi đã CS50. Nhưng trước đó và trước khi chúng tôi phục vụ bánh, chúng tôi đã đưa together-- nhờ CS50 của Đội ngũ sản xuất và tự nhất định thanh, là dịp mà chúng tôi sử dụng những thứ như tôi-- khi chúng tôi đã gửi nó không chỉ ở đây đến Cambridge nhưng cũng đến New Haven để thu thập một vài hellos từ nhân viên của khóa học và tất cả các folks bạn sẽ gặp cả ở đây và ở New Haven trong những tháng sau. Cho phép tôi giới thiệu một thêm vài nhân viên CS50 của. Mark Zuckerberg: Đã làm điều đó làm cho nó đi? Oh, nó sẽ. Nó sẽ. Ooh. Yarr! [MUSIC CHƠI ANDY Grammer, "HONEY, I'M  GOOD "] MARY: Đây là Caitlin. Đó là Jay, và tôi là Mary. SATO: Hi, guys. Tôi Sato. MICHAEL G .: Hi. Tên tôi là Michael, G. DOUG LLOYD: Tôi không phải. Không. Tôi Doug Lloyd. Tôi không thể tin rằng tôi đang cầm một bức ảnh tự chụp dính ngay bây giờ. SPEAKER 4: Hi. SPEAKER 5: Hi. SPEAKER 6: Hello. SPEAKER 7: Hi. SPEAKER 8: Hey. Chúng tôi đang treo ra tại Yale. Chúng tôi thực sự vui mừng cho học kỳ này bởi vì nó Lần đầu tiên nó đến Yale. Nó sẽ là tuyệt vời! [NHẠC] JACOB SCHERBA: Tôi tên là Jacob Scherba. Tôi vui mừng để dạy CS50 vì tôi nghĩ rằng nó mang lại cho khoa học máy tính để người trong và cách tiếp cận. SPEAKER 9: Tôi thực sự vui mừng để dạy CS50 bởi vì tôi đã học năm ngoái, và đó là một trong những lớp học tốt nhất. SPEAKER 10: Yeah. Lời khuyên của tôi là bạn nên dùng CS50. JACOB SCHERBA: Tôi chọn CS vì Tôi nghĩ đó là một niềm vui và sáng tạo cách để giải quyết vấn đề một cách phân tích. SPEAKER 11: Quay lại khi tôi còn là một chút sinh viên năm nhất và sợ khoa học máy tính và sợ làm kỹ thuật và công cụ, nó là lớp cứng đầu tiên tôi mất, và nó cũng là môn học ưa thích của tôi bao giờ. DOUG LLOYD: Đây là của tôi năm thứ chín dạy CS50. Điều đó làm cho tôi nghe rất cũ! Luôn luôn có một cái gì đó mới. Luôn luôn có một cái gì đó thú vị. Luôn luôn có những thách thức mới đối mặt bởi sinh viên mới, và nó là thú vị để giúp chúng và trải nghiệm những thách thức với họ và giúp họ giải quyết vấn đề của họ. SPEAKER 12: Khi tôi lần đầu tiên học cách làm CS, nó giống như học một sức mạnh siêu. Và để thấy rằng trong những học sinh khác và để giúp họ vượt qua quá trình đó là một trong những nhất điều bổ ích tôi đã bao giờ hết. SPEAKER 7: Tôi đã chọn CS vì trong bắt đầu, tôi là một bộ tập trung toán và tôi đã CS50 và rơi vào tình yêu với nó. Tôi cũng cảm thấy rằng với CS, tôi có thể xây dựng mọi thứ. Và điều đó, tôi nghĩ, là một khía cạnh thực sự mát mẻ. SPEAKER 13: Một số lời khuyên cho các mới sinh viên là đi đến giờ văn phòng và đi chơi với awesome TF. SPEAKER 14: Bắt đầu P-TẬP_HỢP của bạn sớm, đi đến giờ làm việc, trở thành frends với TF của bạn. SPEAKER 15: Yeah. Tất cả mọi thứ cô nói. SPEAKER 16: Không có ngại yêu cầu giúp đỡ. SPEAKER 17: Yeah. SPEAKER 18: Bắt đầu P-TẬP_HỢP của bạn sớm. SPEAKER 19: Đó là một kinh nghiệm xã hội lớn. Làm cho rất nhiều bạn bè theo cách này. SPEAKER 14: Tới phần này thật thú vị. SPEAKER 11: Tôi có nghĩa là, hãy cho nó. Đó là thực sự khó khăn. Bạn sẽ nhận ra nó những gì bạn đưa vào nó, nhưng đó là một thực sự vui vẻ lớp học đặc biệt là nếu bạn đang sẵn sàng để đặt thời gian vào nó, nhưng nó sẽ giúp nếu bạn đặt thời gian vào nó. Bạn sẽ nhận được nhiều hơn ra khỏi nó sau này. MIKE: Tôi là Mike. Camille: Tôi Camille. Hanya: Tôi Hanya. MATT: Tôi là Matt. PETER: Tôi là Peter. PHILLIP: Tôi Phillip. PATRICK: Tôi là Patrick. ROB Bowden: Tôi là Rob Bowden. BRIAN SCASSELLATI: My tên là SCAS, và này-- ALL: --is CS50. SPEAKER 20: Tại Yale. SPEAKER 21: Tại Yale. [CƯỜI] DAVID Malan: Đó là nó cho CS50. Chúng tôi sẽ nhìn thấy bạn từ Yale Thứ sáu, Puzzle ngày vào thứ Bảy. Bánh hiện đang phục vụ. Đây là CS50. [NHẠC]