[Powered by Google Translate] [ROCK MUSIC]
[MUSIC - "Happy Together" Những con rùa]
DAVID Malan: Hôm nay, chúng tôi bắt đầu thăm dò của chúng ta về
nguyên tắc cơ bản của khoa học máy tính và giới thiệu của chúng tôi,
bây giờ, nghệ thuật lập trình, trong đó có nghĩa là
chỉ là một ví dụ.
Nhưng trong bối cảnh đó giải quyết vấn đề, biết rằng
Day Puzzle truyền thống CS50 là ngày mai.
Nếu bạn đã chưa RSVPed cho sự kiện này, bạn có thể vào
cs50.net/rsvp.
Bạn có thể mang lại cho đội của hai hoặc ba hoặc bốn.
Bạn sẽ được thử thách với các vấn đề như bạn đã thấy
có trong đầu.
Tất cả các vấn đề mới trong năm nay nếu bạn partook năm ngoái, và bạn
sẽ có một cơ hội để giành chiến thắng một số giải thưởng tuyệt vời.
Trong số đó, một Wii và một số Giấy chứng nhận quà tặng và giống như,
tất cả trong khi chơi với CS50 sinh viên và các bạn cùng lớp
và pizza và Facebook.
Vì vậy, vào ngày mai đó nếu bạn muốn.
>> Điều này sau đó là CS50, cho những người bạn tham gia với chúng tôi.
lần đầu tiên.
Và biết rằng khóa học này đặc biệt được xác định để có được
bạn thông qua khóa học này kết thúc cuối cùng của nó, lúc này bạn
sẽ có không chỉ là một sự hiểu biết của các
nguyên tắc cơ bản của khoa học máy tính, nhưng bạn sẽ phải
thiết lập kỹ năng này rất thiết thực mà bạn có thể lấy lại
bộ phận riêng của bạn, cho dù đó là khoa học kỹ thuật,
ứng dụng toán học, khoa học vật lý, tự nhiên
khoa học, hoặc tương tự.
Thật vậy, rất thú vị về khoa học máy tính những
ngày là rằng nó chỉ là áp dụng đối với
tất cả các loại của các lĩnh vực.
Và mặc dù ngày hôm nay, chúng tôi chỉ làm xước bề mặt của một
ngôn ngữ lập trình truyền thống được gọi là C, chúng tôi sẽ
thay vì nhìn vào một cái gì đó gọi là Scratch, một cái gì đó với
rằng câu chuyện cookie tình yêu được thực hiện bởi một trong của bạn
người tiền nhiệm trong năm qua, kể chuyện, để tạo trò chơi,
để tạo ra nghệ thuật tương tác, và thực sự bắt đầu để bọc của chúng tôi
tâm trí xung quanh một số các cấu trúc cơ bản
nền tảng lập trình nhưng trong bối cảnh một, như bạn sẽ thấy, đó là
ít đáng sợ, đó là ít hơn nhiều phức tạp, hơn bạn sẽ thấy
trước khi dài.
Và nhận ra, quá, cho những người bạn chỉ tham gia với chúng tôi
học kỳ, các cụm từ mà chúng tôi đã kết thúc bài giảng của ngày thứ Tư,
nó không phải là quan trọng như vậy mà bạn kết thúc liên quan đến của bạn
bạn học trong lớp này, nhưng nơi bạn, vào cuối học kỳ
trong tuần 11, kết thúc tương đối so với chính mình ngay ngày hôm nay.
>> Vì vậy, không có thêm ado, đây cũng là đáng chú ý là
những người kém thoải mái, những nơi nào đó ở giữa,
cũng có, bởi thiết kế của khóa học này, không phải ở bất kỳ bất lợi
vis-a-vis những người thoải mái hơn
vào lớp này.
Như bạn sẽ thấy trong những tuần tới, chúng tôi có khác nhau
bài nhạc nền lại khác nhau, phần cho những người
thoải mái, thoải mái hơn, những người một nơi nào đó
ở giữa.
Như bạn sẽ thấy cuối tuần này và tuần tới, hai phiên bản của
hầu hết các vấn đề bộ trong phiên bản tiêu chuẩn, và một hacker cả hai rất
rằng tất cả các bạn có thể tự lựa chọn con đường mà bạn
thấy thoải mái nhất.
>> Vì vậy, ngày hôm nay, chúng tôi lặn vào chương trình này
ngôn ngữ gọi là Scratch.
Đó là một ngôn ngữ lập trình đồ họa, nhưng nó có
cùng các tính năng của một số ngôn ngữ cấp cao hơn chúng tôi sẽ
khám phá sau này trong học kỳ, trong đó C và
JavaScript và PHP.
Nhưng nó sẽ cho phép chúng ta tránh một số những phiền nhiễu
sớm của cú pháp, những thứ như dấu chấm phẩy, dấu ngoặc đơn,
và các chi tiết phức tạp, ở cái nhìn đầu tiên, chỉ là không
ở tất cả trí tuệ thú vị và có xu hướng để có được trong
đường từ một số hiểu biết cơ bản.
Trong điều kiện của cấu trúc hỗ trợ trước, nhận ra điều này
công cụ, CS50 bàn, sẽ được liên kết trên của khóa học
trang web sau ngày hôm nay, là diễn đàn thảo luận trực tuyến
mà bạn sẽ có thể đặt các câu hỏi của nhau và
nhân viên, và nó cũng là một công cụ, như chúng ta sẽ thấy vào tuần tới,
rằng chúng tôi sẽ sử dụng khá integratedly trong
giờ là tốt.
Thật vậy, giờ làm việc bắt đầu vào hôm thứ Hai, và thẳng thắn, lần đầu tiên
tuần giờ hành chính là chìa khóa khá thấp.
>> Tôi không nghĩ rằng bạn sẽ tìm thấy Scratch tất cả những gì không thể tiếp cận.
Đó là khá tự giải thích, như chúng ta sẽ thấy, và vì vậy những gì
chúng tôi sẽ sử dụng nó cho ngày hôm nay là để trích xuất một số các
ý tưởng cơ bản, sau đó, kéo dài trong suốt
phần còn lại của học kỳ.
Nhưng bắt đầu từ Thứ hai, lúc 8:00 PM qua 11:00 PM
văn phòng giờ trong Annenberg trên nghỉ não.
Sectioning hai sẽ bắt đầu vào chiều nay, này
cuối tuần, để cs50.net/section, và bạn sẽ
được hỏi một số câu hỏi.
Trong số đó, làm thế nào bạn sẽ mô tả của bạn
mức độ thoải mái của ngày hôm nay?
Không có quy tắc cứng nhanh như những người trong đó xô.
Nó chỉ là loại điều mà bạn có thể biết nếu bạn
là một trong số những người ít thoải mái hoặc bằng cách khác.
>> Và bây giờ, walkthroughs.
Các thiết lập vấn đề đặc điểm kỹ thuật cho tuần này, cả hai tiêu chuẩn
và hacker phiên bản giống nhau, là trực tuyến tại cs50.net như của bây giờ.
Và bạn sẽ thấy rằng trong các phiên bản đầu tiên,
bản tiêu chuẩn mỗi tuần, kèm theo một cái gì đó, chúng tôi
gọi một hướng mã, một phiên họp do một trong những
nghiên cứu sinh giảng dạy khóa học để hướng dẫn bạn thông qua, cung cấp
lời khuyên về, và nhận được bạn xuống một con đường đặc biệt khi nói đến
để bắt đầu các bài tập.
Vì vậy, với mỗi vấn đề này đặt ra, nếu bạn đã bao giờ muốn
cho mình, nơi để tôi bắt đầu, bạn bắt đầu với những
walkthroughs.
Và trên thực tế, cho phép tôi giới thiệu Zamyla Chan,
năm của giáo viên giảng dạy những người sẽ được dẫn đầu mỗi
một trong những walkthroughs.
Zamyla?
>> [Vỗ tay]
ZAMYLA CHAN: Oh, hi, tất cả mọi người.
Tên tôi là Zamyla.
Tôi là một cơ sở nghiên cứu kỹ thuật trong Winthrop House.
Nhưng tôi cố gắng và phù hợp như nhiều khóa học khoa học máy tính như tôi
có thể, đó là lý do tại sao tôi thực sự vui mừng được dẫn này
năm walkthroughs.
Walkthroughs, đối với tôi, là một phần thiết yếu của CS50 của tôi
kinh nghiệm.
Trong walkthrough, cho mỗi tập-p, chúng ta sẽ đi qua
vấn đề với nhau, nhìn qua các vấn đề, loại
chia chúng thành cắn quản lý.
Tôi sẽ cung cấp cho bạn lời khuyên, kỹ thuật, để có được
thông qua và bắt đầu.
Tôi hy vọng tất cả các bạn tại walkthroughs.
Nếu bạn không thể làm cho nó trong người, sau đó
hãy làm điều chỉnh trong trực tuyến.
>> DAVID Malan: Tuyệt vời.
Cảm ơn bạn, Zamyla.
Vì vậy, nhận ra rằng walkthroughs, quả thật vậy, vào ngày thứ sáu
buổi chiều, nhưng đây là cố ý bởi thiết kế để
ngay cả khi bạn không muốn tham dự lớp học vào ngày thứ sáu
buổi chiều, các video sẽ được tất cả các chi tiết nhanh chóng qua
cuối tuần.
Vì vậy, nhận ra rằng cs50.net sẽ được tất cả của Zamyla
walkthroughs.
Và đó là ngày hôm nay và thời gian, 3:00 PM,
Harberd Hall, 104.
Và một số các nghiên cứu sinh giảng dạy cũng đã chuẩn bị
một số nhận xét cho bạn vắng mặt để cung cấp cho bạn một chút
quan điểm là những gì kinh nghiệm của họ đến và
đi ra ngoài CS50 là như thế nào.
Vì vậy, nếu chúng ta có thể tắt đèn chỉ là một khoảnh khắc, tôi cung cấp cho bạn
một số nhân viên CS50.
>> JACKSON STEINKAMP: Tôi đã CS50 năm ngoái như là một sinh viên năm thứ nhất trong
giảm, và nó hoàn toàn thổi tâm trí của tôi.
Tôi chưa bao giờ thực hiện bất kỳ các lớp lập trình trước,
và không bao giờ đi vào với bất cứ khoa học máy tính
kinh nghiệm ở tất cả.
Và chỉ, tôi nghe tin đồn về lớp
quyết định mang nó.
>> JULIA MITELMAN: Đó là thực sự thú vị, thực sự tham gia.
Tôi vẫn còn đến ngày nay -
Tôi chỉ vừa mới thấy có đĩa mềm mà David đã cho chúng tôi
vào ngày đầu tiên của chúng tôi về bài giảng.
Tôi đã treo nó trên tường của tôi.
Đây có lẽ là một chút Nerdy, nhưng tôi treo ở trên của tôi
bức tường trong lớp học như là một lời nhắc nhở của nó là như thế nào mát.
>> TRAVIS DOWNS: thật xấu hổ.
>> JACKSON STEINKAMP: Khoa học máy tính là một cái gì đó bạn
nên cố gắng ngay cả khi bạn không phải là một cho
truyền thống khoa học.
Đó là kinh nghiệm của riêng mình, và CS50 sẽ đảm bảo rằng bạn
hỗ trợ thông qua nó với quân đội tảng thật sự của TF.
>> ALI Nahm: Tôi lấy nó như là một sinh viên năm thứ nhất, và vì vậy tôi đã thực hiện rất nhiều
những người bạn mới.
Tôi cũng đã giới thiệu với nồng độ này và toàn bộ
trường học toàn bộ của kỹ thuật, và vì vậy tôi rất khuyên bạn nên nó
và chào đón bạn với gia đình CS50 của chúng tôi.
>> Yaniv YACOBY: CS50 chỉ dạy cho bạn làm thế nào để sử dụng các công cụ
được truy cập rộng rãi.
Bạn chỉ cần một máy tính xách tay, bạn cần một trình duyệt web, và bạn
cần phải học để viết một số mã, và bạn thực sự có thể xây dựng
gọn gàng mọi thứ.
>> KAREN Xiao: Nó chỉ là như vậy mát mẻ để có thể làm một cái gì đó
và có những người sử dụng nó và có người nhìn thấy nó, và đó là
những gì tôi thực sự yêu thích nó.
>> TIM McLaughlin: - ý thức cộng đồng, tôi nghĩ, trong
Tất nhiên nhiều hơn so với bất kỳ khóa học khác tôi đã thực hiện cho đến nay.
Bạn không chỉ dùng khác -
bạn không điền một yêu cầu khác.
Bạn không chỉ đi cho tới các bài giảng để và sẽ phần.
Nhưng bạn đang làm tấn điều là tất cả về
lập trình và tất cả về công nghệ, nhưng nó không
thực sự cảm thấy như một lớp học hầu hết thời gian.
>> TRAVIS DOWNS: vào ngày đầu tiên, họ đưa ra bánh, và
Tôi đã ngay lập tức được bán ra.
>> JACOB Pritt: kẹo và bánh pizza miễn phí.
>> ZAMYLA CHAN: - bất kể mức độ quan tâm của bạn, tôi nghĩ rằng
CS50, bạn sẽ có niềm vui, và bạn sẽ có trí tuệ
kích thích.
>> MARK GROZEN-SMITH: luôn luôn là một bên trong lớp học, và đó là một
tiệc tùng mỗi đêm làm việc trên bộ p-.
>> JACKSON STEINKAMP: Mỗi lần bạn hoàn thành một bộ vấn đề, bạn
sẽ cảm thấy như bạn đã hoàn thành một dự án.
>> MELISSA NIU: là sinh viên năm thứ nhất năm, và tôi đã thực hiện mua sắm.
Tôi đã có bốn lớp học của tôi đã sẵn sàng, và tôi đã được ở Annenberg.
Và tôi có thể đẩy vào một người bạn, và anh ấy nói, hey, tôi mua sắm
lớp này được gọi là CS50, và bạn nên đi với tôi.
Đã kết thúc dùng nó rơi, và sau lớp học, tôi
nghĩ có lẽ tôi sẽ nhỏ trong CS.
Nhưng ở đây tôi, ba năm sau, vẫn đang nghiên cứu máy tính
khoa học và thực sự làm việc đó như là một lớn, và tôi yêu mọi
thời điểm của nó.
>> ROB Bowden: Tôi không có ý tưởng.
>> ALI Nahm: Hãy xem.
>> MELISSA NIU: điên cuồng.
>> SPEAKER 1: Tôi cảm thấy như tôi sẽ rất cliche.
Tôi chỉ muốn nói, thích, awesome.
>> Yaniv YACOBY: Tiếp cận.
>> JACOB Pritt: kẹo và bánh pizza miễn phí.
>> TRAVIS DOWNS: có thể từ chối một lớp học mà tay ra bánh.
>> TIM McLaughlin: Energetic.
>> Vipul Shekhawat: khái quát.
>> ROB Bowden: Hãy để tôi nghĩ đến một câu trả lời.
Tôi nghĩ rằng tôi có một cái gì đó.
Oh, thượng đế.
Yeah, tên của Rob Bowden, và đây là CS50.
>> [Vỗ tay]
DAVID Malan: Được rồi, vì vậy hãy bắt đầu vẽ một bức tranh
hướng mà chúng ta có thể đi, và chúng ta hãy giới thiệu
khái niệm này được gọi là giả.
Vì vậy, giả không phải là một lập trình
ngôn ngữ unto chính nó.
Nó không có gì kỹ thuật cho mỗi gia nhập, nhưng nó chỉ là sắp xếp của một
chung cách thể hiện bản thân khá chính xác,
khá thuật toán, khá thủ tục, nhưng không có
phải lo lắng về những gì ngôn ngữ mà bạn đang thể hiện
mình in
Đó là một số mô hình của tiếng Anh và các ngôn ngữ lập trình
mà bạn xảy ra để được quen thuộc, vì vậy chúng tôi có thể bắt đầu
viết các loại điều này khi chúng ta đi.
Và trong thực tế, Joseph, tôi có thể mượn bạn lên trên sân khấu để được
người ghi chép ở đây?
Tôi đã đi trước đây trước và quên đặt
trên một số vớ ngày hôm nay, và điều này sẽ là một trong hơn của chúng tôi
vô lý ví dụ.
>> Bây giờ, tôi cần bạn ở đây.
Tôi sẽ làm một phần tất.
Vì vậy, ở đây chúng tôi có một pad đầu nhỏ.
Điều này có nghĩa là chỉ cần TextEdit trong một máy Mac.
Chúng tôi không thực sự sẽ viết một chương trình Runnable, nhưng
chúng ta sẽ bắt đầu phác thảo ra giả dựa trên
trên một số lời khuyên bạn cung cấp cho tôi ở đây.
Vì vậy, đây là đống vớ ở nhà.
Tôi không có vớ vào khi tôi thức dậy vào buổi sáng, và bây giờ chúng ta
cần phải viết một chương trình, một thuật toán của các loại,
để có được những vớ trên đôi chân của tôi.
Và trên đường đi, chúng ta hãy xem nếu chúng ta đi qua, hoặc gặp phải,
một số trong những ý tưởng mà bạn sẽ phải bắt đầu
suy nghĩ nghiêm túc hơn khi lập trình
vì sợ rằng chương trình của bạn không cư xử khá như dự định.
>> Vì vậy, tôi ngồi xuống đây.
Tôi đã có đống vớ.
Điều đầu tiên con người một cách hợp lý sẽ là gì
làm gì khi mục tiêu là để đưa vào một đôi vớ?
Ai đó đưa cho tôi một bước, và chỉ có một bước.
Yeah?
Khán giả: Cúi xuống.
DAVID Malan: Cúi xuống, được rồi.
Bước hai.
Khán giả: Đón vớ của bạn.
DAVID Malan: Đón vớ của bạn.
Được rồi, rất nhẹ không rõ ràng ở đây, và đây là một trong những người đầu tiên
stumbling khối mà chúng ta cần phải cố tình
gặp ở đây.
Đó là một chút mơ hồ, nên chọn chiếc vớ của bạn.
Tốt, tôi sẽ lấy cái này, nhưng một máy tính, nhận ra chỉ trong một
bit, sẽ không có sắp xếp của bản năng con người chỉ
chọn một trong những gần nhất.
Chúng ta sẽ phải bắt đầu, trước khi dài, thể hiện
mình chính xác hơn.
>> Được rồi, do đó, bước hai là nhận vớ của bạn.
Chúng tôi sẽ mang nó.
Bước ba.
Ở phía sau.
Khán giả: Tìm một cặp kết hợp.
DAVID Malan: Tìm cặp phù hợp.
Được rồi, do đó, điều này là tốt.
Tôi đã phải lựa chọn này vớ.
Vì vậy, mục tiêu là để tìm thấy một chiếc vớ phù hợp với, bây giờ, nhưng những gì
không có nghĩa là?
Một con người hợp lý, giống như hôm thứ tư khi tôi chỉ
biết làm thế nào để tìm thấy Mike Smith trong một cuốn sách điện thoại, chỉ cần loại
đi với bản năng của họ.
Nhưng ở đây, rõ ràng là này vớ ở đây, nhưng một máy tính
sẽ không để được như vậy theo bản năng.
Một máy tính là sẽ có một bộ sưu tập của các bit, như chúng ta
thảo luận hôm thứ Tư, và những người
tổ chức bằng cách nào đó trong bộ nhớ.
Nhưng điểm là một máy tính chỉ có khả năng
nhìn vào một trong những điều tại một thời điểm, và trong thực tế, thậm chí chúng tôi
con người - mặc dù nó cảm thấy như Tôi liếc nhìn xuống và phân chia
giây sau đó tôi biết nơi vớ là, bộ não của tôi và đôi mắt của tôi
có lẽ không một cách nhanh chóng lướt qua của những người vớ, và sau đó latched
trên một trong câu hỏi.
>> Vì vậy, nếu chúng tôi có tất cả các cố ý bây giờ như một máy tính,
làm thế nào để tôi tìm thấy cặp đôi này kết hợp?
Vâng, chúng tôi phải lặp.
Chúng ta phải có lẽ vòng qua đống lộn xộn này vớ trên
sàn do đó tôi nói một cái gì đó như CHO MỖI vớ, nhặt nó
VÀ NẾU cùng hình dạng và kích thước như một khác, THEN
dấu chấm, dấu chấm, dấu chấm, chúng tôi sẽ tiếp tục câu chuyện.
Vì vậy, đối với mỗi chiếc vớ, vì vậy tôi chọn một trong những điều này.
Tôi kiểm tra này bằng một trong những điều này.
Nó không phải, vì vậy tôi đặt sang một bên phụ.
Sau đó, tôi lặp lại một lần nữa.
Này bằng?
Không, nó không, vì vậy tôi đặt nó sang một bên.
Là một trong những điều này?
Không.
Này?
Không, và vv.
Và cuối cùng, hy vọng, tôi sẽ gặp phải vớ này ở đây.
Vì vậy, nếu nó cùng một hình dạng, kích thước, mất nó.
>> Và bây giờ, những gì sẽ là bước tiếp theo của chúng tôi ở đây?
Yeah?
Khán giả: Xác định ngay từ bên trái.
DAVID Malan: Được rồi, xác định các bên phải và trái, do đó,
may mắn thay, là loại công trình.
Một đối xứng chút, hoặc tôi vừa mặc chúng như vậy.
Được rồi, vì vậy tôi đã xác định quyền.
Và bây giờ, trước khi chúng tôi tiến hành, hãy để tôi chỉ ra những gì Joseph
đã và đang làm ở đây là sắp xếp của một lập trình viên thông thạo.
Vì vậy, một lần nữa, không có cách nào để làm điều này, nhưng ngoài chỉ
số dòng, Joseph đã bắt đầu để làm điều này
sắp xếp của indentation.
Thật vậy, đây là một quy ước rất phổ biến trong lập trình,
theo đó khi bạn làm điều gì đó lặp đi lặp lại, vòng lặp phong cách,
chúng ta đang ám chỉ với cụm từ tiếng Anh "CHO ​​MỖI
vớ ", quy ước trong giả, và như chúng ta sẽ thấy,
bình thường, ngôn ngữ lập trình là chỉ cần thụt lề.
Nhấn thanh không gian một vài lần, nhấn phím Tab hoặc các loại tương tự,
để lồng nhau bên dưới "CHO ​​MỖI vớ" là đoạn
thứ mà bạn cần làm là một kết quả của vòng lặp đó.
Vì vậy, đó là tất cả những gì truyền đạt ngữ nghĩa.
Bây giờ trong khi đó, "Nếu đó là cùng một hình dạng và kích thước,"
thực tế là "nó" tiếp tục được thụt vào chỉ có nghĩa là
đó là điều duy nhất bạn nên làm gì nếu tình trạng đó,
nếu mà chi nhánh, đó là ngã ba trên đường, trong thực tế, đúng sự thật.
>> Vì vậy, bây giờ đây, chúng tôi đang ở trên bốn bước, xác định phải và trái.
Tôi đã xác định đúng.
Hãy cho anh bước năm.
Và về mặt kỹ thuật, chúng tôi thực sự có thể gọi
FOR điều MỖI -
có lẽ bạn nên đánh số tất cả các dòng nếu
chúng ta sẽ làm điều này.
JOSEPH: [không nghe được]
DAVID Malan: [không nghe được?
Được, tốt thôi, được rồi, chúng tôi sẽ làm theo cách của bạn.
Được rồi, do đó, năm bước, làm thế nào để chúng tôi làm đúng sock?
Làm thế nào để chúng ta tiến hành tiếp theo, ở đây không?
Vâng?
Khán giả: Nâng lên chân phải.
DAVID Malan: Nâng lên chân phải, được rồi.
Bước 6?
Nhanh chóng.
Yeah.
Khán giả: Tìm một kết thúc mở của sock.
DAVID Malan: Được rồi, kết thúc mở của sock.
Vì vậy, tốt.
Vì vậy, ở đây, trung thực, một bản năng rất phổ biến sẽ chỉ được
đưa vào vớ phải, nhưng đó cũng là khá mơ hồ.
Trừ khi máy tính hoặc con người biết chính xác những gì có nghĩa là,
nó sẽ không phải là để thực hiện điều đó, vì vậy ở đây, tôi đã
tìm thấy sự mở cửa của cổ phiếu.
Bước bảy?
TƯỢNG: Chạm vào ngón chân của bạn.
DAVID Malan: cảm ứng ngón chân.
Được rồi, vì vậy bây giờ chúng ta đi -
Được rồi, tôi sẽ có một số quyền tự do ở đây.
Cảm ơn.
Bước tám?
Đặt trên vớ.
Được rồi, vì vậy bây giờ tôi nghĩ rằng chúng tôi đủ gần để sắp xếp cất
một ở nhà này.
Được rồi, do đó, điều này đi lên.
Tôi sẽ lấy một số quyền tự do với những gì nó có nghĩa là, thực sự.
Đặt sock.
Được rồi, bây giờ bước 9?
Khán giả: Đặt chân xuống.
DAVID Malan: Cảm ơn bạn.
Bước chín, đặt chân xuống, và bây giờ, chúng ta có thể lặp lại.
Vì vậy, có lẽ, bây giờ chúng ta có thể đi vào bước 10 và nói xác định
trái sock, nhưng đó có lẽ đã được thực hiện.
>> Và do đó, sau đó, tôi có thể sắp xếp lặp lại các bước.
Tuy nhiên, loại này đặt ra câu hỏi.
Trước đây, thời gian qua, chúng tôi muốn lặp lại điều gì đó, chúng tôi
đã làm nó lặp đi lặp lại, một lần nữa và một lần nữa, một CHO
Mỗi vòng lặp vậy để nói chuyện.
Nó sẽ làm cho cảm giác sử dụng một vòng lặp để xử lý cả hai
bên trái và vớ quyền?
Bởi vì nó cảm thấy giống như các hoạt động này đang có khá nhiều
giống hệt nhau, ngoại trừ cho một thực tế rằng người ta bắt đầu ở đây và một
bắt đầu ở đây?
Chúng ta có vòng lặp, hoặc chúng ta chỉ cần giữ cho bước viết
10, 11 và 12?
Khán giả: Loop.
>> DAVID Malan: Được rồi, do đó, vòng lặp.
Tôi thực sự có thể đã nói chỉ cần tiếp tục đi.
Vì vậy, tại sao lại là trường hợp?
Vâng, đây là thực sự đầu tiên của chúng tôi không rõ ràng
quyết định thiết kế, và trong thực tế, một trong các số liệu mà
chúng tôi sẽ bắt đầu để đánh giá, cho bản thân và cho bạn,
chất lượng của một chương trình là như thế nào cũng được thiết kế nó là.
Bạn đã thực hiện số tiền tối thiểu công việc cần thiết
công việc làm một cách nhanh chóng nhất, hoặc trong điều khoản của
thời gian của bạn hoặc về thời gian chạy của máy tính?
Làm thế nào nhiều hoạt động cần để thực hiện?
Vì vậy, có thể cho rằng đây là một cơ hội cho một vòng lặp vì
ngay sau khi tôi bắt đầu sao chép và dán, như Joseph hiệu quả
sẽ bắt đầu thực hiện trong một thời điểm, bạn lãng phí của bạn
thời gian, và bạn đang được gấp đôi biểu cảm.
>> Nhưng cùng một lúc, đây là thực sự chỉ là hai đặc biệt
trường hợp, trái và phải.
Và trong khi trước đó, tôi có thể có 10 hoặc 20 hoặc nhiều hơn vớ trong
một đống, nó chắc chắn làm cho cảm giác không có 50 dòng
mã nói kiểm tra này sock, sau đó tiếp theo,
sau đó là một trong những kế tiếp.
Ở đây, nó là một chút ít rõ ràng hơn, và tôi sẽ đề xuất
chúng tôi có thể đi một trong hai cách.
Chúng tôi có thể có vòng lặp đó, mặc dù nó chỉ vòng
hai lần, chúng tôi chỉ đơn giản là có thể sao chép và dán chỉ là một chút
ở đây để có được công việc làm.
Tuy nhiên, chương trình này là lỗi, do đó, để nói chuyện.
Nó có thể có một số sai lầm, sai sót, hoặc trường hợp góc, vì vậy để
nói, rằng chúng tôi đã không thực sự dự đoán.
Không có gì đã đi sai thời gian này, nhưng những gì có thể đã đi sai
trong khi thực hiện chương trình này?
Khán giả: Bạn không có bất kỳ vớ.
>> DAVID Malan: Như vậy, có thể sẽ không có vớ gì.
Vì vậy, chúng ta hãy xem xét trường hợp góc đó.
Vì vậy, nếu chúng ta có thể di chuyển trở lại bước một, do đó, bước một là
cúi xuống, do đó, kiểm tra.
Bước hai, chọn vớ của bạn, nhưng sau đó tìm thấy vớ phù hợp,
xác định đúng.
Chúng tôi loại một bó toàn bộ các giả định, và điều này là,
thẳng thắn, tại sao chương trình đôi khi sụp đổ.
Nếu bạn, các lập trình viên, đã thực hiện một số giả định, giống như
chắc chắn có sẽ là vớ hoặc chắc chắn có đi
là bộ nhớ còn lại trong máy tính, chắc chắn sẽ
là không gian đĩa còn lại trên ổ đĩa cứng -
Vâng, nếu bạn thực hiện những giả định, và đó không phải,
trong thực tế, thực tế, những người hiểu biết đôi khi những gì máy tính
sẽ làm gì?
Và đôi khi, khi bạn nhận được quả bóng bãi biển kéo sợi hoặc
đông lạnh Windows hoặc các loại tương tự, đó là chính xác bởi vì một số
lập trình viên đã không dự đoán được gọi là những trường hợp góc.
Những gì có thể đã đi sai trong chương trình này?
Yeah?
>> TƯỢNG: Bạn không có một chân phải và chân trái.
DAVID Malan: Được rồi, có thể không có cả một chân bên phải và một
chân trái, và do đó, chương trình này có thể không được phổ
áp dụng.
Những người khác?
Khán giả: Bạn có thể chọn một chiếc vớ trẻ mồ côi.
DAVID Malan: Tôi có thể chọn một chiếc vớ trẻ mồ côi, do đó, một
không phù hợp với vớ mà chỉ cần không có anh chị em vì tôi đã
mất nó, nó bị rách, rửa vẫn còn, hoặc tương tự.
Vì vậy, mà đã không thực sự được xử lý.
Yeah?
Khán giả: Bạn có thể đã có tất.
DAVID Malan: Tôi đã có thể có tất.
Tôi đã không thực sự kiểm tra.
NẾU bạn không có vớ vào, sau đó tiến hành làm
dòng một và hai.
Và điều đó có thể xảy ra.
Bạn ngủ với vớ của bạn và như thế, vì vậy
rằng, quá, một trường hợp góc rất hợp lý.
Và có lẽ một trong những khác?
Khán giả: vớ là trong ra ngoài.
DAVID Malan: Vì vậy, vớ bên trong ra ngoài, nên chúng tôi đã không có lỗi
kiểm tra, trong ngắn hạn.
Chúng tôi đã không kiểm tra xem tình trạng của thế giới là như chúng ta mong đợi.
Chúng tôi đã không kiểm tra nếu chúng ta thực sự tìm thấy những gì chúng tôi đang tìm kiếm.
>> Và mặc dù đây là loại của một ví dụ vô lý
liên quan đến vớ, vào cuối ngày, điều này là đúng
sắp xếp suy nghĩ bạn cần phải có trong khi viết chương trình,
ngay cả trong Scratch cũng như trong C, JavaScript, PHP,
bởi vì nếu không, chương trình sẽ triển lãm
tương đương với quả bóng bãi biển quay hoặc chỉ mang lại
không chính xác kết quả.
Vì vậy, cảm ơn nhiều đây để Joseph ghi chép của chúng tôi.
[Vỗ tay]
>> DAVID Malan: Được rồi, vì vậy những gì, trong
thực tế, một chương trình máy tính?
Vâng, chúng ta hãy có một cái nhìn nhanh chóng tại một
đại diện ở đây.
Vì vậy, đây là một chương trình được viết trong một ngôn ngữ được gọi là C. C
ngôn ngữ khá cũ những ngày này, nhưng nhiều người mới được xây dựng
trên đầu trang của nó.
Thật vậy, PHP, một trong các ngôn ngữ web trung tâm chúng tôi sẽ
sử dụng về phía cuối nhiệm kỳ của chính nó có những gì được gọi là một
thông dịch viên, một chương trình được viết bằng C, nhưng nhiều hơn về điều
trong nhiều tuần kể từ bây giờ.
Nhưng chương trình này, và đây là những gì nó có nghĩa là để viết một
chương trình, mặc dù là một trong rất đơn giản.
Chúng tôi có một số cú pháp khá khó hiểu ở đây, nhưng bạn có thể
có thể đoán, ngay cả khi bạn đã không bao giờ được lập trình trước, những gì
chương trình này.
Thật vậy, tôi không biết những gì printf là, nhưng in chắc chắn
gợi lên ý tưởng in một cái gì đó.
Và do đó, có, chương trình này cuối cùng sẽ in ra
dòng chữ "Hello, World."
>> Bây giờ, cho dù bạn có một máy Mac hoặc máy PC hoặc máy tính Linux, tỷ lệ cược
, ít nhất là nếu bạn đã tải về một số tự do
phần mềm có sẵn, bạn có thể đã được viết chương trình trên
máy tính xách tay của bạn trong một thời gian ngay bây giờ.
Trên Mac OS, ví dụ, có chương trình này được gọi là
Thiết bị đầu cuối mà đi kèm với một máy Mac, đó là thường của bạn
Utilities thư mục, và nó thường mở ra một màu đen và
màu trắng hoặc một cửa sổ màu trắng và đen mà tại đó bạn có một
nhắc mà tại đó bạn có thể gõ lệnh.
Vì vậy, đây thực sự là gợi nhớ về những gì máy tính
được sử dụng để được trước khi người dùng đồ họa
giao diện, ảnh minh hoạ, đến cùng.
Bây giờ, trong Windows, bạn có một cơ chế tương tự trong các hình thức
dấu nhắc lệnh.
>> Nhưng những gì tôi đang làm ở đây là mở, hãy nói,
TextEdit một lần nữa, vì vậy cùng một chương trình chúng tôi đã được sử dụng cho
giả một chút thời gian trước đây, và tôi sẽ đi trước và
viết chương trình đầu tiên của tôi.
Bao gồm stdio.h, bất cứ điều gì đó có nghĩa là, int main
void, đó có nghĩa là bất cứ điều gì, và sau đó trong giữa ở đây,
printf ("hello, thế giới".). Và sau đó đóng quote,
đóng dấu ngoặc, dấu chấm phẩy.
Bây giờ tôi sẽ đi trước và chỉ cần nhấn Command-S. Tôi sẽ
đi trước và tiết kiệm này là hello.c, do đó, các quy ước trong
thế giới của lập trình C là tên tập tin dot c.
Tôi sẽ chỉ cần đặt trong thư mục Home của John Harvard,
ở đây, nhấp vào Lưu, và bây giờ tôi sẽ đi qua này
thiết bị đầu cuối cửa sổ, mà lại là nhắc nhở này màu đen và trắng
nơi tôi có thể thực hiện các lệnh.
>> Tôi có thể chạy chương trình bằng cách nhập tên của họ, không phải bởi
nhấp đúp biểu tượng theo nghĩa thông thường.
Nhưng điều này là về C là một ngôn ngữ như C đầu tiên
đi kèm theo hình thức này, một cái gì đó được gọi là mã nguồn.
Cái gì đó trông một chút như tiếng Anh, nhưng
chắc chắn ít như tiếng Anh hơn so với giả Joseph
lúc trước.
Đó là nhiều hơn một chút phức tạp.
Nó dường như tuân theo một số mô hình hoặc các quy định.
Thực tế là tôi có dấu ngoặc nhọn, dấu chấm phẩy, dấu ngoặc kép,
niềng răng góc, cảm thấy như một máy tính đến với điều này
loại ngôn ngữ.
Nhưng nếu tôi đi, bây giờ, cửa sổ terminal này, tôi có thể chạy một
lệnh để chuyển đổi mã nguồn
cái gì gọi là mã đối tượng.
Đó là sẽ chuyển đổi tiếng Anh như cú pháp đến số không
và những người thân, cùng loại như số không và những người chúng ta
nói chuyện về Thứ tư.
Bây giờ, tôi sẽ chạy một lệnh gọi là kêu vang.
Thêm về điều này trong những tuần tới, nhưng đó là một chương trình với
mà tôi có thể chuyển đổi hello.c vào một bó toàn bộ
số không và những người thân.
>> Bây giờ, tôi đã chạy lệnh này.
Tôi đã chạy Clang, và sau đó tôi chạy trên tập tin này
được gọi là hello.c, mà tôi tạo ra một chút thời gian trước đây, và
có vẻ như không có gì xảy ra.
Nhưng thực sự, nếu tôi chọc xung quanh thư mục nhà của tôi, tôi sẽ thấy
rằng điều này a.out chương trình ngớ ngẩn tên là bây giờ tồn tại.
Đây chỉ là tên mặc định cho một chương trình trong khi viết
C. Chúng ta có thể ghi đè lên điều này cuối cùng, nhưng a.out là
tên của chương trình, tôi chỉ cần chuyển đổi thành số không và những người thân.
Và bây giờ rằng đó là số không và những người thân, máy Mac của tôi, trong trường hợp này, hoặc
máy tính Windows của bạn, có thể hiểu những bit, những
số không và những người thân.
Và như vậy khi tôi nhấn Enter, tôi thấy "hello, thế giới!"
>> Nhưng đó là một lỗi bit.
Tôi không nói "hello, thế giới: không khí: - jharvard". Không khí là
tên của máy tính của tôi.
Jharvard là tên của tài khoản, do đó, những gì tôi đã rõ ràng
bỏ qua từ chương trình?
Một số loại ngắt dòng.
Tôi không đánh tương đương với Enter hoặc trở về vận chuyển,
và điều này là, một lần nữa, minh chứng cho thực tế là các máy vi tính
chỉ làm những gì bạn nói với họ để làm.
Và thực tế là tôi đã không nói cho máy tính di chuyển
con trỏ đến dòng kế tiếp -
tốt, nó chắc chắn không phải sẽ chỉ làm điều đó
presumptuously cho tôi.
Vì vậy, nếu tôi quay trở lại chương trình của tôi, và tôi nói \ n -
Vì vậy, \ n, như chúng ta sẽ sớm thấy, là con đường của
đại diện cho những điều kỳ lạ như ký tự dòng mới, những điều
mà nếu không sẽ là kết quả của
nhấn phím Enter.
Nhưng bây giờ, chỉ biết rằng nhấn phím Enter sẽ
chỉ cần thực hiện mã của chúng tôi trông lẻ, do đó, thế giới đã quyết định, bạn biết
những gì, để giữ cho mọi thứ đẹp hơn, để giữ cho nó trên một dòng,
nói \ n đại diện cho một dòng mới.
Hãy để tôi lưu lại tập tin của tôi, quay trở lại cửa sổ thiết bị đầu cuối, và
lại chạy a.out, Enter.
Vẫn còn lỗi, nhưng tại sao?
>> Khán giả: không nghe được]
DAVID Malan: Yeah, vì vậy tôi cần phải biên dịch nó.
Vì vậy, để biên dịch chương trình chỉ có nghĩa là chuyển đổi nó từ mã nguồn
mã để mã đối tượng nguồn, số không và những người thân.
Bây giờ, thực tế chỉ mà tôi nhấn Save trong này TextEdit không có
mang trên những số không và những người thân bởi vì lần đầu tiên tôi cần
tell Clang hey, tôi đã thay đổi những dòng mã,
mã nguồn.
Bạn cần phải tạo a.out.
Không có gì đã xảy ra, nhưng trong một máy tính,
một dòng lệnh, do đó, để nói chuyện, khi không có gì xảy ra,
thường có nghĩa là tất cả là tốt.
Khi một cái gì đó xảy ra, nó có nghĩa là
bạn sai lầm, nói chung.
>> Vì vậy, Bây giờ chúng ta hãy đi a.out, và thực sự bây giờ, tôi có "hello,
thế giới ".
Và bây giờ, những gì về các số không và những người này?
Ở đâu, trên thực tế, là những?
Vâng, tôi có thể không thực sự chỉ loại poke xung quanh rất
hiệu quả.
Hãy để tôi mở TextEdit.
Dưới đây là a.out.
Hãy để tôi đi trước và mở, và điều này rõ ràng là những gì của tôi
chương trình như thế nào.
Vì vậy, tôi đã mở, không hello.c, nhưng a.out.
Nhưng điều này là thực sự không phải là những gì chương trình của tôi thực sự là.
Rõ ràng đây là một số loại ký tự chữ cái.
Tôi thấy không có số không và những người thân, nhưng đây là
vì a.out là một chương trình.
Zero và những người thân - nhưng TextEdit, như tên cho thấy, đó là
giống như Notepad trên Windows, chỉ là một trình soạn thảo văn bản, vì vậy nó
khó hiểu tất cả những số không và những người thân như
mặc dù họ đã, cái gì?
Ký tự ASCII.
>> Vì vậy, nhớ lại hôm thứ tư, chúng tôi chỉ đến với điều này
tùy ý lập bản đồ số, hoặc bit, thư
bảng chữ cái và các ký hiệu dấu chấm câu và các loại tương tự.
Vì vậy, TextEdit, rằng đó là một trình soạn thảo văn bản được hiểu sai
những người mẫu của số không và những người được cho là
in ấn từ, như "thế giới, xin chào." Nó hiển thị chúng
như ASCII, và đó là lý do tại sao nó trông lộn xộn một chút.
Giờ đây, có một số gợi ý chính xác ở đây.
Chú ý nếu tôi làm nổi bật, có một gợi ý của thực sự "hello,
thế giới ", một nơi nào đó trong chương trình đó là
câu tôi đã viết.
Nhưng chúng ta hãy đi trước và bây giờ nhìn thấy với một chương trình khác nhau.
Đây không phải là chúng tôi sẽ sử dụng thường xuyên, nhưng nó cũng đi kèm với
một máy Mac và sẽ được bên trong của thiết bị CS50.
Hãy để tôi đi trước và mở ra với một chương trình được gọi là xxd.
>> Trở lại trong ngày, hầu hết các chương trình được đặt tên là khá khó hiểu,
và do đó, xu hướng này vẫn tiếp tục.
Nhưng-b có nghĩa là nhổ chương trình này như nhị phân.
Đừng chạy nó.
Hiển thị nó cho tôi là số không và những người thân, và đây là C
chương trình chúng tôi chỉ viết.
Bây giờ, tôi như một con người ở đây, tôi thật sự không có ý tưởng những gì
các mô hình khác nhau của số không và những người đại diện.
Trở lại trong ngày, tôi, với thẻ đục lỗ hoặc các loại tương tự,
thực sự có để tìm kiếm các mô hình khác nhau của
01111000, thực sự đại diện.
Hoặc tệ hơn, tôi sẽ cần phải làm đấm hoặc tạo ra các
các mô hình số không và những người thân.
Nhưng hiện nay, về đức tin rằng một CPU, Intel bên trong, do đó,
để nói chuyện, bên trong tất cả các máy tính của chúng tôi những ngày này, biết
làm thế nào để giải thích các số không và những người thân.
Và một số số không và những người thân có nghĩa là in.
Một số số không và những người thân có nghĩa là chơi một âm thanh.
Một số zero và những người có nghĩa là người dùng nhập vào từ bàn phím.
Có tất cả các loại mô hình khác nhau, nhưng chúng tôi may mắn,
như con người, chỉ nói chung cần phải lo lắng về lập trình
mức khá cao.
Và trong các lớp học CS khác, bạn có thể đi sâu xuống sâu hơn và nhìn
vào những thứ giống như số không và những người thân, hoặc
những thứ khác vẫn còn.
>> Vì vậy, bây giờ chúng ta hãy chuyển đổi này.
Hãy di chuyển rất nhanh chóng đi từ C và di chuyển đến một cái gì đó
chút an ủi, một chút thú vị hơn, trong đó
chúng tôi có thể lấy lại hình ảnh động và âm thanh của chúng tôi và như thế
rõ ràng đã thoát khỏi chúng ta,
giao diện khá nguyên thủy.
Vì vậy, chương trình này tương tự trong C có thể được đại diện trong
ngôn ngữ lập trình được gọi là Scratch như sau.
Đây là tương đương với chương trình này hello thế giới viết bằng
mảnh ghép phong cách ngôn ngữ được gọi là Scratch.
Vì vậy, hãy để tôi đi trước và mở ra chương trình này rất.
Nó một lần nữa được gọi là Scratch.
Đó là tự do sẵn có, và điều này là cùng một điều chúng tôi
bắt đầu ngày hôm nay.
>> Vì vậy, điều này ở đây là Scratch, và nó được chia thành một vài
khác nhau miếng.
Quyền hàng đầu, chúng tôi có những giai đoạn được gọi là, và
quả thật vậy, đó là nơi mà các tập tin cookie
thực hiện chỉ là một chút trước.
Và trên sân khấu rằng điều được gọi là sprites, ký tự, hoặc
đối tượng, hoặc các thực thể.
Nó không thực sự quan trọng như thế nào bạn nghĩ về họ, nhưng họ
được lập trình, những thứ di chuyển, và trong trường hợp này, điều này
chương trình mà sinh viên của chúng tôi đã viết có một vài bánh gừng
cookies, một vài cookie tròn, một bó toàn bộ
trái tim, một bó toàn bộ kính đeo mắt.
Bởi vì điều này, anh ta hoặc cô ấy có thể chương trình mỗi người
từng ký tự riêng biệt.
>> Bây giờ, nó có ý nghĩa gì cho chương trình những nhân vật này?
Vâng, hãy để tôi đi trước và bấm vào cookie này tay trái
và di chuyển trên để phía trên bên trái ở đây.
Ở phía trên bên trái của màn hình của tôi bây giờ là
gọi là các mã khu vực.
Đây là sắp xếp của một phiến đá trắng, ban đầu, vào đó tôi có thể
kéo và thả các mảnh ghép, thẳng thắn, làm
chính xác những gì họ nói.
Vào phần trên của chồng này mảnh ghép là từ
Khi Green Flag nhấp vào, và nếu bạn không thông báo trước,
cách tôi bắt đầu bài hát đó cookie cách nhấp vào, theo nghĩa đen,
một lá cờ màu xanh lá cây.
Vì vậy, mà mảnh ghép ở trên cùng bên trái có nghĩa là khi
nhấp chuột của con người lá cờ màu xanh lá cây, tiến hành làm
những điều sau đây.
>> Bây giờ, họ Cookie đã tiến hành làm gì?
Tôi không thực sự biết làm thế nào để giải thích điều này được nêu ra, nhưng
Cookie dường như thiết lập đường rãnh của nó không, sau đó nó đợi
ba giây, sau đó nó thay đổi nhóm của mình đến một, sau đó nó
chờ đợi một giây, sau đó nó thay đổi của nó
rãnh trở lại một.
Và sau đó điều này thực sự trông giống như một chút của một lỗi, không nên
phải thay đổi đường rãnh của nó một lần nữa và một lần nữa, trừ khi nó
được thay đổi ở nơi khác, nhưng loạt các bước này là những gì
khiển hành vi của các cookie này cụ thể.
Vì vậy, chúng ta hãy thực sự di chuyển trở lại và không nhìn vào một cái gì đó
như vậy khá phức tạp.
Hãy để tôi đi trước và vào File, New,
và có được một slate sạch.
>> Vì vậy, bây giờ, tôi thực sự có một khu vực kịch bản trống rỗng, một giai đoạn trống,
với Scratch sprite mặc định của chúng tôi, và ở phía trên trái
trên màn hình của tôi để tôi có pallet của tất cả của họ
có câu đố miếng.
Và chúng tôi sẽ không đi qua gần như là nhiều người trong số những điều này
ngày hôm nay vì một lần nữa, nhất là tự giải thích, nhưng chúng tôi sẽ
cố gắng để phân loại chúng và chỉ ra những điểm tương đồng
với những ngôn ngữ trong tương lai mà chúng ta sẽ tìm.
Và ở trên cùng bên trái ở đây là lần đầu tiên Khi Xanh Flag Nhấp,
vì vậy hãy để tôi kéo này ở đây, phóng to ra một chút.
Và nếu tôi nhấp vào lá cờ màu xanh lá cây, không có gì thực sự xảy ra vì
Tôi đã không kèm theo bất kỳ logic, bất kỳ tuyên bố như vậy để nói chuyện,
mà lá cờ màu xanh lá cây, vì vậy hãy để tôi đi lên
chủng loại ở đây.
Tôi hiện đang trong danh mục kiểm soát.
Thay vào đó, tôi sẽ đi xuống đến các loại vẻ, và
có một bó toàn bộ những thứ mà nói Say,
Hãy suy nghĩ, thay đổi trang phục màu Switch,.
>> Vì vậy, bạn có thể làm những điều ngớ ngẩn với trang phục và
âm thanh và các loại tương tự.
Hãy để tôi đi trước và chỉ nói Say, và bây giờ nhận thấy như tôi kéo
và thả các mảnh ghép này, nó sẽ muốn bám
thành hình dạng tương ứng.
Vì vậy, khi tôi đi trước và cho đi của con chuột của tôi, họ khóa
với nhau, và bây giờ nếu tôi đi qua đây và nhấp vào lá cờ màu xanh lá cây,
con mèo này trong thực tế chào bởi vì đó là những gì bên trong
hộp màu trắng này.
Chúng tôi sẽ sớm thấy rằng hộp màu trắng này là những gì được gọi là một
đối số, hoặc một tham số.
Đó là một cách thay đổi hành vi của các, trong trường hợp này, một
mảnh ghép, nhưng nếu tôi muốn nói chính xác những gì tôi nói
trước khi, nói xin chào, thế giới, tôi bây giờ có thể trở lại ở đây,
bấm vào chơi, và "hello, thế giới" là những gì cho biết.
>> Vì vậy, chúng tôi có nghĩa là lập trình.
Đó không phải là tất cả những gì hấp dẫn của một chương trình, nhưng ít nhất
đó là một chút gì đó hấp dẫn hơn trông,
nháy mắt, đầu tiên như thế này.
Và chúng tôi có thể nhanh chóng có được tất cả các ý nghĩa biểu cảm hơn
bởi vì trong Scratch, giống như trong các ngôn ngữ khác, có tất cả
các loại báo cáo, không chỉ Say hoặc in ấn một cái gì đó, nhưng
bạn có thể làm những thứ như chờ đợi, như chúng ta chỉ thấy
cookie, một số số giây.
Bạn có thể chơi âm thanh trong môi trường của Scratch chỉ
như bạn có thể trong một chương trình âm thanh máy tính chơi bình thường.
Bạn có thể kiểm tra những gì được gọi là biểu thức Boolean.
Vì vậy, bây giờ, chúng ta hãy bắt đầu để thêm vào bộ công cụ của chúng tôi một số thuật ngữ
mà thực sự liên quan đến ví dụ mà Joseph và tôi đã làm
ở đây với những đôi tất.
Vì vậy, báo cáo chỉ là báo cáo của thực tế.
Làm điều này.
Một chỉ thị của Sprite, hoặc cho tôi những con người, để làm một cái gì đó.
Một biểu thức Boolean là cái gì đó có một giá trị, một
cái gọi là giá trị sự thật, hoặc là một số không hoặc một, sai hoặc
đúng, tắt hoặc bật, không hoặc có.
Không thực sự quan trọng như thế nào bạn nghĩ về điều này, nhưng đó là một
nhị phân nhà nước.
Như Nate thảo luận trong video hôm thứ Tư, hai
sự việc.
>> Vì vậy, trong Scratch, biểu thức Boolean xảy ra để xem xét
giống như các đối tượng màu xanh ở đây, và trong trường hợp này, câu hỏi
đánh dấu ngụ ý rằng bạn đang hỏi một câu hỏi.
Con mèo, hoặc sprite chạm vào con trỏ chuột?
Vì vậy, đây chỉ là một ví dụ của một khối Scratch đó đang xảy ra
để cho phép chúng tôi kiểm tra có hay không, là con chuột chạm vào
sprite trên màn hình?
Và điều này có thể hữu ích nếu bạn thực sự muốn làm những điều
với con chuột của bạn.
Ngoài các biểu thức Boolean, chúng tôi có những điều
như là con chuột xuống, để bạn có thể phát hiện rằng loại
đặt câu hỏi là tốt.
Chúng ta có thể làm toán học nếu bạn thực sự muốn, và có
sử dụng thực sự hấp dẫn hơn cho việc này hơn là chỉ thuần túy
số học, như chúng ta sẽ thấy.
Pseudo ngẫu nhiên và làm cho chương trình của bạn xuất hiện suy nghĩ
hoặc hành xử một cách khác nhau dựa trên một số giá trị dường như ngẫu nhiên,
và sau đó chúng tôi có những thứ như các biểu thức Boolean như.
Vì vậy, nếu bạn thực sự muốn kiểm tra hai giá trị, chúng ta sẽ thấy trong
Scratch chúng ta thực sự có thể kiểm tra nếu điều này là
đúng sự thật và điều này là đúng.
Ví dụ, trong trường hợp vớ của tôi, tôi có thể đã ở
rất cuối hỏi những câu hỏi nếu vớ trái và bên phải vớ
được, bỏ thuốc lá.
Bạn đang làm tất cả trong ngày, do đó, đó sẽ là một
cơ hội cho điều đó.
>> Vì vậy, chúng ta hãy đi trước và thử mảnh này lại với nhau
và đi vào một vài ví dụ
hấp dẫn hơn so với một trong những điều này.
Vì vậy, hãy để tôi đi trước đây và mở ra một số ví dụ
mà sẽ luôn luôn được trên trang web của khóa học là tốt, và
mở hello2.
Vì vậy, trong hello2 đây, chúng tôi có một chương trình đó là làm một vài
điều, nhưng nó không làm việc đó một cách hiệu quả như chúng ta có thể.
Vì vậy, ở đây nó nói "hello, thế giới" trong một giây và sau đó chờ đợi
trong một giây.
Và sau đó không một lần nữa, và sau đó nó một lần nữa.
Vì vậy, nếu tôi nhấp vào lá cờ màu xanh lá cây, Scratch nói "Hello, world.
Xin chào, thế giới.
Xin chào, thế giới ". Và điều này rõ ràng là ứng cử viên bây giờ cho
cải tiến.
>> Cải biên là gì, hy vọng, chúng ta có thể
bây giờ làm cho nếu Scratch hỗ trợ khái niệm?
Một số loại vòng lặp.
Một số loại của sự lặp lại, bây giờ, sẽ được tốt đẹp, để cho tôi
thực sự cố gắng đó.
Hãy để tôi thực sự đi và di chuyển này.
Vì vậy, thông báo có thể tách khối dễ dàng như bạn có thể thêm vào
đính kèm chúng.
Hãy để tôi đi theo kiểm soát, di chuyển xuống, và thực sự,
có mảnh ghép này ở đây, Repeat và Forever
Mãi mãi Nếu
Vì vậy, có một số cách thể hiện cấu trúc lặp
Scratch.
Tôi có lẽ muốn ở đây không phải là giới hạn vì tôi chỉ
muốn điều này xảy ra ba lần, nhưng có lẽ Lặp lại.
Vì vậy, hãy để tôi kéo Lặp lại ở đây, kéo và thả nó, và
thay vì nói "hello, thế giới" ba thời điểm khác nhau,
cho tôi kéo mảnh ghép này ở đây.
Và mặc dù nó không có vẻ phù hợp, chương trình là thông minh
đủ để nhận ra nó sẽ phát triển để điền vào, vì vậy nó là
hình dạng vật chất và kích thước không phải là tuyệt đối.
Hãy để tôi thay đổi sự lặp lại đến ba, và bây giờ cho tôi đi
trước và kéo Chờ Một thứ hai trong đó là tốt.
Nó sẽ chụp trong là tốt, và vì vậy bây giờ tôi sẽ kéo
những kẻ trên đây và chỉ ném chúng đi vì tôi
không cần chúng nữa.
Hãy để tôi phóng to và thu nhỏ nhấp vào lá cờ màu xanh lá cây ngay bây giờ, và chúng tôi có
cùng một chương trình nhưng, như tôi đã dự đoán trước, tốt hơn
được thiết kế bởi vì bạn có thể tưởng tượng như thế nào xấu chương trình này
sẽ nhận được, chắc chắn về mặt thẩm mỹ, nếu bạn phải
bắt đầu sao chép và dán, sao chép và dán, hoặc
kéo và thả các điều darn cùng một lần nữa và một lần nữa.
>> Bây giờ, bạn chỉ cần nói rằng các công cụ trên màn hình, in ấn.
màn hình, thực sự tất cả không phải là thú vị, vì vậy hãy mở cửa sổ
3 không đúng ở đây.
Và bây giờ, như bạn sẽ thấy, điều này sẽ nhanh chóng được gây phiền nhiễu -
[Meow]
DAVID Malan: - nhưng nó cũng là loại dễ thương.
[Meow]
DAVID Malan: Được rồi, vì vậy tốt hơn, và chúng tôi chắc chắn có thể sử dụng
cùng một quá trình chuyển đổi của chunking vào một vòng lặp
cấu trúc, nhưng chúng ta hãy làm cho nó thú vị hơn.
>> Hãy để tôi đi trước và mở ra một phương sai thứ tư ở đây, nơi tôi
đi thêm một bước nữa.
Vì vậy, theo quan điểm này, ngớ ngẩn mặc dù điều này là lần đầu tiên
nháy mắt, chương trình này sẽ làm gì?
Nó sẽ meow một lần.
Tại sao?
Vâng, một là, như xa như tôi biết, luôn luôn ít hơn hai.
Không có khái niệm của sự ngẫu nhiên ở đây.
Tôi đã theo nghĩa đen mã hóa cứng một và hai, nhưng đây là một
Ví dụ bây giờ thực sự bằng cách sử dụng một biểu thức Boolean.
Giống như khi Joseph đã làm trong giả của mình, thụt đầu dòng IF
bạn tìm thấy vớ phù hợp THEN làm như sau, ở đây chúng tôi có
một biểu hiện IF là một trong ít hơn hai THEN -
và trong thực tế, chúng tôi thậm chí có một chút thụt đầu dòng,
tím là hơi thụt vào bên phải -
THEN bạn đang đi để chơi các meow âm thanh.
Bây giờ, trong trường hợp này, đó là một trong luôn luôn ít hơn hai, do đó, điều này
là một sự lãng phí một điều kiện.
Nhưng chúng ta có thể, như chúng ta sẽ thấy, để cắm những thứ khác vào
những placeholders nơi một và hai.
Vì vậy, chúng ta hãy tiến ví dụ năm của một số những
hellos và xem những gì chương trình này sẽ làm gì.
>> Vì vậy, bây giờ, trong một câu tiếng Anh, làm thế nào thực hiện điều này
chương trình hành xử?
Khán giả: Meows nửa thời gian.
DAVID Malan: Meow một nửa thời gian, vì vậy đây là một cách để
truyền đạt một ý tưởng rất đơn giản.
Mặc dù chúng tôi xảy ra để được sử dụng một số bất bình đẳng ở đây
trong một số con số, điều này thực sự chỉ là một programmatical
cách, một cách chính xác, nói rằng nếu đồng xu đi lên đứng đầu,
trước và meow.
Hoặc ngược lại, nếu đồng xu đến đuôi, không meow.
Và trong trường hợp này, làm thế nào để chúng ta bày tỏ điều đó không?
Chúng tôi sẽ chọn một số ngẫu nhiên từ 1 đến 10, và nếu điều đó
số ít hơn 6, đi trước và meow.
Và làm thế nào vào được đây?
Vậy một lần nữa, nhận thấy chỉ cần kéo và thả và
điều chốt vào vị trí.
>> Vì vậy, bây giờ chúng ta hãy xem nếu ngẫu nhiên này hoạt động.
Hãy để tôi đi trước và bấm vào lá cờ màu xanh lá cây.
[Meow]
DAVID Malan: Được rồi.
[Meow]
DAVID Malan: Được rồi.
Được rồi, tốt, vì vậy chúng tôi có đầu, đầu, đuôi có hiệu quả.
Đuôi.
[Meow]
DAVID Malan: Thủ trưởng.
[Meow]
DAVID Malan: Tuyệt vời.
Nó luôn luôn vụng về khi chỉ cần thống kê bạn sẽ có được một xấu
chạy, và nó là tất cả đầu, và chương trình thực hiện
làm việc như bạn hy vọng.
Nhưng lần này, nó đã làm việc, và chúng ta dường như có, nếu chúng ta đã làm
một số lượng vô hạn của thời gian, tỷ lệ 50%.
Bây giờ một lần nữa, không phải tất cả là thú vị, chỉ cần làm cho mèo
meow, vì vậy chúng ta hãy xem nếu chúng ta không có thể tiến xa hơn một chút này
ở đây trong phiên bản 6.
Vì vậy, bây giờ, chúng tôi có phiên bản thực sự gây phiền nhiễu -
[MEOWS mỗi vài giây]
DAVID Malan: - và đây là những gì được biết, tổng, như là một
vòng lặp vô hạn.
>> Vì vậy, vòng lặp vô hạn trong trường hợp này cảm thấy xấu hổ.
Đó chắc chắn sẽ bắt đầu nghe có vẻ xấu, và vô hạn
vòng lặp là không phải lúc nào cũng xấu.
Bạn có thể nghĩ bối cảnh trong các chương trình máy tính mà bạn muốn
thực sự muốn một vòng lặp vô hạn?
Yeah?
TƯỢNG: Khi bạn muốn kiểm tra một điều kiện.
DAVID Malan: Được rồi, khi bạn muốn giữ lại kiểm tra một điều kiện?
Như thế nào?
Khán giả: không nghe được]
DAVID Malan: Được rồi, tốt, vì vậy nếu bạn đã có một số chương trình, một số
loại điều tự động hóa nhà, nơi bạn muốn liên tục
màn hình là một cái gì đó là trường hợp.
Đèn?
Đèn bởi vì có thể bạn có một bộ đếm thời gian, và
bạn muốn họ đi ra, bạn có thể cần phải làm một cái gì đó
một lần nữa và một lần nữa.
Và trên thực tế, nói giờ, bất kỳ của bạn, những người đã
đồng hồ trên máy tính của bạn hoặc đồng hồ kỹ thuật số, đó là một
vòng lặp vô hạn.
Nó tiếp tục cập nhật thời gian bởi vì nó liên tục
kiểm tra và kiểm tra và kiểm tra có thời gian thay đổi,
và nếu như vậy, oh, my god.
Đồng hồ cuối cùng cũng thay đổi.
Nó cần hiển thị giá trị đó cho bạn.
Vì vậy, trong khi hầu hết các vòng lặp vô hạn thời gian là một sai lầm,
hoặc ít nhất là một quyết định thiết kế nghèo, đôi khi họ làm
có giá trị của họ.
>> Vâng, chúng ta tiến xa hơn hello7.
Vì vậy, bây giờ chương trình sẽ nhận được một chút tương tác nhiều hơn.
Hãy để tôi phóng to ở đây, và một lần nữa, đây là những gì là tốt đẹp
về Scratch.
Và chúng tôi sẽ sử dụng nó để là rõ ràng, Scratch, chỉ ngày hôm nay và vào
tuần tới vấn đề thiết lập.
Nhưng vào hôm thứ Hai, chúng tôi nhảy vào C. Trong chương trình này, nó,
mãi mãi, sau đây.
NẾU chạm vào con trỏ chuột - bây giờ, người
bối cảnh ở đây?
Vâng, và thông báo rằng những người được chọn xuống đây ở phía dưới
bên phải là con mèo, một sprite, vì vậy các kịch bản, điều này
chương trình, áp dụng cho họ cụ thể.
Vì vậy, nếu con mèo là chạm vào con trỏ chuột, sau đó nó sẽ
chơi này xuống và chờ đợi hai giây, và
sau đó lặp lại nauseum quảng cáo.
>> Vì vậy, chúng ta hãy đi trước và nhấn play.
Không có gì xảy ra, nhưng nếu tôi muốn vật nuôi
mèo bây giờ, tôi có thể chỉ cần.
[Meow]
DAVID Malan: Adorable.
[Meow]
DAVID Malan: Được rồi, ít gây phiền nhiễu, nhưng cũng được ngu si đần độn,
do đó, chúng ta hãy di chuyển và xem nếu chúng ta không có thể tiêm
thêm một chút logic.
Đó là ví dụ 7.
>> Trong ví dụ 8, chúng ta sẽ
giới thiệu một điều kiện ELSE.
Vì vậy, giống như một ngã ba đen trên đường, trong đó bạn có thể đi
trái hoặc bạn có thể đi đúng, một điều kiện trong chương trình
ngôn ngữ như Scratch, hoặc là chúng ta sẽ thấy C, có thể cho phép bạn
đi theo một hướng khác nhau thông qua một IF ELSE xây dựng.
Vì vậy, theo đúng nghĩa đen, IF chạm vào con trỏ chuột,
sẽ chơi một số âm thanh, ELSE nó sẽ chơi này khác
âm thanh, meow.
Bây giờ, nếu bạn có thể suy ra từ tên của những âm thanh này, bạn có thể
có thể đoán những gì chương trình này có nghĩa là để gợi lên
ý tưởng.
Con mèo này được meowing hạnh phúc.
[Meow]
DAVID Malan: Hạnh phúc, nhưng không
rất thích được chạm vào.
[Gầm rú]
DAVID Malan: Vì vậy, bây giờ chúng tôi có một con mèo sẽ la lên ở bạn.
>> Được rồi, tốt, một ví dụ cuối cùng với những con mèo ở đây, và
chúng ta hãy mở phiên bản 9 này ở đây.
Vì vậy, bây giờ, chúng tôi có những âm thanh gây khó chịu nhất tiếp theo mà tôi có thể
tìm kiếm, vì vậy chúng tôi có một hải mã, sư tử biển ở đây ai sẽ
làm như sau.
[SEAL Bark]
DAVID Malan: Được rồi, do đó, điều này sẽ đi cho đến khi bạn tìm ra như thế nào
chương trình này hoạt động.
Vì vậy, thời gian này, loài động vật này có hai kịch bản, và những gì
thú vị ở đây là các kịch bản sẽ thực hiện
song song.
Vì vậy, bởi vì cả hai đều bắt đầu với lá cờ màu xanh lá cây nhấn vào,
nó giống như đi như thế này, và cả hai chương trình bắt đầu chạy nó
một lần ngay cả khi họ đang vòng lặp mãi mãi.
Vì vậy, trong kịch bản hàng đầu, tôi có một số logic.
Những tính năng nào mà cung cấp lên không?
[SEAL Bark]
Khán giả: không nghe được]
DAVID Malan: Nếu đó là những gì?
[SEAL Bark]
Khán giả: Nếu tắt tiếng không, nó sẽ tiếp tục chơi
âm thanh. [SEAL Bark]
DAVID Malan: Được rồi, tốt.
Vì vậy, nếu tắt, bất cứ điều gì, điều này màu da cam là số không,
THEN phát âm thanh sư tử biển và nghĩ "Oh,
hi, trong hai giây.
Bây giờ, tôi không biết những gì tắt là, nhưng không gợi lên
ý tưởng sai hoặc tắt.
Vì vậy, nếu tắt là sai, vì thế nếu không im hơi lặng tiếng,
tiếp tục chơi âm thanh.
Được rồi, tốt, làm thế nào để chúng tôi vô hiệu hóa điều này?
>> Vâng, chúng ta hãy nhìn vào kịch bản thứ hai xuống.
Các kịch bản thứ hai nói tắt không.
Chú ý nó cũng cam, do đó, những gì Scratch không là màu sắc
khối trong cùng màu nếu nó là loại
của một cách hợp lý có liên quan.
Vì vậy, chỉ cần tắt tiếng lên hàng đầu là cam, do đó, sẽ tắt xuống đây
được đề cập trong khối cam.
Nhưng đây là một bài tập biến, do đó, cũng giống như trong
đại số, bạn có x và y và z, trong lập trình, bạn có
biến, nhưng chúng nói chung -
chúng ta hãy tạm dừng trong một thời điểm và con số như thế nào
để ngăn chặn điều này sủa.
Làm thế nào để làm điều này?
[SEAL Bark]
DAVID Malan: Được rồi.
Nó dừng lại. Okay.
>> Vì vậy, cũng giống như trong đại số, bạn có các biến x, y, z, nhưng trong
lập trình, có các biến như x, y, z và nói chung là
tán thành bởi vì họ không phải ở tất cả các biểu cảm.
Họ không có ý nghĩa ngữ nghĩa nào, trong hầu hết các
ngôn ngữ lập trình, các biến có thể có đầy đủ
tên chính thức hoặc các từ hay cụm từ, như im hơi lặng tiếng, để nói
những gì họ làm.
Vì vậy, kịch bản thứ hai này cũng đã được nghe mãi mãi, và nó nói
nếu chìa khóa, khóa bàn phím Space,
ép, dấu hỏi.
Vì vậy, có một điều kiện với một biểu thức Boolean đó là
sẽ phải trả lời một câu hỏi hoặc trung thực hoặc sai,
sau đó tôi có bên trong của nó IF không gian chính được nhấn VÀ
NẾU tắt là số không, thiết lập tắt tiếng một, ELSE thiết lập tắt tiếng không.
Vì vậy, điều này ngã ba trên đường, và thông báo như thế nào tôi đã
lồng nhau hai IF điều kiện, là một cách để kiểm tra là
Space Bar ép bởi vì nếu như vậy, tôi có muốn đi
cách này hay cách đó.
Và làm cách nào để đảo ngược giá trị của im hơi lặng tiếng?
Tôi phải kiểm tra là nó không?
Nếu vậy, làm cho nó một, người nào khác làm cho nó không đến do đó chuyển đổi
hai tiểu bang.
>> Được rồi, vì vậy chúng tôi có sau đó là một số những cơ bản
xây dựng.
Chúng tôi có các biểu thức Boolean, và nhận ra, quá, đây là những
không phải tất cả những gì xa lạ.
Trong thực tế, đây là một ảnh chụp màn hình nhanh chóng của Harvard nhiên của CS50
mua sắm công cụ, và bất kỳ trang web ra có mà có hộp kiểm
thăng trầm thả thực sự, tất cả thời gian này, được sử dụng
Boolean biểu thức.
Trong trường hợp này ở đây, nếu bạn nhấp vào hộp kiểm bên cạnh
tất nhiên lớn hơn hoặc bằng 4,5, hoặc năm tới cùng
giảng viên, bạn chỉ định một biểu thức Boolean.
Chỉ cho tôi các khóa học mà biểu thức đó là đúng sự thật.
Hoặc để bên phải, không xung đột với các khóa học Tôi
, nếu được kiểm tra, sau đó có, bạn muốn kiểm tra
điều kiện đó, khác mà bạn muốn bỏ qua nó.
Biểu thức Vì vậy, Boolean là loại tất cả xung quanh, nhưng khi
chúng tôi đặt chúng trong điều kiện, cho dù nếu có điều kiện, IF
Elses, hoặc chúng tôi thậm chí có thể mô phỏng sâu hơn
cấp, IF ELSE IF ELSE -
vì vậy đó là của một nhà nước ternary.
Bạn có thể đi theo cách này hoặc cách này hoặc cách này.
Chúng tôi có thể giữ cho mọi thứ làm tổ để đi theo những hướng khác nhau.
>> Vì vậy, Scratch có những vòng, như giới hạn.
Nó có các tính năng như Lặp lại 10, một số
hữu hạn số lần.
Chúng tôi có khả năng thiết lập các biến, do đó, trong trường hợp này
Tôi đã tuyên bố, ví dụ, một vớ được gọi là biến.
Tôi đã khởi tạo là 0, và đó là một hướng
chúng ta có thể đưa lên đây với Joseph, nhờ đó mà có lẽ tôi
chỉ cần theo dõi bao nhiêu vớ tôi có trên và chấm dứt
chương trình khi giá trị của biến đó là 2.
Đó sẽ là một cách khác để loại khái quát rằng
vấn đề và làm một cái gì đó một lần nữa và một lần nữa.
Vâng, chúng ta hãy đi trước và bây giờ giới thiệu một vài những điều mới.
Vì vậy, những người bạn có kinh nghiệm lập trình trước
biết rằng rất nhiều ngôn ngữ có mảng, véc tơ hoặc
danh sách, và thực sự, Scratch có một cái gì đó như thế này, quá.
Vì vậy, chúng ta hãy xem nếu chúng ta không thể có những điều để cấp độ tiếp theo ở đây.
Nếu tôi có khả năng, bây giờ, với những mảnh ghép để
thêm một cái gì đó, giống như một từ hoặc một số, cho một biến, tôi có thể
bắt đầu tích lũy những điều.
Và điều này thực sự là apropos khá cho những thứ như trò chơi,
vai trò-chơi trò chơi, nơi bạn đi bộ xung quanh
một số thế giới tưởng tượng những điều thu thập, chọn những thứ lên,
tích luỹ điểm, hoặc tương tự.
Bạn có thể muốn theo dõi của một số loại hàng tồn kho, và
thực sự, đó là những gì một cựu học sinh của chúng tôi ở đây đã làm với
một cái gì đó gọi là Fruitcraft RPG.
>> Vì vậy, hãy để tôi đi trước và mở ra điều này ở đây, và trong
Fruitcraft, chúng tôi có thế giới này ở đầu trang.
Vì vậy, hãy để tôi đi trước và nhấp vào lá cờ màu xanh lá cây.
Thông báo ở trên cùng bên trái là một số loại hàng tồn kho.
Được cài đặt trong Scratch như những gì chúng ta sẽ gọi một mảng hoặc
một danh sách, và bây giờ chúng ta đã có hình ảnh động.
Vậy chúng ta bắt đầu trước đó với câu chuyện tình yêu cookie này,
và sau đó chúng tôi tiến đến mèo và sư tử biển, bây giờ chúng tôi có thể có
những điều mà thậm chí còn tương tác nhiều hơn.
Và anh chàng nhỏ màu xanh này, tôi có thể bắt đầu di chuyển xung quanh của mình
ít nhà đây.
Vì vậy, có vẻ như ông có một lối ra ở đây, vì vậy tôi đang sử dụng
các phím mũi tên lên, xuống, trái phải.
Và bây giờ tôi đang ở ngoài, do đó, chúng ta hãy là những gì tôi đã có ở đây.
Trông giống như một màu da cam, và quả thật, ngay sau khi tôi chạm vào
cam, nó được plopped vào hàng tồn kho của tôi.
Nếu tôi đi qua đây để các anh đào, bây giờ tôi có một cái gì đó
khác trong hàng tồn kho của tôi.
Và đây là tất cả tốt đẹp và dễ thương, nhưng suy nghĩ về cách, bây giờ, điều này
được thực hiện.
Vâng, chúng ta có khái niệm về một danh sách, và đó là rõ ràng là một
mảnh ghép mà bạn chỉ cần nói những gì bạn muốn thêm vào đó, thêm
cam, anh đào.
Bây giờ, anh chàng nhỏ màu xanh này đang làm gì?
Vâng, anh ấy là một sprite.
Và có lẽ, cam và quả cà phê -
chính họ là những sprites riêng biệt.
Và bằng cách sử dụng điều kiện trong biểu thức Boolean,
sinh viên có lẽ là có thể thể hiện NẾU màu xanh chàng
anh đào chạm vào THEN thêm anh đào từ của mình
hàng tồn kho, và sau đó cũng ẩn sprite anh đào.
Vì vậy, bên dưới mui xe, có lẽ vẫn còn là một anh đào
sprite.
Chúng tôi đã chỉ nói với nó để trở nên hiệu quả vô hình.
>> Bây giờ, nếu tôi tiếp tục đi bộ trên đây, chúng tôi cũng có thể làm điều này
điều gần, nơi tôi có thể đi và đọc các dấu hiệu.
Vì vậy, nếu anh chàng màu xanh chạm vào dấu hiệu, chúng ta có thể có khối này Say
giống như con mèo nói chuyện với chúng tôi bằng lời nói, hello, trước đó, "Got
một số trái cây?
Mang nó đến nơi trái cây "Được rồi, vì vậy bây giờ, rõ ràng.
Tôi có hướng dẫn của tôi.
Tôi có thể đi đến nơi trái cây, xếp hàng bản thân mình lên
với các cửa.
Bây giờ, tôi đang ở đây.
Tôi có thể đi với người đàn ông ở quầy.
Ông phát hiện rằng tôi là gần với anh ta, vì vậy nó không phải là
khá giống nhau chạm vào, và tôi đã thắng.
Như vậy, có chúng tôi có Fruitcraft RPG.
>> Vì vậy, chúng ta có thể làm những việc thậm chí còn tiên tiến hơn này.
Chúng tôi có thể thêm âm thanh.
Chúng ta có thể thêm ngẫu nhiên giả.
Chúng ta có thể thêm phức tạp.
Hãy để tôi đi trước đây, và thay vì làm điều này bản thân mình,
hãy để tôi chỉ cho bạn một của các ý tưởng phức tạp hơn
chúng tôi đã nhận năm ngoái từ một người nào đó tên là Blake.
Chúng tôi có thể có một tình nguyện viên là người thoải mái khi xuất hiện trên
máy ảnh và để chơi một trò chơi?
Làm thế nào về phải có?
Nào lên.
Được rồi, do đó, các trò chơi mà bạn có chỉ là vô tình
tình nguyện để chơi -
[Vỗ tay]
DAVID Malan: - là một cái gì đó từ xưa đã được gọi là
"Frogger". Tên của bạn là gì?
Renda: Renda.
DAVID Malan: Redna?
Renda: Nó giống như Brenda với b.
DAVID Malan: Được rồi, Renda.
David.
Hân hạnh được gặp bạn.
>> Vì vậy, ở đây trong "Frogger", và nếu chúng ta có thể tăng âm lượng chỉ
một chút, bạn này ít
ếch màu xanh lá cây ở phía dưới.
Bạn có thể sử dụng trái, phải, lên và xuống, và mục tiêu của bạn là để
băng qua đường, băng qua sông, và chạm vào miếng lily
ở đầu.
Aw.
Một trong nhiều t -
làm lại, được chứ?
Hãy nhấn stop.
Không ai nhìn thấy điều đó.
[Vỗ tay]
DAVID Malan: Yeah.
Thực hiện rất tốt.
Tuyệt vời, cảm ơn bạn.
>> Vì vậy, đó có Frogger. Bây giờ bạn biết những gì bạn đã
nhận được mình vào tình nguyện viên một lần nữa cho một khác nhau
trò chơi được gửi bởi một học sinh khác.
Bạn muốn đi lên?
Tên của bạn là gì?
RICHARD: Richard.
DAVID Malan: Richard.
Được rồi, Richard, đi lên trên.
[Vỗ tay]
DAVID Malan: Bạn có cái gì đó sẽ âm thanh
quen thuộc sớm, vì vậy đây là những hướng dẫn của bạn.
Vì vậy, trong một thời điểm, một số mảnh ghép sẽ di chuyển lên
từ màn hình nhìn hoặc trái
hoặc phải lên hoặc xuống.
Bạn sẽ phải nhấn các phím mũi tên theo cách như vậy
nó tương ứng với những mảnh ghép xếp hàng với
giữ chỗ ở đầu trang.
Vì vậy, khi bạn nhìn thấy một mũi tên trái, và dòng nó với trái
mũi tên, nhấn vào mũi tên bên trái.
Bạn có thể bắt đầu.
[MUSIC - "Stronger" Kayne West]
DAVID Malan: Tất cả, phải lớn tràng pháo tay cho Richard.
[Vỗ tay]
DAVID Malan: Rất cũng được thực hiện.
Cảm ơn bạn.
[Vỗ tay]
>> DAVID Malan: Vì vậy, vui vẻ và, dường như, sắp xếp của
đáng sợ vì nó có thể thực hiện một cái gì đó như là
dường như phức tạp như thế này, nhận ra rằng học sinh
không đặt ra và chỉ cần viết này cùng một lúc.
Thay vào đó, bạn có thể phá vỡ một vấn đề là có vẻ như phức tạp
vì điều này thành những miếng nhỏ hơn nhiều, và điều này cũng là
sẽ là một chủ đề.
Điều tệ nhất bạn có thể làm trong việc viết một chương trình trong hầu hết bất kỳ
ngôn ngữ là ngồi xuống, có được thực sự vui mừng, viết
toàn bộ điều chết tiệt, và sau đó chỉ hy vọng rằng nó hoạt động.
thời gian bạn đang viết xong.
Thay vào đó, quá trình lập trình nên thường
khoan thai, rất lặp đi lặp lại, theo đó bạn chỉ cần
thiết lập các bước rất nhỏ cho mình, miếng nhỏ
nào bạn muốn cắn, và do đó bạn có những sanity
kiểm tra, sự kiện quan trọng ít bạn có thể đáp ứng.
Và sau đó bạn xây dựng trên đầu trang của những người tạo ra nhiều hơn
tinh vi điều vẫn còn.
>> Vì vậy, ví dụ, làm thế nào chúng ta có thể đi về
thực hiện một trò chơi như thế này?
Vâng, thẳng thắn, tôi chắc chắn sẽ bắt đầu bằng cách chỉ
hỗ trợ một trong những chìa khóa tại một thời điểm.
Chúng ta chỉ cần thực hiện hỗ trợ cho các mũi tên bên trái.
Vì vậy, các sinh viên đã có bằng cách nào đó tạo ra trong Photoshop, hoặc trong
Scratch chính nó bằng cách sử dụng trình soạn thảo ít đồ họa,
phím mũi tên trông giống như một ở đầu còn lại đó, chỉ cần
giữ chỗ màu xám.
Sau đó, các học sinh phải tìm ra những gì x, y phối hợp
đặt nó, nơi để đặt nó trong cửa sổ.
0, 0 là ở đây, vì vậy bạn phải tìm ra số lượng
pixels, hoặc dấu chấm, để bù đắp cho rằng mũi tên từ
phía trên cùng của màn hình.
Và sau đó một lần đó là tại chỗ, chương trình của bạn không thực sự
làm bất cứ điều gì được nêu ra, do đó, sau đó bạn cần một ma thứ hai,
dụ một mũi tên màu xanh lá cây đó là cũng trỏ đến lại, và bạn
sau đó bạn cần để bắt đầu viết một số kịch bản cho nó.
>> Và bạn nhận thấy, có lẽ, những điều này bắt đầu đến lúc
tốc độ khác nhau, và các màu sắc khác nhau
địa điểm, và đó là bởi vì các học sinh sử dụng một chút
giả ngẫu nhiên.
Và bằng cách giả ngẫu nhiên, tôi chỉ có nghĩa là chọn một số
giữa một cái gì đó và một cái gì đó bởi vì bạn có thể
bắt đầu với những thứ đồ như thế nào nếu con số này là từ một
năm, tốt, chúng ta hãy làm cho điều đó màu xanh lá cây.
Nếu đó là từ 6 đến 10, chúng ta hãy làm các mảnh ghép
màu đỏ thay vì.
Vì vậy, miễn là bạn có một cách để tạo ra một số loại
ngẫu nhiên, sau đó bạn có thể làm cho quyết định trên cơ sở đó
ngẫu nhiên.
Và tôi tiếp tục giả nói ngẫu nhiên bởi vì có một
nhỏ bẩn bí mật.
Máy tính không thể đưa ra con số ngẫu nhiên.
Họ chỉ có thể làm những gì họ đang nói bởi vì
họ các thiết bị do con người tạo ra.
Họ có thể không chỉ đoán một số giống như con người chúng ta
cảm thấy như chúng tôi có thể.
Một máy tính có để làm một cái gì đó toán học để gợi lên
ảo giác của số toán học, đôi khi sử dụng
hiện tại ngày của thời gian như một đầu vào để tìm ra những gì
số trở lại, nhưng nhiều hơn về thời gian khác.
Để bây giờ, chỉ biết rằng chúng ta có thể tạo ra ngẫu nhiên giả.
>> Vì vậy, một khi tôi có khả năng cho các mũi tên bên trái để bắt đầu
xuất hiện vào các thời điểm khác nhau và ở các tốc độ khác nhau, sau đó
Tôi có thể quay trở lại và thêm một số trong số này nếu có điều kiện.
NẾU sprite này được chạm vào một khác, và phím mũi tên trái
trọng điểm đã được ép -
do đó, ba điều kiện trong trường hợp đó.
Tôi có thể sử dụng và ngăn chặn có lẽ, trong trường hợp đó -
Sau đó, tôi muốn đi trước và tăng số điểm.
Và ở đầu trang, chúng tôi có một số điểm, chúng tôi có Awesome,
Cool, Tốt, Boo.
Vì vậy, có vẻ như năm biến mà sinh viên này
được sử dụng để theo dõi các số liệu khác nhau.
Vì vậy, trong ngắn hạn, kết quả cuối cùng là tuyệt vời.
Thật thú vị, nó là thú vị để chơi, nó hấp dẫn, nhưng điều này không phải là
nơi học sinh bắt đầu.
Anh ta hoặc cô bắt đầu tại một tập hợp nhỏ hơn nhiều bước.
>> Vì vậy, một số khối xây dựng khác mà chúng ta có thể là những gì
dệt vào các chương trình này?
Vâng, có khái niệm này trong hầu hết các ngôn ngữ khác,
Scratch trong số đó, được gọi là chủ đề.
Vì vậy, một máy tính có thể thực sự không thực sự làm nhiều điều tại một
thời gian, ít nhất là không thường.
Thay vào đó, một máy tính nói chung có chỉ là một CPU, và thậm chí cả
mặc dù máy tính siêu nhanh và có thể, do đó,
tạo ra ảo giác làm việc cùng một lúc -
kiểm tra mail của bạn, ngay lập tức
tin nhắn, in một tài liệu -
thực sự, một máy tính chỉ là nhảy từ in ấn để gửi tin nhắn nhanh
gửi email, trở lại và trở lại và quay trở lại và ra quá nhanh đến nỗi chúng tôi
con người chậm witted chỉ không nhận ra rằng nó thực sự
chạy các chương trình một chút tại một thời điểm.
Bây giờ, điều này một chút màu trắng nằm những ngày này bởi vì, hiện nay,
nhiều máy tính của chúng tôi là những gì được gọi là đa lõi, vì vậy bạn
có một CPU nhưng nhiều lõi, là loại giống như
có nhiều CPU.
>> Và do đó, đôi khi, máy tính có thể thực sự làm nhiều điều
tại một thời điểm, nhưng nói chung trong một chương trình, các chương trình
dựa vào những điều được gọi là chủ đề.
Vì vậy, một sợi là loại giống như một chương trình thu nhỏ có thể
tồn tại cùng với một chương trình khác thu nhỏ và có thể chạy
song song, hoặc ít nhất là có thể chạy theo ảo tưởng rằng
họ đang chạy đồng thời.
Vì vậy, Scratch hỗ trợ những điều được gọi là chủ đề.
Bạn có thể có các kịch bản thực hiện nhiều cùng một lúc, cũng như chúng ta
đã làm với sư tử biển, và điều này cho phép chúng ta thực sự
sau đó có sự tương tác giữa các sprites.
Hãy để tôi đi trước đây và kéo lên, hãy nói, chủ đề, và
chơi này như sau.
Chúng tôi có hai sprites, mỗi người trong số chúng ta sẽ thấy
có chỉ là một kịch bản.
Và bạn nhận thấy dường như có một số tình báo trong
con mèo trong một trong những điều này bởi vì ông nhận được gần hơn -
[Gầm rú]
DAVID Malan: - và gần gũi hơn với con chim nhỏ.
>> Vì vậy, làm thế nào là hoạt động con chim?
Vâng, chúng ta hãy có một cái nhìn con chim đầu tiên.
Các kịch bản gia cầm cho biết khi lá cờ màu xanh lá cây được nhấp, x
bằng âm 115 và y bằng 150.
Vì vậy, tôi chỉ cần tìm ra một vị trí ngẫu nhiên mà tôi muốn
chim để bắt đầu, và tôi chỉ ngồi phịch anh ta ở đó theo mặc định.
Sau đó mãi mãi nếu không chạm vào con mèo, do đó, điều này là khác nhau
loại cấu trúc vòng lặp, nhưng ý tưởng đó, làm điều này một lần nữa và
một lần nữa và một lần nữa.
Vì vậy, miễn là bạn không chạm vào con mèo, di chuyển ba bước, và
nếu bạn đang ở trên các thư bị trả lại, cạnh, nơi mà nó sắp xếp của một
phản ánh trong ý nghĩa bi-a.
Vậy đó là cách chim đang di chuyển xung quanh loại
dường như ngẫu nhiên, nhưng nó chỉ là bởi vì nó nảy ra khỏi
các bức tường trong trường hợp này.
>> Bây giờ, trong khi đó, con mèo là loại gian lận.
Con mèo, khi lá cờ màu xanh lá cây được nhấp, có, bắt đầu
một số vị trí, một vị trí ngẫu nhiên -
ít nhất là trong một phần theo các lựa chọn
khối ngẫu nhiên màu xanh lá cây -
và sau đó mãi mãi nếu chạm vào con chim, chơi âm thanh sư tử,
và sau đó dừng lại kịch bản.
Vì vậy, khi tôi nói chấm dứt, hoặc thoát khỏi trước khi, có một câu đố
phần trong Scratch sẽ chỉ diệt các chương trình ở đó
chỉ vì nó là loại một cách hợp lý thực hiện.
Nhưng nếu không, ở đây, thông báo những gì sẽ xảy ra.
Điểm đối với gia cầm và di chuyển một bước.
Vì vậy, thời điểm này đối với gia cầm là loại một lợi thế mèo
có homing trên con chim di chuyển, và chúng tôi có thể
bây giờ làm cho chương trình này tất cả các chi tiết thú vị.
Thay vì di chuyển một bước tại một thời gian cho mỗi chu kỳ CPU, mỗi
đánh số điện thoại của chiếc chuông, do đó, để nói chuyện, để cho tôi đi trước và
di chuyển, hãy nói, năm bước tại một thời điểm như con mèo.
Click chạy, và bây giờ ông thực sự thấy anh ta một cách nhanh chóng.
Nếu chúng ta tăng gấp đôi đến 10 bước, nó loại đi
ngay cho anh ta.
Bây giờ, chúng tôi có thể cung cấp cho con chim,
có lẽ, một chút của một lợi thế.
Hãy để cho con chim và nói rằng thay vì di chuyển ba bước,
hãy di chuyển anh ta 30 bước.
Tuy nhiên, ông vẫn bị bắt cuối cùng.
>> Vì vậy, ở đây, chúng tôi có hai chủ đề.
Bị giam giữ trong Scratch với hai kịch bản và hai
sprites, nhưng ý tưởng trong các ngôn ngữ khác là bạn có thể
viết, về cơ bản, quá nhiều chương trình như thế này và có
họ chạy thực sự, hoặc tưởng tượng, song song.
>> Bây giờ, cũng có khái niệm này trong chương trình được gọi là
các sự kiện, và điều này là một cái gì đó chúng ta sẽ không nhìn thấy trong C,
ngôn ngữ được gọi là C. Chúng tôi sẽ nhìn thấy nó vào cuối học kỳ
lập trình web, khi chúng tôi giới thiệu JavaScript và
khái niệm của các trang web xây dựng được năng động và tương tác
với người dùng.
Vì vậy, trong trường hợp này, chúng tôi có một ví dụ rất đơn giản của hai
sprites, cậu bé và cô gái, mỗi người trong số họ có tương ứng của họ.
đề tài, nhưng bằng cách nào đó hai là liên giao tiếp bằng cách
một cái gì đó gọi là sự kiện.
Vì vậy, hãy để tôi đi trước đây và phóng to trên kịch bản của cậu bé,
mà trông như thế này.
Khi lá cờ màu xanh lá cây nhấp, mãi mãi làm như sau.
Nếu không gian quan trọng, hoặc quán Space, được nhấn, nói
Marco cho hai giây, đó là hoàn toàn thẩm mỹ trên
màn hình, một bài phát biểu bong bóng một chút, nhưng sau đó phát sóng.
>> Vì vậy, quảng bá là một mảnh Scratch đó là
đại diện của một lớp học của các chức năng trong lập trình
cho phép các chương trình khác nhau, chủ đề khác nhau,
liên giao tiếp, bằng cách nào đó gửi
tin nhắn, một đến khác.
Đi qua một mảnh giấy trong lớp là loại công nghệ thấp
tương đương.
Vì vậy, phát sóng sự kiện.
Tôi có thể gửi thông báo này, và sự kiện này từ
là hoàn toàn tùy ý.
Scratch đôi khi có những thăng trầm thả, do đó, tôi chỉ đến
với một từ ngẫu nhiên như sự kiện bởi vì bây giờ, những gì cậu bé không
khi tôi nhấn chính là chương trình phát sóng sự kiện này.
Và nếu tôi nhìn tại kịch bản của cô gái, kịch bản của cô
siêu đơn giản bởi vì tất cả những gì cô cần làm là không hành động khi
lá cờ màu xanh lá cây được nhấp.
Cô được thiết kế để hành động khi cô nhận được báo giá, unquote,
"Sự kiện", và lúc đó, cô ấy là lắng nghe do đó cho
sự kiện để được gọi là một lần nữa và một lần nữa.
Ngay khi cô nhận được sự kiện đó, cô ấy sẽ hét thật to
Polo cho hai giây.
>> Và như vậy bạn có lẽ có thể suy ra từ này chính xác những gì
tiếp theo kết quả là có được.
Hãy để tôi nhấp vào lá cờ màu xanh lá cây.
Không có gì xảy ra bởi vì tôi cần phải làm những gì?
Khán giả: Space Bar.
DAVID Malan: Space Bar.
Boy Marco, cô gái Polo.
Nhưng đó không phải là cứng mã hoá cho mỗi gia nhập.
Đó là liên thông tin liên lạc giữa các kịch bản, vì vậy bây giờ chúng tôi
có khả năng thực hiện các chương trình thậm chí còn phức tạp hơn
hai là bằng cách nào đó liên giao tiếp.
>> Vì vậy, những gì hướng dẫn, chúng ta có thể thực hiện việc này?
Vâng, vấn đề trong thiết lập 0, thực sự, mục tiêu là để
vui chơi với Scratch.
Cho phiên bản hacker, thay vào đó bạn sẽ có niềm vui với một
phiên bản tinh vi gọi là Scratch BYOB, Xây dựng
Blocks riêng của bạn, nhưng ý tưởng là như nhau.
Bạn sẽ có thể -
Vâng, đó là có chủ ý.
Nó đến từ Berkeley.
BYOB là phiên bản của hacker phiên bản này, nhưng cả hai
nhân khẩu học, bản tiêu chuẩn và phiên bản của hacker như nhau,
mục tiêu ở tay cho tuần tới thực sự là chỉ để nhảy vào
sâu, có được bàn tay của bạn bẩn với lập trình, và làm cho
một cái gì đó thú vị, làm cho một cái gì đó tương tác,
một cái gì đó nghệ thuật, làm cho niềm vui một cái gì đó để thực sự
chứng minh, để đến cuối tuần, bạn sẽ có một dự án,
không chỉ cho pset CS50 1, nhưng bạn sẽ có một
ít cái gì mà bạn có thể hiển thị trong Annenberg
bạn bè hay gia đình thậm chí bằng cách tải lên trang web của MIT.
Và như tôi đã nói hôm thứ tư, chúng tôi hy vọng 90% của lớp,
nói chung, để làm các phiên bản tiêu chuẩn.
Nhận ra rằng cũng có lối thoát cho những người bạn của những người
nếu không có thể tìm cho mình một chút chán với những điều cơ bản
và thực sự muốn nhảy vào và phác thảo một tầm nhìn bạn đã
có với nền trước trong này thân thiện hơn
môi trường.
>> Vì vậy, hãy để tôi kéo lên một ví dụ khác là một trong những cũ của chúng tôi
sinh viên ở đây đã làm và nói một chút gì đó thông qua bài hát.
Điều đó tương tự như vậy, khi lượt này, suy nghĩ về cách bạn đi về
triển khai thực hiện chương trình này bằng cách sử dụng chính xác những
xây dựng các khối, một chút ngẫu nhiên giả, và một
bit của bài hát quen thuộc.
Nếu chúng ta có thể nâng cao khối lượng chỉ là một chút?
[MUSIC - "trời mưa MEN" THE GIRLS DỰ BÁO THỜI TIẾT]
>> DAVID Malan: Đó là nó cho CS50.
Chúng ta sẽ thấy bạn vào thứ hai.
[Vỗ tay]