[เสียงเพลง] นี่คือ 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-- แรก ของภาษาการเขียนโปรแกรมของเราตอบสนองความ พนักงานของหลักสูตรที่นี่บางมากขึ้น และมุ่งเน้นในท้ายที่สุด ในการแก้ปัญหาการตั้งศูนย์ ดังนั้นเราจะกลับมาในห้านาที [APPLAUSE] ก็ดี ดังนั้นเราจะกลับมา และในส่วนที่เหลือของเรา วันนี้เวลาเป้าหมาย คือการยกระดับสนามเด็กเล่น ในแง่ของคำศัพท์บาง ในแง่ของความคิดบางอย่าง เพราะแท้จริงเป็นต่อ บางส่วนของชาร์ตก่อนหน้านี้ มีเป็นไปได้ช่วงของ ระดับของประสบการณ์ในชั้นเรียน บางส่วนของนักเรียนซึ่งมี นำมาเขียนโปรแกรมบางส่วนก่อน บางคนไม่ได้ และอื่น ๆ ที่มีปัญหานี้เป็นครั้งแรก การตั้งค่าและด้วยภาษานี้เป็นครั้งแรก เราไม่ได้มีโอกาสที่จะเริ่มต้น เพื่อใช้สำหรับการรับหลังจากวันนี้ บางคำศัพท์ที่พบบ่อยและความคิด และเราจะทำเช่นนี้โดยวิธีการ 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: บางทีอาจจะมี มากขึ้นภายใต้ฝากระโปรง