DAVID Malan: Đây là CS50, và điều này là sự bắt đầu của một tuần. Và những gì chúng tôi nghĩ chúng tôi sẽ làm được kéo trở lại bức màn của một thiết bị có nhiều của bạn có thể đi ngang qua giờ trong nhiều năm qua, nhưng có lẽ không bao giờ khá biết nó là gì. Vì vậy, thiết bị này có thể sẽ xem xét quen thuộc với hầu hết các bạn bây giờ. [VIDEO xem lại] -Một chiến thắng của toán học và kỹ năng cơ khí là mới tuyệt vời này máy tính tự động tại Đại học Harvard. Vấn đề phức tạp trong toán học đặt thông qua các máy dưới dạng mã hóa trên băng được giải quyết một cách chính xác trong một phút phần nhỏ của thời gian cần thiết cho tính toán của con người. Được thiết kế để tiến hành mọi hình thức nghiên cứu toán học và khoa học, não cơ khí khổng lồ sẽ làm việc cho Hoa Kỳ Hải quân cho đến khi chiến tranh kết thúc. [END xem video] DAVID Malan: Vì vậy, đó là những gì bạn nhìn thấy trong Trung tâm Khoa học, đó là nơi mà mà máy bây giờ được đặt. Bạn thực sự chỉ nhìn thấy một phần của nó. Chỉ có một phần đang được trưng bày, và đó là một thiết bị được gọi là Mark I, và nó đã được cơ bản một máy tính thực sự rất lớn. Nó đã được thay thế bởi các Mark II, và đó là từ Mark II mà chúng tôi thực sự nhận được một chút của từ vựng. Đây là trường hợp đầu tiên được ghi một cái gì đó bạn đang về để trở thành tất cả quá quen thuộc trong các trình học kỳ - cụ thể là, một lỗi. Vì vậy, nó bật ra tại một thời điểm Mark Thiết bị II đã không hoạt động đúng, và khi kiểm tra chặt chẽ hơn, có thực sự là một lỗi - một loài bướm đêm - rằng bướm - bên trong. Và kể từ đó, chúng tôi đã gọi sai lầm trong các chương trình như lỗi. Vì vậy, thêm vào đó đi. Phát biểu của video là tốt, nếu bạn chưa có, biết rằng CS50 là rõ ràng là quay phim. Các bài giảng thường đi lên ngay sau khi lớp trong sắp xếp của một trước khi phát hành định dạng chưa được chỉnh sửa, và sau đó một hoặc hai ngày sau đó, chúng tôi đưa ra một độ phân giải cao và phiên bản chất lượng cao hơn. Bạn có thể nhớ lại Vanessa, những người có tài sản, vui chơi với Google Glass, mà tôi nhớ đến tính thời gian này. Vì vậy, nếu bạn muốn đưa ra sau khi lớp và chơi, họ nên làm việc ngày hôm nay. Và nếu bạn muốn xem những gì Vanessa nhìn thấy những ngày khác, những gì bạn sẽ thấy đây - hãy để tôi tăng khối lượng đây trên máy tính xách tay của tôi. [VIDEO xem lại] -Vì vậy, chúng tôi xếp hàng này là lên. Được rồi. Vì vậy, liên lạc này. Được rồi. OK, Thủy tinh. Quay video. Được rồi. Vanessa? [END xem video] DAVID Malan: Được rồi, vậy lý do rằng nó đã không làm việc cho hầu hết các bạn tại khi kết thúc lớp học là vì tôi tiến hành để ghi lại một giờ mà cảnh chỉ vào bản thân mình sau khi Tôi đặt ly xuống. Vì vậy, ngày hôm nay, tôi sẽ để lại cho chúng ra, nhưng cảm ơn bạn Vanessa cho là như vậy thể thao tốt. Trong khi đó, một vài thông báo trước khi chúng tôi giả mạo trước ngày hôm nay. Vì vậy, một, CS50 có truyền thống làm những gì chúng ta có thể cố gắng làm cho rất lớp lớn cảm thấy nhỏ hơn. Và hướng tới mục tiêu đó, hầu hết các ngày thứ sáu, chúng tôi tập trung tại một nhà hàng ở quảng trường, Lửa và Băng, với 30 hoặc 40 các bạn cùng lớp của bạn, bản thân mình, một số đội ngũ giáo viên, và chúng tôi chỉ có một bữa ăn trưa rất giản dị. Chúng tôi thường xuyên mời bạn bè từ ngành công nghiệp, cựu sinh viên của lớp, cựu sinh viên của đại học, thực sự chỉ để trò chuyện mỗi lên khác, nói về cuộc sống sau khi đại học, cuộc sống ở trường đại học, và muốn. Vì vậy, nếu bạn muốn tham gia vào này đầu tiên ăn trưa như vậy vào thứ sáu này tại 13:15, người đứng đầu với URL tại một số điểm. Không gian bị hạn chế, vì vậy chúng tôi sẽ làm đầu tiên đến đầu tiên phục vụ. Nhưng chúng tôi sẽ làm điều này một lần nữa trên một định kỳ cơ sở, vì vậy không phải lo lắng nếu bạn không làm cho nó vào hàng loạt đầu tiên này. Bây giờ, trong điều kiện các nguồn tài nguyên được cung cấp curricularly của khóa học, có cả hàng loạt, và nếu bạn có không kéo lên trang web của khóa học đã có, đặc biệt, theo các bài giảng, bạn sẽ thấy rằng tất cả mọi thứ chúng tôi tuần trước là có, cả hai trong video và một số loại các hình thức điện tử. Nhưng ngoài các đoạn video, bạn sẽ tìm thấy rằng hiện nay có đầy đủ văn bản bảng điểm, ví dụ, của mỗi bài giảng. Vì vậy, nếu chúng ta thực sự quay trở lại màn hình này đây với Vanessa, và điều hướng vào góc dưới cùng của màn hình, bạn sẽ thấy rằng trên thực tế, không cho Bài giảng hôm thứ Sáu, nhưng nếu chúng ta quay trở lại Thứ tư, kể từ khi tính năng này có một vài ngày, bạn sẽ thấy rằng bạn có thể thực sự kéo lên, cho tốt hơn hoặc tệ hơn, mọi lời tôi hoặc một tình nguyện viên trên sân khấu nói. Và hơn điều đó. Bạn thực sự có thể tìm kiếm nó, bạn có thể nhấp vào bất kỳ của những câu, nhảy đến thời điểm đó trong đoạn video, tất cả các đối và kết thúc làm cho vật liệu tất cả các hơn điều hướng. Nhưng nếu bạn không muốn làm theo nó chi tiết như vậy, bạn sẽ tìm thấy, cho Ví dụ, trình đơn này ít vào đây để 1.5x tốc độ, tốc độ 2x, hoặc tôi e tôi đã nói quá nhanh, tốc độ 0.75x. Vì vậy, nhận ra tất cả điều đó là sẵn có cho bạn. Nhưng ngoài ra, đối với các bài giảng, nhận ra chúng tôi cũng làm cho các nguồn tài nguyên cũng có sẵn. Trình bày, mã ví dụ, bất cứ điều gì mà tôi làm trên sân khấu hay trước lớp, chúng tôi sẽ đăng có để bạn có thể chơi cùng tại nhà hoặc tại Sanders. Nhưng những gì chúng tôi cũng nghĩ rằng chúng tôi muốn làm điều này năm lần đầu tiên cũng là cung cấp cho bạn walkthroughs các ví dụ. Dần dần, khi tôi đã phản ánh trên giá trị của các bài giảng CS50, tôi đã bắt đầu đặt câu hỏi như thế nào đó là hữu ích cho các bạn ngồi đó, đối với tôi để đứng ở đây, và cho tôi nói chuyện với bạn, đặc biệt là vật liệu, ví dụ, trở nên phức tạp hơn. Vì luôn, sau khi một số số phút, một người nào đó sẽ vùng ra, và sau đó bạn bỏ lỡ một số cái nhìn sâu sắc quan trọng của một số ví dụ, và sau đó bạn về cơ bản đi cho phần còn lại của lớp, mà không phải là sử dụng tốt nhất thời gian của bạn, hoặc, thực sự, chúng ta chung cả lớp. Và vì vậy những gì chúng tôi nghĩ rằng chúng tôi sẽ cố gắng để làm, đặc biệt đối với một số chi tiết ví dụ phức tạp mà tôi có thể không làm công lý trong lớp học, chúng ta có thể không có thời gian trong lớp, hoặc em có thể chỉ ra trong khu vực, là chúng tôi sẽ sản xuất một loạt các walkthroughs các ví dụ như vậy là nếu bạn đi đến, cho Ví dụ, trang video thứ Sáu tuần trước đây theo ví dụ, bạn sẽ thấy rằng cho ngày thứ Sáu, bây giờ có này liên kết với walkthroughs. Và định dạng của những sẽ thay đổi theo thời gian. Hiện tại, chúng tôi đang sử dụng một đơn giản YouTube danh sách nhạc. Nhưng những gì tôi đã làm với đội ngũ sản xuất của chúng tôi sau đó được đi bộ qua từng và mỗi một trong những ví dụ một lần nữa, hy vọng chỉ ra trong lớn hơn nhiều rõ ràng chính xác những gì bán đồ ăn có thể hoặc nên được từ mỗi người. Vì vậy, bạn sẽ tìm thấy, ví dụ, từ cuối tuần, tất cả các ví dụ đầu chúng tôi đã đi qua được thực hiện tuyến tính trong thời trang. Vì vậy cảm thấy tự do tham gia hay không tham gia vào các vật liệu này. Thực sự là một chủ đề của khóa học đặc biệt này là có thể hơn trong cách các nguồn lực hơn bạn có thể có thể hấp thụ hơn quá trình của một học kỳ. Nhưng đó là cố ý. Nó có nghĩa là để được như vậy mà bạn như cá nhân học sinh có thể tự chọn dựa trên phong cách học tập của bạn. Vì vậy, nếu các bài giảng làm việc cho bạn, tuyệt vời. Nếu các phần việc cho bạn, tuyệt vời. Nếu walkthroughs làm việc cho bạn tốt hơn, tuyệt vời. Nó thực sự sẽ được vào bạn để lựa chọn những nguồn lực làm việc tốt nhất cho bạn. Cuối cùng, nhờ một cựu sinh viên của Tất nhiên, chúng tôi cũng cung cấp một kinh điển thiết lập các ghi chú ghi chép. Vì vậy, thay vì có các bạn đứng đầu xuống trong các bài giảng scribbling xuống điều mà đi lên trong lớp học, chúng tôi, nhân viên, sẽ cung cấp cho bạn những gì chúng tôi cảm thấy là một tập hợp kinh điển của thuyết minh giải phóng bạn phân tâm đó, để nếu bạn đang ở đây và tham gia, bạn có thực sự tham gia với những gì đang xảy ra, với các bạn cùng lớp của bạn đang làm lên trên sân khấu, với những gì trên màn hình, và không chỉ đơn giản là viết ra đúng nguyên văn những gì xảy ra đã được nói. Vì vậy, nhận ra tất cả những tài nguyên có sẵn cho bạn. Sectioning, trong câu trả lời cho một câu hỏi thường, sẽ bắt đầu thứ tư này. Chúng tôi chủ yếu chờ đợi cho đến khi sau khi nhất các lớp khác được thực hiện để chúng ta có thể giảm thiểu số lượng thay đổi rằng chúng ta cần phải làm. Nhưng đến cuối tuần này, bắt đầu từ Chủ nhật, sẽ là một thời gian thể hiện của những gì chúng ta gọi là phần siêu. Này sẽ được quay cho những người không thể tham dự, và về cơ bản, đầu khóa học của chúng tôi sẽ đi qua một số của phần C của khóa học, hướng tới sự kết thúc của bộ một vấn đề, mà sẽ là C đầu tiên của chúng tôi dựa bộ vấn đề. Và những chỉ sẽ được phần tùy chọn với dự đoán về những gì sẽ trở thành phần theo định kỳ dẫn bằng của khóa học 50 cộng giảng dạy nghiên cứu sinh hàng tuần. Vào ngày chủ nhật hoặc thứ Hai hoặc thứ Ba, chúng tôi có 90 phút trong một phần rất ý nghĩa truyền thống, mà sẽ được cơ hội cho các tay trên và nhiều hơn nữa đánh giá sâu sắc về tài liệu khóa học của. Nếu không có thêm ado, hãy để tôi giới thiệu người đứng đầu của khóa học, những người đằng sau hậu trường với tôi, làm cho tất cả mọi thứ xảy ra. Nếu những người ở đây hôm nay có thể tham gia cùng tôi, Rob và Lauren và Joseph và Lucas, tất cả trong số đó đã được với Tất nhiên trong một thời gian. RJ là ví dụ thứ ba thành viên của nhóm chúng tôi. Ông không thể có mặt ở đây ngày hôm nay, nhưng ông yêu cầu tôi cho thấy một bức ảnh của anh. Tôi không chắc chắn anh muốn này một, nhưng có anh ta. Và hãy để tôi chỉ cho phép nhóm nghiên cứu nói xin chào và tự giới thiệu để bạn có biết họ cũng như của bạn đồng giảng dạy của thuật ngữ này. Lauren Carvalho: Hi. Tên tôi là Lauren Carvalho. Tôi là một gia sư thường trú trong Leverett nhà. Tôi cũng siêu vui mừng là một TV đầu cho CS50 năm nay. CS50 là một lớp học rất khó khăn cũng như một lớp học rất lớn, vì vậy nếu bạn có bất kỳ mối quan tâm, nếu bạn cảm thấy như bạn đang tụt lại phía sau, cảm thấy tự do tiếp cận với bất kỳ của chúng tôi tại heads@cs50.het, hoặc cho tôi, nếu bạn muốn thích chơi với vàng của tôi tha mồi con chó con. Đây là Lucas. Lucas Freitas: Chào mọi người. Tên tôi là Lucas Freitas. Tôi là một cơ sở [nghe được] khoa học máy tính và ngôn ngữ học. Tôi thực sự từ Brazil, và tôi cũng thực hiện nghiên cứu Đông Nam Á. Vì vậy, nếu bạn có thắc mắc về khoa học máy tính hay ngôn ngữ hoặc bất cứ điều gì, chỉ cần cho tôi biết. Hoặc CS50, đặc biệt là. Joseph ONG: Hi. Tôi Joseph. Tôi là một máy tính nghiên cứu cao cấp khoa học trong Elliott House. Vì vậy, chúng ta hãy xem. Bạn sẽ thấy xung quanh tôi mang một trong những máy ảnh rất lớn. Tôi là phóng viên ảnh thường trú 50 là tốt, và sinh viên thường đôi khi nhầm lẫn cho tôi một du khách châu Á. Vì vậy, nếu bạn nhìn thấy tôi với một máy ảnh, không chạy đi. Chỉ cần mỉm cười và không ngại. Và tôi hy vọng bạn thưởng thức 50. Tôi rất thích nó rất nhiều khi tôi lấy nó, và đó là lý do tại sao tôi đã TFing cho ba năm. ROB Bowden: Hi. Tôi Rob. Đây là học kỳ thứ tư của tôi với CS50. Tôi vừa tốt nghiệp vào tháng Năm. Tôi đã ở Kirkland. Tôi vui mừng cho học kỳ này, và tôi hy vọng bạn cũng vậy. DAVID Malan: Cảm ơn bạn trong năm nay của người đứng đầu, và RJ là tốt. Vì vậy, một vài lưu ý cuối cùng về nguồn lực. Một, trang thiết 0 đã được phóng lên. Điều này chỉ tồn tại trong tiêu chuẩn phiên bản, trong đó có nghĩa là cho toàn bộ các lớp học. Bắt đầu với p tập 1, sẽ có phiên bản hacker hầu hết các bộ vấn đề, trong đó, một lần nữa, sẽ bao gồm các tài liệu với hơn một chút thách thức, trong khi vẫn còn chạm vào một số chủ đề tương tự. Làm đi xem một trang web của khóa học cho rằng đặc điểm kỹ thuật cho bộ p 0. Giờ làm việc, cũng sẽ bắt đầu trong tuần này, đêm nay, ngày mai, thứ tư, và thứ năm trong ăn uống khác nhau hội trường trong khuôn viên trường. Kiểm tra cs50.net/ohs cho văn phòng giờ cho khóa học, và nhận ra điều này sẽ có cơ hội rất giản dị, chắc chắn, vào lúc bắt đầu của học kỳ, để đến được với bạn máy tính xách tay trong thời gian nghỉ não. Mang lại một số bạn bè và trò chuyện về các TF nhiên và CA với bất kỳ câu hỏi mà bạn có thể có. Và tôi không thể nhấn mạnh đủ, ngay cả đối với đầu và vấn đề thiết lập 0, có Thật sự không có câu hỏi ngớ ngẩn. Không có sinh viên quá khó chịu đặt câu hỏi. Xin vui lòng để tận dụng lợi thế nguồn tài nguyên này. Nó sẽ ở đó recurringly trong suốt học kỳ, như sẽ CS50 Thảo luận. Đây là cuộc thảo luận trực tuyến của khóa học diễn đàn tại địa chỉ đó. Những gì chúng tôi cũng sẽ làm trong bài giảng là cũng giám sát này, nhờ đội ngũ giảng dạy khóa học của. Và vì vậy nếu bạn có một câu hỏi trong giảng dạy, bởi vì tôi biết một cái gì đó kém hoặc không gì cả, bằng mọi cách, hỏi mà trong thời gian thực nếu bạn có của bạn máy tính xách tay hoặc điện thoại trên các trang web, và chúng tôi sẽ làm tốt nhất của chúng tôi trong thời gian thực gần đáp ứng điều đó. Được có bất kỳ câu hỏi về CS 50? Sau đó, người ta ghi nhận cuối cùng của tôi. Rằng vấn đề của SAT UNSAT. Như bạn hoàn thành thẻ học tập của bạn, nếu bạn chưa có, nhận ra rằng tầm nhìn bao quát của SAT UNSAT, có sẵn cho tất cả học sinh, thực sự là để giúp chăm cạnh tắt của một khóa học như thế này, có thể nói, do đó nếu bạn thấy mình muộn vào ban đêm, 2:00, 3:00, thực sự đập đầu của bạn lên chống lại tường nơi bạn biết bạn là 99% con đường đó để hoàn thành, nhưng bạn có rất nhiều điều khác để làm, Tôi nghĩ rằng việc sử dụng tốt hơn, thường xuyên, của thời gian học sinh là thực sự chuyển sang những điều khác để bạn có thể tối ưu hóa thời gian của bạn tất cả xung quanh. Và SAT UNSAT là một trong những cơ chế thông qua đó bạn có thể thoải mái trong thực tế rằng 99% của con đường đó là vẫn còn khá darn tốt. Tương tự như vậy, cũng vậy, nếu bạn đã đi vào Tất nhiên không có kiến ​​thức trước khi hoặc không gần như nhiều nền như bạn nghĩ rằng các bạn cùng lớp của bạn có thể có, đúng hay sai, nhận ra rằng đây là một cơ hội để có được bàn tay của bạn bẩn với khóa học, đặt ngón chân của bạn trong nước, có thể nói, giống như bản thân tôi đã làm năm trước đây với vượt qua / không. Như tôi đã nói tuần trước, đã có khóa học này, như những người khác, không được có sẵn vượt qua / thất bại vào thời điểm đó, tôi có lẽ sẽ không bao giờ bước chân vào lớp, mặc dù tôi đã làm, năm tuần sau đó, thay đổi tâm trí của tôi, mà bạn cũng có thể, và chuyển sang hoặc từ tình trạng phân loại thư. Được rồi. Vì vậy, chúng ta nhìn vào những thứ như thế này trên Thứ sáu, và chúng tôi đang rất nhanh chóng đi để chuyển đổi sang một cái gì đó có vẻ khó hiểu hơn ngày hôm nay. Nhưng nó dù sao các cùng một ý tưởng cơ bản. Một thuật ngữ chung là những gì mà chúng ta được sử dụng để mô tả một mảnh ghép trông như thế này? Vì vậy, một tuyên bố. Và bạn có thể gọi bất kỳ này số thứ. Nhưng chúng tôi sẽ chỉ gọi nó là một tuyên bố, và một tuyên bố chỉ cho chương trình - hoặc trong trường hợp cào, ma - để làm một cái gì đó. Chào trong trường hợp này. Một cái gì đó như thế này, chúng tôi thay vì gọi là gì? Yeah, do đó, một biểu thức Boolean. Một biểu thức Boolean chỉ là một cái gì đó đó là đúng hay sai, và vì vậy Scratch lôi kéo họ với hình dạng này, nhưng cũng với một dấu hỏi để truyền đạt ý kiến ​​cho rằng câu trả lời cho câu hỏi này là đúng hoặc sai, có hoặc không có một, 1 hoặc 0. Và chúng tôi sử dụng các biểu thức Boolean bên trong các cấu trúc như thế này, mà chúng ta gọi là gì? Vì vậy, điều kiện hoặc chi nhánh. Và điều kiện mà bạn nhìn thấy ở đây trong Đầu có một chút giữ chỗ cho một mảnh ghép của hình dạng, mục đích trong số đó là để bạn có thể kéo và thả nó vào đầu và sau đó ra lệnh cho chương trình nếu Boolean này biểu hiện là sự thật, làm bộ này hướng dẫn, tập hợp các báo cáo, khác làm điều này thiết lập khác hướng dẫn. Và nhớ rằng bạn có thể tổ những điều này. Mặc dù không có nhiều phòng trực quan trong đó mảnh ghép, Scratch sẽ phát triển và thu nhỏ để phù hợp với bất cứ điều gì mảnh ghép bạn kéo và thả trong có như vậy bạn có thể thực sự làm tổ này và có một cách ngã ba ba trên đường. Nếu, nếu người nào khác, người nào khác. Và bạn thậm chí có thể đi xa hơn bằng cách làm tổ hơn nữa và tiếp tục khi cần thiết. Vì vậy, cuối cùng, chúng ta đã thấy cấu trúc như này, nếu không được biết đến như một vòng lặp. Và điều này chỉ là một cái gì đó mà không một cái gì đó một lần nữa và một lần nữa và một lần nữa. Trong trường hợp này, nó sẽ xảy ra là một hữu hạn số lần, nhưng chúng tôi cũng thấy một ví dụ có số lượng Thời gian đến từ một biến, vì nó có thể thay đổi. Và chúng tôi cũng thấy khối khác hoàn toàn được gọi là một khối mãi mãi mà cho phép chúng tôi vòng lặp vô hạn dài. Vì vậy, một cấu trúc khác Scratch 2.0 có - và những người bạn hơn thoải mái với nền trước là đã cũng quen thuộc với điều này xây dựng - những điều này chúng ta gọi là gì? Vì vậy, chúng ta gọi là các chức năng này, nếu không được gọi là thủ tục. Có một sự khác biệt ngữ nghĩa nhẹ, nhưng chúng ta sẽ gọi họ chỉ chức năng. Và một chức năng, trong trường hợp cào, là một mảnh ghép tùy chỉnh mà bạn mình có thể tạo ra để bạn có một mảnh ghép mới, trong này trường hợp, sẽ được gọi là ho, mà xuất hiện trong tất cả các khác mảnh ghép có sẵn trong Scratch. Mặc dù MIT đã không phát minh ra này mảnh ghép, bạn đã làm. Vì vậy, một chức năng cho phép bạn tạo mới hành vi, cung cấp cho nó một tên chức năng, và sau đó gọi nó, vậy để nói chuyện. Thực sự sử dụng nó trong chương trình một lần nữa và một lần nữa và một lần nữa mà không cần phải chờ đợi cho một người như MIT xuống đường để phát minh ra chức năng mới từ Scratch. Bạn mình có thể xây dựng các câu đố phần mình, và sau đó tái sử dụng chúng trong các chương trình của riêng bạn. Và chúng ta sẽ thấy một ví dụ định kỳ điều đó hôm nay trở đi. Vì vậy, ngày hôm nay, chúng tôi chuyển tiếp tại một cái gì đó phức tạp hơn. Nhưng vào cuối ngày, một cái gì đó mạnh hơn và biểu cảm và nhiều hơn nữa đại diện của con đường mà chúng ta sẽ có trên tất cả các học kỳ trong một số các ngôn ngữ - của mã hoặc mã nguồn. Và mã nguồn, nó quay ra, không phải là những gì một máy tính thường thực sự chạy. Mã nguồn trông giống như thế này. Vì vậy, đây là, một lần nữa, có lẽ là đơn giản nhất chương trình chúng ta có thể viết trong một ngôn ngữ được gọi là C. Chúng tôi sẽ bắt đầu trêu chọc này ngoài bao lâu, và nếu điều này thực sự trông giống như Hy Lạp để bạn ngay bây giờ, tôi tin tưởng. Chỉ trong vòng một hoặc hai tuần của thời gian, điều này sẽ được tất cả quá quen thuộc và thực sự khá đại diện của ngày càng ví dụ phức tạp mà bạn sẽ cũng có được thoải mái hơn. Nhưng bạn không thể chỉ chạy loại mã thường. Bạn phải biến nó thành một cái gì đó máy tính tự hiểu. Và do đó, cho rằng, chúng ta cần một cái gì đó chúng ta sẽ gọi một trình biên dịch. Một trình biên dịch là một chương trình mà có mã nguồn, như bạn thấy, như đầu vào, và nó tạo ra là zero và những người như đầu ra, nếu không được gọi là mã đối tượng. Và đó là những con số không và những người có thể trông khá như thế này mà cuối cùng được hiểu bởi máy Mac hoặc máy PC của bạn. Nếu bạn đã từng nghe tiếp thị biểu Intel Inside, mà chỉ có nghĩa là một công ty gọi là Intel đã sản xuất các bộ não của máy tính của bạn - hay còn gọi là CPU, đơn vị xử lý trung tâm - và đó mới chỉ là điều mà hiểu mẫu của zero và những người thân. Và như vậy bằng cách chuyển đổi mã nguồn vào mã đối tượng thông qua quá trình này đây rằng chúng tôi sẽ làm gì với một vài lệnh trong chỉ là một chút, bạn có mẫu tạo của zero và những người thân rằng các nhân viên của Intel có quyết định đại diện cho báo cáo nhất định. Bây giờ, tôi hoàn toàn không biết đó được đó bằng cách chỉ liếc nhìn những con số không và những người thân. Hầu hết con người những ngày này không. Nhưng ở đâu đó trong có một mô hình của zero và những người đại diện cho tuyên bố in. Một nơi nào đó trong đó có thể là một khác nhau tập hợp các số không và những người đại diện cho khái niệm mãi mãi hoặc lặp lại 10 lần hoặc thậm chí meo meo, nếu nó thực sự là một chương trình có thể bao gồm một số âm thanh. Vì vậy, trong ngắn hạn, con người vừa quyết định, giống như chúng tôi đã làm cho ASCII - cho các chữ cái trong bảng chữ cái tuần trước - con người đã quyết định rằng thậm chí các mẫu phức tạp hơn của zero và những người thân đại diện cho hành vi phức tạp hơn như in ấn hoặc nói hoặc meowing. Và do đó, cho ngày hôm nay, và phần lớn trở đi trong học kỳ, chúng tôi sẽ cho cấp rằng ai đó đã tìm ra cách để làm bản đồ đó. Nhưng chúng tôi, phù hợp với ý tưởng này của lớp trên đầu trang của các công việc của người dân người đã đi trước chúng ta, sẽ cho cấp thực tế là điều này đang xảy ra bên dưới mui xe. Nhưng chúng tôi đang quan tâm nhiều hơn trong xây dựng những điều hơn thú vị trên đầu trang của tất cả điều này. Và như vậy thực sự, chương trình đầu tiên chúng tôi đã viết trong Scratch là siêu đơn giản này một, Xin chào thế giới. Và bạn có thể nghĩ về điều này như là chương trình chính mà điều chỉnh Scratch của hành vi như của cuối tuần trước. Hôm nay, chúng ta sẽ bắt đầu dịch Gãi mảnh ghép vào mã nguồn trong ngôn ngữ này được gọi là C để những gì trông như thế này trên Thứ sáu, bắt đầu từ hôm nay trở đi, là bây giờ sẽ trông như thế này. Phải thừa nhận rằng hơn khó hiểu. Nó khá mất tập trung và phân loại của tâm trí tê để xem tất cả các dấu ngoặc kép và dấu chấm phẩy và ngoặc đơn và vv. Nhưng nếu bạn bắt đầu để bỏ qua bất cứ điều gì bạn không hiểu, và thực sự nhìn tinh túy của văn bản trắng trên màn hình, chắc chắn bạn nhìn thấy, như tôi làm, "Hello, thế giới." Rằng dòng lên với tuyên bố màu tím lên hàng đầu, và nó biến ra rằng các từ khóa chính sẽ xếp hàng với khái niệm khi màu xanh lá cây cờ nhấp vào. Vì vậy, nói cách khác, trong khi ở cào, chúng tôi thực hiện chương trình này Hello World với hai mảnh ghép, trong C, chúng ta sẽ thực hiện nó với những bốn dòng hơi khó hiểu. Nhưng khi chúng ta đi sâu hơn vào điều này, bạn sẽ thấy rằng mỗi một trong những các ký tự trắng trên màn hình thực sự có một số ý nghĩa quan trọng, và hầu hết các chương trình của chúng tôi sẽ xem cấu trúc khá giống nhau. Do đó, một tuyên bố, để được rõ ràng, những gì trông giống như "nói hello world" trên Thứ Sáu sẽ bắt đầu tìm kiếm như thế này vào hôm thứ Hai. printf ("hello, thế giới"). Và có một số dấu chéo ngược lạ n, có dấu ngoặc đơn, có dấu chấm phẩy. Nhưng vào cuối ngày, chìa khóa takeaway hôm nay là tất cả chúng ta đang làm được chuyển mọi thứ từ hình ảnh hình thành hình thức văn bản. Vì vậy, một vòng lặp mà trông như thế này tuần trước là sẽ bây giờ nhìn một cái gì đó như thế này. Và hãy để tôi từ chối, giống như trong Đầu, có nhiều cách khác nhau để đạt được cùng một mục tiêu. Cùng trong C. Tôi không hiển thị cho bạn các chỉ cách để làm điều này, nhưng có một cách để dịch này mãi mãi ngăn chặn một vòng lặp trong C. Này ở đây, lặp lại 10 lần. Này thực sự loại uốn cong tâm lần đầu tiên bạn nhìn thấy nó. Nhưng để thực hiện điều đó từ nay về sau, chúng ta sẽ sử dụng một cho vòng lặp, do đó, để nói chuyện. Và rõ ràng có một số cú pháp đó là một chút phức tạp đó với tôi và bình đẳng và 0, nhưng khi chúng tôi đi sâu vào đó hôm nay trở đi, bạn chỉ cần đi để thấy rằng đó là tất cả chỉ đơn giản là làm một số số học cơ bản để có được chúng từ 0 trên lên đến 9 hoặc 10 trong trường hợp này. Cuối cùng, với các biến, bạn sẽ nhớ lại một biến là một phần dung lượng lưu trữ. Vâng, những gì chúng tôi đã có trên bên trái có cuối cùng tuần là sẽ xem xét một chút một cái gì đó như thế này trong tuần này. Nhưng một lần nữa, thêm vào đó đi. Chúng tôi đã có các biểu thức Boolean, mà tuần trước, trông như thế này. Tuần này trở đi, họ sẽ bắt đầu để tìm một chút như thế. Và điều này thực sự một chút yên tâm. Nó thực sự gần như là đơn giản như các khối màu xanh lá cây. Nhưng ở đây chúng tôi có, một lần nữa, một số cú pháp mới với ampersands, nhưng bạn có thể có lẽ đoán trong khi trong Scratch, bạn nói A-N-D, rõ ràng trong C, chúng tôi sẽ nói dấu và ký hiệu. Nhưng tất cả điều này sẽ trở thành tự nhiên trước khi dài. Điều kiện. Tuần trước, nó trông giống như này bên trái. Tuần này, bên phải, đó là sẽ xem xét như thế. Nhưng một lần nữa, các Yếu tố chính ở đây là như bạn thấy những điều như thế trên quyền, và đặc biệt là nếu ít thoải mái, đó là loại trên của bạn đầu, bạn sẽ có được một chút áp đảo mà Tôi thực sự không có ý tưởng làm thế nào tôi có thể có thể đưa ra mà từ đầu - không có ý định chơi chữ - chỉ nhận ra rằng nó thực sự là như nhau ý kiến ​​cho rằng có thể cảm thấy nhiều hơn nữa tự nhiên với tuần trước. Và ngay cả khi bạn không nhảy vào vấn đề thiết lập 0, tôi dám khẳng định rằng bạn sẽ tìm thấy rằng các mảnh ghép là khá trực quan, hoặc ít nhất là trở nên theo thời gian. Vì vậy, hãy bổ nhào nhập Chúng ta hãy có được bàn tay của chúng tôi bẩn ở đây với chương trình đơn giản đầu tiên này. Và đơn giản là, tất nhiên, tương đối. Để làm điều này, tôi sẽ thay đổi màn hình để thiết bị mà tôi gọi là CS50 thiết bị. Thiết bị CS50 là một phần của phần mềm đang chạy bên trong một cửa sổ trên máy Mac của tôi, và bạn cũng có thể chạy nó trong một cửa sổ bên trong máy tính của bạn, mà cho phép tôi để có cùng chính xác môi trường máy tính như mỗi TF, như mỗi CA, như mọi học sinh trong lớp. Bởi vì các thiết bị CS50 là nghĩa đen hệ điều hành khác được gọi là Linux - đặc biệt Fedora Linux - và chúng tôi, những nhân viên, đã cấu hình quá trình cài đặt này hệ thống hoạt động trong một cách mà một, có một chút CS50 logo trong giữa, hai, có một trình đơn tùy chỉnh tại phía dưới, và ba, sư phạm, chúng tôi đã giản giao diện người dùng như nhiều càng tốt để khi bạn khởi động đầu tiên điều này lên trên của riêng bạn Mac hoặc máy PC, bạn có cùng môi trường như mọi người khác, và bạn có tất cả các công cụ mà bạn cần cho các khóa học mà không cần phải tìm hiểu làm thế nào để cài đặt mỗi và mọi công cụ riêng lẻ. Vì vậy, điều này có vẻ tương đối như hệ điều hành Mac hoặc Windows. Ở góc dưới bên trái, bạn về cơ bản có một trình đơn Start của các loại, hoặc một trình đơn Apple. Và sau đó bạn có những gì chúng tôi nghi ngờ sẽ có ba biểu tượng phổ biến nhất của bạn. Một là Chrome. Có một trình duyệt bên trong của thiết bị. Hai là một chương trình được gọi là gedit, mà chúng ta đã thấy một thời gian ngắn hồi tuần trước, đó là chỉ là một trình biên tập đồ họa. Và ba là một chương trình thiết bị đầu cuối, mà là một cửa sổ màu đen và trắng năm qua cho phép chúng ta nhập hơn lệnh phức tạp nhưng mạnh mẽ hơn ở bàn phím của chúng tôi. Vì vậy, tôi sẽ đi trước và bấm vào gedit, và yên tâm rằng vấn đề thiết lập 1, sẽ được phát hành vào thứ Sáu, sẽ hướng dẫn bạn qua tất cả các bước tương tự. Chú ý rằng tôi có một khá đơn giản giao diện người dùng với ba phần. Bên trái, tôi có một sản phẩm nào lớn cửa sổ được gọi là mã nguồn. Đó là nơi mà tôi sẽ thấy một bản tóm tắt của bất kỳ mã mà tôi viết. Ở phía bên tay phải, tôi có một lớn tab, hiện chưa được cứu, và đó là nơi mà mã của tôi sẽ đi. Và ở phía dưới, tôi đã một nhúng Cửa sổ thiết bị đầu cuối, một màu đen và trắng nhắc nhở mà tôi có thể nhập lệnh để biên dịch và chạy chương trình của tôi - đó là, để thực hiện và chạy các chương trình của tôi. Vì vậy, hãy bắt đầu đơn giản. Hãy để tôi đi lên vào File, Save. Tôi sẽ đi trước và đi vào jharvard. Vì vậy, thiết bị này, không phân biệt gì tên của bạn, thuộc về một người tên là John Harvard, người có một nhà jharvard thư mục bên trong đó tất cả các bạn tập tin sẽ đi. Đó là bản sao của riêng bạn của tài khoản của mình, vì vậy chúng tôi không phải tất cả chia sẻ ổ đĩa cứng giống nhau. Bạn chỉ có ảo tưởng của riêng John Harvard. Trước, tôi thực sự cài đặt Dropbox. Thiết bị đi kèm với preprepared Dropbox để nếu bất cứ điều gì sai trái trong học kỳ, nếu bạn đã cấu hình thiết bị của bạn với một miễn phí Tài khoản Dropbox, tất cả các tập tin của bạn sẽ được tự động sao lưu, do đó bạn có thể dễ dàng khôi phục lại chúng. Và tôi sẽ đi vào Dropbox của tôi thư mục, và có ấy đã đi là một vài thứ khác ở đó. Nhưng tôi sẽ đi trước và vào File, Save. Tôi sẽ đi vào jharvard, Dropbox, và ở đây, tôi sẽ cho chương trình của tôi một siêu đơn giản tên, hello.c, và sau đó lưu. Vì vậy, tôi có giao diện tương tự ngay bây giờ. Điều duy nhất mà đã thay đổi là tab lên hàng đầu. Vì vậy, tôi rất nhanh chóng sẽ tạo chương trình từ trượt một thời điểm trước đây. Vì vậy, vào main (void), và sau đó printf, "Hello, thế giới", một hơi khó hiểu dấu gạch chéo ngược n, trích dẫn gần, gần ngoặc đơn, dấu chấm phẩy, và sau đó Ctrl S để lưu lại. Và thông báo như một sang một bên những gì chỉ xuất hiện ở đây trên cùng bên trái. Và điều này là không hữu ích ngày hôm nay, nhưng sẽ hữu ích theo thời gian. Bạn chỉ cần nhìn thấy, một lần nữa, một bản tóm tắt của mã mà bạn đã viết. Và bởi vì tôi đã viết một cái gì đó gọi là chính, đó là lý do tại sao từ chính xuất hiện lên trên đó. Nhưng đối với hầu hết các phần, chúng tôi không cần điều đó ngày hôm nay. Được rồi, vì vậy tôi cho rằng đây là của tôi chương trình đầu tiên được viết trong một chương trình ngôn ngữ được gọi là C. Chúng tôi biết từ thứ Sáu rằng những gì điều này sẽ làm rất uninterestingly khi tôi chạy nó chỉ được hiển thị - nói cách khác, in, như một máy tính nhà khoa học sẽ nói - hello thế giới trên màn hình. Vì vậy, để làm được điều này, bạn sẽ nhận thấy rằng tôi có đi xuống đây để thiết bị đầu cuối của tôi cửa sổ, và bây giờ tôi có một nhấp nháy nhanh chóng. Nhưng điều này hiện nay là một phiên bản của bàn phím thư mục John Harvard của tôi. Đó là một cách bàn phím thông qua đó để di chuyển ổ cứng của tôi. Vì vậy, tôi có thể không thực sự gõ như tôi đã làm tuần trước làm cho xin chào, bởi vì nó sẽ nói không có quy tắc để thực hiện mục tiêu - một cái gì đó không ổn. Tôi hoàn toàn không biết tin nhắn đó phương tiện, nhưng đó là bởi vì theo mặc định, khi cửa sổ màu đen và trắng là mở ra, tôi là bên trong của John Harvard thư mục chính. Nhưng nơi mà tôi tiết kiệm chương trình đó? Trong thư mục Dropbox của tôi. Bây giờ, tất cả chúng ta đã lớn lên với máy tính mà bạn chỉ cần nhấp đúp chuột trên biểu tượng của một thư mục, nó mở ra, và thì đấy. Đó là nơi mà các tập tin được gọi là hello.c sẽ. Vì vậy, trong thực tế, chúng ta hãy làm điều đó. Hãy để tôi đi trước và giảm thiểu gedit giống như bạn sẽ trên Windows hoặc Mac OS. Hãy để tôi đi vào nhà thư mục ở phía trên bên trái. Tôi sẽ thấy ở đây một số thư mục. Đây là thư mục Dropbox của tôi. Các đánh dấu có nghĩa là nó được đồng bộ hóa. Và có một vài điều trong đây, nhưng nhận thấy rằng hello.c là thực sự ngay tại đó. Và như vậy trong hệ điều hành Mac hoặc Windows, bình thường, Tôi nhấp đúp chuột vào đó, nó mở ra trong bất cứ chương trình, và tôi là tốt để đi. Nhưng bây giờ, ít nhất là kể từ hôm nay, chúng tôi cần phải thực hiện một bước lùi chỉ để cung cấp cho bạn một số công cụ cơ bản cho bạn bộ công cụ mà làm nhiều hơn nữa những điều mạnh mẽ trước khi dài. Vì vậy, tại dấu nhắc, tôi phải làm tương đương với cách nhấp đúp Dropbox thư mục. Và để làm điều đó, tôi sẽ gõ cho CD thay đổi thư mục, Dropbox, nhập. Và bây giờ nhận thấy những dấu ngoặc đơn tại của tôi cái gọi là dấu nhắc bây giờ nói rằng tôi là trong dấu ngã, ít nguệch ngoạc biểu tượng ở phía trên bên trái của hầu hết các bàn phím, / Dropbox. Đây chỉ là viết tắt ký hiệu cho nói con người, bạn đã có bên trong thư mục Dropbox, chỉ cần như bạn đã nhấp đúp vào nó. Vì vậy, bây giờ nếu tôi đi trước và gõ làm xin chào, nhập, tôi thấy rất khó hiểu lệnh, nhưng không phải là một thông báo lỗi, có vẻ như, và sau đó khác nhấp nháy nhanh chóng. Và nếu bạn nhớ lại, bao giờ một cách nhanh chóng Thứ sáu, chúng tôi đã làm điều này. . / Hello. Kết quả những gì bạn đang về để xem là của tôi chạy chương trình này, hoặc, trong Mac Hệ điều hành máy tính và các điều khoản, nếu tôi thường muốn tăng gấp đôi nhấp chuột vào một chương trình - một ứng dụng. chương trình hoặc một exe., nó sẽ mở ra một cửa sổ và chạy. Gõ. / Hello giống như đôi nhấp chuột vào một chương trình để chạy nó, nhưng sử dụng bàn phím của tôi. Nhập, xin chào thế giới. Và đó là nó. Vì vậy, hãy trêu chọc này ngoài để để nó không cảm thấy quá nhiều như tiếng Hy Lạp. Như vậy. / Có nghĩa là gì? Bất cứ ai từng lái một bàn phím môi trường như thế này, dấu chấm là những gì đề cập đến? Thư mục hiện hành. Vì vậy, các thư mục hiện tại chỉ là một từ đồng nghĩa cho một thư mục. Vì vậy, bằng cách nói rằng dấu chấm dấu gạch chéo, tôi nói, tìm kiếm một chương trình gọi là chào trong thư mục hiện tại - trong thư mục hiện hành. Nói cách khác, thư mục Dropbox của tôi. Và đó là lý do tại sao đánh Nhập sau đó thực sự chạy chương trình đó. Nếu bây giờ tôi loại LS, nhận thấy rằng tôi nhìn thấy tất cả mọi thứ trong thư mục Dropbox của tôi. Bắt Started.pdf, mà Dropbox cung cấp cho bạn miễn phí, hình ảnh của tôi thư mục, một thư mục công cộng, chưa được lưu 1 tài liệu mà tôi đã thực hiện do nhầm lẫn một thời điểm trước đây, foo.c, mà tôi thực hiện trước đó ngày hôm nay, và sau đó hai dòng - hello.c và xin chào. Hello.c là chương trình tôi đã viết với gedit, và những gì là chào trong màu xanh lá cây? Hello trong màu xanh lá cây là thực thi. Nói cách khác, khi tôi chạy lệnh này một thời điểm trước đây - cho tôi lăn trở lại trong thời gian - khi tôi chạy làm hello, đó là bước trung ở đây. Và nó đã hello.c như đầu vào - Mã nguồn AKA - và nó tạo ra một tập tin hello như đầu ra, mà chứa tất cả các số không và những người thân. Và đó là lý do tại sao, cuối cùng, tôi có thể thực sự chạy một lệnh như thế. / hello. Vì Intel Inside, điều hành của tôi hệ thống, Linux, mở ra những số không và những người thân, cho chúng ăn vào bộ não của máy tính của tôi - CPU - và CPU biết, oh, đây là một mẫu số không và những người nói in những điều sau đây trên màn hình. Những điều sau đây là những gì? Trích dẫn unquote, "hello thế giới." Được rồi, do đó, một bản tóm tắt nhanh chóng của một số các lệnh này để chúng tôi có thể bắt đầu đưa chúng cho các cấp. Hãy để tôi bỏ qua cho nơi chúng tôi rời đi. Và bạn sẽ nhớ lại rằng chúng tôi đã có CD ở phía sau của chúng tôi kết thúc một thời điểm trước đây. Đây là, tôi dám nói, cho mục đích của ngày hôm nay - có thể trong tuần này - các lệnh duy nhất chúng tôi có thể cần phải gõ vào lệnh nhắc nhở, bên cạnh thực hiện. Vì vậy, CD đứng để làm gì? Thay đổi thư mục. Nó chỉ tương đương với đôi nhấp chuột vào một thư mục. Và như một sang một bên, nếu bạn nhận được mất bao giờ bên trong của bạn thiết bị, như vậy mà Dropbox - Tôi muốn để lại cho tôi jharvard thư mục - khi nghi ngờ, CD, nhập, không có khác từ, và nó chỉ kéo khóa lại cho bạn đến nơi mà bạn bắt đầu, là một phím tắt ít tốt đẹp. Được rồi, vì vậy bây giờ các lệnh khác. LS. Tôi đã đánh một thời điểm trước đây. Những gì bạn nghĩ LS là viết tắt của? Vì vậy, danh sách, phải không? Trở lại trong ngày, khi con người đang đi tới với các lệnh này, họ đã cố gắng để có hiệu quả, và hơn loại ra L-I-S-T enter, họ LS quyết định. Đó là tốt. Nó nghe có vẻ như danh sách. Chúng ta hãy LS loại nhập, và liệt kê các tập tin hoặc thư mục trong tôi thư mục hiện hành. mkdir, bạn có thể đoán. Tạo thư mục. Vì vậy, bạn không đi đến một số đơn tập tin và chọn New Folder trong môi trường này. Thay vào đó, bạn gõ lệnh mkdir không gian và sau đó là tên của thư mục mà bạn muốn tạo ra, và nó sẽ được thực hiện. rm, bạn có thể đoán. Loại bỏ hoặc xóa. Vì vậy, nếu bạn muốn xóa một tập tin, bạn sẽ nhìn thấy trong bộ vấn đề làm thế nào bạn có thể làm điều này. Và rmdir, loại bỏ các thư mục. Vì vậy, một lần nữa, tôi sẽ có xu hướng bay qua một số những chi tiết này, một, bởi vì họ không phải là tất cả những gì thú vị hơn để dành thời gian trên, nhưng hai, chúng tôi sẽ cung cấp cho bạn trong chi tiết hơn trong bất kỳ Tất nhiên vấn đề của thiết lập, đặc biệt các phiên bản tiêu chuẩn, bất kỳ các bước mà bạn có thể cần phải loại để mà bạn nhận được nhiều hơn và nhiều hơn nữa thoải mái với những điều này. Nhưng bây giờ hãy để tôi trêu chọc nhau một điều khác. Khi chúng tôi gõ làm cho chào một thời điểm trước đây, chúng ta đã thấy một chuỗi các lệnh khó hiểu. Chúng ta đã thấy, một lần nữa, làm cho hello. OK, chúng ta hãy làm điều này. Tôi đã về để làm cho một sai lầm, nhưng [Nghe được] bây giờ thừa nhận tôi đã sắp và cố tình làm điều đó. Tôi đã làm gì sai chỉ bây giờ? Vâng, vì vậy tôi không có trong Dropbox thư mục, bởi vì lúc nãy tôi CD đánh máy và chỉ cần nhấn Enter. Mà thu nhỏ tôi trở lại nơi mà tôi bắt đầu, mà không phải là nơi tập tin của tôi được, vì vậy tôi thực sự cần phải làm CD Dropbox nhập, và bây giờ tôi có thể làm chào rm nhập, loại bỏ các tập tin thường xuyên chào hỏi. Tôi không biết lý do tại sao nó quá khó hiểu. Điều đó chỉ có nghĩa là bạn có chắc bạn muốn xóa nhỉ? Bạn có thể gõ y cho có, nhập, và bây giờ nó đã biến mất. Và bây giờ nếu tôi gõ làm cho chào một lần nữa, đó là sẽ tái tạo mã đối tượng của tôi, tái tạo những số không và những người thân. Nhưng thỏa thuận này là gì với lệnh rất dài này? Vâng, chúng tôi sẽ trêu chọc này ngoài chẳng bao lâu, nhưng chắc - Tôi đã nói với một chút của một lời nói dối trắng trước - không phải là một trình biên dịch. Hãy là một chương trình tự động con số ra làm thế nào để chạy một trình biên dịch cho bạn. Vì vậy, các lệnh mà bạn thực sự cần được đang chạy để chuyển đổi hello.c vào chào hỏi thực sự trông hơn một chút như thế này. Và Thiên Chúa cấm chúng ta phải thực sự nhớ đến bao giờ gõ mà toàn bộ chuỗi các lệnh ra. Mục đích của việc làm trong cuộc sống là để hãy nhớ rằng mức độ phức tạp cho chúng tôi và tự động hoá những gì sẽ khác là bước rất tẻ nhạt. Nhưng tôi có thể gần đúng đó. Vì vậy, mỗi tấm này ăn gian nhỏ ở đây, tôi có thể gần đúng những gì lệnh đó là làm bằng cách đơn giản gõ kêu vang, đó là tên của trình biên dịch chúng tôi sẽ sử dụng trong học kỳ này. Nếu các bạn đã từng làm iOS phát triển cho iPhone hoặc iPad, Kêu vang là chương trình mà bạn đã sử dụng trong xcode để làm cho ứng dụng của bạn. Kêu vang, mặc dù, chỉ là một chương trình có tên chúng ta có thể gõ vào lệnh nhắc nhở, và bằng cách giới thiệu này ngay bây giờ, Tôi có thể giới thiệu một cái gì đó là một ít đại diện các lệnh tới. Vì vậy, hãy để tôi làm điều này bằng tay. Vì vậy, rm xin chào, và bây giờ thông báo trong trường hợp Tôi, cũng như kiểm tra một sự tỉnh táo - . / Hello, những gì bạn nghĩ rằng tôi nên xem nếu tôi làm điều này? Một số loại lỗi. Không có thư mục tập tin như vậy. Vì vậy, đó là một thực sự khá trực tiếp. Vì vậy, bây giờ hãy để tôi xóa màn hình. Kiểm soát S chỉ xóa màn hình để loại bỏ một số phiền nhiễu. Và bây giờ tôi sẽ tự loại kêu vang-o chào hello.c. Vì vậy, đây là những gì về để làm gì? Chính xác những điều tương tự mà làm đã làm cho chúng tôi, nhưng tôi đã vứt bỏ một số những từ không cần thiết. Kêu vang là chương trình sẽ có một tập tin c. như đầu vào và sản xuất số không và những người như đầu ra. Nhưng-o từ đó sẽ gọi chuyển đổi một hoặc một lá cờ. Đây chỉ là thuật ngữ chuyên viên cho rằng đây là một từ mà bạn gõ tại dấu nhắc bằng cách nào đó ảnh hưởng đến hành vi của chương trình bạn đang chạy. Vì vậy, không ai muốn đoán những gì-o truyền tải? Đầu ra. Nó chỉ là một người nào đó quyết định-o có nghĩa là sản lượng một tập tin hello và mất đầu vào bất cứ điều gì từ cuối cùng trên nhắc là, hello.c, để nếu tôi nhấn Nhập ngay bây giờ, không có gì có thể xảy ra. Và kỳ lạ hơn, trong thế giới này lập trình, nếu không có gì xảy ra, đó có thể là một điều tốt bởi vì không có lỗi tin nhắn trên màn hình. Xin chào, Enter. Chương trình của tôi đã chạy. Nhưng tôi có thể làm những việc nhỏ ngu ngốc như này. kêu vang-o, hihihi, hello.c, nhập, và bây giờ tôi có một giống hệt nhau chương trình có tên hihihi. Nó cư xử như nhau, nhưng tên là khác nhau. Vì vậy, đây chỉ là để nói rằng nếu bạn muốn gây ảnh hưởng đến hành vi của một chương trình, chúng ta sẽ ngày càng nhìn thấy những thứ được gọi là đối số dòng lệnh. Đây là một dòng. Bạn gõ lệnh. Ergo, dòng lệnh. Và các đối số dòng lệnh chỉ từ hoặc những đoạn cú pháp bằng cách nào đó ảnh hưởng đến hành vi của các chương trình mà chúng tôi đang chạy. Được rồi, đó có lẽ là nhất chương trình nhàm chán, chúng tôi có thể viết và xem. Bây giờ chúng ta làm điều gì đó thú vị hơn. Hãy để tôi đi trước và tạo ra một tập tin mới. Tôi sẽ đi trước và tiết kiệm này trong Thư mục John Harvard như, chúng ta hãy gọi nó custom.c, để được một chút chương trình tùy chỉnh. Tôi sẽ phóng to ở đầu trang của tôi các tab ở đây và bắt đầu lại. Bao gồm stdio.h tiêu chuẩn. Thêm vào đó trong một thời điểm. int main (void), hơn trên mà trong một thời điểm. printf ("hello, David"). Nhiều thú vị hơn, phải không? Vì vậy, bây giờ nếu - không phải vì tên của tôi, chỉ vì nó khác nhau - để tùy chỉnh nhập. Tùy chỉnh, xin chào, David. Nhưng ngay cả điều đó cũng là một lời nói dối. Chương trình này cũng có thể được gọi là david.c, bởi vì nó không tùy chỉnh hành vi ở tất cả. Thực sự, tôi muốn có một chương trình yêu cầu người sử dụng cho tên của họ. Vì vậy, làm thế nào để tôi làm điều đó? Vâng, hãy để tôi di chuyển lên trên đây. Và trước khi tôi sử dụng một tuyên bố trong Đầu, trước khi tôi sử dụng printf, nếu không được biết đến như một chức năng, hãy để tôi đòi hỏi của người sử dụng đối với một số đầu vào. Vì vậy, để làm được điều này, tôi cần phải làm một vài điều. Một, tôi cần một nơi để lưu trữ của người dùng đặt tên sau khi tôi đã hỏi anh ta hoặc mình cho nó. Xây dựng những gì tôi cần phải sử dụng có thể để lưu trữ một giá trị như thế? Một biến. Vì vậy, không giống như Scratch, mà bạn chỉ cần có được một đẹp mảnh ghép, ở đây, chúng ta phải sử dụng, rõ ràng, lời thể hiện bản thân. Và từ đó, bất cứ lúc nào bạn muốn có một từ hoặc một cụm từ, trong chương trình, chúng ta sẽ gọi đó là một chuỗi. Vì vậy, một chuỗi là một từ hoặc một cụm từ. Đó là một chuỗi các số không hoặc nhiều nhân vật, chính thức hơn. Và nếu bạn muốn như vậy một biến tồn tại, bạn có thể nói cho tôi một. Và cách mà bạn làm điều đó là nói chuỗi s dấu chấm phẩy, mà s có thể bất cứ điều gì bạn muốn. Trong thực tế, s là một underwhelming ít. Hãy để tôi đi trước và nhiều hơn nữa gọi rõ tên nó. Hãy cho tôi một chuỗi gọi tên. Nhưng bây giờ, là những gì người tên mặc định? Vâng, nếu con người không gõ bất cứ điều gì trong, rõ ràng, có đi là không có giá trị trong tên. Và nó quay ra trong C, nếu bạn không cung cấp cho một giá trị biến, nó sẽ có một giá trị rác. Nó có thể có một số số không ngẫu nhiên và những người, vì vậy bạn chỉ cần đi để xem rác thải, thực sự, trên màn hình nếu bạn cố gắng để hiển thị nó. Nhưng tôi có thể khắc phục điều đó bằng cách nói rằng, trên thực tế, cửa hàng bên trong của tên theo giá trị. Cách bạn lưu trữ các giá trị trong biến là nếu bạn có một tên biến trên còn lại, bạn phải bằng cách nào đó đưa những gì bạn muốn lưu trữ trong nó trên bên phải, và cú pháp cho điều đó sẽ cụ thể như sau. Chúng tôi đã không nhìn thấy điều này trước đây, nhưng có trên đức tin cho một thời điểm mà có tồn tại một tuyên bố trên thế giới rằng tôi sẽ để một lần nữa gọi chức năng, và chức năng này gọi là có được chuỗi. Và nó có nghĩa đen đó. Nó bằng cách nào đó nhận được một chuỗi các ký tự từ con người và sau đó làm điều gì đó với nó. Và điều này trông giống như cú pháp khó hiểu. Thông thường, nếu bạn đang sử dụng dấu bằng - bạn đang ở trong thế giới của, nói, đại số, và bạn thực sự nói x = 1. Ở đây chúng ta không nói rằng tên bằng có được chuỗi. Chúng ta đang nói trong cửa hàng tên gì ở phía bên tay phải trong đó dấu bằng. Dấu bằng đại diện các nhà điều hành chuyển nhượng. Đó là cú pháp mà nói đưa những gì trên phía bên tay phải bên trong những gì bên trái. Do đó, có chuỗi là một mảnh mới của chức năng mà không chỉ một cái gì đó - yêu cầu người dùng cho một chuỗi - nó cũng trả về nó, vì vậy để nói chuyện. Vì vậy, chúng ta hãy xem những gì đang xảy ra xảy ra ở đây. Tôi sẽ đi trước bây giờ và thu nhỏ, và tôi sẽ có được một vài sai lầm tại dấu nhắc của tôi. Tôi sẽ gõ để tùy chỉnh, nhập. Wow. Một bó toàn bộ những sai lầm. Được rồi, vì vậy đây là loại áp đảo, chắc chắn lúc đầu, nhưng Hóa ra tất cả các rất thừa nhận thông báo lỗi khó hiểu là đề cập đến một số mẫu mà chúng tôi sẽ bắt đầu thấy theo thời gian. Vì vậy, điều này tôi sẽ nhổ ra, bởi vì nó là đầu tiên. Sử dụng không khai báo chuỗi nhận dạng. Điều đó chỉ có nghĩa là gedit, hoặc kêu vang, trong trường hợp này, không biết những gì tôi có nghĩa là chuỗi. Và đó là bởi vì trong C, lập trình ngôn ngữ, có thực sự không có biến kiểu chuỗi. C không biết rằng chuỗi tồn tại. Nhưng chúng tôi, CS50 nhân viên, làm. Và như vậy trước lớp, chúng tôi tạo ra một tập tin gọi là CS50.h. Và bên trong của tập tin này - và hơn về cú pháp đến - bên trong của tập tin này là một định nghĩa những gì tôi vừa định nghĩa bằng lời nói như một chuỗi. Vì vậy, đơn giản bằng cách kết thúc một dòng này mã trong chương trình của tôi, tôi bây giờ giảng dạy gedit và thực hiện và kêu vang tất cả trong một chuỗi biến những gì là. Tôi không biết làm thế nào được nêu ra. Trong vài tuần tới, chúng tôi sẽ vỏ trở lại lớp đó. Nhưng bây giờ, biết rằng điều này dạy trình biên dịch những gì một chuỗi thực sự là. Vì vậy, bây giờ hãy để tôi rõ ràng của tôi thiết bị đầu cuối xuống đây. Hãy để tôi chạy lại để tùy chỉnh, và tôi giải quyết tất cả những vấn đề. Vì vậy, đây cũng sẽ là một chủ đề định kỳ. Tôi chỉ viết một chương trình 9 dòng, và nhưng tôi đã có 18 dây chuyền sai sót. Đó là loại đáng sợ. Nhưng nhận ra rằng họ thường thác như vậy mà một sai lầm nhỏ gây nên sự nhầm lẫn cho các trình biên dịch, và có vẻ tồi tệ hơn nhiều so với nó được. Vì vậy, bây giờ là một người quan sát sắc sảo sẽ biết mà tôi nhận được một chuỗi từ người sử dụng, nhưng tôi không thực sự làm gì với nó? Tôi không thực sự làm bất cứ điều gì với nó. Vì vậy, nếu tôi thực sự chạy tùy chỉnh một lần nữa, nó sẽ chỉ ngồi ở đó. Những gì đang xảy ra? Chương trình của tôi dường như bị mắc kẹt trên những gì dòng, bạn sẽ nói gì? Vì vậy, nó thực sự bị mắc kẹt trên dòng 7. Và chúng tôi đã không nhìn thấy điều này trước đây, nhưng trên dòng 7, có, một lần nữa, điều này tuyên bố, nhận được chuỗi. Và nó những gì nó nói. Nó đang chờ đợi bây giờ cho con người để có những chuỗi. Điều này là hoàn toàn unintuitive với tôi, con người, bởi vì tôi đã không được cho biết phải làm gì. Nhưng hãy để tôi đi trước về đức tin và hãy để tôi giả vờ là Rob. Nhập. Đó không phải là chương trình mà tôi dự định. Vì vậy, chúng tôi có blog đầu tiên của chúng tôi. Nhưng chúng ta hãy cố gắng lý luận thông qua lý do tại sao đây là trường hợp. Đầu tiên, hãy để tôi khắc phục vấn đề đầu tiên này. Hãy cho tôi thêm một dòng ở đây là nói printf, tên của bạn là gì? Hãy làm báo gần, đóng ngoặc đơn. Bây giờ chúng tôi lại chạy chương trình. Vấn đề. Tôi không nhìn thấy đó. Đúng. Tôi không biên dịch lại nó. Vì vậy, trong một ngôn ngữ như C, bởi vì bạn thay đổi mã nguồn không có nghĩa là rằng bạn đã thay đổi mã đối tượng của bạn để tạo ra mã đối tượng mới, số không mới và những người thân. Bạn phải biên dịch lại. Nếu bây giờ tôi lại chạy tùy chỉnh, nhập, ah, một chút rõ ràng hơn. Tên tôi là Rob. Vẫn còn lỗi. Và tôi muốn tranh luận có một vài lỗi ngay bây giờ. Điều này chỉ trông xấu xí, thẳng thắn. Thích, tối thiểu, tôi cần phải có một không gian ở đó, hoặc di chuyển con trỏ đến dòng mới. Và trên thực tế, dòng mới. Đó là loại một cụm từ khóa ở đây là chúng tôi đã nhìn thấy nhưng không xác định. Cách thức mà bạn có được một văn bản để chuyển sang dòng tiếp theo, bạn không làm điều này. Điều này là khó hiểu với máy tính. Điều này có vẻ như hai dòng riêng biệt mã, không phải trong đó là hoàn toàn chính xác. Bạn thay vì phải được rõ ràng hơn và nói, cho tôi một dòng mới, mà chúng tôi đại diện trong c với dấu gạch chéo ngược n. Vì vậy, có một vài nhân vật đó. Dấu gạch chéo ngược n sẽ khắc phục thẩm mỹ. Hãy để tôi biên dịch lại chương trình của tôi. Hãy để tôi chạy lại chương trình của tôi. Điều này có vẻ tốt hơn. Nó vẫn còn khá nguyên thủy, nhưng nó cũng vẫn còn lỗi. Do đó, có một - ngay cả khi bạn chưa bao giờ được lập trình trước, bạn có thể có thể có nhiều phán đoán lý do tại sao chương trình này vẫn còn thiếu sót. Tôi cần phải làm gì đó Tôi đã không được thực hiện chưa? Vì vậy, tôi phải thực sự làm một cái gì đó với tên. Cũng giống như trong đầu, bạn có thể thực sự gán một biến như n hoặc chống lại như chúng tôi đã làm cuối cùng tuần - một giá trị. Nhưng nếu bạn không làm bất cứ điều gì với nó, không có gì sẽ xảy ra. Được rồi, vì vậy hãy để sửa chữa. Hãy để tôi gõ biến của tôi có, và để cho tôi đi xuống đây. Hãy để tôi biên dịch lại, hãy để tôi chạy lại, Rob. Bây giờ tôi chỉ là một thằng ngốc, phải không? Vì vậy, điều này là không thực sự nhận được tôi thêm nữa. Nhưng đó là một hoàn toàn tự nhiên bản năng, tôi cho rằng, phải không? Nếu biến được gọi tên, và tôi muốn nó đi ở đó, tại sao không tôi chỉ gõ nó ở đó? Vâng, tất nhiên, chúng tôi có để phân biệt tại giữa những gì là một chuỗi? Chú ý rằng trích dẫn unquote ở đây, xin chào tên? Điều này thực sự chính nó là một chuỗi. Nó cứng mã hoá. Nó không phải từ con người. Nó từ tôi, các lập trình ban đầu, nhưng nó vẫn là một chuỗi. Vì vậy, nếu bạn có nghĩa là viết N-A-M-E trong của một chuỗi, những gì sẽ được in? Vâng, N-A-M-E. Chúng tôi thay vì cần nói với printf, không in ra nghĩa đen tên. In ra giá trị của tên. Và để làm điều đó, chúng ta làm như sau. Và điều này chỉ là một quy ước của con người. Chúng ta thay vì nói% s, và là viết tắt của chuỗi. Và sau đó vào cuối báo giá thân của tôi, Tôi sẽ đặt một dấu phẩy và thông qua một số thứ hai vào tuyên bố này. Tôi sẽ gõ tên đó. Vì vậy, bây giờ nhận thấy chúng ta có một hơi cú pháp mới. Chúng tôi vẫn có hai dấu ngoặc đơn, và từ đó cho tôi nói rằng các công cụ giữa dấu ngoặc đơn đại diện cho đối số vào một chức năng - đầu vào được bằng cách nào đó sẽ gây ảnh hưởng đến hành vi của nó. Vì vậy, theo logic, bao nhiêu đối số dường như printf được tham gia tại thời điểm này? Vì vậy, có vẻ như được tham gia hai, và đó là thực sự ngụ ý bởi dấu phẩy đây. Vì vậy, đây là một đối số ở giữa dấu ngoặc kép. Mặc dù nó có một dấu phẩy trong nó, tất cả mọi thứ là trong dấu ngoặc kép, có nghĩa là nó là một chuỗi dài. Dấu phẩy, tên biến. Vì vậy, bây giờ hãy để tôi thu nhỏ. Hãy để tôi chạy lại nó. Rob. Chết tiệt, những gì tôi làm sai? Được rồi, vì vậy bạn phải biên dịch lại. Vì vậy, một lần nữa, những sai lầm dễ dàng để làm đầu trên một lần nữa và một lần nữa. Vì vậy, bây giờ lại chạy tùy chỉnh, Rob, nhập, và thì đấy. Bây giờ chúng tôi có một chương trình tùy chỉnh. Vì vậy, bây giờ tôi có một chương trình sử dụng một vài đặc điểm đó là đáng chú ý. Một, tôi đang sử dụng CS50.h, nếu không gọi là thư viện CS50. Và bên trong của thư viện là CS50 chức năng mà người khác đã viết - cụ thể là các nhân viên - để bạn có thể sử dụng, và nhận được chuỗi là một trong số họ. Bên trong của dòng 2 là stdio.h, và tại sao điều này không? Hãy đoán. Những gì tồn tại bên trong IO tiêu chuẩn cha mẹ? Printf. Vì vậy, printf, bạn không nhìn thấy nó ở bất cứ đâu khác trên màn hình. Nó phải đi kèm với các máy tính bằng cách nào đó. Nơi nào nó đến từ đâu? Đó là bên trong - đó là tuyên bố, có thể nói, bên trong một tập tin gọi là stdio.h. Bây giờ, đối với công cụ này, chúng tôi sẽ trở lại để cuối cùng, bởi vì đó là một chút mất tập trung cho bây giờ. Này đề cập đến kiểu trả về của chúng tôi. Này đề cập đến một cuộc tranh cãi. Nhưng ngày hôm nay, chúng tôi tập trung chỉ ở đây trên những dòng này. Vì vậy, tên chuỗi, tóm lại, những gì đã làm điều này làm cho tôi không? Vì vậy, nó tuyên bố một biến kiểu string. Vì vậy, nó có nghĩa là để được các từ, không cho con số. Chỉ như một sang một bên, nếu tôi đã muốn nó là một số, tôi sẽ nói một cái gì đó như int. Nếu tôi muốn trở thành một dấu chấm động giá trị, một cái gì đó với một điểm thập phân, Tôi có thể nói nổi. Nhưng ngày hôm nay, tôi vừa nói chuỗi. Và tôi đã cho biến này một tên của tên, nhưng tôi có thể đã gọi nó là bất cứ điều gì. Trong thực tế, ban đầu, tôi gọi nó là S. Này đây chỉ là một tuyên bố. Bao nhiêu đối số là này tuyên bố tham gia? Vì vậy, nó chỉ chụp một, và đơn giản chỉ là một chi tiết thẩm mỹ của hiển thị một cái gì đó trên màn hình với tôi. Dòng này 8 đang làm gì trong điều khoản của layman? Nó nhận được một giá trị từ người sử dụng - cụ thể là, một chuỗi - và những gì nó làm gì với nó? Nó chủ yếu giao nó cho người ở phía bên tay trái của dấu bằng để trong trường hợp này, biến tên thực sự có thể lưu trữ nó. Và sau đó là một printf thể hiện của một chức năng. Và chúng ta nói để gọi một chức năng. Để sử dụng chức năng để gọi một chức năng. Điều này rõ ràng mất hai đối số. Này, dấu phẩy, một này. Này chính nó là chỉ là một chuỗi có chứa một trình giữ chỗ. % S có nghĩa là đặt một chuỗi đây. Và như vậy bằng cách đặt tên sau khi dấu phẩy, đó là chèn mà điều cho tôi. Vì vậy, tôi có thể làm những việc khác vẫn còn. Hãy để tôi đi trước bây giờ và làm một chút về một chương trình ngớ ngẩn, nhưng hãy để tôi xóa này, và hãy để tôi tạo ra một vòng lặp. Trong khi sự thật. Các biểu tượng thực sự rõ ràng luôn luôn là sự thật. Vì vậy, loại vòng lặp tôi gây ra bằng cách viết một dòng như thế này? Vì vậy, một vòng lặp vô hạn, phải không? Chỉ trong khi sự thật. Không có cách nào tôi có thể thay đổi từ thực sự để được bất cứ điều gì khác, vì vậy đây là chỉ cần đi để chạy mãi mãi. Vì vậy, nếu bạn đã bao giờ thực sự đã có một chương trình trong máy Mac hoặc máy PC của bạn mà dường như đã bị nhốt, hoặc nó làm một cái gì đó và một cái gì đó, và bạn chỉ cần không thể có được những điều bỏ trừ khi bạn khởi động lại máy tính của bạn hoặc kéo lên Công tác quản lý hoặc tương tự, đây là một ví dụ. Tôi có thể nói, "Tôi là một chương trình lỗi." Gần giá, đóng cửa ngoặc đơn, dấu chấm phẩy. Vì vậy, một lần nữa, nhận thấy các mô hình. Mặc dù một số cú pháp của chúng tôi là mới, trong khi các từ khóa, các từ khóa đúng, Thông báo tôi có cùng loại dấu ngoặc nhọn. Tôi đã có một dấu chấm phẩy và dấu ngoặc đơn. Vì vậy, bây giờ chúng ta hãy đi trước và biên dịch này. Để tùy chỉnh, tùy chỉnh. Vì vậy, vào thời điểm này, bạn không cần phải khởi động lại thiết bị của bạn, tất cả phải không? Vì vậy, các bài học dễ dàng ở đây là với hai ngón tay, điều khiển C, chúng tôi sẽ bỏ chương trình đó. Nhưng bạn có thể thấy chính xác lý do tại sao điều này được lặp đi lặp lại một lần nữa và một lần nữa. Tôi có thể làm một chút gì đó phức tạp hơn như một lời trêu ghẹo. Tôi sẽ đi trước và nói như sau. Cho int, mà là một số nguyên, tôi chỉ là một cái tên chung, chúng tôi cung cấp cho hầu hết biến trong lập trình khi bạn chỉ cần đếm, bằng 0. Hãy để tôi đi trước và nói trong khi tôi là, hãy nói, ít hơn 100, tôi cộng với cộng với. Chúng tôi sẽ trở lại với cú pháp này, nhưng điều này chỉ có nghĩa là tăng tôi một lần nữa và một lần nữa. Và những gì tôi muốn làm ở đây? Printf, "Tôi có thể đếm đến tôi." Đây là một chương trình lỗi. Điều gì đã làm tôi thực sự có ý định ở đây? Phần trăm không s, nhưng bạn sẽ không đoán này. % D là một số nguyên thập phân. Dấu phẩy tôi. Hãy để tôi quay trở lại. Cho tôi bây giờ biên dịch lại với thực hiện. Cho tôi bây giờ chạy lại với các tùy chỉnh. Tôi có thể tin tưởng thực sự damn nhanh khi Tôi viết một chương trình như thế này. Bây giờ chúng ta hãy làm một cái gì đó ít không chủ ý. Làm thế nào về chúng ta hãy làm điều này trong khi tôi lớn hơn hoặc bằng 0. Những gì điều này sẽ gây ra? Vì vậy, một cách hợp lý, điều này không phải là quá khôn ngoan, bởi vì bây giờ nếu tôi chạy lại này, kể lại, Bây giờ tôi có thể tin tưởng thực sự, thực sự cao. Thật không may, khoảng cao nhất có thể số là 4 tỷ USD, vì vậy đây sẽ mất một thời gian. Vậy tại sao chúng ta không để lại điều này như chúng tôi cliffhanger, hứa hẹn rằng trên Thứ tư, chúng ta sẽ thấy nếu Chương trình này được thực hiện. Hai, chúng tôi sẽ giới thiệu làm thế nào bạn mình viết chức năng riêng của bạn để rất nhanh chóng, bởi Thứ tư, chúng tôi sẽ, như chúng tôi quá trình chuyển đổi từ Scratch vào C, bắt đầu viết bao giờ hết ngày càng phức tạp chương trình mà làm nhiều, nhiều hơn này. Chúng ta sẽ thấy bạn sau đó. [Vỗ tay] SPEAKER 1: Tại CS50 tiếp theo, Câu đố ngày là một thành công.