>> [เสียงเพลง]
>> นี่คือ CS50-- ฮาร์วาร์ แนะนำมหาวิทยาลัย
กับทางปัญญา ผู้ประกอบการของวิทยาศาสตร์คอมพิวเตอร์
และศิลปะของการเขียนโปรแกรม
และชื่อของฉันคือดาวิดลันและ ผมคิดว่าเช้าวันนี้
จะได้รับที่น่าอัศจรรย์ใจ 20 ปีในวันนี้ ตั้งแต่ฉันสุดท้ายนั่งที่พวกคุณทำตอนนี้
>> มันเป็น 1996
ผมเป็นนักเรียนปีที่สองและผมกำลัง CS50 เป็นครั้งแรกมาก
และผมไม่ได้อากาศได้ถึงเส้นประสาท ที่จะใช้มันเองน้องปี
ส่วนหนึ่งเป็นเพราะเวลา
วิทยาการคอมพิวเตอร์ให้ฉัน เป็นชนิดของชอบ Meh
ฉันเป็นบิตของ geek เติบโต แต่ฉันไม่ได้จริงๆ
มีทางปัญญาใด ๆ สนใจในสิ่งที่ปรากฏ
เพียงแค่จะทั้งกลุ่ม คนเขียนโปรแกรมตลอดเวลา
>> และฉันก็กลัวที่จะซื่อสัตย์
หลักสูตรวิทยาการคอมพิวเตอร์และอื่น ๆ อีกมากมาย มักจะได้รับและมีขอบเขต
ยังคงมีชื่อเสียงของสนามนี้ ระวังถ้าเพียงเพราะเราหลายคน
ไม่คุ้นเคยกับมันและไม่แน่ใจว่ามัน
และมันจริงๆมันไม่ได้จนกว่าฉันจะซื้อ ชั้นนี้ว่าปี fall--
และได้แล้วผมลงทะเบียนเท่านั้น เพราะ professor--
หนึ่งในที่ปรึกษาครั้งแรกของฉัน, ไบรอัน Kernighan ในขณะนี้ที่ Princeton--
ให้ผมใช้ผ่านระดับล้มเหลว
และแน่นอนว่าทำไม วันนี้เราอนุญาตและให้กำลังใจ
นักเรียนที่จะเรียนนี้ SAT / unsat
>> และเพียงแล้วโดย สิ้นสุดภาคการศึกษา
ฉันไม่ตระหนักถึงความเหมือนวานนี้ ไม่ได้เช่นสนามที่ไม่คุ้นเคย
อันที่จริงเรื่องนี้เป็น เพิ่มขีดความสามารถมากฟิลด์
และอื่น ๆ อีกโลดโผน โดยเฉพาะอย่างยิ่งในภายหลัง
ขณะที่ผมเอาหลักสูตรใน นาฏศิลป 101 และละติน
และแล้วในที่สุด โบราณคดีโรงเรียนที่จบ,
ฉันไม่จริงๆเริ่มที่จะเห็น ทางแยกของสนามนี้คอมพิวเตอร์
วิทยาศาสตร์กับมนุษยศาสตร์ วิทยาศาสตร์ธรรมชาติศิลปะ, ยา,
และไม่ชอบ
และนั่นคือสิ่งที่เป็นเพียงเพื่อให้ ระเบียบเกี่ยวกับวิทยาการคอมพิวเตอร์
ท้ายที่สุดเท่าที่เราหวังว่าคุณจะ see-- คือการบังคับใช้
ไปยังเขตอื่น ๆ เหล่านี้และวิธีที่คุณสามารถทำได้ ใช้เวลาบางส่วนของวันนี้และภาคการศึกษาของ
ความคิดและทักษะการปฏิบัติ กลับไปยังโดเมนของคุณเอง
และจริงสำรวจทางแยก ศิลปศาสตร์และวิทยาศาสตร์
>> ดังนั้น 73% ของคุณถ้าสุดท้าย ปีบ่งชี้ใด ๆ
ไม่เคยนำหลักสูตร CS ก่อน
ดังนั้นถ้าเช่นฉันคุณเป็น ความรู้สึกนิด ๆ หน่อย ๆ
กลัวหรือตรงไปตรงมาคุณไม่ได้ แน่ใจจริงๆว่าทำไมคุณถึงแม้ที่นี่
บางทีคุณอาจจะเป็นเพียงบางส่วนตาม เพื่อนไปยังแซนเดอในขณะนี้
ที่ดีทั้งหมด
เป้าหมายที่นี่คือการขอ คุณและเพื่อสร้างความมั่นใจให้คุณ
ว่าถ้าคุณมองไปที่ ด้านซ้ายและด้านขวา
คุณกำลังจะไปดูกับเพื่อนร่วมชั้น เป็นประสบการณ์น้อยหรือมาก
ที่คุณเองอาจจะมี
และแน่นอนเราจะร่วมกัน สถิติบางอย่างในวันนี้ภายหลัง
เป็นสิ่งที่ประชากรของ ระดับมักจะมีลักษณะเหมือน
>> และในขณะที่เพิ่ม reassurance-- และเรานี้ หมายความว่าตั้งแต่ผมเข้ามาแน่นอน
บางปี ago-- ใน รายวิชาที่
เป็น this-- ว่าสิ่งที่ท้ายที่สุด เรื่องในหลักสูตรนี้
เป็นไม่มากที่คุณจะจบ ขึ้นเมื่อเทียบกับเพื่อนร่วมชั้นของคุณ
แต่ที่คุณในสัปดาห์ที่ 11 ท้ายของ ภาคการศึกษาที่จบลงเมื่อเทียบกับตัวเอง
ในสัปดาห์ที่ 0 ซึ่งเป็น ที่เราอยู่ที่นี่ในวันนี้
และนี่คือสิ่งที่ฉันตระหนัก ทุกปีที่ผ่านมา
และฉันรู้ว่าจำนวนมาก เรียนพูดแบบนี้ แต่มันก็เป็น
โดยเฉพาะอย่างยิ่งในด้านวิทยาศาสตร์คอมพิวเตอร์
ในตอนท้ายของวันที่ข้อมูลนี้ ไม่คุ้นเคยเพราะมันเป็นอะไรกับผม
และอาจจะมีการที่คุณเป็นจริง เพียงเกี่ยวกับการแก้ปัญหา
และเป็นเช่นนี้ก็ไม่ได้นี้ การบังคับใช้จะได้รับสาขาอื่น ๆ
และในความเป็นจริงถ้าเราพยายาม ที่จะสกัดสิ่งนี้หมายความว่า
นี้คือการแก้ปัญหา ในสาระสำคัญของผม daresay
มี input-- ดังนั้นสิ่งที่มัน คือการที่คุณกำลังพยายามที่จะแก้ปัญหา
มีการส่งออกซึ่งเป็นความหวัง วิธีการแก้ปัญหาที่
แล้วที่เราจะ กล่าวว่าในวิทยาการคอมพิวเตอร์
มีกล่องสีดำนี้ใน กลางที่คุณไม่จำเป็นต้อง
มีการดูแลเกี่ยวกับวิธีการทำงาน
ตัวคุณที่สุดอาจ ใช้สิ่งที่อยู่ภายในกล่อง
แต่สำหรับวัตถุประสงค์ของว​​ันนี้และอื่น ๆ โดยทั่วไปในชีวิตทั้งหมดที่คุณดูแลเกี่ยวกับ
คือว่าปัญหาเหล​​่านี้ได้รับการแก้ไข
>> และสิ่งที่หลักสูตรนี้เป็น ท้ายที่สุดคือการสำรวจเกี่ยวกับ
จุดตัดของ ปัจจัยการผลิตเหล่านี้และเอาท์พุท
และเหล่านี้เรียกว่า ขั้นตอนวิธีการที่เราจะเห็นทันที
ที่ใช้สิ่งที่มีอยู่ ใต้มีเครื่องดูดควัน
แต่ปัจจัยการผลิตเหล่านี้และเหล่า outputs-- สิ่งที่ไม่จริงหมายถึงอะไร
ดีในตอนท้ายของวันที่เราต้อง วิธีการเป็นตัวแทนของข้อมูลบางอย่าง
นี่คือความจริงโดยเฉพาะอย่างยิ่งในเครื่องคอมพิวเตอร์ ซึ่งเป็นแฟนซีและซับซ้อนเท่าที่มัน
อาจจะดูเหมือนเป็นอุปกรณ์ใบ้สวย
มันต้องใช้เวลา electricity-- ไม่ว่าจะจาก สายเคเบิลหรือแบตเตอรี่ input--
และจากนั้นก็ผลิตบางส่วน การตอบสนอง preprogramed บนหน้าจอ
>> แต่วิธีการที่เราจะได้รับจาก ต้นจนจบมี?
ดีสิ่งที่เป็นปัญหาที่จะแก้ไข?
ดีบางทีเราอาจที่ จุดเริ่มต้นของภาคการศึกษาใด ๆ
พยายามที่จะเข้าร่วมประชุม ในห้องพักเช่นนี้
ดังนั้นผมอาจจะทำเหมือนหนึ่งสองสาม
หรือบางทีถ้าฉันไม่ได้ การเรียงลำดับของการติดตาม
ของ myself-- เพื่อติดตาม things-- ฉันได้อย่างรวดเร็วสามารถวิ่งออกมาจากนิ้วมือ
ดังนั้นฉันก็อาจจะทำให้กัญชา marks-- หนึ่ง คนที่สองสามสี่ห้าหก
เจ็ดแปด
และเราทุกคนอาจ การกระทำเช่นนี้ไม่ว่าจะเป็นในมือของคุณ
หรือชิ้นส่วนของกระดาษ
และนี้เป็นจริงเพียง สิ่งที่เรียกว่า notation-- เอก
ซึ่งถ้าคุณมีเพียงหนึ่งตัวอักษร ในตัวอักษรหนึ่งหรือกัญชาของคุณ
เครื่องหมายในกรณีนี้สำหรับทุก การป้อนข้อมูลที่คุณต้องการที่จะนับ
คุณจะต้องใส่ลงหนึ่งของเหล่านี้ letters-- หนึ่งของเครื่องหมายเหล่านี้
>> ก็ดี
นั่นคือทั้งหมดที่ดีและดีและ ไม่ได้ทั้งหมดที่มีความซับซ้อน
แต่คอมพิวเตอร์ไม่ทั้งหมด ที่ซับซ้อนมากขึ้น
อันที่จริงส่วนใหญ่ของคุณอาจจะ รู้ว่าแม้ว่าคุณจะไม่ได้จริงๆ
ถือว่าเป็นสิ่งที่นี้หมายความว่า คอมพิวเตอร์เพียงเข้าใจศูนย์
และ ones-- ที่เรียกว่าระบบเลขฐานสอง
มนุษย์เราโดยคมชัดจึง ความซับซ้อนมากขึ้นตราบเท่า
ที่เราเข้าใจผ่านศูนย์เก้า
>> แต่ถึงแม้ว่าไบนารีคือในตอนแรก ได้อย่างรวดเร็ว, ไม่ได้ทั้งหมดที่คุ้นเคย
มันจะเปิดออกก็เช่นเดียวกับระบบ และความคิดที่ว่าเรารู้อยู่แล้วว่า
ดังนั้นสำหรับตัวอย่างเช่นพิจารณานี้
นี่เป็นเพียงลำดับของสัญลักษณ์
และทุกท่านเมื่อ วินาศภัยที่มันอาจจะ
คิดว่าไม่มีอะไร 123-- มีที่น่าสนใจจริงๆ
แต่ทำไมมันเป็นจำนวนนี้ 123?
เหล่านี้เป็นเพียงร่ายมนตร์บน screen-- เพียงแค่รูปแบบ
ที่บางคนอาจจะได้วาดหรือพิมพ์
แต่ถ้าคุณต้องการฉันคุณ อาจจะจำได้จากโรงเรียนประถมศึกษา
ว่ามีการเรียงลำดับของ คอลัมน์หรือสถานที่ที่นี่
มีสถานที่หนึ่งของและเป็น สถานที่สิบและสถานที่ที่ร้อย
และเหตุผลที่ว่านี้คือ 123 และ ไม่ได้เป็นเพียงรูปแบบของสามสัญลักษณ์
เป็นเพราะแน่นอนถ้าเรา มีหนึ่งในสถานที่หลายร้อย,
คุณทำคณิตศาสตร์ 100 ครั้งหนึ่ง แล้วสถานที่ที่สองในสิบของ
ดังนั้นที่ 10 ครั้งที่ 2 และสาม สถานที่หนึ่งของและที่ 1 ครั้งที่ 3
และเมื่อคุณเพิ่มทั้งหมดของผู้ที่ขึ้นของ แน่นอนว่าคุณจะได้รับ 100 บวก 20 บวก 3
>> ดังนั้นเราจึงเริ่มมีเพียงรูปแบบ ของ symbols-- alphabet--
แต่แล้วเราแมปความหมายบน มันโดยวิธีการของคอลัมน์เหล่านี้
ดีก็ปรากฎว่า คอมพิวเตอร์มันไม่
ทุกสิ่งที่แตกต่างจากคุณและฉัน
แต่แทนที่จะใช้อำนาจของ 10 เพื่อที่จะ speak-- 1, 10, 100, 1,000,
10,000 สถานที่และอื่น ๆ forth-- พวกเขาจริง
เพียงแค่ใช้อำนาจของ 2-- ดังนั้นหนึ่ง, 2, 4 และจากนั้น
ถ้าเราใส่ตัวเลขมากขึ้น, 8, 16, 32, 64, 128, และอื่น ๆ
ดังนั้นนี้เป็นวิธีที่คอมพิวเตอร์ จะเป็นตัวแทนของจำนวน 0,
เช่นเดียวกับมนุษย์เรา
>> 0, 0, 0-- และคุณอาจจะสามารถคาดเดา สิ่งที่รูปแบบของศูนย์และคน,
ถ้าคอมพิวเตอร์สามารถเท่านั้น พูด 0 หรือสิ่งที่ 1-
รูปแบบที่เป็นไปได้ที่จะเป็นตัวแทน จำนวนมนุษย์เรารู้ว่าเป็น 1?
Yeah-- 0, 0, 1
ก็ดี
ดังนั้น 0, 0, 1 เป็นวิธีการที่เราเป็นตัวแทน 1 ดังนั้นคุณอาจจะมีแนวโน้มที่แล้ว
เพื่อเป็นตัวแทนของหมายเลข 2 ถ้าคุณมี สถานที่ที่สี่และสถานที่ที่สอง
เป็นสถานที่หนึ่งที่คุณอาจจะบอกว่าดี ถ้าเรามี 1 ในสถานที่หนึ่งของ
และตอนนี้เราต้องการที่จะ นับถึง 2 คุณอาจ
ทำเช่นนี้และออกจากนี้ไปจะเป็นศูนย์
แต่หลักสูตรนี้ไม่ได้เป็นวิธี ระบบทศนิยมทำงานอย่างใดอย่างหนึ่ง
ถ้าคุณใส่ในหลัก ทั้งสองคอลัมน์เหล่านั้น
คุณได้มีการทำเลขคณิต
ดังนั้นสิ่งที่จำนวนไม่ฉัน ตั้งใจเพียงแค่แทน?
>> ดังนั้นจึงเป็นที่ 3 เพราะ 2 ครั้งที่ 1 บวก 1 ครั้งที่ 1 ของหลักสูตรที่จะช่วยให้เราสาม
ดังนั้นนี้จะเป็นสอง
บิตเรียงลำดับของการพลิกเพื่อที่จะพูดเป็น 0 กลายเป็นหนึ่งเหมือนบทบาทมากกว่า 9
และกลายเป็น 0 เมื่อคุณพกพา 1
นี้ก็จะสามของหลักสูตร
Four-- อีกสิ่งที่น่าสนใจ เกิดขึ้นที่คนเกลือกกลิ้ง
และคุณดำเนินการ 1 เพื่อที่จะพูด
ดังนั้นนี้แน่นอนเป็น 4
>> แต่ถ้าคุณไปข้างหน้าอย่างรวดเร็วในขณะนี้ สิ่งที่หมายเลขที่ใหญ่ที่สุดไป
เป็นไปได้ว่าคอมพิวเตอร์สามารถแทน?
ดังนั้นจึงเป็นเพียงเจ็ดในกรณีนี้ใช่มั้ย?
เพราะคุณมีหนึ่งในสี่, หนึ่งในสองเป็นหนึ่งในหนึ่ง
ดังนั้นที่ 4 บวก 2 บวก 1
เพื่อที่จะช่วยให้คุณเจ็ด
และแน่นอนว่ามันจะ ดูเหมือนได้อย่างรวดเร็วก่อน
ว่าคอมพิวเตอร์สามารถนับ ไม่สูงกว่านี้
>> แต่ของหลักสูตรนี้ไม่เป็นความจริง
สิ่งใดที่มนุษย์เราจะทำอย่างไรเมื่อเราต้องการ การนับสูงกว่าเช่น 999?
เพียงแค่ดำเนินการอย่างหนึ่งและเพียงแค่ เพิ่มหลักที่สี่ไปทางซ้าย
และเพื่อที่เราจะทำได้แน่นอน
เราอาจมีแปด วางและสถานที่ของ 16
และสถานที่ที่ 32, 64, และคุณ 128-- ก็สามารถเก็บไปได้ถึงอินฟินิตี้
ดังนั้นศูนย์เหล่านี้และ ones-- ที่เรียกว่า system-- ไบนารี
เป็นสิ่งที่นักวิทยาศาสตร์คอมพิวเตอร์จะ โดยทั่วไปเรียกบิตหรือเลขฐานสอง
>> แต่ตอนนี้ทำอย่างไรเราจะได้รับจาก แนวคิดหรือกราฟิกของสิ่งเหล่านี้
ไปยังคอมพิวเตอร์ที่เกิดขึ้นจริง?
เราดูเหมือนจะข้ามขั้นตอนที่นี่
ดีป้อนข้อมูลเพียงในตอนท้าย ของวันที่แล็ปท็อปของฉันที่นี่
การไหลของกระแสไฟฟ้านี้
แม้ว่าจะได้รับเป็นเวลานาน เวลาตั้งแต่ที่คุณคิดเกี่ยวกับ
หรือไม่เคยคิดเกี่ยวกับ วิธีการไฟฟ้าทำงาน
มีอิเล็กตรอนไหลในหรือ ออกมาและที่เป็นชนิดของการป้อนข้อมูลของฉัน
>> ดังนั้นถ้านั่นคือทั้งหมดที่เรา ได้รับเป็นข้อมูลที่นี่
สิ่งที่เราสามารถทำอะไรกับข้อมูลที่?
ดีเราอาจคิดว่าเป็นศูนย์ เป็นเพียงกรณีที่ไม่มีไฟฟ้า
ไม่มีอะไรที่เป็น flowinw ไม่มีอะไร ย้ายไม่มีอะไรเกิดขึ้น
นั่นเป็นเพียงการเริ่มต้นศูนย์ state--
แต่ถ้ามีไฟฟ้าไหลทำไม เราไม่เพียงโดยพลการ แต่ทั่วโลก
อย่างต่อเนื่องเรียกว่าหนึ่ง
>> ดังนั้นเพียงโดยมีไม่มีอำนาจ เรามีศูนย์ใช่อำนาจ
เรามี one-- ไม่มีอำนาจใช่อำนาจ
และในทางที่ใช้บางสิ่งบางอย่าง กายมากขึ้นหรืออิเล็กทรอนิกส์
เราจะเริ่มต้นที่จะใช้ความคิดนี้ บางสิ่งบางอย่างอย่างใดอย่างหนึ่งหรือเป็นศูนย์
อันที่จริงเราก็จะทำมันมากกว่าที่นี่
ดังนั้นที่นี่ฉันไม่สาม แต่ แปดหลอดไฟซึ่งแต่ละ
มีสวิทช์ของตัวเอง
>> ดังนั้นถ้าผมต้องการที่จะเป็นตัวแทน จำนวนเจ็ดนี่
ผมอาจจะเปิดทั้งสามหลอดไฟ
และแน่นอนภายในของ คอมพิวเตอร์ของฉันเป็นล้าน
พันล้านของสิ่งที่เป็นเพียง มีขนาดเล็กกว่าที่เรียกว่าทรานซิสเตอร์
สวิทช์ที่คุณเพิ่งเปิดและปิด
ดังนั้นเหล่านี้เป็น big-- ค่อนข้าง สวิทช์ big-- ภายใน laptop-- ของฉัน
เป็นจำนวนมากหลายหลาย สวิทช์อื่น ๆ อีกมากมาย
แต่สิ่งที่พวกเขาทำคือว่าในปัจจุบันผู้ เปิดบางสิ่งบางอย่างเกี่ยวกับการเปิดปิดบางสิ่งบางอย่าง
และเป็นเช่นคอมพิวเตอร์สามารถเป็นตัวแทน กับผู้คนนับล้านหรือพันล้าน
ของทรานซิสเตอร์จำนวนมากและ จำนวนของศูนย์และคน
และมีฮาร์ดแวร์อื่น ๆ ยังคงที่ ช่วยให้คุณเก็บข้อมูลระยะยาว
เพื่อที่ว่าเมื่อคุณดึง เสียบ, คุณไม่ได้สูญเสียมันไป
แต่ที่เรื่องสำหรับวันอื่น
>> ดังนั้นสิ่งที่เราสามารถทำอะไรกับบิตเหล่านี้หรือไม่
เราก็อาจจะใช้ ดันออกจาก me--
บางคนอาจจะต้องการที่จะมา ขึ้นที่นี่และมีขึ้นสาธิต?
ผมเห็นมือนี้เป็นครั้งแรก
คุณชื่ออะไร?
Maday: Maday
DAVID ลัน: Maday มาขึ้น
ยินดีที่ได้พบคุณ.
Maday: ยินดีที่ได้พบคุณ
>> DAVID ลัน: มาทางนี้
ฉันจะไม่ต้องริมฝีปากคุณขึ้น
ก็ดี
ดังนั้นที่นี่เรามี notice-- หนึ่ง two-- เราจะแก้ไขที่ out-- หนึ่งสองสี่
แปด, 16, 32, 64, 128
นี่คือเจตนา
มีแปดบิตเป็น here-- ศูนย์ digits-- ไบนารีและคน
และบิตเป็นหน่วยงานของ measure-- ไม่เป็นประโยชน์หน่วยของการวัด
ลงบนตัวของมันเอง
โดยปกติแล้วคุณต้องการอย่างน้อย แปดสิ่งเหล่านี้หรือที่เรียกว่า
ไบต์
ดังนั้นเราจึงมีไบต์ของบิตที่นี่
>> ดังนั้นถ้าเราต้องการที่จะท้าทายคุณด้วย เช่นสะกดออกในไบนารี
ค่านี้ here-- 42
ต้องการที่จะใช้แทงที่ว่า?
>> Maday: [ไม่ได้ยิน]
DAVID ลัน: ใช่เพียงแค่ผลักดัน สวิทช์สีขาวเล็ก ๆ น้อย ๆ ในด้านหน้า
และคุณต้องการที่จะสะกด ออก 42 และขึ้นสำหรับการคว้า
ความเครียด CS50 นี้ ลูกถ้าคุณได้รับนี้
ก็ดี
เพื่อให้คุณมี 32
เรากำลังจะต้อง 42
ดังนั้นที่แปดดังนั้นที่ 40
และทำอย่าง excellent-- มาก
ขอขอบคุณ.
>> [APPLAUSE]
ก็ดี
ดังนั้นเราจึงมีความเครียดมากขึ้นลูกหนึ่ง
ลองทำเช่นนี้อีกครั้ง แต่ถ้าเราจะ
หนึ่งในอาสาสมัครอื่น ๆ ?
ลูกความเครียดฟรีลูกความเครียดฟรี
ตกลง.
มากกว่าที่นี่อยู่ตรงกลาง คุณต้องการที่จะลงมา?
ก็ดี
ฉันรู้ว่า.
เราจะไปที่นั่น.
>> ดังนั้นตัวเลข here-- มาลง
คุณชื่ออะไร?
>> DAVEY: ดาวี่
>> DAVID ลัน: ดาวี่
ตกลง.
มาถึงดาวี่
ยินดีที่ได้พบคุณ.
และสิ่งที่เรากำลังจะมีคุณ spell-- ถ้าคุณสามารถมีอิทธิพล
เพียงหนึ่ง moment-- เป็นจำนวน 50
แต่ แต่ แต่ แต่ แต่เหล่านี้เป็น แม่เหล็กโรงเรียนเกรดเหตุผล
เพียงแค่มีเพียงเล็กน้อยยากทั้งหมดใช่มั้ย?
ยังคงมีแปด
ก็ดี
ดังนั้นสิ่งที่เรามีอยู่ที่นั่น?
เรามี 32
ดี
32 บวก 16 จะช่วยให้เรา 48-- เพื่อให้ใกล้เคียง
และที่ยอดเยี่ยม
ขอแสดงความยินดีดาวี่เช่นกัน
>> [APPLAUSE]
>> ก็ดี
ดังนั้นเราจึงสามารถทำเช่นนี้ได้นานตลอดวันและ จะไม่ได้รับทุกสิ่งที่มากขึ้น
ที่น่าสนใจและท้าทายมากขึ้น
แต่ที่จริง point-- เป็นวิธีการที่ค่อนข้างง่าย
มันเป็นในตอนท้ายของวันที่สิ่งที่ คอมพิวเตอร์ไม่ในการจัดเก็บข้อมูล
ในการจัดเก็บปัจจัยการผลิตและในท้ายที่สุด เก็บหรือเป็นตัวแทนของผู้ที่เอาท์พุท
แต่ตัวเลขเพียงอย่างเดียวไม่ได้ ทุกสิ่งที่น่าสนใจ
>> ดังนั้นมนุษย์บางปีที่ผ่านมา ตัดสินใจที่คุณรู้อะไรไหม
มันคงจะดีถ้า คอมพิวเตอร์ไม่ใช่แค่
เครื่องคิดเลขสำหรับการคำนวณที่ การดำเนินงาน แต่จริงอาจ
ทำสิ่งที่ต้องการการประมวลผลคำหรือ อีเมลหรือสาขาที่ทันสมัย​​มากขึ้น
เหล่านี้ชนิดของเทคโนโลยี
และเพื่อให้โลกตัดสินใจ โดยพลการ แต่อย่างกว้างขวาง
ว่าถ้าคุณต้องการที่จะเก็บเงินทุน ตัวอักษร A ในคอมพิวเตอร์คุณรู้อะไรไหม
ขอเพียงทุกคนยอมรับในการจัดเก็บ รูปแบบของศูนย์และ ones-- บาง
bits-- ว่าในท้ายที่สุด หมายถึงจำนวนทศนิยม 65
เราจะเป็นเพียงแค่ทั้งหมดเห็นด้วยกับที่
>> 66 จะเป็นตัวแทน B, 67 จะเป็นตัวแทนของ C,
และมีรูปแบบที่อัดแน่นของอื่น ๆ ของ ศูนย์และคนหรือหมายเลขอ้างอิง
ที่จะเป็นตัวแทนของ ตัวอักษรอื่น ๆ ยังคง
ดังนั้นหากคุณชนิดของจิตใจ ดูดซับนี้สักครู่
ฉันจงใจนำขึ้นผ่าน ฉันที่ H 72 และฉันคือ 73
หากคอมพิวเตอร์จากนั้นในบริบทของ โปรแกรมประมวลผลคำหรือ e-mail,
เปิดเผยภายใต้เครื่องดูดควันที่จะมีการ รูปแบบเหล่านี้ของแบบแผน bits--
เป็นตัวแทนของบิต 72 แล้ว 73 แล้ว 33--
สิ่งนี้อาจสะกดในโปรแกรมที่?
>> ดังนั้นสวัสดีและแล้วสิ่งที่
เราไม่จำเป็นต้องรู้ แต่แน่นอน 33-- ไม่ได้อยู่ในแผนภูมิ earlier--
เป็นเพียงเครื่องหมายอัศเจรีย์
ดังนั้น 72 H, 73 คือผม 33 ที่เกิดขึ้น จะเป็นเครื่องหมายอัศเจรีย์ยังคง
แต่นั่นคือทั้งหมดที่ดีและดี และในความเป็นจริงในปัจจุบันมากกว่า
เพียงแค่ใช้เจ็ดหรือแปด บิตขอบคุณบางสิ่งบางอย่าง
เรียกว่าเมื่อเทียบกับ Unicode เพื่อ ASCII กลับในวันที่
เราสามารถเป็นตัวแทนของจริงมากยิ่งขึ้น ตัวละครที่น่าสนใจมากกว่าเพียงแค่
ต้นฉบับตัวอักษรภาษาอังกฤษเหล่านี้ลำเอียง
แต่เราก็ยังสามารถเป็นตัวแทนของแม้กระทั่ง สิ่ง neater เช่นสี
>> หากคุณเคยได้ยินคำย่อ RGB, สีแดง, สีเขียว, สีฟ้า, ว่า
ก็หมายความว่าคอมพิวเตอร์ มักจะใช้สามชุด bits--
จำนวนบิตบางอย่างที่เป็นตัวแทนของ จำนวนเท่าใดสีแดงที่คุณต้องการ
อีกชุดหนึ่งของบิตสำหรับ เท่าใดสีเขียวที่คุณต้องการ
และอีกจำนวนชุดสำหรับ วิธีการสีฟ้าที่คุณต้องการ
ดังนั้นจำนวนมากหมายความว่าจำนวนมาก สีแดงเล็ก ๆ จำนวนมากหมายความว่าไม่มีสีแดง
และอื่น ๆ เหล่านี้เป็นชนิด ค่ากลางที่นี่
>> ดังนั้นให้ฉันแดงบางส่วนให้ฉันบาง สีเขียวและให้ฉันนิด ๆ หน่อย ๆ สีฟ้า
และถ้าคุณผสมทั้งสามเฉดสี สีร่วมกันในกรณีนี้
คุณจะได้รับร่มเงามืดนี้ สีเหลืองหรือสีน้ำตาล
แต่รูปแบบของแปดบวก แปดบวก eight-- ดังนั้น 24 bits--
จากซ้ายไปขวาคือวิธีที่คอมพิวเตอร์ จะเป็นตัวแทนของสีที่เฉพาะเจาะจง
ตอนนี้เป็นเพียงจุดบนหน้าจอ
ถ้าคุณมองอย่างใกล้ชิดจริงๆที่ทีวีของคุณ คอมพิวเตอร์ของคุณจะเห็นจุดหรือพิกเซล
และถ้าคุณมีตารางทั้งหมดของ พิกเซลในแนวนอนและแนวตั้ง
คุณมีภาพ
แล้วถ้าคุณใช้ ภาพและแล้วล้าง
แสดงตัวเองภาพอื่นอีก ภาพภาพอีกภาพอีกแบบหนึ่ง
ได้อย่างรวดเร็วจริงๆคุณแน่นอนมีภาพยนตร์
>> และเพื่อให้ทราบที่เราเริ่มต้น
เราเริ่มต้นด้วยศูนย์เหล่านี้และคน
เราทำงานจากที่นั่นไปทศนิยม ตัวเลขวิธีการที่เราเป็นตัวแทนของพวกเขา
ตอนนี้เรามีตัวอักษรของตัวอักษร
แต่ในบริบทอื่น ๆ รอเราสามารถใช้ ไม่กี่บิตมากขึ้นและสีแทน
ทันทีที่คุณมี ความสามารถในการแสดงสี,
คุณมีความสามารถที่จะเป็นตัวแทน ภาพถ่ายและภาพเคลื่อนไหว GIF
และตัวละครอื่น ๆ บนหน้าจอ
และเมื่อคุณมีทั้งกลุ่มของ ภาพการบินที่บินโดยมนุษย์ในครั้งเดียว
ดูเหมือนว่าภาพเคลื่อนไหว และเพื่อให้คุณได้รับวิดีโอเช่นกัน
>> ดังนั้นการใช้เหล่านี้มาก วิทยาการง่ายทำเรา
มีวิธีการที่เป็นตัวแทนของ ท้ายที่สุดทุกรูปแบบของสื่อเหล่านี้
และเราได้แยกอีกครั้ง และอีกครั้งและอีกครั้งจนกว่าเรา
ได้รับจากระดับต่ำสุด ให้อยู่ในระดับสูงสุดนี้
เพื่อที่จะช่วยให้เรานี้ ความคิดทั่วไปของสิ่งที่เป็นนามธรรม
แต่เราเริ่มต้นที่นี่
>> ที่นี่ตอนนี้เราอาจจะ เป็นตัวแทนในคอมพิวเตอร์
ปัจจัยการผลิตของเรามีศูนย์และคน, เอาท์พุทของเราในศูนย์และคน,
แต่สิ่งที่จะไปภายในกล่อง?
นั่นคือสิ่งที่คอมพิวเตอร์ วิทยาศาสตร์ได้รับน่าสนใจ
นั่นคือสิ่งที่คุณนำมาจริงของคุณ จิตใจของตัวเองที่จะแบกรับในการแก้ปัญหา
ตอนนี้เราสามารถกำหนดสำหรับ ส่วนที่เหลือของภาคการศึกษาใช่
ฉันรู้ว่าการทำงานวิธีไบนารี
ผมจำได้ว่า Ascii หรือ Unicode-- การทำแผนที่เพื่อ letters-- งาน
และแน่นอนยืน เราจะให้เหตุผลว่า
จะเป็นตัวแทนของสีแดงและสีเขียวและ สีฟ้า, และเป็นตัวแทนของมัลติมีเดียเช่นกัน
แต่นี้เป็นสิ่งที่น่าสนใจ
นี่คือสิ่งที่ทำให้ใครบางคน ความสามารถในการแก้ปัญหา
>> และเป็นหนึ่งในปัญหาดังกล่าว เราชอบที่จะทำจริง
คือการเข้าร่วมประชุมหรือ การทำเช่นนี้อัลกอริทึม
และอีกครั้งผมอาจจะทำเช่นนี้
ฉันอาจจะทำหนึ่งสองสามสี่ ห้าหกเจ็ดแปดเก้า
และฉันจะเขียนมัน ลงไปติดตามได้
แต่นั่นเป็นเพียงวิธีการที่ฉันจะ แทนข้อมูล
หรือฉันสามารถทำเช่นนี้ faster-- สองสี่ หกแปดสิบ, 12, 14, 16, 18, 20,
22-- มันรู้สึกเหมือนสองครั้ง เป็นไปอย่างรวดเร็ว แต่ก็ยังคง
จะใช้เวลามากทั้งเวลา
>> แต่ปรากฎว่าถ้าเราใช้ประโยชน์เลย อีก resource-- และแน่นอนคอมพิวเตอร์
วันนี้มีหลายซีพียูหรือสมอง
มันจะเปิดออกคอมพิวเตอร์สามารถ ทำหลายสิ่งหลายอย่างในครั้งเดียว
และแน่นอนเราในห้องนี้ อาจหมายถึงตรงนี้
>> ดังนั้นจึงเป็นเรื่องเล็ก ๆ น้อย ๆ เพื่อเข้าสังคม ที่น่าอึดอัดใจ แต่ถ้าคุณจะมีอารมณ์ขันฉัน
เพียงสามขั้นตอนให้ ผมขอให้ทุกคนในสถานที่ที่มีเพียงแค่
ที่จะยืนขึ้นสักครู่
ยืนขึ้น.
ดังนั้นคิดว่าตัวเองจำนวน one-- เพื่อให้ทุกคนในห้องนี้
ยกเว้นคนที่ไม่ได้ บังคับกำลังคิดจำนวนหนึ่ง
เพื่อให้เป็นหมายเลขของคุณในขณะนี้
นั่นคือขั้นตอนแรกหรือเป็น นักวิทยาศาสตร์คอมพิวเตอร์หรือโปรแกรมเมอร์
โดยทั่วไปแล้วจะทำอย่างไรเราจะ ที่จะเริ่มต้นนับที่ศูนย์
หากหมายเลขที่เล็กที่สุดที่เราสามารถทำได้ แทนด้วยหลอดไฟเหล่านั้น
เป็นศูนย์โดยเพียงแค่ออกจากพวกเขา ทั้งหมดปิดฉันอาจมีเพียง
เริ่มนับจาก เป็นศูนย์แทนหนึ่ง
และนั่นคือสิ่งที่ นักวิทยาศาสตร์คอมพิวเตอร์ทำ
ดังนั้นขั้นตอนศูนย์ยืนขึ้นและ คิดว่าจำนวนหนึ่ง
ขั้นต่อไปคือคู่ this-- ปิดกับใครบางคนที่ยืนอยู่
และเพิ่มจำนวนของคุณร่วมกัน
ยอดเยี่ยม
>> ดังนั้นในขณะนี้ในเวลา ทุกคนมีส่วนร่วมอย่างแท้จริง
เป็นความคิดของหมายเลข 2 ยกเว้น สำหรับคนคนหนึ่งแปลกถ้าเรามี
เป็นเลขคี่ของผู้คนในห้องพัก
และตอนนี้ขั้นตอนที่สามนี่เป็นไปได้ จะ this-- หนึ่งของคุณควรจะนั่งลง
หนึ่งของคุณควรจะนั่งลง และถ้าคุณยังคงยืน
กลับไปขั้นตอนที่หนึ่ง
ก็ดี
ดังนั้นผู้คนมากขึ้น ควรจะนั่งลง
ขอให้สังเกตว่านี้ได้ชักนำให้เกิด loop-- ชนิดของวงจรบาง
บางส่วนของคุณควรจะติดอยู่อย่างเชื่องช้า จะกลับมาระหว่างขั้นตอนเดียว
และสองหนึ่งและสองหนึ่งและสอง
ไม่เป็นไร.
ข้อผิดพลาดครั้งแรกของเรา
เราจะจัดการกับที่
ก็ดี
ให้ฉันพยายามที่จะกระตุ้นให้เกิดสิ่งที่พร้อม
>> ในทางทฤษฎีเพียงคนคนหนึ่งที่ยืนอยู่ ที่ทุกคนยังคงจับคู่ปิด
แต่ให้ฉันเร็วขึ้น กับคนที่ยังคงยืนอยู่
สิ่งที่คุณคิดว่าการที่จำนวน?
46
ตกลง.
ไปข้างหน้าและนั่งลง
พวกคุณยังคงยืนอยู่
ผู้ที่ยังคงยืนอยู่?
สิ่งที่คุณคิดว่าการที่จำนวน?
ตกลง.
>> ดังนั้นเราจะกลับมาที่คุณ
ข้างหลัง?
นั่นคืออะไร?
22
ตกลงคนอื่นขึ้น top-- ใช่?
34
ตกลง.
กว่าที่นี่ใน right-- ของฉันขึ้นที่นี่?
132, ดีมาก
22?
>> ตกลง.
และผู้ที่ยังคงยืนอยู่?
กว่าที่นี่?
46, ดีมาก
72
ฉันไม่สามารถแผงลอยมากอีกต่อไป
ใช่?
30 ดี
กว่าที่นี่?
23?
23
>> และผมคิดว่าของทุกคน ยกเว้นพวกคุณไม่มีความกดดัน
โอ้รอ
28?
เพียงแปด
ตกลง.
เพียงแปด
ลงที่นี่?
30
23
24
18
นี่คือการดำเนินการที่เลวร้ายที่สุด ขั้นตอนวิธีการนี​​้เคย
ตกลง.
เพื่อให้ทุกคนอื่น?
ใครอีกไหม?
ตกลง.
อีกหนึ่ง.
16?
ตกลง.
16
ก็ดี
ดังนั้นถ้าฉันไม่ได้คิดถึงทุกคนใน แสงจ้าที่นี่เมื่อผมกด Enter,
เราจะเห็นได้ว่าอัลกอริทึมที่ จำนวนรวมของคนในแซนเดอ
เพราะอีกครั้งมันเหมือนกับว่าทุกคน ในขณะที่คุณนั่งลงผ่านหมายเลขของคุณออก
ให้คนอื่นให้คนอื่น ให้กับบุคคลอื่นเพื่อที่ว่าในทางทฤษฎี
ในท้ายที่สุดเพียงคนเดียวที่น่าอึดอัดใจ คนที่ควรจะทิ้งให้ยืน
แต่ที่ดี
เราเร่งขึ้นด้วยตนเอง
มันเป็นเรื่องยากโดยเฉพาะอย่างยิ่งที่จะเห็น ในพื้นที่นี้โดยเฉพาะอย่างยิ่ง
>> และจำนวนรวมของผู้คน เราคิดว่ามีอยู่ที่นี่เป็น 546
จำนวนทั้งหมดที่ฉันถูกส่ง โดยทุนการเรียนการสอน
ใครเป็นคนทำเก่า โรงเรียนทางช้าเป็น 820
>> [หัวเราะ]
>> [APPLAUSE]
>> ไม่เป็นไร.
ดังนั้นแน่นอนแล้วมีข้อบกพร่องเหล่านี้
และที่ดี
และอื่น ๆ คิดว่ากลับเกี่ยวกับเรื่องนี้ บางสิ่งบางอย่างเป็นครั้งแรก
คุณเขียนไม่จำเป็นต้องทำงาน
นี้ได้เกิดขึ้นกับฉันที่นี่เช่นกัน
แต่ตอนนี้ขอพิจารณาว่าเราอาจจะ ใช้ความคิดเดียวกันนี้ให้กับบางสิ่งบางอย่าง
คุณอาจได้เห็นมาก่อนซึ่ง นี่คือ here-- เทคโนโลยีโรงเรียนเก่า
สมุดโทรศัพท์ใหญ่จริงๆ
และคิดว่าหนังสือเล่มโทรศัพท์นี้ มี 1,000 หน้าและ 1,000 ชื่อ
และตัวเลขตัวอักษรภายในของมัน
>> ดีเราชนิดของสามารถนำไปใช้ที่คล้ายกัน ความคิดในการแก้ไขปัญหาทางกายภาพอย่างนี้
เพียงแค่ใช้ฉัน
ฉันเพียงแค่ชนิดของการโกง โดยใช้ประโยชน์จากทุกท่าน
ที่มีจำนวนมากและจำนวนมากของซีพียูที่แตกต่างกัน หรือสมองของอัลกอริทึมการดำเนินการบางอย่าง
แต่ถ้ามันเป็นเพียงเล็กน้อย เก่าฉันฉันยังคงสามารถ
ใช้ประโยชน์จากที่เดียวกันสาระสำคัญของความคิด การแบ่งและพิชิตปัญหาที่
อีกครั้งและอีกครั้งโดยครึ่งหนึ่งของคุณ ครึ่งหนึ่งของคุณครึ่งหนึ่งของคุณครึ่งหนึ่งของคุณ
ในทางทฤษฎีเก็บไว้นั่งลง จนกว่าเราจะถูกทิ้งไว้ในทางทฤษฎี
มีเพียงคนคนหนึ่ง
>> ดังนั้นในการนี​​้โรงเรียนเก่า technology-- เราทำไม่ได้
ต้องนี้ map-- นี้ โรงเรียนเทคโนโลยีเก่า
เราอาจจะเริ่มมองหาใครบางคน เหมือนไมค์สมิ ธ หนึ่งหน้าในเวลา
และผมเห็นว่าไม่มีไมค์ไม่ได้ที่นี่
ฉันยังคงอยู่ในส่วน
ในที่สุดผมพบ ตัวเองในส่วนข
และนี่คือ algorithm-- ขั้นตอนโดยขั้นตอนการเรียนการสอน
เริ่มต้นที่จุดเริ่มต้นและเป็นหนึ่งในหน้าเว็บ ในเวลาที่มองหาไมค์สมิ ธ
นี่คือ correct-- นี้ ขั้นตอนวิธีการหรือวิธีการ?
>> ใช่มันถูกต้อง
ถ้าไมค์ที่นี่ในที่สุด ฉันจะได้รับให้กับเขา
แต่มันก็ไม่ได้มีประสิทธิภาพ
มันเห็นได้ชัดช้ามาก
ดังนั้นผมจึงสามารถใช้ประโยชน์จาก twosies เดียวกันเข้าใกล้
ฉันสามารถทำเรียงลำดับของทั้งสอง สี่หกแปด, 10, 12
มันเป็นสองเท่าที่รวดเร็ว
ฉันจะได้รับไปยังไมค์ ได้เร็วขึ้นถ้าเขามี
มันเป็นสิ่งที่ถูกต้องหรือไม่
ใช่ แต่ผมได้ยินไม่มี little--
ตอนนี้ฉันไม่ได้ยิน
ใช่.
มีข้อผิดพลาดที่อาจเกิดขึ้นคือ
บางทีไมค์แค่บังเอิญได้รับ คั่นกลางระหว่างสองหน้า
เพราะฉันบินผ่าน สองในเวลา
ดังนั้นอย่างน้อยเราต้องมี ชนิดของการแก้ไขเงื่อนไข
ฉันต้องบอกว่าเดี๋ยวก่อน ถ้าผมตีคนที่มี
ชื่อขึ้นต้นด้วย T แทน S, ฉันดีกว่าเป็นสองเท่ากลับมาอย่างน้อยหนึ่งหน้า
ดังนั้นรถในตอนแรก แต่แน่นอน
แต่ไม่มีเราจะไปมองหา ไมค์สมิ ธ ผ่านโทรศัพท์ 1,000 หน้า
เล่มหนึ่งหน้าในเวลา
อะไรที่คนปกติจะทำอย่างไร
คุณกำลังจะไปที่ S ของ ถ้าคุณรู้ที่ S ของ
คุณอาจจะไปประมาณกลาง หรือเบ้เล็กน้อยในตอนท้าย
และผมมองลงมาที่นี่ ผมอยู่ในส่วน M
แต่สิ่งที่คุณรู้ว่า เกี่ยวกับปัญหานี้ในขณะนี้
ว่าเราไม่จำเป็นต้องรู้ก่อน ที่มีทั้งหมดของเราเพียงแค่นับตัวเอง
เท่ากัน?
ดีไมค์เป็นไปอย่างเห็นได้ชัด จะอยู่ในช่วงครึ่งปีของหนังสือเล่มนี้
ถ้าเขาอยู่ที่นี่เลยเพราะมันเรียง
>> และเพื่อให้คุณสามารถ dramatically-- มาก
>> [หอบ]
>> ฉันรู้ว่า.
>> [APPLAUSE]
>> มันเป็นจริงได้ง่ายจริงๆถ้า คุณทำมันลงกระดูกสันหลังมี
แต่แล้วคุณสามารถโยน ครึ่งหนึ่งของปัญหาที่เกิดขึ้นทันที
ตอนนี้ฉันทิ้งให้อยู่กับ problem-- เดียวกัน หาไมค์สมิ ธ ในโทรศัพท์ book--
แต่ตอนนี้สมุดโทรศัพท์เริ่มต้นที่ M และไปถึง Z แต่ก็ครึ่งหนึ่งเป็นใหญ่
>> แต่นี่คือสิ่งที่น่าประทับใจ
เช่นเดียวกับในทางทฤษฎีพวกคุณเมื่อ คุณทุกคนนั่งลงเพียงครึ่งหนึ่งในเวลา
ปัญหาที่เกิดขึ้นได้ครึ่งหนึ่งเป็นใหญ่ ครึ่งหนึ่งเป็นใหญ่อีกครั้งและอีกครั้ง
ดังนั้นปัญหานี้ได้กลายเป็น ปัญหาเดียวกัน แต่ครึ่งหนึ่งเป็นใหญ่
ตอนนี้มันเป็นปัญหาที่หน้า 250
เร็วที่สุดเท่าที่ผมทราบดีว่าโอ้ฉัน ในส่วนทีเผลอ
ผมเคยไปไกลเกินไป
ฉันสามารถโยนครึ่งหนึ่ง ของสมุดโทรศัพท์ออกไป
ตอนนี้ผมลงไป ไตรมาสของปัญหา
>> และคุณสามารถทำซ้ำซ้ำ ทำซ้ำจนกว่าในทางทฤษฎีคุณ
ที่เหลือมีเพียงหนึ่งหน้า
และถ้าไมค์เป็นในหน้านั้น ตอนนี้ผมสามารถแก้ปัญหานี้
แต่วิธีการอย่างรวดเร็วผมไม่แก้มันได้หรือไม่
ในกรณีแรกก็เอาผมชอบ บางที 1,000 ขั้นตอนในการหาไมค์สมิ ธ
มันอาจจะมีการดำเนินการ me-- ฉันหยิบสมุดโทรศัพท์
และผมเริ่มมองหา หน้าหนึ่งที่เวลา
และไมค์อาจจะมี 1,000 หน้าภายหลัง
>> แนวทางที่สองอาจจะ ฉันจะใช้เวลา 500 ขั้นตอน
เพราะฉันบิน ผ่านสองในเวลา
และแนวทางที่สามแม้ว่า มันมีประสิทธิภาพโดยเฉพาะอย่างยิ่ง
แต่ขอพิจารณาสิ่งที่เราจริง ทำด้วยวิธีการที่สามนี้
ฉันจะมีสิ่งที่ฉันจะเรียกเพียงเหล่านี้ งบที่นี่ในช่วงเวลาหนึ่ง
Pick up สมุดโทรศัพท์
เปิดไปตรงกลางของหนังสือเล่มโทรศัพท์
ดูรายชื่อ
และแล้วสิ่งที่ได้รับน้อย เพิ่มเติมความรู้ที่น่าสนใจ
ถ้ายังง่าย
หากสมิ ธ เป็นหนึ่งใน ชื่อบนหน้าปัจจุบันว่า
แล้วทำบางสิ่งบางอย่างมีเงื่อนไข
มันก็เหมือนกับการแยกในถนน
โทรไมค์
ถ้าไมค์เป็นหนึ่งในชื่อ บนหน้าเว็บที่เรียกว่าไมค์
แต่ทำสายสี่หากสาย ต้นไม้ถ้าคุณจะเป็นความจริง
คำตอบสำหรับคำถามที่ว่าคือใช่
>> อื่นถ้าสมิ ธ เป็นก่อนหน้านี้ใน book-- ในคำอื่น ๆ ถ้าผมอยู่ในส่วน M
และฉันกำลังมองหาคนที่จะ ด้านซ้ายแล้วสิ่งที่ฉันควรจะทำอย่างไร
บางสิ่งบางอย่างที่คล้ายกันมาก
แล้วฉันควรจะเปิดไปตรงกลาง ในช่วงครึ่งซ้ายของหนังสือเล่มนี้
ดังนั้นไปทางซ้ายแล้ว กลับไปขั้นตอนที่สอง
ดูรายชื่อผู้มี
>> ดังนั้นในคำอื่น ๆ ที่ทำในสิ่งเดียวกัน แต่ปัญหาที่ได้รับการลดลงครึ่งหนึ่ง
คุณจะรู้ว่าสิ่งที่คนอื่น?
หากสมิ ธ เป็นต่อมาในหนังสือเล่มนี้ ขึ้นอยู่กับหน้าฉันมองหาที่
เปิดไปตรงกลางของ ครึ่งทางขวาของหนังสือเล่มนี้
แล้วกลับไปอีกครั้ง ที่ขั้นตอนที่สอง else--
มีความเป็นไปได้ที่สี่ที่นี่
ไมค์ทั้งที่นี่หรือไปทางซ้าย หรือไปทางขวาหรือไม่มี
และที่นี่เราดีขึ้นพิจารณานี้
และในความเป็นจริงถ้าคุณเคยมี คอมพิวเตอร์ของคุณก็ผิดพลาดกับคุณ
ที่บางครั้ง แต่ไม่เสมอไปที่ ผลมาจากการเป็นเพียงแค่โปรแกรมเมอร์ของมนุษย์ไม่ได้
ตระหนักถึงโอ้ยิงมี จริงนี้สถานการณ์ที่สี่
และถ้าคุณไม่ได้เขียนรหัส ที่จะจัดการกับสถานการณ์ที่
บางครั้งคุณไม่ทราบว่า สิ่งที่คอมพิวเตอร์อาจจะทำ
และแน่นอนโปรแกรมที่อาจผิดพลาด
>> แต่ในกรณีนี้ผมคิดว่า เกี่ยวกับมันและผมพูดว่าคนอื่นเลิก
เนื่องจากว่าเป็นวันที่สี่ สถานการณ์ที่เป็นไปตรรกะ
ตอนนี้ขอเพียงแค่เพิ่ม คำศัพท์บางอย่างเพื่อเรา
สามารถเริ่มต้นที่จะโยนไปรอบ ๆ คำที่ เป็นอย่างอื่นที่ใช้งานง่ายสวย
ทุกสิ่งที่ฉันได้เพียงแค่ เน้นสีเหลืองที่นี่
ฉันแค่ไปที่ ฟังก์ชั่นหรือขั้นตอน
พวกเขากำลังเพียงแค่ชนิดของการกระทำ
ดังนั้นรับเปิดให้ดู ที่โทรเปิดเปิด
quit-- เหล่านี้เป็นเพียงการกระทำหรือเราจะ เรียกพวกเขาอีกอย่างเป็นทางการ, ฟังก์ชั่น
>> ในขณะที่ตอนนี้อยู่ในสีเหลือง ผมได้เน้นสิ่ง
ในปัจจุบันผู้ให้เพียงเริ่มเรียก พวกเขาเงื่อนไขหรือสาขา
เหล่านี้เป็นจุดที่การตัดสินใจ คุณอาจจะไปด้วยวิธีนี้วิธีนี้
หรือทิศทางอื่น ๆ ยังคง
ดังนั้นผู้ที่จะเป็นเงื่อนไข
และตอนนี้เป็นเพียงเล็กน้อยนักเล่น
ขอเรียกคำถามเหล่านี้ นิพจน์บูลีน
หลังจากที่มีคนที่มีนามสกุล Bool
>> และนิพจน์บูลีน เป็นเพียงบางสิ่งบางอย่าง
ว่าจริงหรือเท็จใช่หรือไม่
ดังนั้นจึงเป็นคำถามที่มีคำตอบให้คุณ เกี่ยวกับการดูแลเพื่อให้เป็นไปในสภาพที่
ทำให้ decision-- ได้รับกลับคำตอบ และจากนั้นไปทางซ้ายหรือขวาหรือบางสิ่งบางอย่าง
อื่นทั้งหมด
>> และแล้วในที่สุดเหล่านี้ สาย here-- กลับไป
ที่ขั้นตอนที่สองกลับไป ที่จะก้าว two-- เราสามารถ
ใช้ความคิดนี้ในรูปแบบที่แตกต่างกัน
แล้วบรรดาของคุณด้วย ประสบการณ์การเขียนโปรแกรมอาจจะทำ
หรือสามารถคิดทำเช่นนี้แตกต่างกัน
แต่สำหรับวัตถุประสงค์ของว​​ันนี้ก็ เพียงแค่ความคิดที่มีความสำคัญ
นี้จะกระตุ้นให้เกิดสิ่งที่ เรามักจะเรียก
loop-- ชนิดของวงจรบางอย่างเพราะ มันทำให้ฉันทำอะไรบางอย่างอีกครั้ง
>> ดังนั้นตอนนี้ขอเพียงแค่พิจารณา วิธีการที่ดีขั้นตอนวิธีนี้คือ
ถูกต้อง.
ถ้าไมค์ในหนังสือเล่มนี้ก็เป็นหนึ่งใน บรรดาสี่ scenarios-- อีกครั้งและอีกครั้ง
และอีกครั้งที่เราจะได้พบกับเขา
แต่วิธีการที่ดีมันคืออะไร?
ดีที่เราจะได้ไม่ต้อง เพื่อเป็นทางการเกินไปที่นี่
แต่ขอเพียงแค่พล็อต บางสิ่งบางอย่าง x และ y ที่จะได้รับ
ความรู้สึกของรูปร่างของปัญหานี้
>> บนแกน x ที่นี่คือ ขนาดของปัญหาของฉัน
และพวกเขาแกน y ที่นี่ จะเป็นเวลาที่จะแก้
ดังนั้นอาจจะเป็นจำนวนหน้า
อาจจะเป็นวินาทีหรือ turns-- หน้าสิ่งที่
แต่คุณต้องการที่จะนับเป็น สิ่งที่ภาพนี้จะเป็นตัวแทนของ
และขั้นตอนวิธีการแรกที่ฉันจะ เพื่ออธิบายเป็นเพียงเป็นเส้นตรง
หากมี n หน้าใน สมุดโทรศัพท์แล้วมัน
อาจจะพาฉันไปเป็นจำนวนมาก เป็นขั้นตอนที่จะหา n ไมค์
หาก Verizon หรือ บริษัท โทรศัพท์ เพิ่มหน้าอีกหนึ่งปีถัดไป
มันอาจจะพาฉันอีกหนึ่ง step-- หนึ่งหน่วยมากขึ้นเวลาที่จะหาไมค์
ดังนั้นจึงมีเพียงหนึ่งนี้อัตราส่วนหนึ่ง
มันเป็นความลาดเอียงเส้นตรง
>> ในขณะเดียวกันที่สองที่ algorithm-- หากฉัน
ไปสองที่ time-- สอง สี่หกแปดหรือ double--
จะผ่านหน้าสองครั้ง ในช่วงเวลาที่สองในเวลา
ก็ยังคงเป็นเส้นตรง
ขณะนี้มี 1-2 อัตราส่วน แต่เพียงเล็ก ๆ น้อย ๆ ที่ต่ำกว่า
ดังนั้นถ้ามีหลายหน้านี้ บนแผนภูมิที่นี่ในสีเหลือง
ที่อาจจะพาฉันนี้ หลายขั้นตอนหรือวินาที
มิฉะนั้นก็จะพาฉัน สองเท่าของจำนวนมากในเส้นสีแดง
>> แต่สายสีเขียวเป็น Takeaway จริง
นี่คือสิ่งที่เรามัก โทรบันทึก logorithm--
ของ n โดยที่ n คือจำนวนของหน้าเว็บ
แต่มันเป็นรูปทรงที่มีความสำคัญ ในวันนี้เพราะเราไม่ได้มี
แม้แต่คิดเกี่ยวกับพล็อตจุด
>> คิดเกี่ยวกับสถานการณ์ที่รุนแรง
สมมติว่าในวันพรุ่งนี้ Verizon คู่ จำนวนหน้าในสมุดโทรศัพท์ว่า
จาก 1,000 ถึง 2,000
ในขั้นตอนวิธีการแรกผม อาจเสียเพิ่ม 1,000
ขั้นตอนที่มองหาไมค์เพียงเพราะ Verizon เพิ่มขนาดของหนังสือเล่มนี้
ที่สอง algorithm-- มันอาจ พาฉันเป็นพิเศษ 500 ขั้นตอน
1,000 หน้ามากขึ้นผมไปสองที่ time-- 500 ขั้นตอนที่จะหาไมค์
>> แต่ที่อัลกอริทึมที่สาม เป็นชนิดของวิเศษ
Verizon คู่จำนวน หน้าเว็บจาก 1,000 ถึง 2,000
แต่วิธีการหลายขั้นตอนมากขึ้นไม่ มันพาฉันไปหาไมค์?
มันเป็นเพียงหนึ่งเพราะผมก็สามารถ ฉีกสมุดโทรศัพท์อีกครั้งหนึ่ง
จากปัญหาที่เกิดขึ้น 2,000 หน้าไปยัง 1,000 ปัญหาหน้าและ voila
ฉันเอากัดขนาดใหญ่ออกมาจากมัน
>> และถ้าคุณไปมากจริงๆ สมมติว่าสมุดโทรศัพท์
บริษัท ฯ มีสิ่งที่บ้าเหมือน สมุดโทรศัพท์หน้า 4 พันล้าน
ดีวิธีการหลายขั้นตอนอาจใช้เวลา เพื่อหาไมค์สมิ ธ ใน 4 พันล้าน
สมุดโทรศัพท์หน้า?
มันเป็นจำนวนมาก แต่เพียง 4 พันล้าน 2000000000-1000000000 ที่จะ 500 ล้านบาท
250 million-- ยังคง เสียงเหมือนตัวเลขขนาดใหญ่
แต่ฉันได้อย่างรวดเร็ว การเดินทางไปยังค่าที่มีขนาดเล็ก
>> และในความเป็นจริงถ้าผมทำคณิตศาสตร์ ขวาฉันเท่านั้นที่สามารถแบ่ง 4 พันล้าน
โดยประมาณ 32 ครั้งก่อน ฉันจะได้รับลงไปเพียงหนึ่ง
ดังนั้นถ้าสมุดโทรศัพท์ที่มี 4 พันล้านหน้ายาวไม่มีเรื่องใหญ่
ภายในไม่กี่วินาทีอาจจะ 32 วินาทีที่ฉันสามารถแบ่งออกในช่วงครึ่งปี
และในที่สุดก็พบว่าไมค์หรือ สรุปได้ว่าเขาไม่ได้มี
และนั่นคือสาระสำคัญของนั้น algorithm-- ขั้นตอนวิธีการที่ดี
และนั่นคือหนึ่งใน เป้าหมายของการเรียนเช่นนี้
พยายามที่จะคิดออกว่าจะทำผม แก้ปัญหาไม่ได้เป็นเพียงอย่างถูกต้อง
เหมือนที่ผมรู้อยู่เสมอว่าจะทำอย่างใดอย่างหนึ่ง หน้าใน time-- แต่อย่างถูกต้องและดี
ฉันจะออกแบบที่ดี การแก้ปัญหา?
ดังนั้นขอให้ใช้เวลาสักครู่ที่นี่ และให้ความรู้สึกตอนนี้
ของ CS50 หลักสูตร itself-- แนะนำ หลักสูตรไม่กี่ของสมาชิกในทีม
เพียงก่อน 02:00 เราจะ ใช้เวลาพักผ่อนระยะสั้น
เพื่อให้บรรดาของคุณ ที่กำลังช้อปปิ้งสามารถ
เป็ดออกมาและใช้เวลา ดูที่ชั้นอื่น ๆ
และดูส่วนที่เหลือของออนไลน์นี้
แต่ตอนนี้ให้ฉันแนะนำ CS50 ชั้นของตัวเอง
และโดยเฉพาะอย่างยิ่งสิ่งที่เป็นของใหม่
>> ดังนั้นในฤดูใบไม้ผลิที่ผ่านมาเรา ใช้เวลาไม่น้อย time--
พนักงานของหลักสูตรและ I-- คิด เกี่ยวกับสิ่งที่เราต้องการ CS50 จะเป็น
และจะกลับไปเป็นครั้งแรก หลักการเพื่อที่จะพูด
ที่จะต้องพิจารณาว่ามันคืออะไรที่เราต้องการ หลักสูตรนี้จะมีลักษณะเหมือนและ
เหมือนนักเรียน
ดังนั้นคุณจะเห็นในปัญหา ตั้งศูนย์เป็นอย่างดีคำเชิญ
ที่จะดูว่า URL ซึ่งสรุป
บางส่วนของแรงจูงใจที่อยู่เบื้องหลัง ต่อไปนี้ลักษณะของฤดูใบไม้ร่วง 2016
>> เพื่อที่คุณอาจจะมีการรวบรวม จาก TL: เอกสารประกอบการบรรยาย DR,
หลักสูตรในวันนี้รวมทั้งจาก แคตตาล็อกแน่นอนในปีนี้ใน CS50,
คุณคาดหวังเท่านั้นที่จะเข้าร่วม today-- งานให้ดี done--
และบรรยายครั้งสุดท้ายเมื่อ 21 พฤศจิกายน
และคุณไม่เป็นไร แต่ไม่คาดว่าจะ เข้าร่วมบรรยายผู้ที่อยู่ตรงกลาง
เพราะสิ่งที่เรากำลังทำ ในปีนี้ถูกยิง
ในเวลาจริงเนื้อหาหลักสูตรของ
เพื่อให้ทุกอย่างจะอยู่ ในปัจจุบันและนิติบุคคลที่จัดตั้งขึ้น
ดีที่สุดเท่าที่เรา can-- เหตุการณ์ปัจจุบัน และการสนทนาที่คนอาจจะ
จะมีในอุตสาหกรรมใน โลก แต่ทำให้วัสดุที่
สามารถใช้ได้เป็นผลให้แม้ earlier-- สมบูรณ์แบบด้วยการถอดเสียงข้อความเต็ม
และในการค้นหาและ เชื่อมโยงไปยังแหล่งข้อมูลอื่น ๆ
>> และแน่นอนเราได้รับ อ้างบางครั้ง
และเราไม่เชื่อว่านี้ ที่เราสามารถสร้างแบบดิจิทัล
ดื่มด่ำมากขึ้นน่าสนใจมากขึ้น ประสบการณ์การศึกษาเมื่อเทียบ
เพื่อรวบรวมนี่คือบางส่วน 23 ครั้ง ในคนบางคนได้ยินชอบฉัน
เพียงแค่พูดคุยเกี่ยวกับวิทยาการคอมพิวเตอร์ เมื่อเทียบกับการมีส่วนร่วมอย่างแข็งขันมากขึ้น
ดังนั้นคุณจะเห็นในหลักสูตรการเรียนการสอนของ ร่างของภาคการศึกษาที่นี่
พร้อมกับการบรรยายจะเมื่อ จะถ่ายทำซึ่งคุณ
ยินดีต้อนรับ แต่ไม่คาดหวัง และเมื่อพวกเขาจะ
ได้รับการปล่อยตัวในเว็บไซต์ของหลักสูตร
>> และสิ่งที่เราจะทำที่นี่ใน วันพุธเริ่มต้นสัปดาห์ถัดไป
เป็นจำนวนมากอย่างใกล้ชิดมากขึ้นมีเพียง คนผู้ที่ต้องการที่จะเข้าร่วม
เป็นสิ่งที่เรียกว่าใช้เวลาเดินผ่าน ที่ผมและหัวของหลักสูตร
จริงจะทำในสิ่งที่ เล็ก ๆ น้อย ๆ ใกล้ชิดมากขึ้น
ลงที่นี่ในวงออเคสตรา ส่วนที่ยังคงมีเทคโนโลยีบางอย่าง
และเดินผ่าน ชุดสัปดาห์ปัจจุบันปัญหาของ
และให้คุณ particularly-- ถ้าในหมู่ ผู้ comfortable-- น้อยทั้งหมดเพิ่มเติม
คำแนะนำที่คุณอาจต้องการหรือ จำเป็นสำหรับความท้าทายของสัปดาห์
และในทำนองเดียวกันสำหรับผู้ที่ไม่สามารถ เข้าร่วมผู้ที่อยู่ในคนไม่มีเรื่องใหญ่
จะมีการนำเช่นกันโดย หนึ่งในเจ้าหน้าที่ระดับสูงหลักสูตรที่
Zamalya, โอกาสเดียวกันฝังตัว ในชุดปัญหาตัวเอง
>> ชุดปัญหาในปีนี้ จะได้รับการปล่อยตัวในวันศุกร์
และไม่ได้ทำเจ็ดวันต่อมา แต่ 10 วัน later-- จงใจ
ที่ทับซ้อนกันกับแต่ละปัญหา ตั้งเพื่อให้เป็นไปดีกว่ารองรับ
เราหวังว่าการลดลงและไหล ในตารางเวลาของนักเรียน
โดยเฉพาะอย่างยิ่งเมื่อ midterms หรือการแข่งขันกีฬา หรือนักวิชาการหรือ extracurriculars
มีแนวโน้มที่จะมาและไป โดยเฉพาะอย่างยิ่งในช่วงกลางเทอม
ที่จะทำให้คุณมีน้อยมาก ดุลยพินิจเป็นไปได้ว่าคุณหน้า
โหลดสัปดาห์ของคุณด้วย CS50 หรือโหลดกลับ มันเกี่ยวกับวันหยุดสุดสัปดาห์ต่อไปนี้แทน
ดังนั้นมองไปที่หลักสูตรของหลักสูตร ที่นี่สำหรับกำหนดการดังกล่าว
และคุณจะสังเกตเห็นในหมู่เกินไป การเปลี่ยนแปลงในปีนี้
สำหรับผู้ที่คุ้นเคยกับ การเขียนโปรแกรมในอดีตที่ผ่านมา
เราจะเริ่มต้นภาคการศึกษาเป็น เราจะวันนี้ในเกา
มุ่งเน้นโดยเฉพาะอย่างยิ่งกับภาษา เรียกว่า C แล้วเปลี่ยนไม่ได้
เพื่อ PHP แต่เป็นภาษาที่เรียกว่า งูใหญ่ในช่วงปลายภาคการศึกษา
ในบริบทของการเขียนโปรแกรมเว็บ พร้อมกับ SQL และ JavaScript
HTML, CSS และยังเพิ่มเติม
>> และในการตอบคำถามที่พบบ่อย, มันเป็นจริงกรณี
ที่ลูกค้าไม่ได้น่ากลัวอย่างที่ผมเคย คิดว่ามันเป็น แต่มันเป็นเหมือนการทำงานมาก
เท่าที่ผมเคยได้ยินมาก็อาจจะมี
แต่นี่คือการพูดว่านี่คือบางส่วน สถิติจากฤดูใบไม้ร่วง 2015 นักศึกษา,
โดยเส้นแนวนอนสีฟ้า แทนค่าเฉลี่ยของจำนวนชั่วโมง
รายงาน
และคุณจะเห็นค่าเฉลี่ยของ หกถึง 10 ถึง 16 อาจ 12--
หรือเพื่อให้และอื่น ๆ แต่มี ความแปรปรวนสูงเพื่อให้มีความชัดเจน
และเพื่อให้ทราบว่ามีไม่ได้เป็นเพียง นักเรียนสะดวกสบายมากขึ้นและน้อย
สะดวกสบายในการเรียนการสอน แต่การสนับสนุนที่สอดคล้องกัน
โครงสร้างในการรับนักเรียนเหล่านั้น ผ่านภาคการศึกษาที่ประสบความสำเร็จ
>> อันที่จริงในการตอบคำถามที่พบบ่อยควร คุณใช้เวลา CS50 เป็นปีแรก?
อย่างแน่นอน
และในความเป็นจริงผมไม่เสียใจ ไม่ได้มีการค้นพบทางของฉัน
หรือพบข้อมูลใหม่ ว่าในปีแรกเช่นกัน
และคุณควรใช้กับ CS50 หลักสูตรอื่น ๆ อย่างแน่นอนเป็น well--
และคำแนะนำทั่วไปเราอาจจะ ให้นักเรียน CS50 ที่อาจ
ไม่ได้ชนิดของชั้นหรือระดับบทนำ ที่คุณควรใช้เวลากับสาม
อื่น ๆ หรือสี่ชั้น P-ตั้งค่าอื่น ๆ
แต่ถ้าคุณกำลังสอง P-ชุดอื่น ๆ เรียนอย่างอื่นและ CS50,
จัดการได้อย่างแน่นอน
ผมเคยมีนักเรียนจำนวนมากใน ที่ผ่านมาทำเพื่อค่อนข้างประสบความสำเร็จ
>> และจะได้รับคุณไปยังที่ เส้นชัยได้สำเร็จ
ไม่แน่นอนมี sections-- แทร็คที่แตกต่างกันสำหรับนักเรียน
สะดวกสบายน้อยสะดวกสบายมากขึ้น และหนึ่งในระหว่าง
โดยในหลักสูตรของ ปัญหาชุดแรก
คุณจะถูกถามว่าจะอธิบายด้วยตัวคุณเอง
และถ้าคุณอยู่ในหมู่ผู้น้อย สะดวกสบายมันเป็นชนิดของสิ่งที่
ที่คุณเพิ่งค่อนข้างรู้
และแน่นอนที่รับ การเจริญเติบโตทางด้านประชากรศาสตร์ใน CS50
ค่อนข้างไม่กี่ปีที่ผ่านมา
>> เมื่อฤดูใบไม้ร่วงที่ผ่านมา ตัวอย่างเช่น 58% ของชั้นเรียน
อธิบายว่าตัวเองเป็น ในหมู่ผู้ที่สะดวกสบายน้อยลง
กับ 9% ในหมู่ผู้ที่มากขึ้น ความสะดวกสบายแล้ว
นักเรียนคนอื่น ๆ ที่มีใน สีแดงของตัวเองอธิบาย
เป็นหนึ่งในระหว่าง
และคุณจะเห็นที่นี่หัวข้อโดยรวม และตารางเวลาของส่วนซึ่งทั้งหมดนี้
จะนำเสนอในคนใน เวลาจริงกับหลักสูตร
พนักงานที่น่าตื่นตาตื่นใจของเพื่อนการเรียนการสอน และผู้ช่วยแน่นอนบางคน
คุณจะพบในเวลาเพียงสักครู่
>> ส่วนที่ตัวเองเช่นคุณจะเห็นจะ เป็นวันจันทร์และวันอังคารและวันพุธ
เพื่อช่วยให้คุณสามารถที่จะดำน้ำ หลังจากที่มีส่วนร่วมดังนั้นหากคุณ
เลือกในหลักสูตรของ บรรยายสัปดาห์ก่อนหน้าว่า
และแล้วเวลาทำงานซึ่ง แน่นอนกับปีที่ผ่านแต่ละ
ได้รับไม่น้อยของ ท้าทายสำหรับการเรียนการสอน
และในปีนี้เรากำลังวางแผนไม่ได้ เพียงเพื่อที่จะดำรงตำแหน่ง hours-- หนึ่ง
ในหนึ่งโอกาสสำหรับความช่วยเหลือ นักเรียนในวันพุธวันพฤหัสบดี
และวันอาทิตย์สุดท้ายของคนเหล่านั้น อยู่ในช่วงบ่ายโดยการออกแบบ
เพื่อลดบางส่วนของความเครียดที่ คงเส้นคงวาเกิดขึ้นกับดึก
P-settting กับเส้นตาย looming-- แต่เวลาทำงานจะมีการเสนอ
ในวันจันทร์และวันอังคารและ วันพุธและวันศุกร์และวันเสาร์
ต้องขอบคุณเพื่อนของเราที่ HSA
>> CS50 ขณะนี้มีพื้นที่ของตัวเอง สำหรับนักศึกษาและบุคลากร CS50,
บนยอด 67 ม้าสีน้ำตาลแดงถนน มีสิทธิในฮาร์วาร์สแควร์
วิสัยทัศน์ที่ว่า CS50 ของ TFS และ CAs ตลอดทั้งสัปดาห์
สวยมากตลอดเวลาส่วนใหญ่ วันจะมีที่ให้การสนับสนุน
ดังนั้นถ้าคุณได้มีบางส่วน คำถามเกี่ยวกับ P-ชุด
หรือคุณรู้สึกเล็ก ๆ น้อย ๆ บล็อกหรือน้อยสับสน
และห่าคุณได้มีชั่วโมงหรือ ครึ่งชั่วโมงระหว่างเรียน
โดยเฉพาะอย่างยิ่งใน square-- สามารถคุณ pop ในและมีคำถามที่ตอบ
ของมีความสับสนว่า clarified-- อย่างมากในจิตวิญญาณ
คุณคุ้นเคยของคณิตศาสตร์ ศูนย์เองคำถามคณิตศาสตร์กรม,
แต่สวยมากตลอดเวลาต่อ [? Gcal?] ว่าเราจะโพสต์ออนไลน์
>> กวดวิชานอกจากนี้ยังมีสำหรับผู้ที่ นักเรียนได้อย่างอิสระจากหลักสูตร
พนักงานของตัวเองถ้าคุณต้องการ ใกล้ชิดแบบหนึ่งต่อหนึ่งมากขึ้น
หรือสองหรือสามเพื่อนร่วมชั้นเรียนเท่านั้นทำงาน กับหนึ่งในหลักสูตรของสมาชิกในทีม
และแน่นอนเหล่านี้ที่นี่เป็นเพียง บางส่วนของหลักสูตรของพนักงาน
ไม่กี่คนที่คุณจะ ตอบสนองในเวลาเพียงสักครู่
ในความเป็นจริงของตัวเอง CS50 เพื่อนเรียนการสอนหัว
และแน่นอนหัว ผู้ช่วยและพระอุปัชฌาย์
อาจจะมาขึ้นให้ พวกเขาที่จะกล่าวทักทาย
>> [APPLAUSE]
SPEAKER 1: [ไม่ได้ยิน]
>> [APPLAUSE]
SPEAKER 2: [ไม่ได้ยิน]
>> [APPLAUSE]
SPEAKER 3: [ไม่ได้ยิน]
>> [APPLAUSE]
>> DAVID ลัน: และช่วยให้เราสามารถ นำบนกระดานสอง CS50 มากที่สุด
เจ้าหน้าที่อาวุโสร็อบและ Zamayla เช่นกัน
>> [APPLAUSE]
>> อันที่จริงทั้งร็อบและ Zamayla ได้รับกับเรา
มานานแล้วว่าผมสามารถ ที่จะเข้าไปในที่เก็บของ CS50
และพบนี้ SD มาก ภาพของพวกเขามีส่วนร่วม
บนเวทีตัวเองเมื่อหลายปีก่อน
ROB: [ไม่ได้ยิน]
>> [APPLAUSE]
ZAMAYLA: [ไม่ได้ยิน]
>> [APPLAUSE]
DAVID ลัน: ขอบคุณ
ดังนั้นนอกเหนือจากนี้ สมาชิกในทีมที่นี่
CS50 มีทีมงานเกือบ 100 สมาชิกในทีมทุกคน
จะสามารถใช้ได้สำหรับส่วน และชั่วโมงสำนักงานและอื่น ๆ อีกมากมาย
และเป็นร็อบกล่าวว่าเกินไปนี้คือ ยกเครื่องที่สำคัญที่สุด
ของ CS50 ในช่วง 10 ปีที่ผ่านมา ฉันได้รับใน [ไม่ได้ยิน]
[ไม่ได้ยิน] มุ่งเน้นโดยเฉพาะอย่างยิ่ง ในการให้บริการโครงสร้างการสนับสนุน
ตัดออกไปจำนวนมาก เป็นกลุ่มที่ได้รับ
สะสมในรอบ 10 ปี การพัฒนาของซ้ำ
ในหลักสูตรของชุดปัญหา
>> ดังนั้นปีนี้ไม่เพียง แต่ในชั้นเรียน แต่ ยังอยู่ในรูปแบบของปัญหาหลักสูตรฯ
ชุดคุณควรหาสิ่งที่จะ จะคล่องตัวมากขึ้น, Trimmer มาก
จัดการได้มากขึ้นกว่า ในปีที่ผ่านมาที่เรา
บางโรงสัมภาระที่ว่า พัฒนาโดยธรรมชาติของการพัฒนาปี
หลังจากปีและการทำซ้ำ
ดังนั้นใหม่และการปรับปรุงจะเริ่มขึ้นในวันนี้
>> คุณจะตอบสนองบางส่วนเพิ่มเติม พนักงานของหลักสูตรออกมาใน [ไม่ได้ยิน]
ที่ 2:30 ที่เราให้บริการ เป็นประเพณีเค้ก
มีเค้กอีกเล็กน้อยเป็น กว่านั้น แต่คุณจะ
พบอีรินและโทเบียสและอื่น ๆ ยังคง
และให้ฉันให้คุณ ทัวร์ก่อนที่เราจะได้ยิน
จากบางส่วนของเจ้าหน้าที่อื่น ๆ ในชั้นเรียนของสิ่งที่รอคอยเป็นอย่างดี
ในความเป็นจริงเรามักจะเริ่มต้นของ CS50 ภาคการศึกษานี้มาวันเสาร์
กับสิ่งที่เรียกว่าวัน CS50 ปริศนา
>> มันมีอะไรจะทำอย่างไรกับ วิทยาการคอมพิวเตอร์ต่อ se
แต่มีปัญหาเกี่ยวกับ แก้มากขึ้นโดยทั่วไป
และถ้าคุณจึงเลือกที่จะมีส่วนร่วม, ต่อบางส่วนของคำเชิญ,
คุณอาจได้เห็นประตู ลดลงหรือบนเวทีที่นี่
มันเป็นโอกาสในทีม สองหรือสามหรือสี่
จะมีส่วนร่วมสำหรับปริศนาและพิซซ่า และของรางวัลและ more-- วันเสาร์นี้,
ติดตามความคืบหน้ามากขึ้น
>> คุณจะพบว่าทุกเกินไป วันศุกร์ที่ไฟและน้ำแข็ง,
ไม่ CS50 นำ ทั้งกลุ่มของนักเรียน
ไปรับประทานอาหารกลางวันเพื่อให้มีขนาดใหญ่ ระดับความรู้สึกใกล้ชิดมากขึ้น
และโดยทั่วไปจะนำมารวมกัน ศิษย์เก่าและเพื่อน ๆ จากอุตสาหกรรม
ที่จะพูดคุยเกี่ยวกับสิ่งที่พวกเขาได้ รับการขึ้นไปตั้งแต่จบการศึกษา
ในทำนองเดียวกันในปีนี้เราจะ ประเดิมครั้งแรกที่เคย CS50 50
การเข้ารหัส contest-- กลางภาคการศึกษา โอกาสที่จะให้ทุกคน
ในการเลือกในพื้นฐานที่จะมี ความท้าทายของปัญญากับเพื่อนร่วมชั้น
อีกครั้งในทีมงานของสองหรือสามหรือ สี่โดยใช้เพียงการเขียนโปรแกรมว่า
เข้าใจว่าคุณแล้วต้องอยู่ภายใต้ เข็มขัดของคุณหลังจากนั้นเพียงหกหรือเจ็ด
สัปดาห์ที่ผ่านมาของการเรียนและการมีส่วนร่วม ในลักษณะของการแข่งขันครั้งนี้
online-- หากคุณต้องการที่จะฝึกฝนด้วยตัวคุณเอง ทักษะทั้งหมดที่อื่น ๆ ในความท้าทายที่
ในตอนท้ายของภาคการศึกษาคือ ที่เรียกว่า CS50 Hackathon--
โอกาสที่จะเริ่มขึ้นในเวลา 7.00 PM สิ้นสุดที่ 07:00 และไปพร้อมกัน
12 เวลาเย็นในการที่จะดำน้ำ เข้าไปในโครงการที่ท่านสุดท้ายของหลักสูตร
โอกาสที่จะออกแบบและ ใช้อะไรมากที่สุดที่น่าสนใจ
ให้คุณด้วยการเรียนการสอนของคุณ คำแนะนำของเพื่อน
รอบ 09:00 เรามักจะทำ ให้บริการพิซซ่า, 01:00,
ฟิลิปป์และไม่กี่ของเรา ที่ยังคงตื่นตัวในเวลา 05:00,
มีรถรับส่งรถโดยสารลง ถนน IHOP สำหรับอาหารเช้า
>> และจากนั้นไม่กี่วันต่อมา เป็น CS50 เรียกว่า fare--
ในตอนท้ายของการจัดนิทรรศการในภาคการศึกษา การเฉลิมฉลองของได้ไกลแค่ไหนจำนวนมากดังนั้น
ของ CS50 นักเรียนจะมาจาก สัปดาห์ที่ศูนย์ตลอดทางจนถึงสัปดาห์
และการเก็บรักษาไว้ในใจว่า 73% ของผู้ที่ เพื่อนร่วมชั้นและคุณปีนี้มี
ไม่เคยนำชั้น CS ก่อน
ในความเป็นจริงจะ reemphasize เท่าที่นี่ เป็นไม่กี่ใบหน้าเพิ่มเติมจากพนักงานของ CS50
ลำโพง 4: [ไม่ได้ยิน]
5 ลำโพง: [ไม่ได้ยิน]
ลำโพง 6: [ไม่ได้ยิน]
SPEAKER 7: [ไม่ได้ยิน]
ลำโพง 8: [ไม่ได้ยิน]
SPEAKER 9: [ไม่ได้ยิน]
>> ลำโพง 4: [ไม่ได้ยิน]
>> SPEAKER 10: [ไม่ได้ยิน]
SPEAKER 11: [ไม่ได้ยิน]
SPEAKER 12: [ไม่ได้ยิน]
SPEAKER 13: [ไม่ได้ยิน]
>> SPEAKER 14: [ไม่ได้ยิน]
>> SPEAKER 13: [ไม่ได้ยิน]
SPEAKER 15: [ไม่ได้ยิน]
SPEAKER 16: [ไม่ได้ยิน]
>> SPEAKER 11: [ไม่ได้ยิน]
5 ลำโพง: [ไม่ได้ยิน]
DAVID ลัน: บางส่วนของทีม เป็นตัวการช้อปปิ้งชั้นเรียน
แต่ถ้าบรรดาสมาชิก พนักงาน CS50 อยู่ที่นี่
อาจจะมาขึ้นเพื่อรอสักครู่
CS50 ของ TFS และ CAs และ [? พนักงาน?] สมาชิก here-- เหล่านี้เป็นเพียงไม่กี่
ของ faces-- หนึ่งในนั้นคุณเพียงแค่ เห็นและไม่กี่ other-- และอื่น ๆ น้อย
ยังคง.
เราไม่ไปข้างหน้าและช่วยให้ทำไม พวกคุณหยุดพักห้านาที
หากคุณจำเป็นต้องเป็ดออกไป เรียนร้านที่ดี
และในห้านาทีเราจะดำเนินการต่อ การดูที่ Scratch-- แรก
ของภาษาการเขียนโปรแกรมของเราตอบสนองความ พนักงานของหลักสูตรที่นี่บางมากขึ้น
และมุ่งเน้นในท้ายที่สุด ในการแก้ปัญหาการตั้งศูนย์
ดังนั้นเราจะกลับมาในห้านาที
>> ก็ดี
ดังนั้นเราจะกลับมา
และในส่วนที่เหลือของเรา วันนี้เวลาเป้าหมาย
คือการยกระดับสนามเด็กเล่น ในแง่ของคำศัพท์บาง
ในแง่ของความคิดบางอย่าง
เพราะแท้จริงเป็นต่อ บางส่วนของชาร์ตก่อนหน้านี้
มีเป็นไปได้ช่วงของ ระดับของประสบการณ์ในชั้นเรียน
บางส่วนของนักเรียนซึ่งมี นำมาเขียนโปรแกรมบางส่วนก่อน
บางคนไม่ได้
และอื่น ๆ ที่มีปัญหานี้เป็นครั้งแรก การตั้งค่าและด้วยภาษานี้เป็นครั้งแรก
เราไม่ได้มีโอกาสที่จะเริ่มต้น เพื่อใช้สำหรับการรับหลังจากวันนี้
บางคำศัพท์ที่พบบ่อยและความคิด
>> และเราจะทำเช่นนี้โดยวิธีการ languages​​-- แรกของหลักสูตร
นอกเหนือไปจาก C และ Python และ JavaScript และ SQL และ HTML และ CSS,
เราจะมุ่งเน้นไปในตอนแรก และเพียงแค่สำหรับปัญหาการตั้งศูนย์
กับภาษากราฟิกนี้เรียกว่า รอยขีดข่วนได้รับการพัฒนาโดย MIT Media Lab'S
ลงถนนที่จะช่วยให้ นักเรียนและเด็กโดยเฉพาะอย่างยิ่ง
แสดงออก algorithmically-- ในทางที่สอดคล้องกันมากขึ้นกับสิ่งที่
เราอาจเรียกการคิดคำนวณ
>> และมันเป็นภาษาที่มีประโยชน์เพราะ อย่างรวดเร็วในสัปดาห์ต่อไปในสัปดาห์หนึ่ง
เราไม่เปลี่ยนไปใช้มากขึ้น ภาษาดั้งเดิมและความลับที่เรียกว่า
C ซึ่งเป็นต้นฉบับเดิมอย่างหมดจด
คุณจะใช้แป้นพิมพ์ของคุณใน เพื่อที่จะเขียนคำแนะนำ
เช่นนี้บนหน้าจอ
แต่แม้ว่าคุณจะไม่เคยเห็น ภาษาการเขียนโปรแกรมมาก่อน
ในเวลาเพียง glancing ที่ นี้ทั้งหมดไม่ว่าจะเป็นความลับ
คุณอาจจะสามารถเดาว่า อาจจะพิมพ์ Hello World
แต่มีจำนวนมาก ค่าใช้จ่ายที่มีประโยค
มีกัญชาแปลกคือ สัญลักษณ์หรือแฮชแท็กขึ้นด้านบน
มีวงเล็บมุมบาง วงเล็บวงเล็บปีกกากึ่ง colon--
มีเพียงมากภาพ ไวยากรณ์ที่ได้รับในทาง
เราเริ่มต้นด้วยการเรียนการสอน รอยขีดข่วนเพื่อให้ได้รับ
ที่ผ่านมาทั้งหมดของผู้ที่มีความรู้ รบกวนจืด
และมุ่งเน้นแทนในความคิด
>> ในความเป็นจริงนี้อาจจะมีก่อน
นี้สำหรับเรื่องนี้จะเป็นสัปดาห์หลังจาก
นี้ในแบบกราฟิกนี้ Scratch ภาษา
เป็นวิธีที่คุณจะใช้ที่เดียวกัน program-- โปรแกรมที่เมื่อวิ่ง
เพียงแค่พูดว่า Hello World
และสิ่งที่ดีเกี่ยวกับการเกา ว่ามันเป็นการเขียนโปรแกรมแบบกราฟิกนี้
สภาพแวดล้อมที่ใช้ชิ้นส่วนปริศนาหรือ บล็อกว่ามีเพียงเชื่อมต่อกันด้วยกัน
ถ้ามันทำให้รู้สึกตรรกะที่จะทำเช่นนั้น
และมีรอยขีดข่วนคุณสามารถพัฒนา ภาพเคลื่อนไหวและเกมแบบโต้ตอบ
และศิลปะและจำนวนของสิ่งใด ๆ ที่ คุณอาจคิดในใจของคุณเอง
และดำเนินการได้อย่างง่ายดายด้วย ลากและวางชิ้นส่วนปริศนา
>> และแน่นอนเราจะมีความสามารถ ในการแสดงบางส่วนของความคิดเดียวกัน
ที่ผมกล่าวถึงเพียงสักครู่ ที่ผ่านมาในบริบทของไมค์สมิ ธ
และค้นหาสิ่งที่โทรศัพท์ book-- เช่นฟังก์ชั่นเพียงการกระทำ
สิ่งที่ชอบลูปที่ทำ สิ่งที่อีกครั้งและอีกครั้ง
ตัวแปรซึ่งเป็น สิ่งที่เราจะแนะนำ
แต่มันเป็นเรื่องที่คุ้นเคยอาจจาก algebra-- เพียงชนิดของตัวยึดบางส่วน
เพื่อเก็บค่าบางอย่างที่คุณอาจจะ ต้องแสดงออกบูลีน later--,
ที่เหล่านั้นใช่หรือไม่จริง คำถามที่ผิดพลาดจากก่อน
เงื่อนไขส้อมผู้ที่อยู่ใน road-- สาขาเหล่านั้นเพื่อที่จะพูด
แล้วมีบางคนชอบเล่น คุณสมบัติที่เราจะได้เห็นแม้วันนี้
เรียกว่าอาร์เรย์และกระทู้และ เหตุการณ์ที่เกิดขึ้นว่าแล้วเราก็จะกลับมายังมากกว่า
เวลาอยู่ในภาษาที่แตกต่าง
แต่รอยขีดข่วนช่วยให้เรา ในการสำรวจทั้งหมดเหล่านี้
ดังนั้นที่นี่ใน Scratch นี้สีม่วง บล็อกคือสิ่งที่ฟังก์ชั่นเป็นปกติ
จะมีลักษณะเหมือน
ชิ้นนี้จิ๊กซอว์สีม่วงที่มีบางส่วน คำพูดเช่นซึ่งเป็นการดำเนินการ
และจากนั้นก็อาจจะมี การโต้แย้งหรือ parameter-- วิธีการบางอย่าง
ของชนิดของการปรับแต่ง สิ่งที่ไม่บล็อก
เพื่อที่จะไม่ได้ก่อนกำหนดโดย MIT สิ่งที่บล็อกสีม่วงนี้กล่าวว่า
ในความเป็นจริงคุณจะเห็นใน ช่วงเวลาที่ฉันสามารถที่จะพิมพ์
คำที่เหมือนโลกสวัสดีหรือ สวัสดีเดวิดหรือสวัสดี Zamayla,
หรือสิ่งที่ฉันต้องการในการโต้แย้ง ปริศนาที่ piece-- กล่องสีขาว
ที่นั่น
ในขณะเดียวกันถ้าฉันต้องการห่วงเราจะ เห็นว่ามีชิ้นส่วนปริศนาว่า
มีลักษณะสีส้มเล็ก ๆ น้อย ๆ เช่นนี้
และรูปร่างของพวกเขาชนิดของการแสดงให้เห็นว่า สิ่งที่เกิดขึ้นครั้งแล้วครั้งเล่า
ในวงจร
>> ดังนั้นถ้าฉันห่อทักทายบล็อกโลก ด้วยการปิดกั้นตลอดไปในเกา
มันเป็นเพียงแค่จะให้พูดว่าสวัสดี โลกตลอดไปค่อนข้างอักษร
ในขณะเดียวกันมีอีก ประเภทของวงในรอยขีดข่วน
ว่าเราจะ see-- ซ้ำ block-- ที่ถ้าคุณ
รู้ล่วงหน้ากี่ครั้ง คุณต้องการวงที่จะดำเนินการ
จำกัด จำนวนครั้งใน fact-- คุณ สามารถระบุได้ว่าโดยการพิมพ์ในจำนวน
หรือแม้กระทั่งการเสียบตัวแปร เช่น X หรือ Y ที่เราจะเห็น
>> ในความเป็นจริงตัวแปรเช่น ผมในกรณีนี้ซึ่ง
เป็นชื่อสามัญสำหรับ ตัวแปรจำนวนเต็มที่
เพียงแค่เก็บ number-- จำนวนเต็มอาจจะ
การใช้บล็อกสีส้มนี้ที่นี่เพื่อ ตั้งค่าตัวแปรเช่นฉันให้เป็นศูนย์
นี่คือตัวอย่างที่เป็นสีเขียวของ นิพจน์บูลีนในรอยขีดข่วน
แม้ว่าลักษณะนี้เช่นคณิตศาสตร์ สูตรความไม่เท่าเทียมกันทางคณิตศาสตร์เช่นนี้
จริงๆมีนิพจน์บูลีน
นี้เป็นจริงหรือเท็จ
ฉันคือน้อยกว่า 50
มันเป็นอย่างใดอย่างหนึ่งใช่หรือไม่คำตอบ หรือคำตอบจริงหรือเท็จ
และเรามักจะเรียก นิพจน์บูลีนเหล่านั้น
และมันไม่จำเป็นต้องเป็น 50
มันอาจจะน้อยกว่า x, y มากกว่า Y เท่ากับ y--
จำนวนอื่น ๆ คำถามอาจจะถาม
>> ตอนนี้ได้อย่างรวดเร็วก่อนนี้อาจจะดู จู่ ๆ ก็ค่อนข้างหนาที่นี่และมันก็เป็น
แต่แนวคิดที่ชาญฉลาดก็ สวยที่คุ้นเคยจากก่อน
ถ้า x น้อยกว่าปีกว่าจะพูดเท่า
อื่นถ้า x มีมากขึ้น กว่าปีแล้วบอกว่าเท่า
อื่นพูด x เท่ากับ Y
ดังนั้นเราจึงมีตัวอย่าง มีของ scenario-- สาม
เพียง possibility-- x สามเป็นอย่างใดอย่างหนึ่ง มากกว่าน้อยกว่าหรือเท่ากับ
ดังนั้นเราจึงมีทางแยกสามทางในถนน
>> และแจ้งให้ทราบว่ามีอะไร Scratch here-- เย็น ดูเหมือนจะมีเพียงหนึ่งในปริศนา
ชิ้นส่วนในกรณีนี้หากบล็อกอื่น
และยังที่ดูเหมือนจะบ่งบอกถึงการที่คุณสามารถ มีเพียงทางแยกสองทางในถนน
คุณสามารถไปทางซ้ายหรือขวา ​​แต่ สิ่งที่เกี่ยวกับสถานการณ์ที่สามที่?
เกิดอะไรขึ้นถ้า x เท่ากับ Y?
ไม่ใช่เรื่องใหญ่.
ใช้ชิ้นส่วนจิ๊กซอว์หนึ่งใส่ อีกคนหนึ่งภายในของมัน
เพื่อสร้างความหมายเทียบเท่า หากอื่นถ้า else-- และตอนนี้คุณ
มีทางแยกสามทางของคุณในถนน
และการที่เราจะได้เห็น ชิ้นส่วนปริศนารอยขีดข่วน
สามารถยืดและเติบโตเพื่อให้ ในฐานะที่จะยัดเยียดสิ่งอื่น ๆ อีกในพวกเขา
คุณไม่จำเป็นต้องให้พอดี ทุกอย่างในขนาดเริ่มต้นของ
>> นี่คือสิ่งที่เราจะ เร็ว ๆ นี้เห็นจะเรียกว่าอาร์เรย์
มันเหมือน list-- วิธีการบางอย่าง การจัดเก็บข้อมูลหลายชิ้น
ในตัวแปรที่ไม่เพียงตัวเลข
เหล่านี้เราจะเห็นตัวแทนของ สิ่งที่เรียกว่ามัลติเธรด
ในความเป็นจริงทั้งหมดของคุณ แม็คและพีซีวันนี้
การสนับสนุนหลายเธรด ซึ่งหมายความว่าคุณสามารถอย่างแท้จริง
ทำในสิ่งที่หลายครั้ง
คุณสามารถมีโปรแกรม Microsoft Word ขึ้นมาใน เบื้องหน้าที่ทำงานเกี่ยวกับการเขียนเรียงความบาง
คุณอาจจะมีเบราว์เซอร์ ในการเปิดพื้นหลัง
G-mail หรือ Facebook หรือชอบ
คอมพิวเตอร์ของคุณสามารถทำสิ่งที่หลาย ๆ วันนี้เพราะมันเป็นแบบมัลติเธรด
และโปรแกรมที่พวกเขาอยู่ในใน โดยเฉพาะอย่างยิ่งนอกจากนี้ยังมีแบบมัลติเธรด
>> มีสิ่งที่เรียกว่าเป็นเหตุการณ์ที่เกิดขึ้น ดีในโลกของรอยขีดข่วน
แล้วมีวิธีที่มากเกินไปจะทำให้ ตัวเองชิ้นส่วนปริศนาของเราเองถ้าสิ่งที่
ไม่จริงที่มีอยู่ในล่วงหน้า
ดังนั้นขอกระตุ้นให้ดังต่อไปนี้
บางปีที่ผ่านมาเมื่อฉัน ค้นพบครั้งแรกเกา
เมื่อฉันเป็นจริง นักศึกษาที่สำเร็จการศึกษาที่ MIT เรา
ตัวเองถูกมอบหมายเพื่อให้การบ้าน
และฉัน implemented-- ซึ่งในการหวนกลับ
คือการตัดสินใจที่ดีมากเพราะมันเป็น เพลงโกรธมากที่สุดในโลก
เพื่อฟังสำหรับแปดชั่วโมง ขณะที่ทำงานใน homework-- ของคุณ
แต่สิ่งที่ผมเคยเรียกว่าออสการ์เวลา ซึ่งอาจจะเป็นเพลงที่คุ้นเคย
>> CS50s เจ้าของจอร์แดนฮายาชิซึ่งเป็นหนึ่งใน สมาชิกในทีมงานของเรามากขึ้นอาวุโส
ได้ปรับปรุงมันปี 2015 และ ตอนนี้ปี 2016 ตั้งแต่กลับมาในวันที่
ฉันมีเพียงแค่ทุกอย่างไป เข้าออสการ์ถังขยะ
ตอนนี้เราสนับสนุนการรีไซเคิลและการทำปุ๋ยหมัก
>> แต่การที่จะวาดภาพ ของสิ่งที่เราสามารถทำอะไรที่นี่
และเพื่อกระตุ้นให้บางส่วนของ ตัวอย่างที่ระดับต่ำกว่า
เราจะได้รับคนอื่น ๆ อาสาสมัครที่จะเพียงแค่มาขึ้น
และเล่นครั้งแรกของฉัน มอบหมายการบ้านเคย?
มาขึ้น
คุณชื่ออะไร?
>> HENRY: เฮนรี่
>> DAVID ลัน: เฮนรี่มาขึ้น
มาขึ้น
มุ่งหน้าไปทางใดทางหนึ่งและ คุณจะเห็นในช่วงเวลาที่
ฉันจะไปข้างหน้าและตี ธงสีเขียวในมือข้างขวาด้านบน
มุมซึ่งหมายความว่าไป
ไอคอนป้ายเล็ก ๆ น้อย ๆ จะไปพูดหยุด
และที่ว่าเมื่อคุณเริ่มต้น และหยุดโปรแกรม
ยินดีที่ได้พบคุณ.
ก็ดี
ดังนั้นเรากำลังจะไปดูคำแนะนำ บนหน้าจอในเวลาเพียงครู่เดียว
และเพียงแค่โดยการเล่นเกมนี้ ไม่กี่ seconds-- เชื่อใจฉัน
เราจะไม่ต้องการที่จะเล่น ทุกวิธีการ end-- ที่คุณจะทำ
รับความรู้สึกของสิ่งที่โปรแกรมไม่ได้
และมากกว่าเพียงแค่การมุ่งเน้นไปที่เฮนรี่ เป็นคนดีหรือไม่ดีในเกมนี้โฟกัส
และวิธีการที่มันถูกนำมาใช้โดยฉัน แต่เดิมแล้วโดยจอร์แดน
ในคำอื่น ๆ ที่เป็นตัวแปรหรือไม่
อยู่ที่ไหนลูปหรือไม่
ที่มีฟังก์ชั่นหรือไม่
และเราจะดูว่าเราไม่เห็น ผู้ที่อยู่ใต้ฝากระโปรง
>> เพียงแค่คลิกและลากถังขยะ ไปยังถังที่เหมาะสม
>> [เสียงเพลง]
ก็ดี
นั่นเป็นสิ่งที่ดีมาก
ทำไมเราไม่หยุดมันมี
ขอขอบคุณ.
ขอแสดงความยินดีกับเฮนรี่
ขอขอบคุณ.
>> [APPLAUSE]
>> แค่คิดว่าการแก้จุดบกพร่องของโปรแกรม
หากมีปัญหาสอง นาทีใน song-- แต่เพื่อให้
สิ่งที่เกิดขึ้นที่นี่จริงๆ?
ซับซ้อนเท่าที่มันอาจ เริ่มต้นที่จะดูเหมือนจะได้รับเมื่อเวลาผ่านไป
แน่นอนมากขึ้น สิ่งที่เริ่มลดลง
สิ่งที่น่าสนใจเกี่ยวกับ ชนิดของ example-- นี้
และเราจะเห็นเพียงไม่กี่ others-- คือว่าถ้าคุณ
มองผ่านความซับซ้อนหรือ ความซับซ้อนของเกม
มีอาคารที่ง่ายมาก บล็อกที่ play-- ทุกที่
ถ้าคุณกลั่นให้พวกเขาเหล่านั้น กลุ่มอาคารที่มีความสามารถเข้าถึงได้มาก
และ implementable แก่ตนเอง
ยกตัวอย่างเช่นมันเป็น รับบางเวลา แต่ฉัน
ค่อนข้างมั่นใจว่าสิ่งที่ผมเริ่มทำเมื่อ ทำให้เกมนี้เป็นครั้งแรก
คือผมได้อย่างสมบูรณ์เช่น procrastinated
ฉันไม่ได้มุ่งเน้นไปที่ทุกคนใน ตรรกะหรือชิ้นส่วนปริศนา
ฉันมุ่งเน้นไปที่กราฟิกและการหา โพสต์ถนนและถังขยะกระป๋อง
และทุกที่
แต่ผู้ที่จำเป็น ส่วนผสมในตอนแรก
และเมื่อฉันเสร็จ procrastinating และ ออกวางกรอบการทำงานที่ครอบคลุมการ
ผมจึงตัดสินใจให้ฉันเพียงแค่ทำให้ใครคนหนึ่ง ชิ้นส่วนของถังขยะตกจากฟ้า
และเราจะเห็นรอยขีดข่วน สนับสนุนสิ่งที่เรียกว่า
ตัวอักษรที่สามารถ sprites-- มีเครื่องแต่งกายที่แตกต่างกันเพื่อให้พวกเขา
ดูแตกต่าง.
>> และดังนั้นฉันใส่ถังขยะ เครื่องแต่งกายในหนึ่งเทพดาดังกล่าว
และฉันก็จำเป็นต้องใช้มัน จะลดลงมาจากฟากฟ้า
และดังนั้นจึงกลับกลายเป็นรอยขีดข่วน ชอบมากที่สุดการเขียนโปรแกรมภาษา
สนับสนุนหมายเลขสุ่มหรือ ตัวเลขสุ่ม pseudocode ทางเทคนิค
เพื่อที่ว่าโดยการลากและ วางชิ้นส่วนปริศนาบางอย่าง
ฉันก็สามารถที่จะมีถังขยะ มาจากทางด้านซ้ายในตอนแรก
แล้วครั้งต่อไปมันลดลงจาก ขวาและจากตรงกลาง
และทุกเกมไม่เป็นเพียงแค่ มีถังขยะที่ตกลงมาจากท้องฟ้า
คุณไม่สามารถชี้ไปที่มันหรือคลิกที่มัน
คุณไม่สามารถเปิดถังขยะ
คุณไม่สามารถทำอะไร
แต่มันก็เป็นขั้นตอนที่ทารก ไปสู่​​วิสัยทัศน์ที่ดีที่สุดของฉัน
>> และหลังจากนั้นที่จริงผม การดำเนินการบางอย่าง
ของการตรวจจับเพื่อที่ว่าถ้าคุณไม่คลิก และลากบนชิ้นส่วนของถังขยะ
มากกว่าถังขยะ, ออสการ์ ฝาจะเปิดและปิด
อะไรจะเกิดขึ้นกับถังขยะ แต่ อย่างน้อยฝาจะเปิดและปิด
ดังนั้นแล้วการตรวจสอบขั้นตอนที่สองของทั้งสอง
และนี่คือสิ่งที่เป็นไปได้ ที่สำคัญในปัญหาทั้งตั้งศูนย์
และในการเขียนโปรแกรมมากขึ้นโดยทั่วไปคือการ ใช้ขั้นตอนที่ทารกเหล่านี้มากโดยเจตนา
เพราะไม่เพียง แต่มันจะช่วยให้คุณสามารถ รู้สึกประสบความสำเร็จตรงไปตรงมามากขึ้น
quickly-- มันเป็น สิ่งที่แย่ที่สุดในโลก
เพื่อพยายามที่จะดำเนินการทั้งหมดของออสการ์เวลา แล้วชั่วโมงต่อมาตีธงสีเขียว
ไม่มีอะไรและทำงานคาดว่าเป็น เพราะที่คุณทำแม้กระทั่ง
เริ่มต้นในการแก้ปัญหาหรือ แก้ไขปัญหาโปรแกรมที่?
มันเป็นเพียงแค่การครอบงำ
>> และอื่น ๆ อย่างแท้จริงกอดความคิดนี้ ของการใช้ขั้นตอนทารก steps-- อีกครั้ง
และ again-- การสร้างขึ้น บางสิ่งบางอย่างที่ในท้ายที่สุด
จริงๆที่น่าประทับใจและซับซ้อน แต่ ตอนแรกไม่ได้เกือบเป็นอย่างมาก
ในความเป็นจริงเรามาทำเช่นนี้
ผมขอไปข้างหน้า and-- เกาตัวเอง ที่มีอยู่บนเว็บที่ Scratch.MIT.edu ที่
และคุณจะบอกว่าเป็น มากอีกครั้งในปัญหา
ตั้งศูนย์ข้อกำหนดสำหรับ ที่มีอยู่แล้วบนเว็บไซต์ของ CS50
>> แต่นี่คือสิ่งที่ตัวเองเป็นรอยขีดข่วน
และมีจริงๆเพียงแค่ สามส่วนหลัก ๆ
ที่ด้านซ้ายบนมี เป็นขั้นตอนที่เรียกว่า
นี้เป็นรอยขีดข่วน
เครื่องแต่งกายเริ่มต้นคือแมว
และนี่คือโลกสี่เหลี่ยม ซึ่งคุณสามารถ move-- ขึ้นลงซ้าย
ที่เหมาะสมและบางสิ่งอื่น ๆ
ที่อยู่ตรงกลางนี่คือหมวดหมู่ของเรา หรือพาเลทของชิ้นส่วนจิ๊กซอว์ของเรา
และสีที่แตกต่างกัน หมายถึงสิ่งที่แตกต่างกัน
และถ้าคุณกระตุ้นรอบคุณจะเห็น สิ่งที่ชอบลูปและเงื่อนไข
และตัวแปรและส่วนผสมอื่น ๆ
>> แล้วที่นี่เป็นพื้นที่สคริปต์
นี่คือที่ฉันสามารถลากและวาง บรรดาชิ้นส่วนปริศนาที่จะทำสิ่ง
เพื่อขอทำสิ่งนั้นอย่างใดอย่างหนึ่ง
ผมขอไปข้างหน้า and-- และฉันรู้ว่ามันอยู่ที่ไหน
ดังนั้นผมจะไปทันทีคลิกที่ ที่ฉันรู้ว่าสิ่งที่มีความพร้อมที่จะเป็นไปได้
แต่การชี้และคลิกและ poking รอบอย่างหลีกเลี่ยงไม่
ดังนั้นเมื่อธงสีเขียวคลิก สิ่งที่ฉันต้องการจะทำอย่างไร
ฉันจะทำเช่นนี้
ฉันจะลากปริศนาสีม่วงนี้ ชิ้นทักทายสองวินาที
และแจ้งให้เราซูมเข้า
>> และฉันจะมีการเปลี่ยนแปลงนี้ จะเป็นสิ่งที่ฉันต้องการให้ be--
Hello World สองวินาทีจะปรับ
ตอนนี้ผมกำลังจะไปคลิก ธงสีเขียวหรือถ้าผมต้องการจริงๆ
ฉันเต็มสามารถคัดกรองและจากนั้นกลับมา
มันก็จะทำให้ ทุกอย่างในหน้าต่างเดียว
กรีนเวิลด์ Hello flag--
ก็ดี
ไม่ใช่สิ่งที่น่าสนใจ
เพื่อให้ฉันไปข้างหน้าและทำเช่นนี้
ผมขอลองอีกหนึ่ง
เมื่อธงสีเขียว clicked-- ขอ ทำสิ่งที่ชอบเสียง
และสังเกตเห็นว่าออกมาจาก กล่องฟรีที่คุณได้รับ
เสียงแมวที่เป็นผีสางเริ่มต้น
ดังนั้นตอนนี้ให้ฉันไปข้างหน้าและ ตีธงสีเขียวในขณะนี้
>> [meowing]
>> อัล
ที่น่ารัก
ฉันเขียนโปรแกรม
ดังนั้นสิ่งที่ฉันได้ทำ?
นี้จะเทียบเท่าของโปรแกรม
มันเห็นได้ชัดง่ายสุด
มันไม่ได้จริงๆใช้เวลาทั้งหมดที่มาก ความพยายามและเอ็มไอทีได้มากที่สุดของการทำงาน
แต่เราเรียกฟังก์ชั่น
ฉันได้ใช้ฟังก์ชั่น
ผมได้ทำการกระทำบางอย่างโดยใช้เพียง ว่าชิ้นส่วนจิ๊กซอว์หนึ่งสีม่วง
>> ดีถ้าฉันต้องการจะทำ สาม meows ในแถว?
ให้ฉันไปข้างหน้าและทำสองและสาม
และแจ้งให้ทราบว่าเมื่อคุณ เลื่อนเมาส์ไปวางในบริเวณใกล้เคียงชิ้นส่วนจิ๊กซอว์
เส้นสีขาวเล็ก ๆ น้อย ๆ จะปรากฏขึ้น การจัดเรียงของสนามแม่เหล็ก
และมันจะสแนป ร่วมกันเมื่อคุณปล่อยให้ไป
ลองมาดูสิ่งที่เกิดขึ้นที่นี่
>> [meowing]
>> มีข้อผิดพลาดคือ
ฉันเท่านั้นที่ได้ยิน Meow
ทำไมว่าอาจจะมี?
ใช่?
ใช่.
เราไม่ได้จริงๆได้ยินมัน แต่นั่นคือสัญชาตญาณที่ดี
พวกเขากำลังเล่นทั้งหมดในเวลาเดียวกัน
ทำไม?
ดีคอมพิวเตอร์เป็นเพียงการไป ทำในสิ่งที่คุณบอกว่าจะทำอย่างไร
ดังนั้นถ้าคุณจะพูดว่าเสียงเล่น เล่นเสียงเล่นเสียง
แต่คุณไม่ได้บอกว่าจะเล่นจนกว่า คุณทำเสร็จแล้วเล่นจนกว่าคุณจะดำเนินการเสร็จแล้ว
มันจะพัดผ่าน โปรแกรมได้อย่างรวดเร็วจริงๆ
และไม่เพียง แต่สิ่งที่คุณบอกว่าจะทำอย่างไร
>> ดังนั้นที่จริงผมต้องแก้ไข ในสองวิธี
ฉันสามารถทำเช่นนี้ได้รับการกำจัดนี้
ผมขอลองปริศนาอื่น ๆ piece-- เล่น Meow เสียงจนสุก
แล้วลากสาม เหล่านี้และคลิกเล่น
>> [meowing]
>> มันไม่ได้จริงๆ very-- ขอบคุณ you-- ธรรมชาติมาก
ดังนั้นทำไมคุณไม่ปล่อยให้ I-- ฉันไปในการควบคุมที่นี่
ดี
รอคนที่สองและตอนนี้ให้ฉันกลับไป เสียงและเล่นเสียงจนสุก
และจากนั้นให้ฉันได้รับรอคนที่สอง
แล้วปล่อยให้ฉันไปและได้รับหนึ่ง เสียงมากขึ้นและที่นี่เราไป
>> [meowing]
>> เล็ก ๆ น้อย ๆ เป็นธรรมชาติมากขึ้น แต่ นี้ไม่ได้มีประสิทธิภาพมาก
เช่นเดียวกับที่ผมได้รับเบื่อทั้งหมดเป็น มันสั้นคลิกกลับมา
และจริงๆซ้ำ work-- ของฉัน คัดลอกสวยมากและวาง
แน่นอนถ้าฉันจะควบคุม คลิกหรือคลิกขวา,
ฉันจะได้คัดลอกและวาง
สิ่งที่จะเป็นดีกว่าสร้างจะใช้?
สิ่งที่คิดจากมาก่อนหรือไม่
>> ใช่ดังนั้นห่วง
และในความเป็นจริงถ้าเราแหย่ไปรอบ ๆ เราอาจพบว่าที่
ผมขอไปที่กิจกรรมหรือมากกว่าการควบคุม
ดังนั้น repeat-- ฉันทำไม่ได้ ต้องการให้เป็น 10 ครั้ง
ที่จะได้รับที่น่ารำคาญอย่างรวดเร็ว
แต่ผมจะทำซ้ำสามครั้ง
ผมขอกลับไปเสียงและ เล่นเสียงจนกว่าจะเสร็จ
ผมขอกลับไปควบคุม และเพียงแค่รอคนที่สอง
และแจ้งให้ทราบคุณอาจ คิดว่ามันไม่พอดี
อีกครั้ง แต่ถ้าสนามแม่เหล็กคุณให้มัน สแน็ปในสถานที่ที่มันจะเติบโตในการกรอกข้อมูล
มันเป็นสิ่งที่เล่นตอนนี้?
>> [meowing]
ตกลง.
ดี
และนี่คือสิ่งที่จะเรียกว่า โปรแกรมที่ยังถูกต้อง
มัน meowed สามครั้งอย่างเป็นธรรม ธรรมชาติ แต่มันได้รับการออกแบบที่ดีกว่า
ฉันใช้ความซ้ำซ้อนน้อย
ฉันไม่ได้คัดลอกและวางอะไร
ฉันเพียงแค่ใช้ความคิดที่ดี
>> ตอนนี้ยังคงไม่ได้ทั้งหมดที่ น่าสนใจที่มีรอยขีดข่วนไม่ได้ทำ
สิ่งใด
เพื่อขอทำอย่างอื่นแทน
ขอทำบางสิ่งบางอย่างไปตลอดกาล
และคุณรู้อะไรไหม
ดูเหมือนว่าการเคลื่อนไหวที่น่าสนใจ
ได้ขอให้เขาย้าย 10 ขั้นตอนและกดเล่นตอนนี้
>> ตกลง.
ดีที่เราสามารถทำได้ชนิดของการลาก เขากลับมาและเขาก็ยังคง
ทำงานเพราะเขาทำเช่นนี้ตลอดไป
ดังนั้นห่วงจะทำ สิ่งที่มันบอกว่าจะทำอย่างไร
แต่นี้ไม่ได้ทั้งหมดที่น่าสนใจว่า
ลงมือทำกันเถอะ.
ผมขอเพิ่มบล็อกการควบคุมและใช้อย่างใดอย่างหนึ่ง ของเงื่อนไขเหล่านั้นเป็นครั้งแรก
>> ดังนั้นมันจะย้าย 10 steps-- 10 จุด 10 พิกเซลบน screen--
แล้วก็จะถามคำถามนี้
หากสิ่งที่เป็นความจริงแล้วทำ สิ่งที่อยู่ภายในบล็อกนี้
ดังนั้นมันจะเปิดออกตรวจจับมีทั้ง พวงของ expressions-- บูลีน
คำถามใช่หรือไม่จริง เท็จ form-- ให้ฉันทำเช่นนี้
>> หาก touching-- แล้วมี นี้ลดลงน้อยลงเมนู
ฉันสามารถ parameterize มัน
หากสัมผัส edge-- ขอ ทำสิ่งที่ต้องการที่
ดังนั้นหากสัมผัส edge-- ให้ฉันกลับไปเคลื่อนไหว
และทำไมเราไม่เพียง หันไปรอบ ๆ 180 องศา?
ก็ดี
ดังนั้นตลอดย้าย 10 ขั้นตอน
หากคุณกำลังสัมผัส ขอบเลี้ยว 180 องศา
และที่ไม่สิ้นสุดของโปรแกรม เพราะคุณอยู่ในตลอดไปปิดกั้น
จึงจะไปอีกครั้งและ อีกครั้งและอีกครั้งและอีกครั้ง
ดังนั้นเรามาดูสิ่งที่เกิดขึ้น
ตกลง.
รถม้าชนิดเล็ก ๆ น้อย ๆ แต่ชนิดของเย็น
>> และเราสามารถเพิ่มนี้สิ่งที่โง่บาง ว่าจะไม่ทั้งหมดที่สติปัญญา
น่าสนใจ
แต่ถ้าเราตีเล็ก ๆ นี้ ไมโครโฟน button-- อุ๊ย
ให้ฉันทำความสะอาดนี้ขึ้น
ผมขอเพิ่มประสิทธิภาพนี้เป็น พวกเขาจะบอกว่าในทีวี
สะอาดขึ้นบันทึก ตอนนี้ไปถึงสคริปต์
>> และตอนนี้ให้ฉันไปเสียง
ผมขอให้มันชื่อ
ฉันจะเรียกสิ่งนี้ว่าอุ๊ย
และตอนนี้เล่นอุ๊ยเสียง
แจ้งให้ทราบว่าจะปรากฏใน ลดลงน้อยลงเมนู
มาดูกัน.
>> [OUCH]
>> [หัวเราะ]
แต่เราสามารถเปลี่ยนเสื้อของเขาเกี่ยวกับการบิน
เราสามารถเป็นสองเท่าที่น่ารำคาญ
>> [OUCH]
>> หรือถ้าเราทำให้มันเหมือน 1,000 ขั้นตอนที่ time--
>> ตกลง.
ดังนั้นเรากำลังจะออกจากที่หนึ่งเพียงอย่างเดียว
ดังนั้นอีกครั้งสร้าง blocks-- ฉัน เริ่มต้นด้วยสิ่งที่ง่ายสุด
แล้วฉันจะเพิ่มคุณลักษณะ เพิ่มคุณสมบัติให้เพิ่มคุณลักษณะ
และฉันไม่จำเป็นต้องกังวลเกี่ยวกับ วิธีการแรกของคุณสมบัติเหล่านั้น
ถูกนำมาใช้เป็นฉันยังคง สิ่งที่ชั้นบน
ดังนั้นในความเป็นจริงให้ฉันทำอย่างใดอย่างหนึ่งอื่น ๆ ที่นี่
ให้ฉันไปข้างหน้าและเปิดไฟล์ที่ ผมนำล่วงหน้าที่เรียกว่าแกะ
>> ดังนั้นจึงมีความแตกต่างกันเล็กน้อย ตัวละครที่มีลักษณะเช่นนี้
และแจ้งให้เราดูว่าฉันไม่สามารถ ทำอะไรบางอย่างโดยใช้เคาน์เตอร์
ในเรื่องนี้ case-- ตัวแปรที่เรียกว่า
ฉันจะไปข้างหน้าและภายใต้ Events-- ให้ฉันได้รับธงสีเขียวคลิก
ก็ขอให้ข้าไปที่ข้อมูลซึ่งฉันรู้ว่า จากการเล่นรอบก่อน
เป็นที่ที่มีตัวแปร
และฉันจะไปข้างหน้าและลากนี้
>> ดังนั้นตัวแปรที่เรียกว่าเคาน์เตอร์และ ฉันจะเริ่มต้นมันให้เป็นศูนย์
ฉันจะเรียกมันว่าอะไรเลย X หรือ Y หรือ z-- แต่ในการเขียนโปรแกรม
เรียกร้องบางสิ่งบางอย่างในความหมาย วิธีที่มีประโยชน์เช่นเคาน์เตอร์
ที่อธิบายว่ามันคืออะไรมันเป็น มากง่ายต่อการอ่านรห​​ัสของคุณในภายหลัง
ให้ฉันไปข้างหน้าและได้รับ ตลอดไปปิดกั้นที่นี่
และแจ้งให้เราไปที่รูปลักษณ์ หน้าและทำบล็อกพูด
แต่สิ่งที่ดีๆเกี่ยวกับตัวแปรคือผม ไม่ได้มีเพียงแค่พิมพ์ในบางสิ่งบางอย่าง
เช่น Hello World ซึ่งเราได้แล้ว ทำผมแทนสามารถไปที่ข้อมูล
และลากตัวแปรของฉันและแม้กระทั่ง แม้ว่ารูปร่างจะไม่มาก
ลักษณะเช่นนั้นควรจะพอดี มันจะเติบโตในการกรอกข้อมูล
และฉันก็จะบอกว่านับเป็นเวลาหนึ่ง spoiler-- second-- เขาจะนับ
เราจะบอกว่ามันสำหรับคนที่สอง
แล้วฉันจะไปและ มีเขารอหนึ่งวินาที
ดังนั้นจึงไม่นับขึ้นเร็วเกินไป
แล้วสุดท้ายเปลี่ยนเคาน์เตอร์ โดย one-- ในคำอื่น ๆ
เพิ่มเคาน์เตอร์โดยหนึ่ง มูลค่าเพิ่มและทำเช่นนี้ตลอดไป
>> ดังนั้นแกะเกินไปเช่น โปรแกรมเมอร์นับจาก 0
และถ้าเรารอนานพอ เขาจะทำเช่นนี้ตลอดไป
แต่ที่ไม่เป็นความจริงว่าเพราะ ในความเป็นจริงที่เราจะค้นพบในสัปดาห์หนึ่ง
จำนวนเต็มและคอมพิวเตอร์มากกว่าปกติ ในทางเทคนิคมีเพียง finite-- ดี
ค่อนข้างคอมพิวเตอร์เมื่อ พวกเขาเป็นตัวแทนจำนวนเต็ม
เพียง แต่มีจำนวน จำกัด บิต
ผู้ที่มีหลอดไฟ สามารถนับสูงมาก
ก่อนที่คุณจะออกจากหลอดไฟ
และคอมพิวเตอร์มากเกินไป เพียง แต่มีหน่วยความจำมาก
เพียง แต่มีทรานซิสเตอร์จำนวนมากดังนั้น ดังนั้นจึงสามารถนับสูงมาก
>> ดังนั้นจึงปรากฎว่าแกะ ผมคิดว่าสามารถนับถึง 2 พันล้าน
หรือสิ่งที่สวยขนาดใหญ่
ดังนั้นเราจึงไม่ได้ไป รอให้เรื่องนี้เกิดขึ้น
แต่ในที่สุดข้อผิดพลาดบางอย่างที่จะเกิดขึ้น ที่สามารถมีโลกแห่งความจริงบางอย่าง
เครือข่าย
แต่นอกเหนือจากแกะที่ เพียงแค่แนะนำตัวแปร
Let 's ไปข้างหน้าและเปิดขึ้น สิ่งที่ฉันทำล่วงหน้า
นี่เรียกว่าสัตว์เลี้ยง Cat-- สัตว์เลี้ยงแมวมากกว่าที่นี่
และแจ้งให้ทราบที่นี่มันกี่ บล็อก แต่เมื่อธงสีเขียว
คลิกตลอดไปทำดังต่อไปนี้
หากคุณกำลังสัมผัสเมาส์ pointer-- เพื่อให้เคอร์เซอร์บนหน้าจอ
เล่น arrow-- Meow เสียง แล้วรอสองวินาที
และเพียงแค่ทำเช่นนี้ตลอดไป
เพียงแค่รออย่างต่อเนื่อง เพื่อดูว่า pointer--
ถ้าแมวสัมผัสตัวชี้
>> ดังนั้นผมตีเล่น
สิ่งที่เกิดขึ้นไม่มีอะไร
แต่ที่ผมเลื่อนเคอร์เซอร์ไปแมว
>> [meowing]
>> และถ้าผมย้ายมันออกไปไม่ได้ ลูบคลำแมวอีกต่อไป
ดังนั้นบางตรรกะเงื่อนไข ซ้อนกันภายในวง
วิธีการเกี่ยวกับตัวอย่างนี้จงใจ เรียกว่าอย่าเลี้ยงแมว?
สิ่งนี้จะทำอย่างไร
>> [meowing]
>> คุณควรทำไมไม่เลี้ยงแมว?
>> [meowing]
>> ตกลง.
ดังนั้นนี่คือตัวอย่างของถ้าอื่น
มันเป็นจุดตัดสินใจและ เพราะนั่งอยู่ในวง
พวกเขาทั้งสองได้รับการตรวจสอบ
นี่คือความจริง?
และในที่สุดคนหนึ่งของ ผู้ที่จะไปใช้
และเพื่อให้คุณได้ยินทั้ง Meow หรือ เสียงคำรามของสิงโตในกรณีที่
>> ดีขอทำเล็กน้อยแฟนซีอีกหนึ่ง ที่ฉันทำล่วงหน้า too-- หัวข้อ
ดังนั้นด้ายเป็นเพียงหนึ่ง สิ่งที่คอมพิวเตอร์สามารถทำได้
ดังนั้นโปรแกรมแบบมัลติเธรดเป็นโปรแกรมที่ ที่สามารถทำสิ่งที่หลายครั้ง
และทั้งหมดของตัวอย่างเหล่านี้ ป่านนี้มี
เพียงหนึ่งสคริปต์เพื่อที่จะ speak-- โปรแกรมหนึ่งเช่นนี้ขึ้นที่นี่
แต่สังเกตเห็นโปรแกรมนี้ได้ สองสไปรท์, ตัวละครทั้งสอง
หนึ่งคือนก
หนึ่งคือแมว
>> และแจ้งให้ทราบเมื่อฉันคลิกที่เหล่านี้ลง ซ้ายพวกเขาแต่ละคนมีสคริปต์ของตัวเอง
หรือโปรแกรมที่เกี่ยวข้องกับพวกเขา
และทั้งสองของคนเหล่านั้น โปรแกรมแจ้งให้ทราบล่วงหน้าเริ่มต้น
กับ clicked-- ธงสีเขียวเมื่อ ให้ดูที่ cat--
เมื่อธงสีเขียวคลิก
และอื่น ๆ แน่นอนเมื่อกดเล่นตอนนี้ สองสิ่งที่กำลังจะเกิดขึ้นในครั้งเดียว
แมวและนกมีทั้ง กำลังจะได้ทำงานไปพร้อม ๆ กัน
เพื่อสร้างผลกระทบนี้
และคุณอาจคิดว่าเกิดอะไรขึ้น
มีห่วงและนกเป็น และแมวอยู่ในวง
นกเป็นเพียงการตีกลับเช่น ผมเป็นเมื่อก่อนผมบอกว่าอุ๊ย
แต่แมวอย่างชัดเจนมีความได้เปรียบ
มีการตรวจจับบล็อกอื่น ที่ชี้แมวจงใจ
นกในกรณีนี้ได้ที่นี่
เพื่อให้เราสามารถหยอกล้อกันโดยการมอง ผ่านบล็อกเหล่านั้นสิ่งที่เกิดขึ้น
แต่องค์ประกอบที่สำคัญที่นี่เป็นหนึ่งใน
นกเพื่อให้เกมนี้ไม่ได้ สมบูรณ์ boring-- หรือ animation-- นี้
เริ่มต้นที่ทิศทางแบบสุ่ม
และคอมพิวเตอร์คือการเลือก จำนวนระหว่าง 90 และ 180
เป็นหลักเพื่อที่จะเล็กน้อย นิเมชั่นที่แตกต่างกันในแต่ละครั้ง
>> และแจ้งให้ทราบแล้วนี่ถ้า แมวสัมผัสนกแล้ว
เล่นสิงโตสี่ sound-- เสียงคำราม
แต่ในขณะเดียวกันในนก จานนี้เรามีนี้
ตลอดกาลถ้าไม่ได้สัมผัสแมว เพียงแค่ให้ย้ายสามขั้นตอน
แล้วนี่เป็นชิ้นส่วนปริศนาอื่น
ถ้าคุณอยู่ในขอบเด้ง
ดังนั้นนกเป็นเพียงชนิดของ รังเกียจธุรกิจของตัวเอง
เพียงแค่บินไปรอบ ๆ และ ใหญ่และมันจริงๆ
แมวที่มีตรรกะเงื่อนไข เพื่อตรวจสอบว่ามันได้จับนก
ก็ดี
เพื่อขอทำคนอื่น ๆ ที่นี่ คนนี้ถูกเรียกว่าสวัสดีสวัสดีสวัสดี
และเป็นหนึ่งในที่นี่ก็ไม่ นี้ในวงตลอดไป
แต่ notice-- ทำอย่างไรเราจะหยุด โปรแกรมนี้น่ารำคาญมาก?
กดแถบพื้นที่
เพราะถ้าผมทำอย่างนั้น program-- ซ้ายมือ
แจ้งให้ทราบก็ต่อเนื่อง listening-- เป็นพื้นที่กดคีย์
ถ้าแถบพื้นที่กด และถ้าเป็นเช่นนั้นสิ่งที่ไม่ได้ทำอย่างไร
มันจะเป็นเทคนิคที่พบบ่อยมาก
ได้กำหนดตัวแปรเท่ากับค่าบางอย่าง
แต่มันสลับค่าที่
[? ดังนั้นลักษณะ?] ขึ้นอยู่กับผม shape--
มีตัวแปรที่ฉัน เขียนล่วงหน้าที่เรียกว่า
ปิดเสียงที่เพิ่งกล่าวว่าใช่หรือไม่
เป็นเสียงปิดเสียงหรือไม่?
ถูกหรือผิด?
และแจ้งให้ทราบผมบอกว่าถ้า this-- ออกเสียงเป็นศูนย์แล้วเปลี่ยนไปอย่างใดอย่างหนึ่ง
อื่นตั้งใบ้มันให้เป็นศูนย์
ดังนั้นเพียงแค่พลิกค่าจากศูนย์ถึงหนึ่ง
ฉันสามารถมี done-- เปลี่ยน 2-3 และ 3-2
หรือ 4-5 หรือ 4-6
แต่มันไม่สำคัญ ว่าตัวเลขที่ผมใช้
ตราบใดที่ฉันให้ เปลี่ยนมันตรงข้าม
>> และส่วนใหญ่โปรแกรมเมอร์ใด ๆ ที่จะเป็นเพียงแค่ เลือกศูนย์และ one-- เท็จและจริง
ออกและ on-- เพื่อเป็นตัวแทนนี้
และสิ่งนี้จะยังคงทำงาน
ถ้าผมตีแถบพื้นที่อีกครั้ง
>> [ซีล SOUNDS]
>> โปรแกรมจะยังคงทำงานอยู่
เพราะมีสคริปต์อื่น ๆ ที่บอกว่าตลอดไปทำต่อไปนี้
ถ้าตัวแปรออกเสียงเท่ากับ zero-- ดังนั้นหากคุณไม่ได้ปิดเสียง
เป็น logic-- ถ้ามันเป็นเท็จ หรือไม่มีเลยแล้วเล่นเสียง
เพราะคุณไม่ได้ปิดเสียง
คุณควรจะเล่นเสียงแล้ว คิด Hi Hi Hi สองวินาที
แล้วรอและทำมันได้ อีกครั้งและอีกครั้งและอีกครั้ง
>> และอื่น ๆ ในลักษณะนี้เราจะมีวิธีการหา คน to-- สำหรับโปรแกรมในการโต้ตอบ
และพวกเขาจะได้ไม่ต้อง จะเป็นวันที่คนอื่น ๆ
ในความเป็นจริงโผล่ around-- ไม่มีเล่นสำนวน intended--
ใครบางคนใช้เวลาเป็นจำนวนมาก เวลาบนอินเทอร์เน็ตการดำเนินการ
PokemonGo ในรอยขีดข่วน
มันยัง geolocates คุณ เคมบริดจ์หรือ Allston ที่นี่
ดังนั้นถ้าคุณต้องการที่จะเห็นสิ่งที่ผู้คนมากเกินไป สามารถทำได้คือ this-- เมนูแฟนซีมาก
คลิกที่นี่
>> นี่คือฉันด้วยปุ่มลูกศรของฉันตอนนี้
ฉันจะไปหลังจากนี้
คลิก.
และตอนนี้คุณคลิก pokeball
ฉันหมายความว่าฉันคิดว่าคุณ ควรจะคลิก pokeball
ก็ดี
ดังนั้นฉันไม่ว่า
ฉันสามารถไปกว่าที่นี่
และสมาชิกผู้นี้ดำเนินการเพิ่มเติมบางส่วน Pokeballs กว่า here-- สาม Pokeballs
>> เราจะโพสต์ลิงค์ที่จะถึงนี้ ออนไลน์เพื่อให้คุณสามารถเล่น
แต่สังเกตเห็นมีเพียง บางสร้างพื้นฐาน
มันดูมากนักเล่นและมันก็เป็น
นี้เป็นที่น่าประทับใจและอื่น ๆ กว่าที่เราจะมักจะ
คาดหวังอย่างแน่นอนสำหรับปัญหาการตั้งศูนย์
ฉันมีความคิดนานแค่ไหน สมาชิกผู้นี้ใช้เวลาออนไลน์
แต่มันก็แค่ห่วง
มีการเล่นเสียง
มีชนิดของห่วงเป็นบางส่วน สำหรับฟังว่าฉัน
กดปุ่มลูกศรขึ้นหรือลง ลูกศรหรือด้านซ้ายและด้านขวา
แล้วถ้าเป็นเช่นนั้นก็ย้าย มันจำนวนของพิกเซลที่บาง
แล้วถ้าผมคลิก เทพดาอื่นมี
ชนิดของถ้าเงื่อนไขบางอย่างมี
ใช่นี้จะได้รับรุนแรงเกินไป
เรากำลังจะหยุด
มันคือทั้งหมดที่ผู้สร้างพื้นฐาน
ไม่มีส่วนผสมอื่น ๆ อื่น ๆ กว่าคนที่เราได้ตรวจสอบแล้ว
>> และยังอยู่ที่นี่ให้ฉันทำ หนึ่งชุดสุดท้ายของตัวอย่าง
ที่วาดภาพมากเกินไป ของคุณสามารถทำอะไรที่นี่
นี่เป็นโปรแกรมที่ง่ายมากที่ ก็ไม่ this-- ไอ, ไอ, ไอ
และขึ้นอยู่เฉพาะในสิ่งที่ เราได้มองที่ป่านนี้
ซึ่งเป็นที่เห็นได้ชัด โอกาสในการปรับปรุง
โปรแกรมนี้เป็นโปรแกรมที่ถูกต้อง
มันไอสามครั้ง ซึ่งเป็นสิ่งที่ผมตั้งใจ
แต่การดำเนินการต่ำ
มันออกแบบมาไม่ดี
ทำไม?
ใช่.
มันไม่ได้เป็นห่วง
และก็ไม่ได้มาก ว่ามันไม่ห่วง
มันเป็นเรื่องที่มีจำนวนมากของการซ้ำซ้อน
มีการคัดลอกและ รหัสวางเพื่อที่จะพูด
และวิธีการแก้ปัญหาอาจ ย่อมเป็นห่วง
เพื่อให้ฉันไปข้างหน้า และปรับปรุงตามที่
และฉันจะลากเหล่านี้มากกว่าที่นี่
ให้ฉันไปข้างหน้าและได้รับซ้ำ บล็อกเปลี่ยนเป็นสาม
ฉันจะโยนออกไป บางส่วนของบล็อกที่
>> และคุณจะสังเกตเห็นว่ามันใช้งานง่ายสวย
คุณสามารถลากและวางและสิ่ง ปรากฏและหายไปในที่สุด
และฉันก็สามารถลากในที่นี่และ ตอนนี้ผมมีรุ่นที่ยังคงทำความสะอาด
แต่คุณรู้อะไรไหม
มีโอกาสนี้เป็น ตอนนี้สำหรับ abstraction--
ที่จะเริ่มต้นในการกำหนดคำศัพท์ใหม่ ที่เอ็มไอทีไม่ได้คาดหวัง
มีรอและทำซ้ำ และตลอดไปและถ้า
แต่ถ้าอยากจะแนะนำ ไอ Word เป็นบล็อกหรือไม่?
ถ้าฉันต้องการชิ้นส่วนจิ๊กซอว์ วัตถุประสงค์ที่มีในชีวิตคือการไอ?
>> ดีให้ดูที่รุ่นนี้ ที่นี่ซึ่งผมทำดังต่อไปนี้
อย่างน่าอัศจรรย์ผมได้สร้าง ชิ้นส่วนปริศนานี้ที่นี่
ซึ่ง Scratch ช่วยให้คุณทำ
และแน่นอน C และ Python และ JavaScript เป็น
จะช่วยให้คุณสามารถทำเช่นนี้ได้เป็นอย่างดี
คุณสามารถสร้างของคุณเอง ชิ้นที่คุณโทรหาสิ่งที่คุณต้องการ
ในกรณีนี้ไอรู้สึก เช่นคำนิยามที่เหมาะสม
แล้วที่มีชิ้นส่วนเหล่านี้ลง ที่นี่คุณสามารถกำหนดมันหมายถึงอะไร
>> ผมลากและลดลงจาก จานนี้ here-- เพิ่มเติม
blocks-- นี้สีม่วงขนาดใหญ่ บล็อกที่ผมพิมพ์ในไอ
เป็นชื่อของชิ้นส่วนปริศนาใหม่ของฉัน
แล้วฉันพูดทุกครั้งที่ผู้ใช้ เรียกชิ้นส่วนจิ๊กซอว์ไอใหม่นี้
ทำพูดและรอ
และอื่น ๆ ขึ้นที่นี่ในบล็อกซ้ำของฉัน ฉันสามารถไอสามครั้ง
>> และฉันจะยืนยันโดยเฉพาะอย่างยิ่ง ถ้าตอนนี้คุณซ่อนรายละเอียดนี้
ใครสนใจวิธีการไอจะดำเนินการ?
ทั้งหมดที่ฉันดูแลเกี่ยวกับการเป็น โปรแกรมเมอร์ที่ฉันสามารถไอ
ฉันไม่สนใจวิธีการที่บอกว่าจะดำเนินการ
ฉันเพียงแค่สนใจว่า แมวสามารถพูดอะไรบางอย่าง
ฉันสามารถนามธรรมออกไปที่รายละเอียดและ เพียง แต่มุ่งเน้นสิ่งที่อยู่บนหน้าจอที่นี่
แต่ฉันสามารถใช้เวลานี้หนึ่งก้าว
>> ขอให้สังเกตว่าที่นี่ผมมี ดำเนินการวงสามครั้ง
แต่สิ่งที่ถ้าแทนฉันคว้ารุ่นนี้?
และสิ่งที่ถ้าแทน ในรุ่นนี้ที่นี่
ฉันเพียงแค่เปลี่ยนชิ้นส่วนจิ๊กซอว์ของฉันที่จะใช้ ข้อโต้แย้งและใส่พวกตัวเอง?
และใส่ที่สามารถ จำนวนเช่นสาม
ดังนั้นตอนนี้ถ้าผมเขียนโปรแกรม และฉันต้องการแมวไอ
ที่จริงผมสามารถบอกปริศนา ชิ้นกี่ครั้งไอ
เพราะที่ด้านล่างนี่เป็นนักเล่น รุ่นของเหล่านี้ชิ้นส่วนปริศนาที่กำหนดเอง
ให้ผมระบุว่า ไอจริงจะ
input-- ใช้เวลาโต้แย้งเช่นนี้
และคุณรู้อะไรไหม
บางทีฉันตระหนักดีรอสักครู่
อาการไอเป็น same-- มันเป็นพื้นฐาน
ความคิดเช่นเดียวกับจาม
มันเป็นเพียงที่แตกต่างกัน คำบนหน้าจอ
ฉันสามารถนามธรรมออกไป และดำเนินการต่อไป
นี้รุ่นสุดท้ายของ ไอซึ่งได้อย่างรวดเร็วก่อน
เป็นวิธีที่ซับซ้อนมากขึ้นมอง
แต่สังเกตเห็นสิ่งที่ผมทำ
ฉันมีตอนนี้ generalized-- genericized really-- ชิ้นส่วนปริศนานี้
จะเรียกว่าพูดครั้งคำ n
>> และตอนนี้ฉันมีสองชิ้นส่วนปริศนาใหม่ ลงที่นี่กำหนดไอ n ครั้ง
และสิ่งที่ไม่ฟังก์ชั่นไอทำอย่างไร
อะไรชิ้นส่วนจิ๊กซอว์ของฉันที่กำหนดเองทำอย่างไร
มันก็เรียกบล็อกพูด, ผ่านในคำที่ฉันต้องการจะบอกว่า
ผ่านในจำนวน ครั้งที่ฉันอยากจะบอกว่า
เพราะตอนนี้ผมสามารถใช้ จามโดยเพียงแค่พูด Achoo,
ในกรณีนี้จำนวนครั้งบาง
>> และดังนั้นฉัน layering และ layering
และอีกครั้งที่สำคัญที่นี่ไม่ได้ วิธีการที่ฉันนำมาใช้ แต่ความเป็นจริง
ว่าถ้าผมเป็นเพียงแค่ตัวอักษร ย้ายเหล่านี้ออกจากหน้าจอ
ดูวิธีง่ายๆถ้าไม่ได้ สวยโปรแกรมของฉันตอนนี้ดูเหมือน
เพราะสิ่งที่มันไม่ กล่าวว่าฉันได้ใจลอย
ออกไปสิ่งที่อยู่ภายในกล่องสีดำที่ มันเกิดขึ้นเป็นกล่องสีม่วงที่นี่
แต่ฉันได้บดบังออกไปสิ่งที่อยู่ภายใน เพราะฉันไม่สนใจวิธีการทำงาน
ฉันเพียงแค่ดูแลในขณะนี้ว่าการทำงาน
>> และแน่นอนในปัญหา ตั้งศูนย์ตรงนี้เป็น
ชนิดของการฝังรากลึกของความคิดที่คุณจะ มีโอกาสที่จะสำรวจ
มันตรงโอกาสที่จะ ใช้เทคนิคการแก้ปัญหา
กับสิ่งที่อาจจะ สภาพแวดล้อมที่ไม่คุ้นเคย
และไม่ว่าคุณไม่ได้ตั้งโปรแกรม ก่อนหรือโปรแกรมก่อน
คุณจะพบว่ามี บางสิ่งบางอย่างเล็ก ๆ น้อย ๆ
ในสภาพแวดล้อมนี้สำหรับทุกคน
และมีปัญหาการตั้งค่า หนึ่งในเวลาหนึ่งสัปดาห์ที่
เราจะมุ่งเน้นไปที่เปลี่ยนไป ในภาษาระดับสูงที่เรียกว่า
C-- หรือค่อนข้างต่ำ ภาษาระดับที่เรียกว่า
C-- ที่มากยิ่งขึ้น ที่มีประสิทธิภาพแม้ว่ามันจะเป็น
เล็ก ๆ น้อย ๆ ที่เป็นความลับมากขึ้นได้อย่างรวดเร็วก่อน
>> และคุณจะตระหนักต่อ TL วันนี้: DR, ว่าปัญหานี้มีการตั้งค่าที่สั้นกว่า
หน้าต่างของเวลากว่าคนในอนาคตเพียง เพราะคุณควรจะพบว่ามันเป็นธรรม
สามารถเข้าถึงได้
และไม่ต้องกังวลถ้า คุณเพิ่มระดับปลาย
เราจะอยู่ที่อีกไม่นาน
และก่อนที่เราจะเลื่อนสำหรับเค้กขอ จบด้วยเพียงแค่รูปลักษณ์ที่สองนาที
สิ่งที่รอคุณอยู่ที่นี่ใน CS50
[เสียงเพลง]
ก็ดี
นั่นมันสำหรับ CS50
เราจะเห็นคุณเร็ว ๆ นี้
เค้กเสิร์ฟในขณะนี้
[เสียงเพลง]
SPEAKER 17: คุณเคยได้ยิน ของแต่งหัวหน้า?
SPEAKER 18: บางทีอาจจะมี มากขึ้นภายใต้ฝากระโปรง