[NHẠC] Đây là CS50-- Harvard giới thiệu của Đại học với trí tuệ doanh nghiệp khoa học máy tính và nghệ thuật của chương trình. Và tôi tên là David Malan, và Tôi chỉ nghĩ sáng nay, nó được đáng kinh ngạc 20 năm nay kể từ khi tôi ngồi cuối cùng mà các bạn làm bây giờ. Đó là năm 1996. Tôi là một sinh viên năm hai, và tôi đã được tham gia CS50 cho lần đầu tiên. Và tôi đã thậm chí không nhận được lên các dây thần kinh lấy bản thân mình năm thứ nhất, một phần vì thời gian. khoa học máy tính với tôi đã được loại thích, meh. Tôi là một chút của một đam mê phát triển lên, nhưng tôi đã không thực sự có trí tuệ quan tâm đến những gì xuất hiện chỉ là một bó toàn bộ người lập trình tất cả các thời gian. Và tôi rất sợ phải trung thực. Các khóa học và khoa học máy tính hơn nói chung đã có và đến một mức độ nào, vẫn có uy tín này của một trường để hãy cẩn thận, nếu chỉ vì có quá nhiều người trong chúng ta không quen với nó và chắc chắn của nó. Và nó thực sự không phải là cho đến khi tôi đi mua sắm đây lớp thứ hai fall-- và thậm chí sau đó, tôi chỉ ghi danh vì professor-- một trong những cố vấn đầu tiên của tôi, Brian Kernighan tại Princeton-- cho phép tôi để có những đường chuyền đẳng cấp thất bại. Và quả thực, đó là lý do tại sao hôm nay chúng tôi cho phép và khuyến khích sinh viên học lớp này ngồi / unsat. Và chỉ sau đó, bởi các cuối học kỳ Tôi đã nhận ra như thế, wow, điều này không phải là một lĩnh vực xa lạ như vậy. Thật vậy, đây là một rất mạnh mẽ lĩnh vực, và sôi nổi hơn, đặc biệt là sau này, như tôi đã học trong Nghệ thuật Sân khấu 101 và Latin A và sau đó cuối cùng khảo cổ học grad, đã làm tôi thực sự bắt đầu để xem giao điểm của lĩnh vực này, máy tính khoa học, với các khoa học nhân văn, khoa học tự nhiên, nghệ thuật, y học, và như thế. Và đó là những gì chỉ như vậy gọn về khoa học máy tính cuối cùng, như chúng tôi hy vọng bạn sẽ see-- là ứng dụng của nó những lĩnh vực khác, và làm thế nào bạn có thể có một số của ngày hôm nay và các học kỳ ý tưởng và kỹ năng thực hành trở lại miền riêng của bạn, và thực sự khám phá ngã tư này của nghệ thuật tự do và khoa học. Vì vậy, 73% các bạn, nếu cuối cùng năm là bất kỳ dấu hiệu, không bao giờ lấy một khóa học CS trước. Vì vậy, nếu, như tôi, bạn là cảm thấy một chút sợ hãi, hoặc thẳng thắn bạn không thực sự chắc chắn lý do tại sao bạn ngay cả ở đây. Có lẽ bạn chỉ cần theo một số bạn bè lại Sanders ngay bây giờ. Đó là hoàn toàn tốt đẹp. Mục tiêu ở đây là để treo bạn và để trấn an bạn rằng nếu bạn nhìn vào bên trái và bên phải, bạn sẽ nhìn thấy các bạn cùng lớp với như kinh nghiệm ít hay nhiều mà bản thân bạn có thể có. Và quả thực, chúng tôi sẽ chia sẻ một số thống kê sau ngày hôm nay như những gì các nhân khẩu học của lớp thường như thế nào. Và như thêm reassurance-- và chúng tôi này không có nghĩa là kể từ khi tôi đã qua khóa học một số năm ago-- trong giáo trình của khóa học là này-- rằng những gì cuối cùng vấn đề trong khóa học này không phải là quá nhiều, nơi bạn kết thúc lên tương đối so với các bạn cùng lớp của mình, nhưng nơi bạn ở tuần 11, kết thúc của học kỳ, kết thúc tương đối so với chính mình trong tuần 0, đó là nơi chúng tôi đang ở đây ngày hôm nay. Và đây là những gì tôi nhận ra tất cả những năm trước đây. Và tôi biết rất nhiều các lớp học nói điều này, nhưng nó đặc biệt đúng trong khoa học máy tính. Vào cuối ngày, lĩnh vực này là không quen thuộc vì nó đã cho tôi và có thể là bạn, thực sự là chỉ là về giải quyết vấn đề. Và như vậy, nó không có điều này áp dụng để có được các lĩnh vực khác. Và trên thực tế, nếu chúng ta cố gắng chắt lọc những gì này có nghĩa là, đây là giải quyết vấn đề trong bản chất của nó, tôi dám chắc. Có input-- để bất cứ điều gì là bạn đang cố gắng để giải quyết. Có đầu ra, mà là hy vọng các giải pháp cho vấn đề đó. Và sau đó, như chúng ta sẽ nói trong khoa học máy tính, có hộp đen này trong giữa mà bạn không nhất thiết phải phải quan tâm đến cách thức hoạt động. Bạn mình cuối cùng có thể thực hiện những gì bên trong hộp. Nhưng đối với các mục đích của ngày hôm nay và nhiều hơn nữa nói chung trong cuộc sống, tất cả các bạn quan tâm là những vấn đề được giải quyết. Và tất nhiên đây là những gì cuối cùng về việc được khám phá giao điểm của các yếu tố đầu vào và đầu ra, và những cái gọi là thuật toán, như chúng ta sẽ sớm thấy, mà thực hiện những gì là bên dưới đó, mui xe. Nhưng những yếu tố đầu vào và các outputs-- những gì mà không thực sự nghĩa là gì? Vâng, vào cuối ngày, chúng ta cần một số cách để đại diện cho thông tin. Điều này đặc biệt đúng trong một máy tính, mà như lạ mắt và phức tạp vì nó có vẻ là một thiết bị khá ngớ ngẩn. Phải mất electricity-- dù từ một cáp hoặc pin như input-- và sau đó nó tạo ra một số phản ứng preprogramed trên màn hình. Nhưng làm thế nào để chúng ta có được từ bắt đầu để kết thúc ở đó? Vâng, những gì một vấn đề cần được giải quyết? Vâng, có lẽ chúng ta có thể, tại khi bắt đầu học kỳ, cố gắng để có mặt trong một căn phòng như thế này. Vì vậy, tôi có thể làm như một, hai, ba. Hoặc có lẽ, nếu tôi đã làm nó để loại theo dõi của myself-- để theo dõi things-- Tôi có thể nhanh chóng chạy ra khỏi ngón tay. Vì vậy, tôi chỉ có thể làm cho một băm marks-- người, hai, ba, bốn, năm, sáu, bảy tám. Và tất cả chúng ta có thể thực hiện điều này, cho dù trên tay của bạn hoặc trên một mảnh giấy. Và điều này là thực sự chỉ một cái gì đó gọi là nhất nguyên notation-- mà nếu bạn chỉ có một lá thư trong bảng chữ cái, một hoặc băm nhãn hiệu trong trường hợp này, đối với mỗi đầu vào bạn muốn đếm, bạn cần phải đặt xuống một trong những letters-- một trong các nhãn hiệu này. Tất cả các quyền. Đó là tất cả tốt và tốt và không phải tất cả những gì phức tạp. Nhưng máy tính không phải là tất cả nhiều phức tạp hơn. Thật vậy, hầu hết các bạn có thể biết ngay cả khi bạn đã không thực sự coi điều này có nghĩa, mà máy tính chỉ hiểu số không và ones-- cái gọi là hệ thống nhị phân. Con người chúng ta, trái lại, rất phức tạp hơn nhiều trong chừng mực như chúng ta hiểu số không qua nines. Nhưng ngay cả khi hệ nhị phân là, lúc đầu Trong nháy mắt, không phải tất cả những gì quen thuộc, nó quay ra nó chỉ giống như các hệ thống và những ý tưởng mà chúng ta đã biết. Vì vậy, ví dụ, xem xét việc này. Đây chỉ là một chuỗi các ký tự. Và tất cả các bạn, khi liếc nhìn nó, có lẽ nghĩ rằng không có gì 123-- thực sự thú vị ở đó. Nhưng tại sao nó số này, 123? Đây chỉ là glyphs trên màn hình-- chỉ mẫu nếu có người đã vẽ hoặc đánh máy. Nhưng nếu bạn đang như tôi, bạn có thể nhớ từ hồi phổ thông rằng có những loại cột hoặc nơi đây. Có nơi của một và nơi chục và vị trí của trăm. Và lí do này là 123 và không chỉ là một mô hình của ba biểu tượng là bởi vì, tất nhiên, nếu chúng ta có một trong các vị trí hàng trăm, bạn làm toán 100 lần một, và sau đó hai ở vị trí của mười. Vì vậy, đó là 10 lần 2, và sau đó ba trong vị thế của một và đó là 1 lần 3. Và khi bạn thêm tất cả những người lên, trong Tất nhiên, bạn nhận được 100 cộng với 20 cộng với 3. Vì vậy, chúng tôi bắt đầu chỉ với một mô hình của symbols-- một alphabet-- nhưng sau đó chúng được ánh xạ lên ý nghĩa nó bằng cách của các cột này. Vâng, nó chỉ ra rằng máy tính là thực sự không tất cả những gì khác nhau từ bạn và tôi. Nhưng thay vì sử dụng quyền hạn của 10, vậy để speak-- 1, 10, 100, 1000, 10.000 chỗ và do đó forth-- họ thực sự chỉ cần sử dụng quyền hạn của 2-- vì vậy người ta, 2, 4, và sau đó nếu chúng ta đặt thêm chữ số, 8, 16, 32, 64, 128, và vv. Và vì vậy đây là làm thế nào một máy tính sẽ đại diện cho số 0, giống như con người chúng ta. 0, 0, 0-- và bạn có thể đoán những mô hình của các số không và những người thân, nếu một máy tính chỉ có thể nói 0 hoặc 1-- gì mô hình sẽ đại diện cho số con người chúng ta biết như là 1? Yeah-- 0, 0, 1. Tất cả các quyền. Vì vậy, 0, 0, 1 là làm thế nào chúng tôi đại diện 1, do đó bạn có thể được nghiêng sau đó để đại diện cho số 2, nếu bạn có nơi của bốn vị trí của hai như một nơi, bạn có thể nói, tốt, nếu chúng ta có một 1 ở vị trí của một, và bây giờ chúng tôi muốn đếm đến 2, có lẽ bạn làm điều này và để lại điều này để có một số không. Nhưng tất nhiên điều này không phải là như thế nào hệ thống thập phân làm hai. Nếu bạn đặt một chữ số trong cả của các cột, bạn đã có để làm các phép tính số học. Vì vậy, những gì đã làm tôi số vô tình chỉ đại diện? Vì vậy, nó là 3, vì 2 lần 1 cộng 1 lần 1, tất nhiên, mang lại cho chúng ta ba. Vì vậy, đây sẽ là hai. Các bit loại flips, có thể nói, như là 0 trở thành một, giống như một vai trò trên 9 và trở thành một 0 khi bạn mang 1. Điều này sau đó sẽ là ba của khóa học. Four-- một điều thú vị xảy ra, nơi mà những người lăn và bạn mang 1, vậy để nói chuyện. Vì vậy, tất nhiên, là 4. Nhưng nếu bạn nhanh chóng chuyển tiếp hiện nay, số lượng lớn nhất sẽ là những gì để được rằng một máy tính có thể đại diện? Vì vậy, nó chỉ cần bảy trong trường hợp này, phải không? Bởi vì bạn có một trong bốn, một trong hai, một trong một. Vì vậy, đó là 4 cộng với 2 cộng với 1. Vì vậy, cung cấp cho bạn bảy. Và quả thực, nó sẽ dường như cái nhìn đầu tiên mà máy tính có thể đếm không cao hơn này. Nhưng điều này tất nhiên là không đúng sự thật. làm con người chúng ta phải làm gì khi chúng ta muốn để đếm cao hơn như 999? Chỉ cần thực hiện một và chỉ thêm một chữ số thứ tư bên trái. Và do đó, thực sự chúng tôi có thể. Chúng ta có thể có một tám của đặt và địa điểm của 16, và địa điểm của 32, 64, và bạn 128-- chỉ có thể tiếp tục đi trên lên đến vô cùng. Vì vậy, các số không và ones-- cái gọi là system-- nhị phân là những gì một nhà khoa học máy tính sẽ thường gọi một chút, hoặc chữ số nhị phân. Nhưng bây giờ, làm thế nào chúng tôi nhận được từ các khái niệm hoặc đồ họa của những điều này để một máy tính thực tế? Chúng tôi dường như bỏ qua một bước ở đây. Vâng, đầu vào chỉ ở cuối trong ngày, để máy tính xách tay của tôi ở đây là dòng này về điện. Ngay cả khi nó được một dài thời gian kể từ khi bạn nghĩ về hoặc không bao giờ nghĩ về cách thức hoạt động điện lực, có các electron chảy trong hoặc ra, và đó là loại của tôi về đầu vào. Vì vậy, nếu đó là tất cả những gì chúng tôi nhận như là đầu vào ở đây, những gì chúng ta có thể làm gì với thông tin đó? Vâng, chúng ta có thể nghĩ về một số không như chỉ là không có điện. Không có gì là flowinw, không có gì là di chuyển, không có gì đang xảy ra. Đó chỉ là mặc định state-- zero. Nhưng nếu có dòng điện chạy, tại sao chúng ta không chỉ là tùy tiện, nhưng trên toàn cầu nhất quán, gọi đó là một. Vì vậy, chỉ đơn giản là bởi không có điện, chúng tôi có một số không, có quyền lực, chúng tôi có một cùng-- không có quyền lực, có quyền lực. Và bằng cách đó, sử dụng giống căng thẳng hơn hoặc điện tử chúng ta bắt đầu thực hiện ý tưởng này của cái gì đó hoặc là một hoặc một số không. Thật vậy, chúng ta chỉ có thể làm điều đó ở đây. Vì vậy, ở đây, tôi không có ba nhưng tám bóng đèn, mỗi trong số đó có công tắc riêng của mình. Và vì vậy nếu tôi muốn đại diện cho số bảy ở đây, Tôi có thể bật ba bóng đèn. Và quả thực, bên trong máy tính của tôi là hàng triệu, tỉ những thứ chỉ nhỏ hơn, được gọi là bóng bán dẫn, chuyển mạch, bạn chỉ cần bật và tắt. Vì vậy, đây là những big-- tương đối tắc big-- bên laptop-- của tôi rất nhiều, nhiều, nhiều, nhiều công tắc hơn. Nhưng tất cả họ làm là chính xác mà-- biến một cái gì đó vào, bật một cái gì đó đi. Và như vậy, một máy tính có thể đại diện, với những triệu hoặc hàng tỉ của bóng bán dẫn, rất nhiều và rất nhiều số không và những người thân. Và có phần cứng khác vẫn còn đó cho phép bạn lưu trữ thông tin lâu dài, để khi bạn kéo cắm, bạn không mất nó. Nhưng đó là một câu chuyện cho một ngày khác. Vì vậy, những gì chúng ta có thể làm gì với những thứ này? Phải chăng chúng ta chỉ để mất áp lực giảm của tôi-- ai đó có thể muốn đến lên đây và đưa lên một bản demo? Tôi thấy bàn tay đầu tiên này. Tên bạn là gì? MADAY: MADAY. DAVID Malan: MADAY, đi lên trên. Rất vui được gặp bạn. MADAY: Rất vui được gặp bạn. DAVID Malan: Hãy đến theo cách này. Tôi sẽ không phải môi bạn lên. Tất cả các quyền. Vì vậy, ở đây, chúng ta có, notice-- một, two-- chúng tôi sẽ chỉnh sửa mà out-- một, hai, bốn, tám, 16, 32, 64, 128. Đây là chủ ý. Có tám bit đây-- nhị phân số không digits-- và những người thân. Và một chút là một đơn vị hữu ích của measure-- không hữu ích một đơn vị đo lường vào bản thân. Thông thường, bạn cần ít nhất tám trong số những điều này, còn được gọi là một byte. Vì vậy, chúng tôi có một byte bit ở đây. Vì vậy, nếu chúng ta muốn thách thức bạn với, Ví dụ, đánh vần ra, trong hệ nhị phân, giá trị này đây-- 42. Bạn muốn để mất một đâm vào đó? MADAY: [IM LẶNG]. DAVID Malan: Vâng, chỉ cần đẩy ít tắc màu trắng ở phía trước. Và bạn muốn đánh vần ra 42, và up for grabs là căng thẳng CS50 này bóng nếu bạn có được điều này. Tất cả các quyền. Vì vậy, bạn có 32. Chúng ta sẽ cần 42. Vì vậy, đó là một tám, vì vậy đó là 40. Và excellent-- rất độc đáo làm. Cho tôi biết. [VỖ TAY] Tất cả các quyền. Vì vậy, chúng tôi có một quả bóng căng thẳng hơn. Hãy làm điều này một lần nữa nếu chúng tôi có thể. Một tình nguyện viên khác? Miễn phí bóng căng thẳng, miễn phí quả bóng căng thẳng. ĐƯỢC. Trên đây ở giữa, bạn có muốn đi xuống? Tất cả các quyền. Tôi biết. Hiện chúng tôi đi. Vì vậy, những con số đây-- đến trên xuống. Tên của bạn là gì? Davey: Davey. DAVID Malan: Davey. ĐƯỢC. Đi lên, Davey. Rất vui được gặp bạn. Và những gì chúng ta sẽ có bạn spell-- nếu bạn có thể nán lại ở đó cho chỉ là một moment-- là số 50. Nhưng, nhưng, nhưng mà, nhưng, đây là những nam châm trường lớp cho một lý do. Chỉ cần có khó khăn hơn một chút, tất cả phải không? Vẫn còn tám. Tất cả các quyền. Vì vậy, chúng ta có gì trên đó? Chúng tôi có 32. Tốt đẹp. 32 cộng với 16 cho chúng ta 48-- rất gần. Và tuyệt vời. Xin chúc mừng Davey là tốt. [VỖ TAY] Tất cả các quyền. Vì vậy, chúng ta có thể làm điều này cả ngày dài, và nó không có được tất cả những gì nhiều hơn nữa thú vị và thử thách hơn. Nhưng đó thực sự là point-- là cách tương đối đơn giản đó là, vào cuối ngày, những gì một máy tính nào để lưu trữ thông tin, để lưu trữ các đầu vào và cuối cùng lưu trữ hoặc đại diện cho những kết quả đầu ra. Nhưng số mình không tất cả những gì thú vị. Vì vậy, con người, một vài năm trước đây, quyết định, bạn biết những gì? Nó sẽ được tốt đẹp nếu máy tính không chỉ là tính cho số học hoạt động, nhưng thực sự có thể làm những việc như xử lý văn bản, hoặc email, hoặc hóa thân hiện đại hơn của các loại công nghệ. Và như vậy trên thế giới đã quyết định tùy tiện, nhưng phổ, rằng nếu bạn muốn để lưu trữ các nguồn vốn chữ A trong một máy tính, bạn biết những gì? Hãy chỉ tất cả đồng ý để lưu trữ một số mô hình của các số không và ones-- bits-- mà cuối cùng đại diện cho số thập phân 65. Chúng tôi sẽ chỉ cần tất cả đồng ý về điều đó. 66 sẽ đại diện cho B, 67 sẽ đại diện cho C, và có chùm mô hình khác số không và những người thân, hoặc số cơ bản, mà sẽ đại diện chữ cái khác vẫn còn. Vì vậy, nếu bạn loại tinh thần hấp thụ này trong một thời điểm, Tôi cố tình đặt lên A đến Tôi, nơi H 72 và I là 73. Nếu một máy tính sau đó, trong bối cảnh một chương trình xử lý văn bản hoặc một e-mail, hiện ra bên dưới mui xe để có các mô hình của mô hình bits-- bit đại diện 72, sau đó 73, sau đó 33-- điều này có thể đánh vần trong chương trình? Vì vậy, hi, và sau đó một cái gì đó. Chúng tôi không nhất thiết phải biết, nhưng thực sự 33-- không phải trên biểu đồ earlier-- đơn giản chỉ là một dấu chấm than. Vì vậy, 72 là H, 73 tuổi là tôi, 33 xảy ra là một dấu chấm than vẫn còn. Nhưng đó là tất cả tốt và tốt, và trong thực tế hiện nay, chứ không phải là chỉ cần sử dụng bảy hay tám bit, nhờ vào một cái gì đó gọi là Unicode như trái ngược ASCII trở lại trong ngày, chúng tôi thực sự có thể đại diện cho hơn nhân vật thú vị hơn là chỉ những gốc tiếng Anh thiên thư. Nhưng chúng ta cũng có thể đại diện thậm chí thứ gọn gàng như màu sắc. Nếu bạn đã từng nghe từ viết tắt RGB, đỏ, xanh lá cây, xanh dương, mà chỉ có nghĩa là một máy tính thường sử dụng ba bộ bits-- một số số bit đại diện cho một số cho bao nhiêu màu đỏ bạn muốn, một tập hợp các bit cho bao nhiêu màu xanh lá cây mà bạn muốn, và một số thiết lập cho bao nhiêu màu xanh bạn muốn. Vì vậy, một số lượng lớn có nghĩa là rất nhiều màu đỏ, số lượng nhỏ có nghĩa là không có màu đỏ. Và do đó, đây là những loại các giá trị trung ở đây. Vì vậy, cho tôi một số màu đỏ, cho tôi một số màu xanh lá cây, và đưa cho tôi một chút màu xanh. Và nếu bạn trộn ba màu màu sắc với nhau, trong trường hợp này, bạn nhận được bóng râm âm u này màu vàng hoặc nâu. Nhưng đó mô hình của tám cộng với tám cộng với eight-- quá 24 bits-- trái sang phải, là làm thế nào một máy tính sẽ đại diện cho màu đó. Bây giờ đây chỉ là một dấu chấm trên một màn hình. Nếu bạn nhìn thật gần vào TV của bạn của bạn máy tính, bạn sẽ thấy dấu chấm hoặc pixel. Và nếu bạn có một mạng lưới toàn bộ pixel, chiều ngang và theo chiều dọc, bạn có hình ảnh. Và sau đó nếu bạn đi một hình ảnh và sau đó rửa cho mình hình ảnh khác, một hình ảnh, hình ảnh khác, hình ảnh khác, thực sự nhanh chóng, bạn tất nhiên có phim. Và do đó, nhận thấy nơi chúng tôi bắt đầu. Chúng tôi bắt đầu với những số không và những người thân. Chúng tôi làm việc từ đó đến thập phân số, làm thế nào chúng tôi đại diện cho họ. Bây giờ chúng ta có chữ của bảng chữ cái. Nhưng trong bối cảnh khác chờ đợi, chúng ta có thể sử dụng một vài bit hơn và thể hiện màu sắc. Ngay sau khi bạn có khả năng thể hiện màu sắc, bạn có khả năng để đại diện cho hình ảnh và hình động và các nhân vật khác như vậy trên màn hình. Và khi bạn có một bó toàn bộ hình ảnh bay của con người cùng một lúc, nó trông giống như hình ảnh chuyển động, và do đó bạn có được đoạn video là tốt. Vì vậy, sử dụng những rất nguyên thủy đơn giản chúng ta có cách đại diện cuối cùng là tất cả các hình thức truyền thông. Và chúng tôi đã tóm tắt lại và một lần nữa và một lần nữa, cho đến khi chúng tôi nhận được từ mức thấp nhất lên mức cao nhất này. Vì vậy, cung cấp cho chúng ta điều này ý tưởng chung của sự trừu tượng. Nhưng chúng tôi bắt đầu ở đây. Ở đây bây giờ, chúng ta có thể đại diện trong một máy tính đầu vào của chúng tôi với số không và những người thân, kết quả đầu ra của chúng tôi trong số không và những người thân, nhưng những gì diễn ra bên trong hộp? Đó là nơi mà máy tính khoa học trở nên thú vị. Đó là nơi mà bạn thực sự mang lại cho bạn tâm trí của riêng chịu để giải quyết vấn đề. Bây giờ chúng ta có thể quy định, đối với các phần còn lại của học kỳ, có. Tôi biết cách làm nhị phân. Tôi nhớ cách Ascii hoặc Unicode-- các bản đồ để letters-- công trình. Và chắc chắn nó đứng với lý do chúng tôi rằng có thể đại diện cho màu đỏ và màu xanh lá cây và màu xanh, và đại diện cho đa phương tiện là tốt. Nhưng đây là những thứ thú vị. Đây là những gì làm cho một người nào đó khả năng giải quyết vấn đề. Và một trong những vấn đề như vậy chúng tôi muốn làm, thực sự, đang tham dự, hoặc làm điều này thuật toán. Và một lần nữa, tôi có thể làm điều này. Tôi có thể làm một, hai, ba, bốn năm, sáu, bảy, tám chín. Và tôi có thể viết xuống để theo dõi nó. Nhưng đó chỉ là cách tôi sẽ đại diện cho các thông tin. Hoặc tôi có thể làm điều này faster-- hai, bốn, sáu, tám, mười, 12, 14, 16, 18, 20, 22-- nó cảm thấy như hai lần nhanh nhưng nó vẫn còn sẽ mất rất nhiều toàn bộ thời gian. Nhưng hóa ra, nếu chúng ta tận dụng chưa một máy tính resource-- và thực tế những ngày này có nhiều CPU hoặc bộ não. Hóa ra các máy vi tính làm rất nhiều việc cùng một lúc, và thực sự chúng ta, trong căn phòng này, có thể đại diện cho chính xác này. Vì vậy, nó là một chút về mặt xã hội vụng về, nhưng nếu bạn sẽ hài hước tôi cho chỉ là một quá trình ba bước, chúng ta hãy tôi hỏi tất cả mọi người ở nơi đó chỉ đứng lên một lúc. Đứng lên. Vì vậy, nghĩ đến bản thân, số cùng-- để mọi người trong căn phòng này, ngoại trừ những người không bắt buộc, đang suy nghĩ số một. Vì vậy, đó là số của bạn ngay bây giờ. Đó là bước đầu tiên, hoặc là một khoa học máy tính hoặc một lập trình viên thường sẽ làm, chúng ta sẽ để bắt đầu đếm từ số không. Nếu số lượng nhỏ nhất chúng ta có thể đại diện với những bóng đèn là số không, bởi chỉ cần để lại cho họ tắt tất cả, tôi có thể cũng chỉ cần bắt đầu đếm từ zero là thay vì một. Và đó là những gì các nhà khoa học máy tính làm. Vì vậy, bước không, đứng lên và nghĩ của số một. Bước tiếp theo là này-- cặp đi với một người nào đó đứng và thêm số của bạn với nhau. Quá tuyệt vời. Vì vậy, tại thời điểm này trong thời gian, nghĩa là tất cả mọi người tham gia được nghĩ đến con số 2, ngoại trừ cho một người kỳ lạ nếu chúng ta có một số lẻ của người trong phòng. Và bây giờ là bước thứ ba ở đây là sẽ được này-- một trong các bạn nên ngồi xuống. Một trong những bạn nên ngồi xuống, và nếu bạn vẫn đứng, quay lại bước một. Tất cả các quyền. Tất cả các quyền. Vì vậy, ngày càng nhiều người nên được ngồi xuống. Chú ý rằng điều này đã gây ra một loop-- một số loại chu kỳ. Một số bạn nên lúng túng khó khăn, đi qua lại giữa các bước một và hai, một và hai, một và hai. Vậy là được rồi. lỗi đầu tiên của chúng tôi. Chúng tôi sẽ đối phó với điều đó. Tất cả các quyền. Hãy để tôi cố gắng để thúc đẩy những thứ cùng. Về lý thuyết, chỉ có một người đang đứng như mọi người vẫn tiếp tục bắt cặp. Nhưng hãy để tôi đẩy nhanh tốc độ với những người vẫn còn đứng. số gì bạn đang nghĩ đến? 46. ĐƯỢC. Đi trước và ngồi xuống. Các bạn vẫn còn đang đứng. Ai vẫn đứng vững? số gì bạn đang nghĩ đến? ĐƯỢC. Vì vậy, chúng tôi sẽ trở về với bạn. Ở phía sau? Đó là gì? 22. OK người khác lên top-- yeah? 34. ĐƯỢC. Trên đây trên right-- tôi lên đây? 132, rất đẹp. 22? ĐƯỢC. Và người vẫn đứng vững? Ở đây? 46 tuổi, rất đẹp. 72. Tôi không thể trì hoãn lâu hơn nữa. Yeah? 30, tốt đẹp. Ở đây? 23? 23. Và tôi nghĩ rằng đó là tất cả mọi người ngoại trừ các bạn, không có áp lực. Oh, chờ đợi. 28? Chỉ cần tám. ĐƯỢC. Chỉ cần tám. Xuống đây? 30. 23. 24. 18. Đây là việc thực hiện tồi tệ nhất của thuật toán này bao giờ. ĐƯỢC. Vì vậy, bất cứ ai khác? Ai khác? ĐƯỢC. Một lần nữa. 16? ĐƯỢC. 16. Tất cả các quyền. Vì vậy, nếu tôi đã không bỏ lỡ bất cứ ai trong ánh sáng chói ở đây, khi tôi nhấn Enter, chúng ta sẽ thấy, thuật toán, các tổng số người trong Sanders. Bởi vì một lần nữa, nó giống như tất cả mọi người khi bạn ngồi xuống, thông qua số điện thoại tắt cho người khác, cho người khác, cho người khác, vì vậy mà trong lý thuyết, cuối cùng, chỉ một lúng túng người nên để đứng. Nhưng đó là tốt. Chúng tôi đẩy mọi thứ lên bằng tay. Nó đặc biệt khó khăn để xem trong không gian đặc biệt này. Và tổng số người chúng tôi nghĩ rằng có ở đây là 546. Tổng số tôi là tay bởi các nghiên cứu sinh giảng dạy, người đã làm nó cũ học cách chậm chạp, là 820. [CƯỜI] [VỖ TAY] Vậy là được rồi. Vì vậy, chắc chắn sau đó, có những lỗi. Và đó là tốt. Và do đó, nghĩ lại về điều này một cái gì đó lần đầu tiên bạn viết không nhất thiết phải làm việc. Điều này đã xảy ra với tôi ở đây là tốt. Nhưng bây giờ chúng ta xem xét làm thế nào chúng ta có thể áp dụng ý tưởng này cùng với một cái gì đó bạn có thể đã thấy trước đó, mà là công nghệ học đây-- cũ này một cuốn sách điện thoại thực sự lớn. Và giả sử rằng cuốn sách điện thoại này có 1.000 trang và 1.000 tên và số thứ tự abc bên trong của nó. Vâng, chúng tôi loại có thể áp dụng tương tự ý tưởng cho vấn đề rất vật chất này, chỉ lợi dụng tôi. Tôi chỉ cần loại lừa bằng cách tận dụng tất cả các bạn với rất nhiều và rất nhiều CPU khác nhau hoặc bộ não thực hiện một số thuật toán. Nhưng nếu nó chỉ là chút cũ của tôi, tôi vẫn có thể tận dụng đó cùng bản chất của một ý tưởng phân chia và chinh phục vấn đề đó một lần nữa và một lần nữa, trong đó một nửa của bạn, một nửa của bạn, một nửa của bạn, một nửa của bạn, về mặt lý thuyết vẫn ngồi xuống, cho đến khi chúng tôi đã rời đi, về mặt lý thuyết, với chỉ một người. Vì vậy, trong trường học cũ này technology-- chúng tôi không cần này map-- này công nghệ trường học cũ, chúng ta có thể bắt đầu tìm kiếm một ai đó thích Mike Smith, một trang tại một thời điểm. Và tôi thấy rằng không có, Mike không có ở đây. Tôi vẫn còn trong phần A. Cuối cùng, tôi tìm bản thân mình trong phần B. Và đây là một algorithm-- bước theo các bước hướng dẫn. Bắt đầu vào đầu và một trang tại một thời điểm, tìm kiếm Mike Smith. Đây có phải là correct-- này thuật toán hoặc cách tiếp cận? Vâng, đó là chính xác. Nếu Mike ở đây, cuối cùng Tôi sẽ có được anh. Nhưng nó không hiệu quả. Đó rõ ràng là rất chậm. Vì vậy, tôi có thể tận dụng các cùng twosies tiếp cận. Tôi có thể làm loại hai, bốn, sáu, tám, 10, 12. Đó là nhanh gấp hai lần. Tôi sẽ có được để Mike nhanh hơn nếu anh ta ở đó. Nó có đúng không? Có, nhưng tôi nghe một không little--. Bây giờ tôi nghe một không. Yeah. Có một lỗi tiềm năng. Có lẽ Mike chỉ vô tình được kẹp giữa hai trang, bởi vì tôi đang bay qua hai này tại một thời điểm. Vì vậy, ít nhất chúng ta cần một số loại sửa chữa điều kiện. Tôi cần phải nói, hey, nếu tôi nhấn một người mà Tên bắt đầu với một T thay vì một S, Tôi đôi tốt hơn lại ít nhất một trang. Vì vậy, lỗi lúc đầu, nhưng có thể cứu vãn. Nhưng không ai trong chúng tôi sẽ xem xét cho Mike Smith qua điện thoại 1000 trang đặt một trang tại một thời điểm. một người bình thường sẽ làm gì? Bạn đang đi đến của S, nếu bạn biết nơi của S. Bạn có thể đi gần đến giữa hoặc hơi nghiêng về phía cuối. Và tôi nhìn xuống đây và Tôi đang ở phần M. Nhưng những gì bạn biết về vấn đề này ngay bây giờ, rằng chúng ta không nhất thiết phải biết trước với tất cả chúng ta chỉ cần đếm mình tương đương? Vâng, Mike sẽ rõ được trong hiệp này của cuốn sách nếu anh ta ở đây cả vì nó được sắp xếp. Và như vậy bạn có thể rất dramatically-- [Thở hổn hển] Tôi biết. [VỖ TAY] Nó thực sự dễ dàng nếu bạn làm điều đó cả xương sống ở đó. Nhưng sau đó bạn có thể ném một nửa của vấn đề đi. Bây giờ, tôi là trái với các problem-- cùng tìm Mike Smith trong một điện thoại book-- nhưng bây giờ các cuốn sách điện thoại bắt đầu tại M và đi đến Z, nhưng đó là một nửa là lớn. Nhưng đây là những gì ấn tượng. Cũng giống như trong lý thuyết, các bạn, khi tất cả các bạn ngồi xuống chỉ còn một nửa tại một thời điểm, các vấn đề có một nửa là lớn, một nửa là lớn, một lần nữa và một lần nữa. Vì vậy, vấn đề này đã trở thành cùng một vấn đề nhưng một nửa là lớn. Bây giờ nó là một vấn đề 250 trang. Ngay sau khi tôi nhận ra, oh, tôi trong phần T vô tình. Tôi đã đi quá xa. Tôi có thể ném một nửa của cuốn sách điện thoại đi. Bây giờ, tôi xuống một quý của vấn đề. Và bạn có thể lặp lại, lặp lại, lặp lại cho đến khi, trong lý thuyết, bạn còn lại chỉ có một trang. Và nếu Mike là trên trang đó, bây giờ tôi có thể giải quyết vấn đề này. Nhưng làm thế nào nhanh chóng đã làm tôi giải quyết nó? Trong trường hợp đầu tiên, nó đã cho tôi như có 1.000 bước sau để tìm Mike Smith. Nó có thể đã lấy tôi-- Tôi nhặt cuốn sách điện thoại và tôi bắt đầu tìm kiếm một trang tại một thời gian, và Mike có thể là 1.000 trang sau. Cách tiếp cận thứ hai có lẽ tôi phải mất 500 bước, bởi vì tôi đang bay thông qua hai tại một thời điểm. Và cách tiếp cận thứ ba mặc dù, nó đặc biệt mạnh mẽ. Nhưng chúng ta hãy xem xét những gì chúng ta thực sự đã làm với cách tiếp cận thứ ba này. Tôi sẽ có những gì tôi sẽ gọi chỉ những báo cáo vào đây, tại một thời điểm. Chọn một cuốn sách điện thoại. Mở đến giữa cuốn sách điện thoại. Nhìn vào tên. Và sau đó mọi thứ có được một chút trí tuệ thú vị hơn, nếu vẫn còn đơn giản. Nếu Smith là một trong những tên trên trang hiện tại, sau đó làm một cái gì đó có điều kiện. Nó giống như một ngã ba đường. Gọi Mike. Nếu Mike là một trong số những cái tên trên trang đó, gọi là Mike. Nhưng chỉ làm dòng bốn nếu dòng cây, nếu bạn sẽ, là đúng. Câu trả lời cho câu hỏi đó là có. Else if Smith là trước đó trong book-- nói cách khác, nếu anh ở phần M và tôi đang tìm một người nào đó bên trái, sau đó những gì tôi nên làm là một cái gì đó rất giống nhau. Sau đó, tôi phải mở đến giữa của nửa trái của cuốn sách. Vì vậy, đi lại, và sau đó quay lại bước hai. Nhìn vào những cái tên đó. Vì vậy, nói cách khác, làm điều tương tự, nhưng về một vấn đề đó là được giảm một nửa. Bạn biết những gì khác? Nếu Smith là sau này trong cuốn sách dựa trên trang tôi đang nhìn vào, mở cửa cho vào giữa nửa bên phải của cuốn sách và sau đó quay trở lại một lần nữa bước hai, else-- có một khả năng thứ tư ở đây. Mike tại đây hoặc sang trái hoặc bên phải hoặc không có. Và ở đây chúng ta nên xem xét việc này. Và trên thực tế, nếu bạn đã từng có máy tính của bạn chỉ cần đụng vào bạn, đó là đôi khi, nhưng không phải lúc nào, các kết quả của chỉ một lập trình của con người không nhận ra, oh bắn, có thực sự kịch bản thứ tư này. Và nếu bạn không viết mã để xử lý kịch bản đó, đôi khi bạn không biết những gì máy tính có thể làm. Và thực sự là một chương trình có thể sụp đổ. Nhưng trong trường hợp này, tôi nghĩ về nó, và tôi đã nói, nếu không bỏ thuốc lá, bởi vì đó là thứ tư kịch bản hợp lý có thể. Bây giờ, bạn chỉ cần thêm một số từ vựng vì vậy chúng tôi có thể bắt đầu quăng xung quanh thuật ngữ nếu không thì khá trực quan. Tất cả những điều tôi đã chỉ đánh dấu màu vàng ở đây, Tôi chỉ cần đi đến các chức năng hoặc thủ tục. Chúng chỉ là những loại hành động. Vì vậy, lấy, mở cửa cho, nhìn tại, gọi, mở, mở, quit-- đây chỉ là hành động, hoặc chúng tôi sẽ gọi họ là chính thức hơn, chức năng. Trong khi đó, bây giờ trong màu vàng, Tôi đã nhấn mạnh điều mà-- chúng ta hãy bắt đầu cuộc gọi chúng điều kiện hoặc các chi nhánh. Đây là những điểm quyết định nơi bạn có thể đi theo con đường này, theo cách này, hoặc một số hướng khác vẫn còn. Vì vậy, những người sẽ là điều kiện. Và bây giờ con này fancier một chút. Hãy gọi cho những câu hỏi này biểu thức Boolean sau khi một người nào đó với một tên cuối cùng Bool. Và một biểu thức Boolean chỉ là một cái gì đó đó là đúng hoặc sai, có hoặc không. Vì vậy, nó là câu hỏi mà câu trả lời của bạn quan tâm, để trong một điều kiện làm cho một decision-- nhận lại một câu trả lời, và sau đó đi sang trái hoặc phải, hoặc một cái gì đó khác hoàn toàn. Và rồi cuối cùng, những dòng đây-- đi lại bước hai, trở lại bước two-- chúng ta có thể thực hiện ý tưởng này theo những cách khác nhau. Và sau đó những người bạn với kinh nghiệm lập trình có thể đã thực hiện hoặc có thể tưởng tượng được làm điều này một cách khác nhau. Nhưng đối với các mục đích của ngày hôm nay, đó là chỉ là ý tưởng có vấn đề. Đây là những gì gây chúng ta thường sẽ gọi một loop-- một số loại chu kỳ, bởi vì nó làm cho tôi làm điều gì đó một lần nữa. Vì vậy, bây giờ, chúng ta hãy chỉ xem xét cách tốt thuật toán này là. Đúng. Nếu Mike trong cuốn sách, nó là một trong bốn scenarios-- một lần nữa và một lần nữa và một lần nữa, chúng ta sẽ tìm thấy anh ta. Nhưng làm thế nào tốt là nó? Vâng, chúng tôi không có là quá chính thức ở đây. Nhưng chúng ta hãy chỉ vẽ một cái gì đó, x và y, để có được một cảm giác hình dạng của vấn đề này. Trên trục x ở đây là kích thước của vấn đề của tôi. Và họ một trục y ở đây sẽ là thời gian để giải quyết. Vì vậy, có lẽ đây là số lượng trang. Có lẽ đây là giây hoặc Trang turns-- bất cứ điều gì. Tuy nhiên bạn muốn tính là những hình ảnh này sẽ đại diện. Và đó là thuật toán đầu tiên, tôi sẽ để mô tả như chỉ là một đường thẳng. Nếu có n trang trong danh bạ điện thoại, sau đó nó có thể đưa tôi nhiều như các bước n để tìm Mike. Nếu Verizon hoặc các công ty điện thoại thêm một trang khác trong năm tới, nó có thể đưa tôi thêm một step-- thêm một đơn vị thời gian để tìm Mike. Vì vậy, chỉ có một này với một tỷ lệ. Đó là một dòng dốc thẳng. Trong khi đó, rằng thứ hai algorithm-- nếu tôi đi hai tại một time-- hai, bốn, sáu, tám, hoặc double-- đi qua các trang hai lần tại một thời điểm, hai người tại một thời điểm, nó vẫn còn đường thẳng. Bây giờ có một 01:59 tỷ lệ, nhưng chỉ thấp hơn một chút. Vì vậy, nếu có nhiều trang này trên bảng xếp hạng ở đây trong màu vàng, mà có thể đưa tôi này nhiều bước hoặc giây, nếu không nó sẽ đưa tôi hai lần như nhiều vào dòng màu đỏ. Nhưng dòng màu xanh lá cây là takeaway thực. Đây là những gì chúng ta thường gọi một bản ghi logorithm-- n, trong đó n là số trang. Nhưng đó là hình dạng mà những vấn đề ngày hôm nay, bởi vì chúng tôi không có ngay cả suy nghĩ về âm mưu điểm. Hãy suy nghĩ về một kịch bản cực đoan. Giả sử ngày mai Verizon tăng gấp đôi số trang trong cuốn sách điện thoại, từ 1.000 đến 2.000. Trong thuật toán đầu tiên, tôi có thể lãng phí thêm một 1000 bước tìm kiếm Mike, chỉ vì Verizon tăng gấp đôi kích thước của cuốn sách. Thứ hai nó có thể algorithm-- đưa tôi thêm 500 bước. hơn 1.000 trang, tôi đi hai tại một time-- hơn 500 bước để tìm Mike. Nhưng đó thuật toán thứ ba là loại ma thuật. Verizon tăng gấp đôi số các trang từ 1.000 đến 2.000, nhưng làm thế nào nhiều hơn nữa các bước làm nó đưa tôi đến tìm Mike? Nó chỉ là một, bởi vì tôi có thể chỉ xé cuốn sách điện thoại một lần nữa từ một vấn đề 2.000 trang một 1000 vấn đề trang, và thì đấy. Tôi đã lấy một miếng lớn ra khỏi nó. Và nếu bạn đi thực sự cực đoan, giả sử rằng các cuốn sách điện thoại công ty đã có một cái gì đó điên rồ như một điện thoại cuốn sách 4 tỷ trang. Vâng bao nhiêu bước nó có thể mất để tìm Mike Smith trong một 4 tỷ Trang điện thoại cuốn sách? Đó là một con số lớn, nhưng chỉ 4 tỷ 2000000000-1000000000 để 500 triệu đồng, 250 million-- vẫn Nghe có vẻ như con số lớn, nhưng tôi rất nhanh chóng nhận được các giá trị nhỏ hơn. Và trên thực tế, nếu tôi làm toán Đúng vậy, tôi chỉ có thể chia 4 tỷ bằng khoảng 32 lần trước khi Tôi nhận được xuống để chỉ một. Vì vậy, nếu cuốn sách điện thoại đã được 4 dài tỷ trang, không có việc lớn. Trong vòng vài giây, có thể 32 giây, tôi có thể chia nó thành một nửa và cuối cùng tìm thấy Mike hay kết luận rằng ông không có ở đó. Và đó là bản chất của một algorithm-- một thuật toán tốt. Và đó là một trong những mục tiêu của một lớp học như thế này, đang cố gắng tìm hiểu làm cách nào giải quyết vấn đề không chỉ là một cách chính xác, như tôi luôn biết làm thế nào để làm điều đó một trang tại một time-- nhưng đúng và tốt. Làm thế nào để thiết kế tốt giải pháp cho vấn đề này? Vì vậy, hãy dành một chút thời đây và cung cấp cho bạn một ý nghĩa bây giờ của CS50 khóa học itself-- giới thiệu nhân viên một vài khóa học của. Ngay trước khi 02:00, chúng tôi sẽ nghỉ ngơi ngắn vì vậy mà những người bạn người đang mua sắm có thể vịt ra và đi xem xét một số lớp khác và xem phần còn lại của tuyến này. Nhưng bây giờ, hãy để tôi giới thiệu CS50, chính lớp, và đặc biệt là những gì là mới. Vì vậy, vào mùa xuân vừa qua, chúng tôi dành khá nhiều time-- nhân viên của khóa học và I-- nghĩ về những gì nó là chúng tôi muốn CS50 được, và sẽ trở lại đầu tiên nguyên tắc, có thể nói, để xem xét những gì nó là chúng tôi muốn Tất nhiên điều này trông giống như và được như đối với sinh viên của mình. Và như vậy bạn sẽ thấy trong vấn đề thiết lập không là tốt, một lời mời để có một cái nhìn lúc đó URL mà tóm tắt một số trong những động lực đằng sau sau đặc điểm của mùa thu năm 2016. Vì vậy, như bạn có thể lượm lặt từ TL: Bản tin DR, giáo trình hôm nay cũng như từ catalogue nhiên, năm nay CS50, bạn chỉ sẽ tham dự today-- nên công việc cũng done-- và các bài giảng cuối cùng vào ngày 21 Tháng Mười Một. Và bạn đang chào đón nhưng không dự kiến tham dự các bài giảng ở giữa, bởi vì những gì chúng tôi đang làm năm nay, được chụp trong thời gian thực các tài liệu của khóa học. Vì vậy, tất cả mọi thứ sẽ ở lại hiện tại và kết hợp là tốt nhất chúng tôi can-- các sự kiện hiện tại và cuộc hội thoại mà folks might thể có trong ngành công nghiệp trong thế giới, nhưng làm cho vật liệu có sẵn, kết quả là, ngay cả earlier-- hoàn chỉnh với bảng điểm toàn văn và khả năng tìm kiếm và liên kết đến các nguồn tài nguyên khác. Và quả thực, chúng tôi đã tuyên bố trong một thời gian và bây giờ chúng tôi tin điều này, rằng chúng ta có thể tạo, kỹ thuật số, một vai hơn, một hấp dẫn hơn kinh nghiệm giáo dục, như trái ngược để thu thập ở đây khoảng 23 lần trong người, có người nghe thích tôi chỉ đơn giản là nói chuyện về khoa học máy tính, như trái ngược với tham gia tích cực hơn. Vì vậy, bạn sẽ thấy trong giáo trình của khóa học một bản phác thảo của học kỳ ở đây, cùng với khi các bài giảng sẽ được dựng thành phim, mà bạn hoan nghênh, nhưng không mong đợi, và khi họ sẽ được phát hành trên trang web của khóa học. Và những gì chúng tôi sẽ làm ở đây trên Thứ Tư bắt đầu từ tuần tới, là rất nhiều mật thiết hơn, với chỉ những folks những người muốn tham gia, là một cái gọi là đi bộ qua, nơi mà tôi và người đứng đầu của khóa học thực sự sẽ làm cho mọi việc một ít thân mật hơn xuống đây trong dàn nhạc phần, vẫn có một số công nghệ và đi bộ qua vấn đề thiết lập tuần hiện tại, và cung cấp cho bạn particularly-- nếu trong những người kém comfortable-- tất cả các chi tiết hướng dẫn mà bạn có thể muốn hoặc cần cho thử thách của tuần. Và tương tự, đối với những người có thể không tham dự các trong người, không có việc lớn. Có sẽ được dẫn dắt bởi tương tự một trong những nhân viên cấp cao của khóa học, Zamalya, cơ hội cùng nhúng trong các vấn đề đặt ra cho mình. Vấn đề đặt ra trong năm nay sẽ được phát hành vào thứ Sáu và không còn làm bảy ngày sau đó, nhưng 10 ngày later-- cố tình chồng chéo với mỗi vấn đề thiết lập, để chứa tốt hơn, chúng tôi hy vọng, lên xuống và dòng chảy trong lịch trình của sinh viên, đặc biệt là khi kiểm tra giữa kỳ hoặc thể thao hoặc các viện nghiên cứu hoặc extracurriculars có xu hướng đến và đi đặc biệt là giữa học kỳ. Điều đó sẽ cung cấp cho bạn nhiều hơn một chút ý về việc bạn trước tải tuần của bạn với CS50 hoặc tải lại nó vào cuối tuần sau để thay thế. Vì vậy, nhìn vào giáo trình của khóa học vào đây để tiến hành. Và bạn sẽ nhận thấy quá số những thay đổi trong năm nay, cho những người quen thuộc hơn với lập trình trong quá khứ, chúng tôi sẽ bắt đầu học kỳ như chúng ta sẽ ngày hôm nay tại Scratch, tập trung đặc biệt vào các ngôn ngữ gọi là C, và sau đó chuyển tiếp không PHP, nhưng đến một ngôn ngữ được gọi Python vào cuối học kỳ trong bối cảnh của lập trình web, cùng với SQL và JavaScript, HTML, CSS, và chưa nhiều. Và trong câu trả lời cho một câu hỏi thường gặp, nó thực sự là trường hợp rằng CS là không đáng sợ như tôi một lần nghĩ rằng nó được, nhưng nó là như làm việc nhiều như tôi đã nghe nói nó có thể được. Nhưng điều này là nói rằng đây là một số thống kê từ mùa thu 2015 sinh viên, theo đó các dòng màu xanh ngang đại diện cho số lượng trung bình của giờ báo cáo. Và bạn sẽ thấy trung bình sáu đến 10 12-- có lẽ 16 hay như vậy và vv, nhưng với đúng cao để được rõ ràng. Và do đó, nhận ra rằng không chỉ có sinh viên thoải mái hơn và ít thoải mái trong khóa học, nhưng một sự hỗ trợ tương ứng cấu trúc để có được những sinh viên thông qua các học kỳ thành công. Thật vậy, trong câu trả lời cho một câu hỏi thường gặp, nên bạn có CS50 là năm đầu tiên? Chắc chắn rồi. Và trong thực tế, tôi hối tiếc không có tìm thấy con đường của tôi hoặc tìm thấy một lĩnh vực mới năm đầu tiên là tốt. Và bạn nên tận CS50 với các khóa học khác, chắc chắn như well-- và các lời khuyên chung chúng ta có thể cung cấp cho sinh viên, có lẽ đó là CS50 không phải là loại lớp hoặc lớp giới thiệu mà bạn nên đi với ba khác hoặc bốn lớp p-thiết khác. Nhưng nếu bạn đang dùng hai khác p-set lớp học, cái gì khác, và CS50, hoàn toàn kiểm soát được. Tôi đã có nhiều học sinh trong qua làm như vậy hoàn toàn thành công. Và để có được bạn hướng tới đó kết thúc dòng thành công, không có khóa học sections-- bài nhạc khác nhau cho sinh viên ít thoải mái, thoải mái hơn, và đâu đó ở giữa, nhờ đó mà trong quá trình của đầu tiên vấn đề thiết lập, bạn sẽ được yêu cầu mô tả bản thân. Và nếu bạn là một trong những người kém thoải mái, đó là loại điều mà bạn chỉ cần thay biết. Và quả thực, đó là được các phát triển nhân khẩu học trong CS50 cho khá một vài năm. Tính đến mùa thu năm ngoái cho Ví dụ, 58% của lớp mô tả mình là trong số những người ít thoải mái, với 9% trong số những người hơn thoải mái, và sau đó các học sinh khác có trong màu đỏ mô tả bản thân như ở đâu đó ở giữa. Và bạn sẽ thấy ở đây những chủ đề tổng thể và tiến độ của các bộ phận, tất cả đều được cung cấp trong người, trong thời gian thực, với các khóa học của nhân viên tuyệt vời của đồng giảng dạy và trợ nhiên, một số người trong số họ bạn sẽ gặp chỉ trong một khoảnh khắc. Phần mình, như bạn sẽ thấy, sẽ là ngày thứ Hai và thứ Ba và thứ Tư, để cho phép bạn bổ nhào trong khi tham gia, nếu bạn quá lựa chọn, trong quá trình của giảng vào đầu tuần này. Và rồi giờ làm việc, trong đó chắc chắn, với mỗi năm trôi qua, đã không có ít hơn của một thách thức cho khóa học. Và năm nay, chúng tôi đang lập kế hoạch không chỉ nắm giữ chức vụ hours-- một trên một cơ hội để giúp đỡ cho sinh viên vào thứ tư thứ năm và chủ nhật, người cuối cùng của những người là vào buổi chiều do thiết kế để giảm thiểu một số căng thẳng luôn xuất hiện với đêm p-settting với thời hạn một looming-- nhưng giờ văn phòng cũng sẽ được cung cấp vào các ngày thứ Hai và thứ Ba và Thứ Tư và thứ Sáu và thứ Bảy, nhờ bạn bè của chúng tôi tại HSA. CS50 hiện nay có không gian riêng của mình cho sinh viên và nhân viên CS50, trên 67 Mount Auburn Street, ngay tại Quảng trường Harvard. Tầm nhìn đó là CS50 của TF và CA trong suốt tuần, khá nhiều trong suốt nhất ngày, sẽ có mặt ở đó để hỗ trợ. Vì vậy, nếu bạn đã có một số câu hỏi về một p-set hoặc bạn đang cảm thấy một chút chặn hoặc một chút bối rối, và heck, bạn đã có một giờ hoặc nửa giờ giữa các lớp, đặc biệt là trong square-- thể bạn pop trong và có câu hỏi mà trả lời của có sự nhầm lẫn rằng clarified-- rất nhiều trong tinh thần, bạn đã quen thuộc, của toán học riêng bộ phận của câu hỏi toán học trung tâm, nhưng khá nhiều xung quanh đồng hồ mỗi [? Gcal?] Mà chúng tôi sẽ đăng trực tuyến. Gia sư cũng có sẵn cho những người sinh viên, tự do từ các khóa học của nhân viên riêng nếu bạn muốn thân mật một ngày một nhiều hơn, hoặc hai hoặc ba bạn cùng lớp chỉ, làm việc với một trong những nhân viên của khóa học. Và quả thực, những đây chỉ là một số nhân viên của khóa học, một vài người trong số đó bạn sẽ đáp ứng chỉ trong một khoảnh khắc. Trong thực tế, CS50 của mình đầu giảng dạy đồng nghiệp, và tất nhiên đầu trợ lý, và thầy dạy, có thể đi trên lên, cho phép họ để chào hỏi. [VỖ TAY] SPEAKER 1: [IM LẶNG]. [VỖ TAY] SPEAKER 2: [IM LẶNG]. [VỖ TAY] SPEAKER 3: [IM LẶNG]. [VỖ TAY] DAVID Malan: Và cho phép chúng tôi mang trên tàu hai CS50 của hầu hết nhân viên cao cấp, Rob và Zamayla là tốt. [VỖ TAY] Thật vậy, cả Rob và Zamayla đã được với chúng tôi rất lâu, tôi đã có thể để đi vào lưu trữ CS50 của và tìm SD này rất cảnh của họ tham gia trên sân khấu chính mình cách đây vài năm. ROB: [IM LẶNG]. [VỖ TAY] ZAMAYLA: [IM LẶNG] [VỖ TAY] DAVID Malan: Cảm ơn bạn. Vì vậy, ngoài những thành viên trong nhóm ở đây, CS50 có một đội ngũ gần 100 nhân viên, tất cả đều sẽ có sẵn cho các bộ phận và giờ làm việc và nhiều hơn nữa. Và như Rob nói quá, đây là đại tu quan trọng nhất của CS50 trong 10 năm mà Tôi đã ở trong [IM LẶNG]. [IM LẶNG] tập trung đặc biệt trong việc cung cấp một cấu trúc hỗ trợ, cắt đi rất nhiều phần lớn đó là được tích lũy trong 10 năm sự phát triển của lặp đi lặp lại trên bộ vấn đề của khóa học. Vì vậy, năm nay, không chỉ trong lớp nhưng cũng theo hình thức vấn đề của khóa học bộ, bạn nên tìm những thứ để được sắp xếp hợp lý hơn, tông đơ, nhiều hơn quản lý hơn trong những năm qua, như chúng ta đổ một số hành lý đó phát triển bởi bản chất của phát triển năm sau năm năm và iterating. Vì vậy, mới và cải tiến bắt đầu ngày hôm nay. Bạn sẽ gặp một số chi tiết của nhân viên của khóa học trong các [IM LẶNG] lúc 2:30, nơi mà chúng tôi phục vụ, như một truyền thống, bánh. Có một bánh hơn chút hơn thế, nhưng bạn sẽ gặp Erin và Tobias và những người khác vẫn còn. Và hãy để tôi cung cấp cho bạn một tour du lịch trước khi chúng ta nghe từ một số các nhân viên khác trong lớp, những gì đang chờ đợi là tốt. Trong thực tế, chúng tôi luôn luôn bắt đầu của CS50 học kỳ này Saturday tới, với những gì được gọi là CS50 Puzzle ngày. Nó không có gì để làm với khoa học máy tính cho mỗi gia nhập, nhưng với về vấn đề giải quyết nói chung. Và nếu bạn lựa chọn để tham gia, mỗi một số lời mời, bạn có thể đã thấy cửa giảm hoặc trên sân khấu ở đây, nó là một cơ hội trong đội hai hoặc ba hoặc bốn, tham gia cho các câu đố và pizza và giải thưởng và more-- thứ bảy này, chơ cho biết thêm. Bạn sẽ tìm thấy quá rằng mỗi Thứ Sáu, tại Fire và Ice, không mang lại một CS50 bó toàn bộ sinh viên ăn trưa, để làm cho một lượng lớn lớp cảm thấy thân mật hơn, và thường mang lại cùng cựu sinh viên và bạn bè từ ngành công nghiệp để nói về những gì họ đã sao từ khi tốt nghiệp. Tương tự như vậy, trong năm nay, sẽ chúng tôi khai trương đầu tiên CS50 50 mã hóa contest-- một giữa học kỳ cơ hội để cho phép tất cả mọi người trên một lựa chọn trong cơ sở, để có một thách thức của trí thông minh với các bạn cùng lớp, một lần nữa trong đội của hai hoặc ba hoặc bốn, chỉ sử dụng lập trình hiểu biết rằng sau đó bạn có theo vành đai của bạn chỉ sau sáu hoặc bảy tuần của lớp, và tham gia trong các loại hình cạnh tranh online-- nếu bạn muốn trau dồi của riêng bạn kỹ năng tất cả các chi tiết trong thách thức đó. Vào cuối học kỳ là cái gọi là CS50 Hackathon-- một cơ hội bắt đầu vào lúc 7:00 PM kết thúc vào 7:00, và trên đường đi 12 giờ tối, trong đó để lặn vào project-- thức của khóa học một cơ hội để thiết kế và thực hiện bất cứ điều gì nhất quan tâm cho bạn với giảng dạy của bạn hướng dẫn viên của. Khoảng 9:00 chúng ta thường phục vụ pizza, 01:00, Philippe, và vài người trong chúng ta người vẫn còn tỉnh táo vào lúc 5:00 AM, là đưa đón bussed xuống đường để IHOP cho bữa ăn sáng. Và sau đó một vài ngày sau đó là cái gọi là CS50 fare-- kết thúc của cuộc triển lãm trong học kỳ cử chỉ như thế nào đến nay rất nhiều của CS50 sinh viên đến từ tuần bằng không tất cả các cách để tuần, và giữ trong tâm trí rằng 73% những người các bạn cùng lớp và của bạn trong năm nay có không bao giờ lấy một lớp CS trước. Trong thực tế, để nhấn mạnh lại càng nhiều, ở đây là một vài gương mặt nhiều hơn từ nhân viên CS50 của. SPEAKER 4: [IM LẶNG]. SPEAKER 5: [IM LẶNG]. SPEAKER 6: [IM LẶNG]. SPEAKER 7: [IM LẶNG]. SPEAKER 8: [IM LẶNG] SPEAKER 9: [IM LẶNG]. SPEAKER 4: [IM LẶNG]. SPEAKER 10: [IM LẶNG]. SPEAKER 11: [IM LẶNG]. SPEAKER 12: [IM LẶNG]. SPEAKER 13: [IM LẶNG] SPEAKER 14: [IM LẶNG]. SPEAKER 13: [IM LẶNG]. SPEAKER 15: [IM LẶNG] SPEAKER 16: [IM LẶNG]. SPEAKER 11: [IM LẶNG] SPEAKER 5: [IM LẶNG]. DAVID Malan: Một số các nhóm mình đang mua sắm các lớp học. Nhưng nếu những thành viên của nhân viên CS50 đang ở đây, có thể đi trên lên chỉ trong một khoảnh khắc. CS50 của TF và CA và [? cán bộ ?] thành viên đây-- đây chỉ là một vài của faces-- một trong những người mà bạn chỉ nhìn thấy, và một vài other-- và một vài người khác vẫn. Tại sao chúng ta không đi trước và cho phép các bạn nghỉ ngơi năm phút. Nếu bạn cần phải vịt ra lớp cửa hàng, đó là tốt. Và trong năm phút, chúng tôi sẽ tiếp tục, dùng một cái nhìn tại Scratch-- đầu tiên của ngôn ngữ lập trình của chúng tôi, đáp ứng nhân viên của khóa học ở đây một số chi tiết, và tập trung cuối cùng về vấn đề thiết lập bằng không. Vì vậy, chúng tôi sẽ trở lại trong năm phút. [VỖ TAY] Tất cả các quyền. Vì vậy, chúng tôi đã trở lại. Và trong còn lại của chúng tôi Hiện nay, mục tiêu là sân chơi chung về một số thuật ngữ, về một số ý tưởng. Bởi vì thực sự, như mỗi một số bảng xếp hạng trước đó, có là có được một loạt các cấp độ kinh nghiệm trong lớp, một số có số học sinh có thực hiện một số chương trình trước đây, một số người trong số họ không có. Và như vậy với vấn đề đầu tiên này thiết lập và với ngôn ngữ đầu tiên này chúng ta có một cơ hội để bắt đầu để đưa cho các cấp sau ngày hôm nay một số từ vựng chung và ý tưởng. Và chúng tôi sẽ làm điều này bằng cách languages-- đầu tiên của khóa học ngoài C và Python và JavaScript và SQL và HTML và CSS, chúng tôi sẽ tập trung ban đầu và chỉ cho vấn đề thiết zero về ngôn ngữ đồ họa này, được gọi là Scratch, được phát triển bởi MIT Media Lab CỦA xuống đường, để giúp sinh viên và trẻ em đặc biệt hiện mình algorithmically-- một cách phù hợp hơn với những gì chúng ta có thể gọi là tư duy tính toán. Và đó là một ngôn ngữ hữu ích vì rất nhanh chóng vào tuần tới trong tuần đầu, chúng ta chuyển đổi sang một nhiều hơn ngôn ngữ truyền thống và phức tạp được gọi là C, đó hoàn toàn là văn bản. Bạn chỉ sử dụng bàn phím của bạn trong Để viết hướng dẫn như thế này trên màn hình. Nhưng ngay cả khi bạn chưa từng thấy một ngôn ngữ lập trình trước, chỉ liếc nhìn này, tất cả đều có thể là khó hiểu, bạn có thể đoán rằng có thể in Hello World. Nhưng có rất nhiều overhead cú pháp đó. Có băm lạ biểu tượng hoặc băm thẻ lên hàng đầu. Có các dấu ngoặc nhọn, một số dấu ngoặc đơn, dấu ngoặc, bán colon-- đó chỉ là quá nhiều hình ảnh cú pháp mà được theo cách này. Chúng tôi bắt đầu khóa học với Scratch để có được qua tất cả những trí tuệ phiền nhiễu không thú vị, và tập trung thay vì trên các ý tưởng. Trong thực tế, điều này có thể là trước. Điều này, cho điều này, tuần sau sẽ có. Điều này, đồ họa này Scratch ngôn ngữ, là làm thế nào bạn sẽ thực hiện điều đó cùng program-- một chương trình mà khi chạy, chỉ đơn giản là nói hello thế giới. Và những gì tốt đẹp về Scratch là rằng đó là lập trình đồ họa này môi trường có sử dụng mảnh ghép hoặc khối, mà chỉ có đan lại với nhau nếu nó làm cho cảm giác hợp lý để làm như vậy. Và với Scratch bạn có thể phát triển hình ảnh động và trò chơi tương tác và nghệ thuật, và bất kỳ số điều mà bạn có thể tưởng tượng trong tâm trí của riêng bạn, và thực hiện đơn giản bằng cách kéo và thả các mảnh ghép. Và quả thực, chúng ta sẽ có khả năng để thể hiện những ý tưởng tương tự mà tôi chỉ đề cập đến một thời điểm trước đây trong bối cảnh của Mike Smith và tìm kiếm những điều một điện thoại book-- như chức năng, chỉ hành động, những thứ như vòng mà làm điều một lần nữa và một lần nữa, biến, đó là một cái gì đó chúng tôi sẽ giới thiệu, nhưng nó quen thuộc có lẽ từ algebra-- chỉ một số loại giữ chỗ để lưu trữ một số giá trị có lẽ bạn cần biểu thức Boolean later--, nơi những người có hoặc không có thật câu hỏi sai từ trước. Điều kiện là những dĩa trong road-- những ngành như vậy để nói chuyện. Và sau đó có một số fancier tính năng chúng ta sẽ thấy ngay cả ngày nay, gọi là mảng và chủ đề và sự kiện, mà chúng tôi sau đó sẽ xem lại trên thời gian trong các ngôn ngữ khác nhau. Nhưng Scratch cho phép chúng tôi để khám phá tất cả các. Vì vậy, ở đây trong Scratch, này màu tím khối là những gì một chức năng thường sẽ trông như thế nào. Đây mảnh ghép màu tím mà có một số từ như nói rằng, đó là hành động, và sau đó nó có thể có một đối số hoặc một cách nào đó parameter-- các loại tùy biến những khối nào do đó nó không được xác định trước bởi MIT ở khối màu tím này nói. Trong thực tế, bạn sẽ thấy trong một lúc đó tôi có thể gõ những từ như hello thế giới, hoặc xin chào David, hoặc hello Zamayla, hoặc bất cứ điều gì tôi muốn, trong đối số cho câu đố đó piece-- hộp trắng chỗ đó. Trong khi đó, nếu tôi muốn có một vòng lặp, chúng ta sẽ thấy rằng có mảnh ghép hình nhìn một chút màu cam như thế này. Và hình dạng của loại cho thấy rằng một cái gì đó xảy ra một lần nữa và một lần nữa trong một chu kỳ. Vì vậy, nếu tôi quấn một khối chào thế giới với một chặn mãi mãi trong Scratch, nó chỉ cần đi để tiếp tục nói xin chào mãi mãi thế giới, theo đúng nghĩa đen. Trong khi đó, có một loại vòng lặp trong Scratch rằng chúng tôi sẽ see-- lặp lại block-- ở đâu, nếu bạn biết trước bao nhiêu lần bạn muốn vòng lặp để thực hiện một số hữu hạn lần trong fact-- bạn có thể xác định bằng cách gõ một số hoặc thậm chí cắm vào một biến, như x hoặc y như chúng ta sẽ thấy. Trong thực tế, các biến như i trong trường hợp này, là một tên gọi chung cho một biến số nguyên chỉ lưu trữ một number-- một số nguyên có thể được, sử dụng khối màu cam này ở đây để thiết lập một biến như tôi về không. Dưới đây là một ví dụ trong xanh của một biểu thức Boolean trong Scratch. Mặc dù điều này có vẻ giống như một toán học công thức, sự bất bình đẳng toán học như thế này thực sự là biểu thức Boolean. Đây là đúng hoặc sai. Tôi là ít hơn 50. Đó là cả một câu trả lời có hoặc không hoặc câu trả lời đúng hay sai. Và chúng ta thường sẽ gọi những biểu thức Boolean. Và nó không phải là 50. Nó có thể được x ít hơn y, lớn hơn y, bằng y-- bất kỳ số khác câu hỏi có thể được yêu cầu. Bây giờ, ở cái nhìn đầu tiên, điều này có thể trông đột nhiên khá đậm ở đây, và nó được. Nhưng khái niệm khôn ngoan, đó là khá quen thuộc từ trước. Nếu x là ít hơn so với năm trước, hơn nói nhiều như thế. Else if x lớn hơn y, sau đó nói nhiều như thế. Khác nói x bằng y. Vì vậy, chúng ta có một ví dụ có một scenario-- thứ ba chỉ ba possibility-- x là một trong hai lớn hơn, nhỏ hơn, hoặc bằng. Vì vậy, chúng tôi có một ngã ba ba cách trên đường. Và nhận thấy mát đây-- Scratch là những gì, nó sẽ có vẻ, chỉ có một câu đố mảnh, trong trường hợp này, nếu khối khác. Và đó dường như ngụ ý bạn có thể chỉ có một ngã ba hai cách trên đường. Bạn có thể đi sang bên trái hoặc phải, nhưng về những gì mà kịch bản thứ ba? Điều gì nếu x bằng y? Không phải vấn đề lớn. Lấy một mảnh ghép, đặt một số khác bên trong của nó để tạo ra tương đương ngữ nghĩa if, else if, else-- và bây giờ bạn có ngã ba ba theo cách của bạn trên đường. Và như chúng ta sẽ thấy, phần đầu câu đố có thể được kéo dài và phát triển, vì vậy như để nhồi nhét nhiều công cụ trong họ. Bạn không cần phải phù hợp với tất cả mọi thứ trong kích thước mặc định của nó. Đây là một cái gì đó chúng tôi sẽ sớm thấy được gọi là mảng. Nó giống như một list-- một số cách lưu trữ nhiều thông tin trong một biến, không chỉ là một con số. Những chúng ta sẽ thấy một đại diện của một cái gì đó gọi là đa luồng. Trong thực tế, tất cả các bạn Mac và PC hiện nay hỗ trợ đa luồng, có nghĩa là bạn có thể theo nghĩa đen làm nhiều thứ cùng một lúc. Bạn có thể có Microsoft Word lên trong foreground, làm việc trên một số bài luận. Bạn có thể có một trình duyệt trong việc mở nền G-mail hoặc Facebook hoặc tương tự. Máy tính của bạn có thể làm nhiều điều ngày nay vì nó là đa luồng, và các chương trình họ đang ở trong đặc biệt cũng là đa luồng. Có những thứ được gọi là sự kiện như cũng trong thế giới của Scratch, và sau đó có một cách quá, để làm cho riêng phần tùy chỉnh câu đố của chúng tôi nếu điều không thực sự tồn tại trước. Vì vậy, hãy động viên này như sau. Một vài năm trước, khi tôi đầu tiên phát hiện ra Scratch, khi tôi thực sự là một sinh viên grad tại MIT, chúng tôi mình được giao nhiệm vụ làm bài tập ở nhà. Và tôi implemented-- trong đó, khi nhìn lại, là một quyết định rất nghèo vì nó bài hát phẩn nộ nhất trên thế giới để nghe cho tám giờ trong khi làm việc trên homework-- của bạn nhưng cái gì tôi đã được gọi là Oscar thời gian, mà có lẽ là một bài hát quen thuộc. CS50s sở hữu Jordan Hayashi, một trong những nhiều nhân viên cao cấp của chúng tôi, đã nâng cấp nó cho năm 2015 và hiện năm 2016, kể từ khi trở lại trong ngày, Tôi đã có tất cả mọi thứ chỉ cần đi vào thùng rác của Oscar. Bây giờ chúng tôi hỗ trợ tái chế và ủ. Nhưng để vẽ lên bức tranh về những gì chúng ta có thể làm ở đây và để thúc đẩy một số các ví dụ mức độ thấp hơn, chúng ta có thể có được một khác tình nguyện viên để chỉ đến trên lên và chơi đầu tiên của tôi bài tập về nhà bao giờ? Thôi lên. Tên bạn là gì? HENRY: Henry. DAVID Malan: Henry, đi lên trên. Thôi lên. Đi một trong hai cách, và bạn sẽ thấy trong một thời điểm, Tôi sẽ đi trước và nhấn lá cờ màu xanh lá cây ở trên bên phải góc, có nghĩa là đi. Các biểu tượng dấu chút dừng sẽ nói dừng lại, và đó là khi bạn bắt đầu và dừng chương trình. Rất vui được gặp bạn. Tất cả các quyền. Vì vậy, chúng ta sẽ thấy các hướng dẫn trên màn hình chỉ trong một khoảnh khắc. Và chỉ bằng cách chơi trò chơi này cho một vài seconds-- tôi tin tưởng, chúng tôi sẽ không muốn chơi tất cả các cách để các end-- bạn sẽ có được một cảm giác về những chương trình nào. Và nhiều hơn là chỉ tập trung vào Henry là tốt hay xấu ở trận đấu này, trọng tâm và làm thế nào là nó được thực hiện bởi tôi ban đầu và sau đó bởi Jordan. Nói cách khác, nơi có các biến? Đâu là những vòng? Đâu là những chức năng? Và chúng ta sẽ thấy nếu chúng ta không thấy những người bên dưới mui xe. Chỉ cần nhấp vào và kéo thùng rác vào thùng thích hợp. [NHẠC] Tất cả các quyền. Điều đó rất tốt. Tại sao chúng ta không dừng lại ở đó. Cho tôi biết. Xin chúc mừng Henry. Cho tôi biết. [VỖ TAY] Chỉ cần tưởng tượng gỡ lỗi chương trình đó. Nếu có một vấn đề hai vào song-- nhưng như vậy phút những gì đang xảy ra ở đây thực sự? Phức tạp như nó có thể bắt đầu có vẻ để có được thời gian, thực sự nhiều hơn và nhiều hơn nữa thứ bắt đầu rơi xuống, điều thú vị về loại này ví dụ điển và chúng ta sẽ thấy một vài others-- là nếu bạn nhìn qua sự phức tạp hoặc sự tinh tế của trò chơi, có một tòa nhà rất đơn giản khối play-- tất cả trong số đó, nếu bạn đã chưng cất chúng vào những xây dựng khối, rất dễ tiếp cận và thực hiện được cho đến bản thân mình. Ví dụ, nó được một thời gian, nhưng tôi khá chắc chắn những gì tôi bước đầu đã làm khi làm cho trò chơi này lần đầu tiên là tôi hoàn toàn như procrastinated. Tôi đã không tập trung vào tất cả các ngày logic hoặc các mảnh ghép, Tôi tập trung vào đồ họa và phát hiện các bài đường phố và các thùng rác và tất cả điều đó. Nhưng đó là những điều kiện tiên quyết nguyên liệu ở đầu tiên. Và một khi tôi đã hoàn thành và trì hoãn đặt ra khuôn khổ bao trùm, Tôi quyết định, hãy để tôi chỉ làm cho một mảnh rác rơi từ bầu trời. Và chúng ta sẽ thấy Scratch hỗ trợ những thứ được gọi là nhân vật sprites-- rằng có thể có trang phục khác nhau, vì thế họ trông khác. Và vì vậy tôi đặt một thùng rác trang phục trên một sprite như vậy. Và tôi chỉ cần nó rơi từ bầu trời. Và do đó, nó quay ra, Scratch, giống như hầu hết các ngôn ngữ lập trình, hỗ trợ các số ngẫu nhiên hoặc số ngẫu nhiên về mặt kỹ thuật giả, do đó bằng cách kéo và thả mảnh ghép nào đó, Tôi đã có thể có các thùng rác đến từ bên trái lúc đầu. Và sau đó, lần sau nó giảm, từ quyền và sau đó từ giữa. Và tất cả các trò chơi đã được chỉ có thùng rác rơi xuống từ bầu trời. Bạn không thể trỏ vào nó hoặc nhấp vào nó. Bạn không thể mở các thùng rác. Bạn không thể làm bất cứ điều gì. Nhưng đó là một bước bé hướng tới tầm nhìn cuối cùng của tôi. Và sau đó, tôi thực sự thực hiện một số loại các cảm biến để nếu bạn đã nhấp vào và kéo trên mảnh rác trong thùng rác, Oscar nắp sẽ mở và đóng. Không có gì sẽ xảy ra cho vào thùng rác, nhưng ít nhất là nắp sẽ mở và đóng. Vì vậy, sau đó kiểm tra, bước hai của hai người. Và đây là những gì sẽ là quan trọng trong cả hai vấn đề đặt zero và trong lập trình nói chung, là để có những bước em bé rất có chủ ý. Bởi vì nó không chỉ cho phép bạn cảm thấy thật hoàn nhiều hơn nữa quickly-- đó là Điều tồi tệ nhất trên thế giới để cố gắng thực hiện tất cả các giải Oscar thời gian, sau đó giờ sau đó nhấn lá cờ màu xanh lá cây, và không có gì hoạt động như dự kiến bởi vì nơi làm bạn thậm chí bắt đầu gỡ lỗi hoặc để khắc phục sự cố chương trình đó? Nó chỉ là áp đảo. Và như vậy thực sự ôm ấp ý tưởng này lấy bước em bé steps-- lại và again-- xây dựng một cái gì đó, cuối cùng, thực sự ấn tượng và phức tạp, nhưng lúc đầu, là gần như không nhiều như vậy. Trong thực tế, chúng ta hãy làm điều này. Hãy để tôi đi trước và- Scratch chính tồn tại trên web tại Scratch.MIT.edu, và bạn sẽ được thông báo như nhiều lần nữa trong vấn đề thiết không, các đặc điểm kỹ thuật đó là đã có trên trang web của CS50. Nhưng đây là những gì Scratch chính nó là. Và có thực sự chỉ ba lĩnh vực chính. Ở phía trên cùng bên tay trái là giai đoạn được gọi là. Đây là Scratch. Bộ trang phục mặc định là một con mèo. Và đây là thế giới hình chữ nhật trong mà bạn có thể move-- lên, xuống, trái, phải và một số công cụ khác. Ở giữa, đây là loại của chúng tôi hoặc pallet của chúng ta về mảnh ghép, và màu sắc khác nhau những ý nghĩa khác nhau. Và nếu bạn poke xung quanh, bạn sẽ thấy những thứ như vòng lặp và điều kiện và các biến và các thành phần khác. Và sau đó ở đây là khu vực các kịch bản. Đây là nơi tôi có thể kéo và thả những mảnh ghép để làm việc. Vì vậy, chúng ta hãy làm một điều như vậy. Hãy để tôi đi trước và- và tôi biết nó ở đâu. Vì vậy, tôi sẽ ngay lập tức bấm vào nơi tôi biết mọi thứ đã sẵn sàng để được, nhưng chỉ trỏ và nhấp chuột vào và chọc xung quanh là không thể tránh khỏi. Vì vậy, khi lá cờ màu xanh lá cây nhấp, những gì tôi muốn làm gì? Tôi sẽ làm điều này. Tôi sẽ kéo đố tím này mảnh, chào hỏi hai giây, và cho tôi phóng to. Và tôi sẽ phải thay đổi này được những gì tôi muốn nó be-- hello thế giới trong hai giây là tốt. Bây giờ, tôi sẽ nhấp vào lá cờ màu xanh lá cây, hoặc nếu tôi thực sự muốn, Tôi hoàn toàn có thể màn hình và sau đó quay trở lại. Nó sẽ chỉ giữ tất cả mọi thứ trong một cửa sổ. Xanh flag-- hello thế giới. Tất cả các quyền. Không gì thú vị. Vì vậy, hãy để tôi đi trước và làm điều này. Hãy để tôi thử một số khác. Khi lá cờ màu xanh lá cây clicked-- hãy làm một cái gì đó giống như một âm thanh. Và nhận thấy rằng trong số hộp miễn phí bạn có được một âm thanh con mèo, như là ma mặc định. Vì vậy, bây giờ để tôi đi trước và đánh cờ xanh bây giờ. [MEOWING] Aw. Đó là đáng yêu. Tôi là lập trình. Vì vậy, những gì đã làm gì? Điều này là tương đương với một chương trình. Đó rõ ràng là siêu đơn giản. Nó không thực sự mất tất cả những gì nhiều nỗ lực và MIT đã làm hầu hết công việc, nhưng tôi đã được gọi là một hàm. Tôi đã sử dụng một chức năng. Tôi đã thực hiện một số hành động, chỉ sử dụng rằng một màu tím mảnh ghép. Vâng, nếu tôi muốn làm ba Meows liên tiếp? Hãy để tôi đi trước và làm hai và ba. Và nhận thấy rằng khi bạn di chuột lân cận một mảnh ghép, một chút đường trắng xuất hiện loại từ tính, và nó sẽ chụp với nhau khi bạn cho đi. Hãy xem những gì xảy ra ở đây. [MEOWING] Có một lỗi. Tôi chỉ nghe một meo meo. Tại sao điều đó có thể được? Yeah? Yeah. Chúng tôi không thực sự nghe nó, nhưng đó là trực giác tốt. Họ đang chơi cùng một lúc. Tại sao? Vâng, các máy tính được chỉ cần đi làm những gì bạn cho nó làm. Vì vậy, nếu bạn nói, âm thanh chơi, chơi âm thanh, chơi âm thanh, nhưng bạn không nói cho nó để chơi cho đến khi bạn đang thực hiện, chơi cho đến khi bạn thực hiện xong, nó sẽ thổi qua chương trình thực sự nhanh chóng và không chỉ những gì bạn nói với nó để làm. Vì vậy, tôi thực sự cần phải sửa chữa này trong một vài cách. Tôi chỉ có thể làm được điều này, thoát khỏi điều này. Hãy để tôi thử câu đố khác này piece-- chơi meow âm thanh cho đến khi thực hiện, và sau đó kéo ba những điều này và nhấn Play. [MEOWING] Nó không thực sự very-- cảm ơn bạn-- rất tự nhiên. Vậy tại sao không để cho I-- tôi đi để kiểm soát ở đây. Tốt đẹp. Đợi một giây, và bây giờ hãy để tôi quay trở lại với âm thanh, âm thanh và chơi cho đến khi thực hiện, và sau đó cho tôi được chờ đợi một giây. Và sau đó cho tôi đi và nhận được một nhiều âm thanh, và ở đây chúng tôi đi. [MEOWING] Một chút tự nhiên hơn, nhưng này không phải là rất hiệu quả. Giống như tôi đã chán, tất cả được nó ngắn gọn, nhấn lại và thực sự nhân đôi work-- của tôi khá nhiều việc sao chép và dán. Thật vậy, nếu tôi Kiểm soát nhấp hoặc phải nhấp, Tôi có thể chỉ cần sao chép và dán. Điều gì sẽ là tốt hơn xây dựng để sử dụng? ý tưởng gì từ trước? Yeah, do đó, một vòng lặp. Và trên thực tế, nếu chúng ta chọc xung quanh, chúng ta có thể tìm thấy chính xác điều đó. Hãy để tôi đi kiện hoặc thay Control. Vì vậy, tôi không repeat-- muốn nó được 10 lần. Điều đó sẽ gây phiền nhiễu một cách nhanh chóng. Nhưng tôi sẽ lặp lại ba lần. Hãy để tôi quay trở lại với âm thanh và phát âm thanh cho đến khi nó được thực hiện. Hãy để tôi quay trở lại kiểm soát và chỉ cần chờ đợi một giây. Và thông báo, có lẽ bạn nghĩ rằng nó không phù hợp, nhưng một lần nữa nếu bạn để cho nó bằng từ tính chụp tại chỗ, nó sẽ phát triển để điền vào. Có gì đó chơi bây giờ? [MEOWING] ĐƯỢC. Tốt đẹp. Và đây là những gì sẽ được gọi là một chương trình đó cũng đúng. Nó meowed ba lần khá tự nhiên, nhưng nó được thiết kế tốt hơn. Tôi đang sử dụng ít dư thừa. Tôi không sao chép và dán bất cứ điều gì. Tôi chỉ sử dụng một ý tưởng tốt hơn. Bây giờ, đây vẫn không phải là tất cả những gì thú vị với Scratch không làm bất cứ điều gì. Vì vậy, chúng ta hãy làm một cái gì đó khác thay thế. Hãy làm một cái gì đó mãi mãi. Và bạn biết những gì? Chuyển động có vẻ thú vị. Hãy có anh ta di chuyển 10 bước và nhấn play bây giờ. ĐƯỢC. Vâng, chúng tôi có thể loại kéo anh trở lại, và ông vẫn còn chạy vì ông ấy đang làm điều này mãi mãi. Vì vậy, các vòng lặp được thực hiện những gì nó nói để làm, nhưng điều này không phải là tất cả những gì thú vị. Làm thôi nào. Hãy cho tôi thêm một khối điều khiển, và sử dụng một trong những điều kiện cho lần đầu tiên. Vì vậy, nó sẽ di chuyển 10 steps-- 10 điểm, 10 điểm ảnh trên màn hình-- sau đó nó sẽ hỏi câu hỏi này. Nếu một cái gì đó là sự thật, sau đó làm một cái gì đó bên trong khối này. Vì vậy, nó quay ra cảm biến có một toàn bộ bó expressions-- Boolean câu hỏi của vâng không hoặc đúng sai form-- hãy để tôi làm điều này. Nếu touching-- và sau đó có ít trình đơn thả xuống. Tôi có thể tham số đó. Nếu chạm vào edge-- hãy làm một cái gì đó như thế. Vì vậy, nếu chạm edge-- hãy để tôi quay trở lại chuyển động. Và tại sao chúng ta không chỉ quay 180 độ? Tất cả các quyền. Vì vậy, mãi mãi, di chuyển 10 bước. Nếu bạn đang chạm vào cạnh, quay 180 độ. Và đó không phải là kết thúc chương trình bởi vì bạn đang ở trong một mãi mãi chặn, do đó, nó sẽ đi một lần nữa và Một lần nữa và một lần nữa và một lần nữa. Vì vậy, chúng ta hãy xem những gì sẽ xảy ra. ĐƯỢC. Một lỗi nhỏ, nhưng loại mát mẻ. Và chúng ta có thể thêm vào đây một số những điều ngớ ngẩn mà không phải là tất cả những trí tuệ hấp dẫn. Nhưng nếu chúng ta nhấn chút này microphone button-- ouch. Hãy để tôi làm sạch này lên. Hãy để tôi nâng cao này là họ sẽ nói trên truyền hình. Làm sạch mà lên, Lưu, và bây giờ đi đến kịch bản. Và bây giờ, hãy để tôi đi đến âm thanh. Hãy để tôi cung cấp cho nó một cái tên. Tôi sẽ gọi ouch này. Và bây giờ chơi ouch âm thanh. Chú ý nó xuất hiện trong ít đơn thả xuống. Hãy xem. [OUCH] [CƯỜI] Nhưng chúng ta có thể thay đổi t mình trên bay. Chúng tôi có thể được gấp đôi gây phiền nhiễu. [OUCH] Hoặc nếu chúng ta làm cho nó giống như 1000 bước vào một time-- ĐƯỢC. Vì vậy, chúng ta sẽ để lại một trong đó một mình. Vì vậy, một lần nữa, xây dựng blocks-- tôi bắt đầu với một cái gì đó siêu đơn giản, và sau đó tôi đã thêm một tính năng, thêm một tính năng, thêm một tính năng. Và tôi không còn cần phải lo lắng về cách đầu tiên của những tính năng đã được thực hiện như tôi tiếp tục để lớp thứ trên đầu. Vì vậy, trong thực tế, hãy để tôi làm một khác ở đây. Hãy để tôi đi trước và mở một tập tin đó Tôi mang trước, gọi là cừu. Vì vậy, nó có một chút khác biệt nhân vật trông như thế này. Và hãy để tôi xem liệu tôi có thể không làm một cái gì đó sử dụng một truy cập trong này case-- một biến cái gọi là. Tôi sẽ đi trước và dưới Events-- hãy để tôi nhận được một lá cờ màu xanh lá cây nhấp vào. Sau đó, cho tôi đi đến dữ liệu, mà tôi biết từ chỉ chơi xung quanh trước, là nơi mà các biến được. Và tôi sẽ đi trước và kéo này. Vì vậy, một biến gọi là truy cập, và Tôi sẽ khởi tạo nó bằng không. Tôi có thể gọi nó anything-- x hoặc y hoặc z-- nhưng trong lập trình, gọi một cái gì đó trong một ngữ nghĩa cách hữu ích, như truy cập, mô tả nó là gì, đó là một dễ dàng hơn nhiều để đọc code của bạn sau này. Hãy để tôi đi trước và nhận được một mãi mãi chặn ở đây. Và hãy để tôi đi đến ngoại hình trang và làm một khối Say. Nhưng điều thú vị về các biến là tôi không phải chỉ cần gõ vào một cái gì đó như hello thế giới, mà chúng tôi đã đã thực hiện, tôi có thể thay vì đi đến dữ liệu và kéo biến của tôi, và thậm chí mặc dù hình dạng không hoàn toàn trông giống như nó phải phù hợp với, nó sẽ phát triển để điền vào. Và tôi sẽ chỉ nói sự truy cập cho một spoiler-- second-- anh sẽ đếm. Chúng tôi sẽ nói trong một giây. Sau đó, tôi sẽ đi và có anh ta chờ đợi cho một thứ hai, vì vậy nó không đếm lên quá nhanh. Và rồi cuối cùng, thay đổi truy cập bởi cùng-- nói cách khác, tăng quầy bằng một giá trị bổ sung và làm điều này mãi mãi. Vì vậy, các con chiên quá, giống như một lập trình, đếm từ 0. Và nếu chúng ta chờ đợi đủ lâu, anh sẽ làm được điều này mãi mãi. Nhưng đó không phải là hoàn toàn chính xác, bởi vì trong thực tế, như chúng ta sẽ khám phá ra trong tuần đầu, số nguyên và các máy tính nói chung, kỹ thuật chỉ có một finite-- tốt, chứ không phải máy tính, khi họ đại diện cho số nguyên, chỉ có một số hữu hạn các bit. Những bóng đèn có chỉ có thể đếm quá cao trước khi bạn ra ngoài của bóng đèn. Và một máy tính quá, chỉ có bộ nhớ rất nhiều, chỉ có rất nhiều bóng bán dẫn, vì vậy nó chỉ có thể đếm quá cao. Vì vậy, nó chỉ ra rằng những con cừu, Tôi nghĩ, có thể đếm đến 2 tỷ hoặc một cái gì đó khá lớn. Vì vậy, chúng tôi sẽ không chờ đợi điều này xảy ra. Nhưng cuối cùng, một số lỗi sẽ xảy ra rằng có thể có một thế giới rất thực tế phân nhánh. Nhưng ngoài những con chiên, mà chỉ giới thiệu một biến. Hãy đi trước và mở ra cái gì tôi làm trước đây gọi là vật nuôi các Cat-- Con vật cưng Cát ở đây. Và lưu ý ở đây đó là vài khối, nhưng khi lá cờ màu xanh lá cây nhấn vào, mãi mãi làm như sau. Nếu bạn đang chạm vào con chuột pointer-- để con trỏ trên màn hình, chơi arrow-- meow âm thanh và sau đó chờ hai giây. Và chỉ cần làm điều này mãi mãi. Chỉ cần không ngừng chờ đợi để xem nếu pointer-- nếu con mèo là chạm vào con trỏ. Vì vậy, tôi nhấn play. Không có gì xảy ra. Nhưng khi tôi di chuyển con trỏ qua các con mèo, [MEOWING] Và nếu tôi di chuyển nó đi, không vuốt ve con mèo nữa. Vì vậy, một số logic có điều kiện lồng bên trong một vòng lặp. Làm thế nào về ví dụ này, cố ý Đừng gọi thú nuôi mèo? Có gì này sẽ làm gì? [MEOWING] Tại sao bạn không nên nuôi mèo? [MEOWING] ĐƯỢC. Vì vậy, đây là một ví dụ của một nếu người nào khác. Đó là một điểm quyết định và bởi vì nó đang ngồi trong vòng lặp, chúng đều bị kiểm tra. Đây có phải là sự thật? Đây có phải là sự thật? Đây có phải là sự thật? Đây có phải là sự thật? Và cuối cùng, một trong những những người sẽ áp dụng và do đó bạn nghe thấy hoặc là meo meo hoặc tiếng gầm của sư tử trong trường hợp đó. Vâng, chúng ta hãy làm một hơi lạ mắt hơn mà tôi thực hiện trước too-- đề. Vì vậy, một sợi chỉ là một điều mà một máy tính có thể làm. Vì vậy, một chương trình đa luồng là một chương trình mà có thể làm nhiều việc cùng một lúc. Và tất cả các ví dụ vậy, đến nay đã có chỉ là một kịch bản, do đó, để speak-- một chương trình như thế này lên đây. Nhưng nhận thấy chương trình này có hai sprites, hai nhân vật. Một là một con chim. Một là một con mèo. Và nhận thấy khi tôi bấm vào các xuống trái, họ từng có kịch bản riêng của họ hoặc các chương trình liên kết với chúng. Và cả hai loại các chương trình, thông báo, bắt đầu với clicked-- cờ khi màu xanh lá cây chúng ta hãy nhìn vào cat-- khi lá cờ màu xanh lá cây nhấp vào. Và như vậy thực sự, khi tôi nhấn play bây giờ, hai điều sẽ xảy ra cùng một lúc. Con mèo và chim đều sẽ hoạt động cùng một lúc để tạo ra hiệu ứng này. Và bạn có thể tưởng tượng được những gì đang xảy ra. Có một vòng lặp và chim và con mèo đang ở trong một vòng lặp. Con chim chỉ được nảy như Tôi là trước khi tôi nói ouch. Nhưng con mèo rõ ràng có một lợi thế. Có một khối cảm biến trỏ con mèo cố ý cho con chim trong trường hợp này đây. Vì vậy, chúng ta có thể trêu chọc nhau, bằng cách tìm kiếm thông qua những khối, những gì đang xảy ra. Nhưng các thành phần quan trọng ở đây là một. Những con chim, vì vậy mà trò chơi này không phải là hoàn toàn boring-- hoặc animation-- này bắt đầu từ một hướng ngẫu nhiên. Và các máy tính được chọn một số giữa 90 và 180 về cơ bản, do đó, nó là một chút hình ảnh động khác nhau mỗi lần. Và sau đó thông báo ở đây, nếu các mèo là chạm vào chim, sau đó chơi con sư tử bốn sound-- tiếng gầm. Nhưng trong khi đó ở chim bảng màu, chúng tôi có điều này. Mãi mãi, nếu không chạm vào con mèo, chỉ tiếp tục di chuyển ba bước. Và sau đó đây là một mảnh ghép. Nếu bạn đang ở trên bờ, tung lên. Vì vậy, các con chim chỉ là loại minding kinh doanh của riêng mình, chỉ bay xung quanh và nảy, và nó thực sự con mèo đó đã có những điều kiện logic để xác định xem nó đã bắt được con chim. Tất cả các quyền. Vì vậy, chúng ta hãy làm một khác ở đây, này được gọi là Hi Hi Hi. Và một trong những điều này ở đây chỉ làm này trong một vòng lặp mãi mãi. Nhưng notice-- làm thế nào để chúng ta dừng lại chương trình này rất khó chịu? Nhấn thanh không gian. Bởi vì nếu tôi làm điều đó, các program-- tay trái nhận thấy nó không ngừng listening-- là báo chí không gian chính. Nếu thanh không gian ép, và nếu như vậy, nó làm gì? Nó thực hiện một kỹ thuật rất phổ biến. Nó đặt ra một biến bằng một số giá trị. Nhưng nó Toggles giá trị đó. [? Vì vậy, sự xuất hiện?] dựa trên I shape-- có một biến mà tôi đã viết trước được gọi là Tắt tiếng, mà chỉ nói có hoặc không. Sản phẩm âm thanh tắt tiếng hay không? Đúng hay sai? Và thông báo, tôi nói nếu này-- tắt là số không, sau đó thay đổi một, khác thiết câm nó không. Vì vậy, chỉ cần lật các giá trị từ số không đến một. Tôi có thể có done-- thay đổi nó từ hai đến ba và 3-2 hoặc 4-5 hoặc 4-6. Nhưng nó không quan trọng những số liệu mà tôi sử dụng, chừng nào tôi còn giữ thay đổi nó thì ngược lại. Và hầu hết các lập trình viên nào sẽ chỉ chọn không và cùng-- sai lầm và sự thật, tắt và on-- đại diện này. Và điều này vẫn chạy. Nếu tôi nhấn thanh không gian một lần nữa [SEAL SOUNDS] Chương trình vẫn chạy. Bởi vì có kịch bản này khác nói rằng, mãi mãi làm như sau. Nếu biến tắt tiếng bằng zero-- vì vậy nếu bạn không tắt là logic-- nếu nó sai hay không, sau đó chơi âm thanh, bởi vì bạn đang không bị tắt. Bạn nên chơi các âm thanh và sau đó nghĩ hi hi hi hai giây và sau đó chờ đợi, và làm điều đó Một lần nữa và một lần nữa và một lần nữa. Và vì vậy theo cách này chúng ta có một cách để người với: cho các chương trình tương tác. Và họ không phải được như ngày như những người khác. Trong thực tế, chọc around-- không có ý định chơi chữ-- một người nào đó đã dành một số tiền rất lớn của Hiện trên mạng Internet thực hiện PokemonGo trong Scratch. Nó thậm chí geolocates bạn ở Cambridge hay Allston đây. Vì vậy, nếu bạn muốn xem quá những gì mọi người có thể làm là này-- menu rất lạ mắt. Click vào đây. Đây là tôi với các phím mũi tên của tôi bây giờ. Tôi sẽ đi sau này. Nhấp chuột. Và bây giờ bạn nhấp vào Green path. Ý tôi là, tôi nghĩ rằng bạn đang phải bấm vào Green path. Tất cả các quyền. Vì vậy, tôi đã làm điều đó. Tôi có thể đi qua đây. Và người này thực hiện một số chi tiết PokeBalls trên đây-- ba PokeBalls. Chúng tôi sẽ đăng một liên kết đến đây trực tuyến để bạn có thể chơi. Nhưng chú ý là chỉ một số khối xây dựng cơ bản. Có vẻ đài các rất nhiều, và nó được. Đây là ấn tượng và nhiều hơn nữa hơn chúng ta sẽ thường mong đợi, chắc chắn cho vấn đề thiết lập bằng không. Tôi không có ý tưởng bao lâu người này gian online. Nhưng đó là tất cả chỉ là một vòng lặp. Có một sân chơi âm thanh. Có một số loại vòng lặp nghe cho dù tôi là nhấn mũi tên lên hoặc xuống mũi tên hoặc bên trái và bên phải, và sau đó nếu như vậy, nó đang chuyển động nó một số lượng điểm ảnh. Và sau đó nếu tôi bấm vào sprite khác, có một số loại nếu tình trạng đó. Vâng, điều này là nhận được quá mãnh liệt. Chúng ta sẽ dừng lại. Đó là tất cả những khối xây dựng cơ bản. Không có thành phần nào khác so với những người chúng ta đã xem xét đã. Và ở đây, hãy để tôi làm một trong tập cuối cùng của ví dụ đó vẽ một bức tranh quá về những gì bạn có thể làm ở đây. Dưới đây là một chương trình rất đơn giản mà chỉ làm này-- ho, ho, ho. Và chỉ dựa vào những gì chúng tôi đã nhìn vậy, đến nay, mà là rõ ràng cơ hội để cải thiện. Chương trình này là đúng. Nó ho ba lần, đó là những gì tôi dự định. Nhưng nó thực hiện kém. Nó được thiết kế xấu. Tại sao? Yeah. Nó không phải là một vòng lặp. Và nó không phải là quá nhiều rằng nó không phải là một vòng lặp, nó rằng có rất nhiều dự phòng. Có được sao chép và đang dán, vậy để nói chuyện. Và giải pháp có thể thực sự là một vòng lặp. Vì vậy, hãy để tôi đi trước và cải tiến đó. Và tôi sẽ kéo những hơn ở đây. Hãy để tôi đi trước và nhận được một sự lặp lại khối, thay đổi này đến ba. Tôi sẽ vứt đi một số lô. Và bạn sẽ nhận thấy nó khá trực quan. Bạn kéo và thả và điều xuất hiện và biến mất cuối cùng. Và tôi chỉ có thể kéo này ở đây, và Tôi đã có một phiên bản sạch vẫn còn. Nhưng bạn biết những gì? Có cơ hội này bây giờ cho abstraction-- để bắt đầu để định nghĩa từ vựng mới rằng MIT đã không lường trước được. Có đợi và lặp lại và mãi mãi, và nếu, nhưng những gì nếu tôi muốn giới thiệu ho từ như là một khối? Nếu tôi muốn có một mảnh ghép mục đích mà trong cuộc sống là để ho? Vâng, chúng ta hãy nhìn vào phiên bản này ở đây, mà tôi đã thực hiện như sau. Kỳ diệu, tôi đã tạo câu đố này mảnh ở đây, mà cào cho phép bạn làm. Và thực sự C và Python và JavaScript sẽ cho phép bạn làm điều này là tốt. Bạn có thể tạo riêng của bạn mảnh mà bạn gọi những gì bạn muốn. Trong trường hợp này, ho cảm như một định nghĩa hợp lý. Và sau đó với những mảnh xuống ở đây bạn có thể xác định những gì nó có nghĩa. Tôi kéo và thả xuống từ bảng màu này đây-- hơn blocks-- tím lớn này khối, nơi mà tôi đã gõ trong ho như tên gọi của mảnh ghép mới của tôi. Và sau đó tôi nói bất cứ lúc nào một người sử dụng gọi mảnh ho đố mới này, làm tiếng nói và chờ đợi. Và như vậy lên ở đây trong khối lặp lại của tôi, Tôi chỉ có thể ho ba lần. Và tôi sẽ tranh luận, đặc biệt nếu bây giờ bạn ẩn các chi tiết này. Ai quan tâm như thế nào ho được thực hiện? Tất cả tôi quan tâm là một lập trình mà tôi có thể ho. Tôi không quan tâm như thế nào nói được thực hiện. Tôi chỉ quan tâm rằng mèo có thể nói điều gì đó. Tôi có thể tóm tắt đi mà chi tiết và chỉ tập trung vào những gì trên màn hình ở đây. Nhưng tôi có thể mất thêm một bước này. Chú ý rằng ở đây, tôi có thực hiện các vòng lặp ba lần. Nhưng nếu thay vào đó tôi lấy phiên bản này? Và nếu thay trong phiên bản này ở đây, Tôi chỉ cần thay đổi mảnh ghép của tôi để mất một đối số và đầu vào cho chính nó? Và đầu vào có thể được một số giống như ba. Vì vậy, bây giờ, nếu tôi viết một chương trình và tôi muốn con mèo ho, Tôi thực sự có thể nói với các câu đố mảnh bao nhiêu lần để ho, vì ở dưới đây, một fancier phiên bản của những miếng tùy chỉnh câu đố cho phép tôi xác định rằng ho thực sự mất một input-- có một đối số như thế này. Và bạn biết những gì? Có lẽ tôi nhận ra, chờ một phút. Ho là same-- đó là cơ bản cùng một ý như hắt hơi. Nó chỉ là một khác nhau chữ trên màn hình. Tôi có thể tóm tắt đi hơn nữa và thực hiện bản cuối cùng của một ho, mà ở cái nhìn đầu tiên là cách phức tạp hơn tìm kiếm. Nhưng cần chú ý những gì tôi đã làm. Tôi có bây giờ generalized-- genericized really-- mảnh ghép này để được gọi là nói từ n lần. Và bây giờ tôi có hai mảnh ghép mới xuống đây xác định ho n lần. Và những gì hiện các chức năng ho làm gì? không tùy chỉnh của tôi mảnh ghép làm gì? Nó chỉ kêu gọi các khối nói, đi qua trong lời tôi muốn nói, đi qua trong số lần tôi muốn nói. Bởi vì bây giờ tôi có thể thực hiện hắt hơi bằng cách đơn giản nói achoo, trong trường hợp này, một số số lần. Và vì vậy tôi tạo lớp và lớp. Và một lần nữa, chìa khóa ở đây không phải là làm thế nào tôi thực hiện nó, nhưng thực tế rằng nếu tôi chỉ theo nghĩa đen di chuyển các tắt màn hình, tìm cách đơn giản nếu không khá chương trình của tôi bây giờ trông. Bởi vì nó làm những gì nó nói, tôi đã tóm tắt đi những gì là bên trong hộp đen. nó sẽ xảy ra là một hộp màu tím ở đây, nhưng tôi đã bị che khuất đi những gì bên trong bởi vì tôi không quan tâm làm thế nào nó hoạt động. Tôi chỉ quan tâm bây giờ mà nó hoạt động. Và quả thực, trong vấn đề thiết không, điều này là chính xác các loại lớp của những ý tưởng bạn sẽ có cơ hội để khám phá. Đó chính xác là những cơ hội để áp dụng giải quyết các vấn đề kỹ thuật, những gì có thể là một môi trường không quen thuộc. Và cho dù bạn đã không được lập trình trước hoặc lập trình trước, bạn sẽ thấy rằng có một chút gì đó trong môi trường này cho tất cả mọi người. Và với vấn đề thiết lập một trong thời gian một tuần, chúng tôi sẽ chuyển sang tập trung trên một ngôn ngữ cấp cao hơn được gọi là C-- hay đúng hơn là một thấp ngôn ngữ cấp gọi C-- mà thậm chí còn nhiều hơn mạnh mẽ, mặc dù nó một chút bí ẩn hơn ở cái nhìn đầu tiên. Và bạn sẽ nhận ra mỗi TL ngày nay: DR, rằng vấn đề này thiết có một ngắn hơn cửa sổ thời gian hơn so với những người trong tương lai, đơn giản bởi vì bạn sẽ tìm thấy nó khá truy cập. Và không phải lo lắng nếu bạn thêm lớp muộn. Chúng tôi sẽ giải quyết mà chẳng bao lâu. Và trước khi chúng tôi hoãn cho bánh, hãy kết thúc chỉ với một cái nhìn hai phút vào những gì đang chờ đợi bạn ở đây trong CS50. [NHẠC] Tất cả các quyền. Đó là nó cho CS50. Chúng tôi sẽ sớm gặp lại anh. Bánh hiện đang phục vụ. [NHẠC] SPEAKER 17: Bạn đã nghe nói của một ngày phép, trưởng? SPEAKER 18: Có lẽ có hơn dưới mui xe.