[เล่นเพลง] [MUSIC - รอสซินี "RANZ DES Vaches "จาก William Tell] เพลง [- BEAT อังกฤษ, "มีนาคม ของหัวหมุน "] [APPLAUSE และเชียร์] DAVID ลัน: ดังนั้นนี่คือ CS50 ชื่อของฉันคือเดวิดลัน และ 73% ของคุณไม่มีประสบการณ์ก่อน กับวิทยาศาสตร์คอมพิวเตอร์, ตรงกันข้ามกับสิ่งที่คุณอาจคิดว่า ดังนั้นวันนี้เราคิดว่าเราจะเศษเล็กเศษ ที่การขาดความคุ้นเคย แต่ยัง ให้ความรู้สึกของสำหรับบรรดาของคุณ ด้วยความสะดวกสบายมากขึ้นซึ่งทิศทาง คุณสามารถไปที่ภาคการศึกษานี้ ดังนั้นขอเริ่มต้นด้วยนี้ ผมมีความคิดว่ามีอะไรอยู่ข้างในไม่ คอมพิวเตอร์แม้ว่าเช่นคุณผม ใช้ทุกวัน แต่มันเป็นชนิดของกล่องบางและมี ไม่ได้หลายปัจจัยเป็นมัน อย่างน้อยที่สุดที่มีสิ่งที่? อาจสายไฟ และแน่นอนกับเรื่องนี้หนึ่งส่วนผสม, ไฟฟ้าที่เราดูเหมือนจะเป็นความสามารถในการ ทำค่อนข้างบิตวันนี้ แต่ในตอนท้ายของวันที่เรา ต้องเป็นตัวแทนของสิ่งที่ ที่เราดูแลเกี่ยวกับ เราต้องเป็นตัวแทนของข้อมูล ในรูปแบบบาง และคุณอาจจะอยู่ที่อย่างน้อยคลุมเครือ คุ้นเคยกับความคิดโดยไบนารีหรือ บิตอย่างใดหรืออื่น ๆ ที่เครื่องคอมพิวเตอร์ ลดลงเหลือศูนย์และคน แต่เราสามารถที่จะโอบกอดและอย่างน้อย ใส่บิตของแสงที่? ดังนั้นผมจึงมีเล็ก ๆ น้อย ๆ เหล่านี้ โคมไฟโต๊ะทำงานที่นี่ ฉันมีเต้าเสียบไฟฟ้าที่นี่ และฉันจะนำเสนอภายในว่า จากคอมพิวเตอร์ของฉันอย่างน้อยหนึ่งคือ สิ่งเหล่านี้เป็นสิ่งที่มีความสามารถ ของการถูกเปิดหรือปิด ในกรณีนี้มันแน่นอนโคมไฟตั้งโต๊ะ, แต่ในระดับที่ต่ำมันบางอย่าง ที่เรียกว่าทรานซิสเตอร์ แต่ในโลกของเรามันเป็นโคมไฟตั้งโต๊ะดังนั้น ฉันจะไปข้างหน้าและเสียบนี้ เป็นไฟฟ้าของฉันที่นี่ และผมก็เรียกร้องว่าการใช้ง่ายๆเหล่านี้ได้ อุปกรณ์ง่ายนี้สวิตช์ง่ายฉัน สามารถเป็นตัวแทนของข้อมูล ยกตัวอย่างเช่นตอนนี้ผม ที่เป็นตัวแทนของอะไรใช่มั้ย? ผมเป็นตัวแทนของสิ่งที่ฉันจะโทร 0 หรือ เท็จตรงข้ามของบางสิ่งบางอย่าง เป็นจริงในปัจจุบัน แต่ถ้าฉันเพียงแค่เปิดสวิตช์นี้ ตอนนี้ฉันได้เป็นตัวแทน 1 ดังนั้นการใช้ชิ้นนี้ง่ายมากของ หน่วยความจำถ้าคุณจะสามารถเป็นตัวแทนของผม ข้อมูล ตอนนี้โชคไม่ดีที่คอมพิวเตอร์ของฉัน ไม่สามารถทำสิ่งที่มาก มันสามารถเป็นตัวแทนของสองค่า ในโลกทั้ง - 0 หรือ 1 แต่สิ่งที่แก้ปัญหาที่เห็นได้ชัดว่าตอนนี้ ถ้าเราต้องการที่จะขยายของเครื่องคอมพิวเตอร์ของเรา เป็นตัวแทนของหน่วยความจำและอื่น ๆ มากกว่าเพียงแค่ 0 และ 1? ดีขอคว้าอีกเช่นบิต Let 's คว้าสวิทช์อื่นอีก ทรานซิสเตอร์ แต่คุณต้องการ คิดเกี่ยวกับมัน ให้ฉันไปข้างหน้าและเสียบนี้ ลงในเครื่องคอมพิวเตอร์ของฉันเช่นกัน และฉันจะเรียกร้องในขณะนี้ว่า การใช้ไฟฟ้ามากขึ้นอีกนิดและ หันของสวิตช์เหล่านี้และ ปิดผมสามารถเป็นตัวแทนดังกล่าวมากขึ้น ข้อมูล ดังนั้นตอนนี้นี้คือ 1 ถ้าต้องการขณะนี้เป็นตัวแทนของ 2 ฉันจะทำเช่นนี้ แต่โดยทั่วไปแล้วการประชุมที่เราจะ ในที่สุดก็เห็นจะมีฉันทำเช่นนี้ ดังนั้นนี่คือ 0 นี้เป็น 1 นี้จะเป็น 2 และไม่น่าแปลกใจนี้จะเป็น 3 ดังนั้นในวิธีนี้ยังสามารถ เรานับได้ดียิ่งขึ้น? ถ้าฉันได้รับบิตที่สาม, สวิทช์ที่สาม จำนวนมากที่สุดที่จะทำได้ในขณะนี้เป็นสิ่งที่ นับถึงจาก 0? 7 ดังนั้นถ้าฉันเริ่มที่ 0 ใช่มั้ย? เพราะถ้าฉันเปิดไฟนี้และ จริงเสียบนี้สามและครั้งสุดท้าย แสงเป็นซ็อกเก็ตไฟฟ้าของฉันที่นี่, แล้วฉันมีความสามารถในการเป็นตัวแทนของ ใด ๆ ของสองค่าที่นี่สองค่า ที่นี่สองค่าที่นี่ - และเพื่อให้สามารถเป็นตัวแทนของครั้งที่ 2 ครั้งที่ 2 2 หรือแปดค่าที่เป็นไป และถ้าฉันเริ่มต้นการบัญชีที่ 0 ดังนั้น ที่ 0, 1, 2, 3, 4, 5, 6, 7 ดังนั้นไบนารีนี้ จริงๆมันเป็นง่ายๆเป็นว่า และผมยืนยันว่านี้เป็นจริง ค่อนข้างคุ้นเคยให้มากที่สุด ทุกคนในห้องนี้ ให้ฉันไปข้างหน้าและเปิด แก้ไขข้อความเล็ก ๆ น้อย ๆ ที่นี่ และคุณอาจจำจากโรงเรียนเกรด ว่าเรามีสิ่งที่ต้องการหลายร้อย สถานที่, สถานที่สิบ และคนที่เป็นสถานที่ที่ และจำได้ว่าหากคุณมีทศนิยมบาง จำนวนเช่นเดียวกับบางสิ่งบางอย่างสุ่ม เช่น 123, คุณจะเป็นหลัก เขียนว่าออกในรูปแบบ ของทั้งสามคอลัมน์ และเป็นเหตุผลที่ 1, 2, 3 สิ่ง เรารู้ว่าเป็น 123 ทั้งในคอลัมน์ซ้ายสุดเรามี หนึ่ง 100 บวกสอง 10s เพื่อที่ว่า 120, บวกสาม 1s เพื่อที่ว่า 123 ตอนนี้โลกที่เราเพียงแค่สว่างนี้ เป็นเหมือนกับ คุณเคยคุ้นเคยกับปีที่ผ่านมา, ยกเว้นตอนนี้คอลัมน์ของเรา ไม่ได้ 10 ยกกำลัง พวกเขากำลังเพียงอำนาจจาก 2 ดังนั้นในขณะที่สถานที่นี้ เป็นไปได้ที่เจ้าตัวนี้เป็น จะเป็นสถานที่ที่สี่ และเพราะฉันเป็นเพียงการใช้ที่ง่าย ของกลไกที่จะทำให้สิ่งที่ และปิด - ไฟฟ้าไหล หรือกระแสไฟฟ้าไม่ไหล - ฉันไม่ค่อนข้างมีความหมายเดียวกัน เป็นช่วง 0 ถึงเก้า เราจะให้มันง่ายสุด ในโลกของคอมพิวเตอร์นี้ ฉันมีเพียงแค่ 0 หรือ 1 - หรือปิด, เท็จหรือจริง และเพื่อให้สิ่งที่ฉันแสดงสิทธิในขณะนี้ 1, 1, 1, เพราะแต่ละเหล่านี้ ไฟส่องสว่าง ดีที่จะช่วยให้ฉันหนึ่งบวกหนึ่ง 4 2 ดังนั้น ที่ 6 บวกหนึ่ง 1 และที่ 7 และ Ergo ไม่ลำดับของสามนี้ บิตเป็นตัวแทนของหมายเลข 7 ดังนั้นเวลานี้ภายในของคุณ คอมพิวเตอร์มีจำนวนการใด ๆ ทรานซิสเตอร์จำนวนบิตใด ๆ แต่ในตอนท้ายของวันที่เรา สามารถเป็นตัวแทนของข้อมูล เป็นเพียงเป็นที่ ตอนนี้โชคไม่ดีที่เราได้นับเฉพาะ ถึง 7 ใน CS50 ป่านนี้ แต่ หวังว่าเราสามารถทำบิต ที่ดีกว่านั้น และแน่นอนที่เราสามารถทำได้ สมมติว่าเราเป็นเพียงมนุษย์ ตัดสินใจโดยพลการที่เราจะไป ที่จะเชื่อมโยงตัวเลขเช่น 1 และ 2, 3, 4, 5, 6, 7, ด้วยตัวอักษรที่เฉพาะเจาะจงของ ตัวอักษร และสำหรับเหตุผลทางประวัติศาสตร์ฉันจะไป เริ่มต้นค่อนข้างพล แต่ฉัน จะไปบอกว่ามนุษย์เราจะไป ตัดสินใจที่เป็นมาตรฐานทั่วโลกว่า 65 หมายถึงจำนวนตัวอักษร A. 66 จะเป็นตัวแทนของบีดอทจุดจุด 90 จะเป็นตัวแทนของซีจดหมาย และให้คิดว่าถ้าเรานำบางส่วน คิดว่าเป็นมันเราสามารถขึ้นมา กับตัวเลขสำหรับเครื่องหมายอัศเจรีย์ และตัวอักษรตัวพิมพ์เล็กและแน่นอน คนอื่น ๆ ได้กระทำที่สำหรับเรา ดังนั้นตอนนี้เรามีบิตที่เราสามารถ ตัวเลขที่เป็นตัวแทนของตัวเลขที่ เราสามารถเป็นตัวแทนของตัวอักษรและด้วย เราสามารถตัวอักษรตอนนี้เริ่มเขียน อีเมลและตัวอักษรพิมพ์ บนหน้าจอ เพื่อให้ฉันเชิญถ้าฉันทำได้ แปดอาสาสมัครผู้กล้าหาญ - ที่ไม่คิดที่ปรากฏไม่เพียง แต่ ในกล้อง แต่บนอินเทอร์เน็ต - ที่จะเกิดขึ้นที่นี่และเป็นตัวแทนของแปดดังกล่าว บิตมากกว่าที่สามเหล่านี้ ดังนั้นวิธีการเกี่ยวกับหนึ่งสอง? วิธีการเกี่ยวกับสาม? วิธีการเกี่ยวกับสี่ในที่มีแสง สีฟ้า, ห้าสิ้นสุดหรือไม่ เกี่ยวกับคนที่นี่? หกในด้านหน้าเจ็ดในด้านหน้า, และแปดในด้านหน้าเช่นกัน ดังนั้นผมจึงเพิ่งเกิดขึ้นมาเพื่อที่จะเตรียมความพร้อม มีทั้งกลุ่มของบิลของกระดาษ และเมื่อชิ้นนี้ของกระดาษตัวเลข ที่เป็นตัวแทนของสิ่งคอลัมน์ พวกคุณจะเป็นตัวแทนของ ดังนั้นคุณจะ - คุณชื่ออะไร? นักเรียน: แอนนาลีอาห์ DAVID ลัน: แอนนาลีอาห์คุณ จะเป็นคอลัมน์ 128s คุณมีอะไรบ้าง นักเรียน: คริส DAVID ลัน: คริสจะ เป็นคอลัมน์ 64s คุณมีอะไรบ้าง นักเรียน: แดน DAVID ลัน: แดนจะ เป็นคอลัมน์ 32s นักเรียน: Pramit DAVID ลัน: Pramit จะ เป็นคอลัมน์ 16s นักเรียน: ลิเลียน DAVID ลัน: ลิเลียนจะ 8s นักเรียน: จิลล์ DAVID ลัน: จิลล์จะ เป็นคอลัมน์ 4s นักเรียน: แมรี่ DAVID ลัน: แมรี่จะ 2s และ? นักเรียน: เดวิด DAVID ลัน: เดวิดจะ เป็นคอลัมน์ 1s ดังนั้นถ้าพวกคุณสามารถก้าวเล็ก ๆ น้อย ๆ ไปข้างหน้าเพื่อให้ทุกคนสามารถมองเห็นได้ สิ่งที่พวกคุณไม่เห็นก็คือใน ด้านหลังของใบเหล่านี้ของกระดาษคือ โกงแผ่นเล็ก ๆ น้อย ๆ ที่เกี่ยวกับการ คำสั่งเหล่านี้แปดบิตอย่างใดอย่างหนึ่ง ยกมือของพวกเขาหรือไม่ ยกมือ ถ้ามือของพวกเขาขึ้นไปที่พวกเขากำลัง คิดเป็นสัดส่วน 1 ถ้ามือของพวกเขาอยู่แล้วที่พวกเขากำลัง แทน 0 ในขณะเดียวกันเราผู้ชมที่ควรจะเป็น สามารถคิดออกบนพื้นฐานนี้ การทำแผนที่สิ่งที่คำสามตัวอักษรเหล่านี้ คนกำลังจะสะกดออก ดังนั้นในเวลาเพียงสักครู่คุณจะ อ่านบรรทัดแรกออกไปทางด้านหลังของ โกงแผ่นของคุณและคุณอย่างใดอย่างหนึ่ง จะไปเพิ่มหรือไม่เพิ่มมือของคุณ หากคุณเป็น 1 คุณยกถ้า คุณ 0 คุณยืน อย่างเชื่องช้าเช่นเดียวกับที่ ไป หมายเลขสิ่งแรกและสำคัญที่สุด, คนเหล่านี้จะเป็นตัวแทนของ? 66 66 ใช่มั้ย? เรามี 1 ในคอลัมน์ยุค 64, 1 ในคอลัมน์ 2s ที่ทำให้ผม 66 ดังนั้นที่ปรากฏ ที่จะเป็นตัวแทนของบีดังนั้น พวกคุณได้สะกด - ตกลงว่าพอ B. ดังนั้นตอนนี้เราจะย้ายไปยัง จดหมายฉบับที่สองของเรา ไป คนที่เร็วที่สุดในที่ที่คณิตศาสตร์ที่นี่? ดังนั้น 79 อีกครั้งถ้าเราเพิ่มขึ้นทั้งหมดของคอลัมน์ ที่มี 1 คน, ขณะนี้เพียง เช่นเดียวกับที่เราทำมาก่อนด้วยการที่ง่ายที่สุด ตัวอย่างของ 7 เราตอนนี้ ได้รับจำนวน 79 ซึ่งตามแผนที่ของเราคือ จดหมายทุมดังนั้นเราเกือบจะสำเร็จ B, ทุมและสุดท้ายไป สิ่งที่พวกเขาเป็นตัวแทนอยู่ตอนนี้ ฉันทามติน้อย นั่นเป็นเพียงเสียงพึมพำแน่นอน ใช่มันในความเป็นจริง 87 ดี ดังนั้นหากเราตอนนี้ map ที่กลับขึ้นไป - ขอ เริ่มเรียกแผนภูมิ ASCII ของเรา รหัสมาตรฐานอเมริกันสำหรับ การแลกเปลี่ยนข้อมูล ที่ทำให้เรามีตัวอักษร - ไม่ได้ "บ่อ" แต่ "ธนู." และที่สมบูรณ์แบบ คิวสำหรับพวกคุณที่จะใช้ธน​​ู หัวและที่ด้านหลัง ขอบคุณมาก [APPLAUSE] DAVID ลัน: คุณสามารถให้พวกเขา แม้ว่าที่จริงจะทุกคน เช่นโคมไฟตั้งโต๊ะยัง? [HOOT จากผู้ชม] DAVID ลัน: โคมไฟโต๊ะเขียนหนังสือ? [เสียงหัวเราะ] DAVID ลัน: จริงเหรอ? โคมไฟโต๊ะเขียนหนังสือสำหรับทุกคน? ทั้งหมดขวา ดังนั้นเริ่มต้นด้วยง่ายที่สุด หลักการที่เราได้ตอนนี้ไม่เพียง แต่นับ เพิ่มขึ้นจาก 0 ตลอดทางขึ้นถึง 7 เราได้ สันนิษฐานว่าเพียงแค่โดยการขว้างปามากขึ้น บิตหรือไฟมากขึ้นหรือทรานซิสเตอร์มากขึ้น ที่ปัญหานี้เราสามารถ แทนตัวเลขใหญ่และขนาดใหญ่และ เพราะฉะนั้นช่วงใหญ่และขนาดใหญ่ของ ตัวอักษรเช่นภาษาอังกฤษ และก็ขอใช้เวลากับความเชื่อในวันนี้ ในทำนองเดียวกันว่าเราสามารถเริ่มต้นที่จะ เป็นตัวแทนของกราฟิกและวิดีโอและอื่น ๆ จำนวนสื่ออื่น ๆ ที่เรา ที่คุ้นเคยในวันนี้ ดังนั้นนี่คือ CS50 และในชั้นนี้ ข้างของคุณอีกครั้งหลายอย่าง เพื่อนร่วมชั้นเรียนที่มีน้อย พบในขณะที่คุณ และฉันพูดถึงเพียงนี้เพราะค่อนข้าง มักจะรวมถึงเมื่อเร็ว ๆ นี้เป็นหนึ่งใน น้องเหตุการณ์และให้คำปรึกษาที่ ฤดูใบไม้ผลิปีที่ผ่านมาให้คำปรึกษา เหตุการณ์ที่เรามักจะได้ยินนักเรียนสละสิทธิ์ เมื่อมาถึงโต๊ะ CS ดี ฉันได้รับการคิดเกี่ยวกับการนี​​้ ชั้นบทนำ แต่ฉันไม่ได้จริงๆ บุคคลคอมพิวเตอร์ หรือทุกคน แต่แน่นอน รู้มากกว่าผม และฉันใส่ในตัวอักษรที่ใหญ่ที่สุด เป็นไปได้ในการถ่ายทอดข้อความนี้ว่า ที่ไม่อยู่ในความเป็นจริงกรณี และถ้าคุณสงสัยว่าควร ผมในความเป็นจริงจะอยู่ที่นี่? ตระหนักดีว่าไม่เพียง แต่เป็นของหลักสูตรนี้ ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์ชื่อ วิทยาศาสตร์เป็นความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์ วิทยาศาสตร์ I. ดังนั้นมีแน่นอน การแนะนำดังกล่าวที่สอง ดังนั้นคุณไม่ได้ในความเป็นจริง ในสถานที่ที่ไม่ถูกต้อง และในหมู่เป้าหมายที่ฉันมีสำหรับในวันนี้มี เพื่อบรรเทาความกังวลใด ๆ เช่นคุณ อาจจะมี แต่ยังในการวาด ภาพของสิ่งที่อยู่ในการจัดเก็บสำหรับ นักเรียนน้อยกว่าและสะดวกสบายมากขึ้น เหมือนกันในวิชานี้ แต่ก่อนอื่นคำหนึ่งของเอกสารประกอบคำบรรยาย คุณมีวันนี้ในระหว่างที่ จำนวนของคำถามที่พบบ่อยเป็น มันเป็นวิสัยทัศน์ของเราในบางเวลา ในขณะนี้ที่จะแนะนำการจัดลำดับใหม่ ตัวเลือกในหลักสูตรนี้ - คือ / UNSAT SAT ปรัชญาสำหรับฉันมันเป็นอย่างมากมาก สำคัญมากขึ้นว่า นักเรียนในชั้นนี้ประกอบกับ วัสดุที่ถูกท้าทายโดย วัสดุและกังวลไกลน้อยเกี่ยวกับ กลศาสตร์ของคะแนนที่เกิดขึ้นจริง และเกรดแบบตัวอักษรที่ภาคการศึกษา ปลาย แต่อย่างแท้จริงโอบกอด แน่นอนและวัสดุ และจริงๆนี้รู้สึกมากกว่าปกติ สำหรับสิ่งที่น่าสนใจที่จะให้พวกเขาไป รู้สึกท้าทายและได้รับรางวัล แต่ โดยไม่ต้องกลัวความล้มเหลว และแน่นอนนี้ก็เป็นที่เกิดขึ้น ในรูปแบบนี้และอื่น ๆ เบื้องต้น หลักสูตรในสาขาอื่น ๆ ที่คุณมี ความกังวลใจเมื่อมันมาถึงนี้ การวางเท้าของคนใน น่านน้ำที่ไม่คุ้นเคย ตัวผมเองกลับไปในปี 1995 ยังเป็นนักศึกษาใหม่ ผมเน้นมากในการเป็น Gov Concentrator ที่นี่ และยังฉันจะเติบโตขึ้นเสมอมากับบิต ที่น่าสนใจในสาขาวิชาวิทยาการคอมพิวเตอร์ ฉันถูกเสมออยากรู้อยากเห็น แต่กลับมาแล้วแม้ฉันมีความกลัวนี้ แม้จะก้าวเท้าใน CS50 มาก เพื่อที่ฉันไม่ได้ซื้อสินค้า ปีแรกของมัน และเหตุผลเดียวที่ฉันวางเท้าใน ปีประตูเป็นเพราะผม ได้รับอนุญาตที่จะนำไปผ่าน / ไม่ แต่ถึงแม้จะผ่าน / ไม่จำเป็นที่ฉันได้รับ ขึ้นเส้นประสาทที่จะทำให้ได้รับการแต่งตั้ง กับศาสตราจารย์ Kernehan ในเวลานั้น นำแผ่นนี้ขนาดใหญ่ของกระดาษและขอให้ เขาสำหรับลายเซ็นของเขาและเขา ได้รับอนุญาตในการสำรวจ เหล่านี้น้ำที่ไม่คุ้นเคย และมันก็ไม่ได้ช่วยในปีที่ผ่านมา ว่าเมื่อทำเช่นนี้ใน CS50 เมื่อเรา ที่ใช้จะผ่าน / ไม่เหมือนกันจะ หลายสิบหรือหลายร้อยเพื่อนร่วมชั้นของคุณ ต้องมาพระเจ้าห้ามที่ ด้านหน้าของแซนเดอที่มีรูปแบบนี้ว่า ในจิตใจของบางคนแสดงให้เห็นถึงการไร้ความสามารถ, ผมกล้าพูดว่าจะดำเนินการ เป็นระดับที่เพื่อนของคุณ ' ซึ่งเป็นเรื่องน่าขัน แต่ฉันคิดว่า มีความคิดที่ว่า และมีไม่เคยอยู่ในวัฒนธรรมนี้ ของ SAT / UNSAT หรือผ่าน / ไม่ขึ้น โดยทั่วไปในหลักสูตรนี้ หรือจริงๆในมหาวิทยาลัยนี้ ดังนั้นในปีนี้เราเปลี่ยนที่ ฉันจะเป็นครึ่งหนึ่งของความสุข หรือมากกว่าชั้นนี้สิ้นสุดวันที่ ขึ้นการ CS50 / UNSAT SAT ในช่วงเวลาของปีก็จะเป็นที่ยอดเยี่ยม ถ้าทุกคนเกือบจะเป็น หลังจากนั้นบางทีเราอาจจะทำงาน เมื่อเกรดแบบตัวอักษรที่ Harvard วิทยาลัยมากกว่าปกติ แต่ตอนนี้เราจะทำเช่นนี้ภายในของเรา วงของตัวเองและฉันจะอย่างเต็มที่ ขอให้คุณคำถามที่พบบ่อยเหล่านั้นและ ถามคำถามที่คุณเห็นพอดีเพื่อที่ว่า หวังว่าคุณเหมือนผมจะไม่มาก มีปัจจัยความกลัวว่าเดียวกันเมื่อ สำรวจสิ่งที่อาจ ที่ที่ไม่คุ้นเคย ดังนั้น CS50 คืออะไร? มันเป็นความรู้เบื้องต้น องค์กรทางปัญญาของคอมพิวเตอร์ วิทยาศาสตร์และศิลปะของการเขียนโปรแกรม แต่นั่นไม่สิ่งที่เป็นจริงหมายถึงอะไร ดีป่านนี้เราได้พูดคุยสั้นมาก เกี่ยวกับข้อมูลที่เป็นตัวแทนของ แต่คิดว่าเราต้องการจริง ที่จะทำอะไรกับมัน เราต้องการที่จะแนะนำความคิดของ สิ่งที่เราจะเรียกอัลกอริทึม อัลกอริทึมเป็นขั้นตอนกระบวนการ, ชุดของคำแนะนำสำหรับการ ทำอะไรบางอย่าง และอัลกอริทึมสามารถเป็นสิ่งที่ ง่ายสุด ยกตัวอย่างเช่นตัวอย่างที่บาง ของคุณอาจจะคุ้นเคยนี้ สิ่งที่นี่ ดังนั้นหนังสือเล่มนี้ที่นี่มากขึ้น ลงวันที่ แต่กาลครั้งหนึ่งมัน ที่มีเป็นจำนวนมากทั้งของชื่อ และหมายเลขโทรศัพท์ และแน่นอนถ้าผมต้องการที่จะหา คนที่อยู่ในสมุดโทรศัพท์นี้ - บอกว่าคนที่ชื่อไมค์สมิ ธ - ฉันสามารถหาไมค์สมิ ธ ในจำนวนใด ๆ ในวิธีที่ค่อนข้างตรงไปตรง ฉันจะเริ่มต้นที่จุดเริ่มต้นและ ย้ายไปที่หน้า 1, ไม่อยู่ที่นั่น 2 หน้าไม่อยู่ที่นั่น Page 3 เป็นอัลกอริทึมที่นั่นคือ กระบวนการถูกต้องหรือไม่ ดังนั้นจึงเป็นสิ่งที่ถูกต้องใช่มั้ย? ผมชนิดของคนบ้าสำหรับการทำมันใน ว่าลักษณะ แต่ในที่สุดฉันจะ หานามสกุล S, และหวังว่าไมค์ อยู่ในส่วนนั้นและฉันจะกลายเป็น ทำด้วยอัลกอริทึมของฉัน แต่แน่นอนว่ามันไม่ง่าย มากที่สุดมนุษย์ทุกคนที่เหมาะสมในเรื่องนี้ ห้องพักจะไม่ได้ทำอย่างนั้น อะไรที่คุณจะได้ทำ? คุณจะได้ไปตรง ไปตรงกลางขวา? ประมาณกลาง และคุณรู้ว่าโอ้เหล่านี้เป็นนางสาว ดังนั้นไมค์สมิ ธ , นามสกุลเป็นสมิ ธ , ไม่ได้เป็นอย่างเห็นได้ชัดแล้วใน ซีกซ้ายของหนังสือเล่มนี้ เขาจะต้องไป ของ S ในด้านขวา และที่จุดนี้แม้ว่าส่วนใหญ่ของเรา ไม่ทำเช่นนี้ในความเป็นจริงที่เราสามารถทำได้ อักษรฉีกปัญหาในช่วงครึ่งปีนี้ [โห่ร้องปรบมือ] DAVID ลัน: ขอบคุณ [โห่ร้องปรบมือ] DAVID ลัน: คุณอักษรสามารถฉีกนี้ ปัญหาในช่วงครึ่งทิ้งฉันด้วย, ตัวอักษรครึ่งปัญหาเป็นใหญ่ ดังนั้นถ้าสมุดโทรศัพท์นี้ - และ อาจจะเป็น - ประมาณ 1,000 หน้าในขณะนี้ เป็นเพียง 500 ถ้าผมทำเช่นนี้อีกครั้งและฉันตระหนักดี, OH, ด่าผมไปไกลเกินไปผมอยู่ใน Ts ส่วนที่จะทำได้ในทำนองเดียวกัน - เปรียบเปรยหรืออักษร - ฉีกสมุดโทรศัพท์ - มันเป็นจริง เวลาที่ง่ายมาก แท้จริงฉันสามารถฉีกสมุดโทรศัพท์ ในครึ่งทิ้งฉันตอนนี้กับ ไม่ได้ 1,000 ไม่ได้ 500 - 250 หน้า และฉันสามารถไป 125, และครึ่งหนึ่งของผู้นั้นและ ครึ่งหนึ่งของที่และครึ่งหนึ่งของที่ จนในที่สุดฉันจะทิ้งให้อยู่กับ เพียงหนึ่งในหน้าเดียว [เสียงหัวเราะ] DAVID ลัน: นั่น ส่วนหนึ่งผมล้มเหลวใน หน้าเดียวที่ ไมค์หวังคือ ตอนนี้ขั้นตอนวิธีการที่แตกต่างกันสามารถ การประเมินหรือการจัดเรียงของการประเมินใน วิธีการที่แตกต่างกัน คนแรกคือเส้นตรงมากใช่มั้ย? เปิดหน้าให้มองหาไมค์ เปิดหน้าให้มองหาไมค์ มันเป็นเชิงเส้นมาก หากมีหนึ่งหน้ามากขึ้นในโทรศัพท์ของ หนังสือเล่มนี้ก็อาจจะพาฉันไป คนที่สองมากขึ้นหนึ่งหน่วยของเวลา แต่เรากำลังคำนวณเวลา ดังนั้นผมอาจจะวาดเช่นนี้บรรทัดนี้ ที่นี่ด้วยเหตุนี้ในขณะที่ขนาดของ การเพิ่มขึ้นของปัญหาจากซ้ายไปขวา - สมุดโทรศัพท์ขนาดเล็กได้รับที่ใหญ่กว่าตัว - และเวลาที่จะเพิ่มขึ้นเมื่อ แกนแนวตั้งที่ใหญ่กว่า สมุดโทรศัพท์คือ ดังนั้น n เป็นเพียงตัวแปรทั่วไปที่ นักวิทยาศาสตร์คอมพิวเตอร์ใช้เพื่อเป็นตัวแทนของ ค่าบาง, บางหมายเลข ดังนั้น n จะเพิ่มขึ้นเป็นเส้นตรง ขนาดเป็นสองเท่าของสมุดโทรศัพท์ก็ จะใช้เวลาฉันสองเท่า เวลาส่วนใหญ่มีแนวโน้มที่จะพบกับไมค์ ตอนนี้ฉันจะได้รับสมาร์ท เกี่ยวกับเรื่องนี้ใช่มั้ย? ฉันได้รับเบื่อได้อย่างรวดเร็ว จะได้ทำเรื่องนี้โดย twos ดังนั้นสองหน้าแล้วสี่ แล้วหกแปด และฉันจะเริ่มบินผ่านมัน เร็วขึ้นเพียงเล็กน้อยแม้ว่าจะมีความเสี่ยงน้อย overshooting ไมค์ แต่โค้งที่ไม่ได้เป็น จะเป็นสิ่งที่แตกต่างกัน มันยังคงเป็นไปได้ตรง เส้น แต่เร็วขึ้นเล็กน้อย แต่ผมทำอย่างไร? ที่จริงผมทำอะไรบางอย่าง พื้นฐานที่ดีขึ้น ผมประสบความสำเร็จในสิ่งที่เราจะเรียกลอการิทึม เวลาบันทึกของ n สีเขียวด้วยเหตุนี้ สายมีมากมากมาก ตรงขอบน้อยไป และค่อนข้างมันแสดงให้เห็นว่ามันเป็นจัดเรียงของ วิธีที่อินฟินิตี้เคยดังนั้นค่อยๆ ที่จริงผมอาจจะใช้เวลา 1,000 หน้า สมุดโทรศัพท์ขนาดเป็นสองเท่าของ ปีถัดไป - เพราะคิดว่าเป็นจำนวนมาก ผู้คนมากขึ้นย้ายเข้าไปในเมือง ดังนั้นตอนนี้ฉันมี 2,000 หน้า แต่อย่างไร หลายขั้นตอนมากขึ้นว่าอย่างชาญฉลาด อัลกอริทึมจะใช้เวลา? เพียงหนึ่ง ผมหมายถึงว่าเป็นสิ่งที่มีประสิทธิภาพ ถ้าเราไปถึง 4,000 หน้าในปีถัดไป ที่จะพาฉันไป เพียงสองขั้นตอนอื่น ๆ ดังนั้นคุณจึงสามารถโยนใหญ่และขนาดใหญ่ ปัญหาที่ผมไม่แตกต่างจากเว็บเป็น โยนปัญหาใหญ่และขนาดใหญ่ วันที่ Googles และ Facebooks ของทุก โลกและมันก็ไม่ได้ เช่นเรื่องใหญ่ เพราะผมใส่ความคิดและการดูแลเป็น อัลกอริทึมของฉันกับการที่จะแก้ปัญหา ปัญหาได้อย่างมีประสิทธิภาพ และแน่นอนว่าจะเป็นหนึ่งใน เป้าหมายของหลักสูตรนี้ คุณจะได้ไปพร้อมกัน เรียนรู้วิธีการเขียนโปรแกรม คุณจะได้เรียนรู้วิธีการเขียนโปรแกรมใน จำนวนภาษาใด ๆ แต่ในตอนท้ายของวันที่แน่นอนคือ เกี่ยวกับการแก้ปัญหาและได้รับการ ที่ดีกว่าในการแก้ปัญหา - และในขณะที่ กรณีเช่นนี้การแก้ปัญหา มีประสิทธิภาพมากขึ้น ตอนนี้ป่านนี้เราได้ทำนี้ เป็นธรรมอย่างสังหรณ์ใจ ขอแนะนำบางสิ่งบางอย่างเป็นธรรม pseudocode ทั่วไปเรียกว่า ดังนั้นในที่สุดเราก็จะได้รับ, ในหลักสูตรนี้ไป เขียนโปรแกรมภาษาต่างๆ แต่วันนี้เราจะทำมันในภาษาอังกฤษอย่าง ไวยากรณ์ที่คุณเพียงแค่ชนิดของการพูด สิ่งที่คุณหมายถึง แต่คุณเคยดังนั้น รวบรัดและคุณไม่ต้องกังวลเกี่ยวกับ ไวยากรณ์และประโยคสมบูรณ์ คุณเพียงแค่แสดงตัวเองเป็น รัดกุมที่สุดเท่าที่เป็นไปได้ ดังนั้น pseudocode เป็นภาษาอังกฤษอย่าง ไวยากรณ์ที่แสดงถึง การเขียนโปรแกรมภาษา และในช่วงท้ายว่าให้ฉันเสนอว่า ตอนนี้เราจำลองกระบวนการเราเพียงแค่ อธิบายการนับบางสิ่งบางอย่างเล็ก ๆ น้อย ๆ แตกต่างกันในเวลานี้การ ดูวิดีโอนี้ห้านาทีผลิต โดยเพื่อนของเราที่ TED ว่า กำหนดสิ่งที่ pseudocode คือกำหนดสิ่งที่ คิดเป็นอัลกอริทึมและแม้กระทั่ง แม้ว่าตัวอย่างที่คุณกำลังจะดู คือในตัวของมันเองง่ายสุดก็ จะเริ่มต้นที่จะทำให้เราจิต รูปแบบคำศัพท์ที่จะใช้ ทำมากที่ซับซ้อนมากขึ้น ขั้นตอนวิธีการได้อย่างรวดเร็วมาก [BEGIN การเล่นวิดีโอ] [เล่นเพลง] เล่าเรื่อง: อะไรคือขั้นตอนวิธี? ในวิทยาการคอมพิวเตอร์อัลกอริทึมคือ ชุดคำสั่งในการแก้ปัญหาบางอย่าง ขั้นตอนโดยขั้นตอนการแก้ปัญหา โดยปกติจะดำเนินการขั้นตอนวิธีการ โดยคอมพิวเตอร์ แต่มนุษย์เรามี ขั้นตอนวิธีการเช่นเดียวกับ ตัวอย่างเช่นวิธีการที่คุณจะไป เกี่ยวกับการนับจำนวน ของคนที่อยู่ในห้องพัก? ดีถ้าคุณต้องการฉันคุณอาจต้องการ จุดที่แต่ละคนหนึ่ง เวลาและนับขึ้นจาก 0 1, 2, 3, 4, และอื่น ๆ ดีที่อัลกอริทึม ในความเป็นจริงเราจะพยายามที่จะแสดงมันออกมา บิตอีกอย่างเป็นทางการใน pseudocode - ไวยากรณ์ภาษาอังกฤษอย่างที่คล้ายกับ การเขียนโปรแกรมภาษา ให้ยังไม่มีข้อความที่เท่ากับ 0 สำหรับคนในห้องแต่ละชุด ยังไม่มีข้อความที่เท่ากับยังไม่มีบวก 1 วิธีการตีความ pseudocode นี้ ดีหนึ่งบรรทัดประกาศเพื่อที่จะพูด, ตัวแปรที่เรียกว่ายังไม่มีและต้น ค่าเป็น 0 นี้ก็หมายความว่าที่จุดเริ่มต้นของ อัลกอริทึมของเราสิ่งที่ เรากำลังนับมีค่าเป็น 0 หลังจากที่ทุกคนก่อนที่เราจะเริ่มนับ, เรายังไม่ได้นับอะไรเลย เรียกตัวแปรนี้ยังไม่มี เพียงแค่การประชุมคือ ฉันจะได้เรียกมันว่าสิ่งใดมากที่สุด ตอนนี้เส้นสอง demarks จุดเริ่มต้นของ ห่วงลำดับขั้นตอนที่จะ ทำซ้ำจำนวนครั้งบาง ดังนั้นในตัวอย่างของเราขั้นตอนที่เรากำลังทำ นับเป็นคนที่อยู่ในห้องพัก ใต้บรรทัดที่สองเป็นสายสาม ซึ่งอธิบายว่าวิธีการ เราจะไปเกี่ยวกับการนับ เยื้องหมายถึงว่ามันเป็น สามบรรทัดที่จะทำซ้ำ ดังนั้นสิ่งที่ pseudocode ไม่ว่าจะเป็น ว่าหลังจากที่เริ่มต้นที่ 0 สำหรับแต่ละ คนในห้องเราจะ ยังไม่มีข้อความที่เพิ่มขึ้นโดย 1 ตอนนี้ขั้นตอนวิธีนี้ถูกต้องหรือไม่ ดีขอปังมันเล็กน้อย มันทำงานถ้ามี คนสองคนที่อยู่ในห้องพัก? ลองมาดูกัน ในบรรทัดที่หนึ่งเราเริ่มต้นยังไม่มีข้อความถึง 0 สำหรับแต่ละเหล่านี้คนสองคน จากนั้นเราจะเพิ่มขึ้นโดยยังไม่มีข้อความที่ 1 ดังนั้นในการเดินทางครั้งแรกผ่าน ห่วงเราปรับปรุงยังไม่มีข้อความที่ 0-1 การเดินทางครั้งที่สองผ่านเดียวกันกับที่ ห่วงเราปรับปรุงยังไม่มีข้อความที่ 1-2 และเพื่อให้ได้ภายในสิ้นขั้นตอนวิธีนี้, n คือ 2 ซึ่งแน่นอนตรงกับจำนวน คนที่อยู่ในห้องพัก ดังนั้นไกลดังนั้นดี วิธีการเกี่ยวกับกรณีมุม แต่? สมมติว่ามีคน 0 ในห้องพัก - นอกจากเรา, ผู้ที่ทำนับ ในบรรทัดที่หนึ่งเราเริ่มต้นยังไม่มีข้อความถึง 0 เวลานี้แม้ว่าสามสายไม่ได้ ดำเนินการที่ทุกคนตั้งแต่มีไม่ คนในห้อง และอื่น ๆ ยังคงยังไม่มีข้อความที่ 0 ซึ่งตรงกับ จำนวนของคนที่อยู่ในห้องพัก สวยเรียบง่ายขวา? แต่คนนับหนึ่งครั้ง จะไม่มีประสิทธิภาพสวยเกินไปไม่? แน่นอนเราสามารถทำได้ดี ทำไมไม่นับคนสองคนในเวลา? แทนการนับ 1, 2, 3, 4, 5, 6, 7, 8, และอื่น ๆ ทำไมไม่นับ, 2, 4, 6, 8, และอื่น ๆ ? มันยังฟังได้เร็วขึ้น และมันก็คือ ขอแสดงเพิ่มประสิทธิภาพนี้ ใน pseudocode ให้ยังไม่มีข้อความที่เท่ากับ 0 สำหรับคู่ของคนที่อยู่ในห้องพักแต่ละห้อง ชุดยังไม่มีข้อความที่เท่ากับยังไม่มีบวก 2 เปลี่ยนแปลงง่ายสวยใช่มั้ย? มากกว่าคนนับหนึ่ง ในเวลาที่เราแทนนับ พวกเขาทั้งสองในเวลา อัลกอริทึมแบบนี้จึงเป็นครั้งที่สอง ให้เร็วที่สุดเท่าที่ผ่านมา แต่มันเป็นเรื่องถูกต้องหรือไม่ ลองมาดูกัน มันทำงานถ้ามี คนสองคนที่อยู่ในห้องพัก? ในบรรทัดที่หนึ่งเราเริ่มต้นยังไม่มีข้อความถึง 0 สำหรับที่หนึ่งคู่ของคน, จากนั้นเราจะเพิ่มขึ้นยังไม่มีข้อความที่สอง และเพื่อให้ได้ภายในสิ้นขั้นตอนวิธีนี้, N คือ 2 ซึ่งแน่นอนตรงกับจำนวน คนที่อยู่ในห้องพัก สมมติต่อไปว่ามี 0 คนที่อยู่ในห้องพัก ในบรรทัดที่หนึ่งเราเริ่มต้นยังไม่มีข้อความถึง 0 ในฐานะที่เป็นก่อนที่จะสายสามไม่ได้ดำเนินการ ที่ทุกคนตั้งแต่มีไม่คู่ใด ๆ ของคนที่อยู่ในห้องพัก และอื่น ๆ ยังคงยังไม่มีข้อความที่ 0 ซึ่งแน่นอน ตรงกับจำนวน คนที่อยู่ในห้องพัก แต่ถ้ามีสาม คนที่อยู่ในห้องพัก? วิธีนี้จะค่าโดยสารขั้นตอนวิธี? ลองมาดูกัน ในบรรทัดที่หนึ่งเราเริ่มต้นยังไม่มีข้อความถึง 0 สำหรับคู่ของคนเหล่านั้น, จากนั้นเราจะเพิ่มขึ้นโดยยังไม่มีข้อความที่ 2 แต่แล้วสิ่งที่? มีไม่ได้เป็นอีกคู่ที่เต็มไปด้วยคน ในห้องพักเพื่อให้สองเส้น ได้ใช้ และเพื่อให้ได้ภายในสิ้นขั้นตอนวิธีนี้, N ยังคงเป็นที่ 2 ซึ่งไม่ถูกต้อง แท้จริงอัลกอริทึมนี้ได้รับการกล่าวถึงเป็น รถเพราะมีความผิดพลาด ช่วยแก้ไขด้วย pseudocode ใหม่บางส่วน ให้ n 0 เท่าเทียมกันสำหรับแต่ละคู่ ของคนที่อยู่ในห้องพัก ชุดยังไม่มีข้อความที่เท่ากับยังไม่มีบวก 2 ถ้าคนคนหนึ่งยังคง unpaired, ชุดยังไม่มีข้อความที่เท่ากับยังไม่มีบวก 1 เพื่อแก้ปัญหานี้โดยเฉพาะเราได้ การแนะนำให้รู้จักในสายสี่ สภาพที่รู้จักกันเป็นอย่างอื่นเป็นสาขา เท่านั้นที่ดำเนินการหากมีหนึ่ง คนคนนั้นที่เราทำไม่ได้ จับคู่กับอีกคนหนึ่ง และดังนั้นตอนนี้ไม่ว่าจะมีหนึ่งหรือสาม หรือเลขคี่ของคนใน ห้องพักอัลกอริทึมนี้ ตอนนี้จะนับพวกเขา ที่เราสามารถทำได้ดียิ่งขึ้น? ดีเราสามารถนับใน 3s หรือ 4s หรือแม้กระทั่ง 5s และ 10s แต่มากไปกว่านั้นก็ จะได้รับนิด ๆ หน่อย ๆ ยากที่จะชี้ ในตอนท้ายของวันที่ดำเนินการไม่ว่าจะเป็น โดยคอมพิวเตอร์หรือมนุษย์ อัลกอริทึมเป็นเพียงชุด ของคำสั่งด้วย ซึ่งในการแก้ปัญหา เหล่านี้เป็นเพียงสาม สิ่งที่เป็นปัญหาคุณจะแก้ ด้วยวิธีการ? [เล่นวิดีโอจบ] DAVID ลัน: นั่นเป็นครั้งเดียว ฉันจะปรากฏในรูปแบบการ์ตูน แต่ที่เรื่องที่ใบปิด, ตอนนี้เป็นวิธีการที่เราสามารถทำได้ดีกว่า สามและสี่เราเรียกร้องให้เราสามารถนับ คนได้เร็วขึ้นมาก แต่เราสามารถ ทำรากฐานที่ดีกว่านั้น? และฉันเดิมพันที่เราสามารถทำได้ ถ้าเราแนะนำบิตของเราเอง pseudocode ที่นี่ฉันจะนำเสนอ ที่เราสามารถบรรลุเส้นเช่นนี้ เราจะไม่นับคน หนึ่งสองสามสี่ เราไม่ได้จะไปสอง สี่หกแปด เรากำลังจะทำอะไรที่ดีกว่าเดิม โดยการทบทวนปัญหาและในการนี​​้ กรณีใช้ประโยชน์อย่างอื่น ทรัพยากร underutilized ในเวลาเพียงสักครู่ผมหวังว่าคุณจะยกโทษให้ และอารมณ์ขันเราลุกขึ้นยืนใน สถานที่จุดที่เรากำลังจะ ขอให้ทุกท่านที่จะใช้ในในของคุณ จิตใจหมายเลข 1 คุณกำลังจะไปแล้วมากขึ้น อย่างเชื่องช้าในขณะที่เวลาผ่านไปพบ คนอื่นที่ยืนอยู่รวม ตัวเลขของคุณร่วมกัน ด้วยการเพิ่มขึ้น หนึ่งของคุณจากนั้นก็จะไปแข่งที่จะนั่ง ลงแรกและคนอื่น ๆ จะไปทำซ้ำ ดังนั้นในคำอื่น ๆ โดยการเพาะทั้งหมดของ ให้คุณมีหมายเลข 1 แล้ว รวม 1s เหล่านั้นลงใน 2s และ 2s เหล่านั้น เป็น 4s, กับทุกคนมากขึ้นเรื่อย ๆ นั่งลงเราควรในตอนท้ายของ ขั้นตอนวิธีนี้มีเพียงหนึ่งเงินกู้ จิตวิญญาณที่ไม่ได้นั่งลงอย่างรวดเร็วพอ แต่ มีนับผู้ชมทั้งที่ ในใจของเธอหรือของเขา ดังนั้นถ้าคุณจะให้เราไปข้างหน้าและ - ขั้นตอนหนึ่ง - ลุกขึ้นยืนอยู่ในสถานที่ และดำเนินการ [ฝูงชนพึมพำ] DAVID ลัน: คุณรู้หรือไม่ ที่ลอเรนคืออะไร? 729? [ฝูงชนพึมพำ] DAVID ลัน: ขวาทั้งหมด? [ฝูงชนพึมพำ] DAVID ลัน: ขวาทั้งหมดที่เราควรจะ จะใกล้จะจบ เราเห็นเพื่อนที่ยืนอยู่ที่นี่ยังคง อื่น ๆ ที่จะต้องจับคู่? ถ้าพวกคุณอยากจับคู่ออก คนขึ้นด้านบน ทำไมถึงไม่ได้ยืมมือที่นี่ สำหรับคนน้อยมากที่ยังคง ยืนว่าตัวเลขที่คุณทำ มีในใจของคุณ? นักเรียน: 78 DAVID ลัน: 78 บวก - ผู้ที่ยืนอยู่ที่นี่? นักเรียน: 39 DAVID ลัน: พลัส 39 พลัสที่อื่นจะยังคงยืนอยู่? 81? ตกลงจะเลือกใคร? 81 อื่นได้หรือไม่ ว้าว และจากนั้นในกลับอะไร นักเรียน: 49 DAVID ลัน: 49, บวก? นักเรียน: 98 DAVID ลัน: 98 บวก? ที่เป็นคนอื่น 12? งานที่ดี [เสียงหัวเราะ] DAVID ลัน: โอ้, 112 - แหม งานดี! [เสียงหัวเราะ] [APPLAUSE] DAVID ลัน: ใคร ยังคงยืนอยู่? ขออภัย? นักเรียน: 99 DAVID ลัน: 99 คนอื่น ๆ ยังคงยืนอยู่? และจำนวนรวมของนักเรียนที่นี่ เป็นจริงตามที่ - คุณมีจำนวน? โอ้ตัวเลขจริงของคนที่อยู่ใน ห้องพักตามบัญชีที่ การเรียนการสอนพวกเขากำลังทำ เกี่ยวกับวิธีการของทุกคนในเป็น 729 ดังนั้นจาก roomful ของนักศึกษาฮาร์วาร์ ที่นับตัวเอง คำตอบคือ 637 [เสียงหัวเราะ] DAVID ลัน: ปิดดังนั้น แต่ก็ยังคง ตกลงเพื่อให้การเรียนการสอน ขณะขวา? ตอนนี้คือสิ่งที่เราจะอธิบายเป็นข้อผิดพลาด บางเส้นทางที่เราได้บาง การคำนวณผิดหรือใครบางคนนั่งลง หรือซ้ายหรือบางสิ่งบางอย่างที่ผิดพลาดไป แต่ที่ดี เพราะแม้ยังคงเรา ได้สวยใกล้ และผมยืนยันว่าเราได้ผิด ตอบได้เร็วมากขึ้นกว่าที่ฉันจะมี ใช้วิธีการเชิงเส้นของฉันมากขึ้น ดังนั้นสมมติว่าเราไม่ได้รับในความเป็นจริงว่า ถูกต้อง แต่คิดว่าตอนนี้เกี่ยวกับสิ่งที่ ที่เกิดขึ้นในแต่ละครั้งเมื่อเทียบกับของฉัน อัลกอริทึมของตัวเองชี้ไร้เดียงสา หนึ่งสองสาม หากมีแน่นอน 729 หรือ 637 คน ที่นี่ที่จะได้เอาฉัน อักษร 637 หรือ 729 pointings ของนิ้วมือและ incrementing นับทั้งหมดของฉัน และฉันจะทำเล็ก ๆ น้อย ๆ ที่ดีขึ้นโดย ไปสองสี่หกแปดและ สองความเร็วที่อาจจะสามหรือแม้กระทั่ง สี่เท่าขึ้นอยู่กับวิธีที่ดีที่ฉันสามารถ ที่จะนับในหัวของฉัน แต่วิธีการที่พวกคุณเอา เป็นพื้นฐานที่แตกต่างกัน เพราะที่จุดเริ่มต้น พวกคุณทุกคนลุกขึ้นยืน ดังนั้นทั้งหมด 729 แท้จริงแล้วครึ่งหนึ่ง ของคุณนั่งลง และหลังจากนั้นอีก ครึ่งหนึ่งของคุณนั่งลง และหลังจากนั้นอีก ครึ่งหนึ่งของคุณนั่งลง และจำนวนครั้งที่คุณ ผมจะได้นั่งลงเป็นประมาณ แปดหรือเก้าหรือสิบครั้งรวม ขึ้นอยู่กับสิ่งที่นับโดยรวมของเราคือ และเราสามารถเรียงลำดับจากทำ นี้วิธีการอื่น ๆ ถ้าเรามี 1,024 คนในห้องพัก, จำนวนครั้งที่คุณสามารถทำได้ ลดลงครึ่งหนึ่ง 1,024 คนคือ 10 ตอนนี้คิดเกี่ยวกับมันใน ทิศทางอื่น ๆ สมมติว่าขันว่าเรามีการพูด สี่พันล้านคนที่อยู่ในห้องนี้ หรือห้องพักขนาดใหญ่กว่าเล็กน้อย เราจะกี่ครั้งที่ได้ไป ผ่านขั้นตอนวิธีนี้ครึ่งหนึ่งที่ดังกล่าว ของชั้นที่ตั้งอยู่ลง? มันเพียง แต่จะใช้เวลา 32 ดังกล่าว การดำเนินงานแม้จะอยู่ในชั้นเรียนของขนาด สี่พันล้าน ทำไม? เพราะสี่พันล้านไปสอง พันล้านไปถึงหนึ่งล้านไป 500000000, ไปถึง 250 ล้านจุดจุดจุด ฉันเท่านั้นที่สามารถทำส่วนที่บางคน 32 ครั้งที่จุดที่ทุกคนยกเว้น คนคนหนึ่งที่จะถูกทิ้งให้ยืน และนั่นก็คือการจัดเรียงของที่มีประสิทธิภาพ ความคิดที่ว่ามากขึ้นเราจะพยายาม ยกระดับในหลักสูตรนี้และใน การเขียนโปรแกรมและวิทยาศาสตร์คอมพิวเตอร์มากขึ้น โดยทั่วไปเชื้อโรคเหล่านี้ของความคิดด้วย ซึ่งเราก็สามารถแก้ปัญหามาก มากขึ้นอย่างแข็งแรง ดังนั้นเราจึงเริ่มค่อนข้างง่ายกับที่ pseudocode และคนที่แต่งตัวประหลาดในห้อง แต่ ตอนนี้มีทั้งห้องเต็มไปด้วยคน เราได้ทำดีกว่าเดิม ดีตอนนี้ขอเปลี่ยนจาก pseudocode บางรหัสจริง ภาษาที่คุณกำลังจะได้เห็นการเกิดขึ้นนี้ จะเรียกว่า JavaScript และ เราจะกลับไปนี้ไป สิ้นสุดภาคการศึกษา มันเป็นภาษาโปรแกรมที่คุณ ใช้เพื่อให้เว็บไซต์และอื่น ๆ เช่น ซอฟแวร์วันนี้ และเราได้ใช้มันขอบคุณเพื่อน ของเราที่ Stanford, การเข้ารหัส บางข้อมูลที่ซ่อนอยู่ที่นี่ นี่คือศิลปะของซูรินาเม, เพื่อที่จะพูดซึ่งคุณสามารถซ่อน ข้อมูลในสิ่งที่ดูเหมือนจะเป็นอย่างอื่น จะมีสัญญาณรบกวนหรือแตกต่างอย่างสิ้นเชิง ภาพทั้งหมด แต่ที่ฝังอยู่ในภาพนี้โดยเฉพาะ ย่อมเป็นข้อความลับแปลก ๆ เพื่อให้ฉันไปข้างหน้าและดึงขึ้น ภาพเดียวกันที่นี่นี้ เวลาอยู่ในเว็บเบราเซอร์ และฉันจะโบกมือของฉันที่บางส่วนของ รายละเอียดสำหรับวันนี้โดยเฉพาะอย่างยิ่ง สำหรับบรรดาของคุณที่มีลักษณะเช่นนี้ ไม่เพียง แต่ JavaScript กรีกเช่น ภาษาที่ไม่คุ้นเคยอย่างสมบูรณ์ แต่เรื่องนี้เป็นตัวอย่างของ การเขียนโปรแกรมภาษา และสำหรับตอนนี้จะใช้ในความเชื่อที่ว่า นี้บรรทัดแรกของรหัส - และรหัสผมหมายถึงข้อความที่ ข้อความที่ฉันจะได้พิมพ์อักษร เข้าไปในโปรแกรม Microsoft Word, ถ้าผมมี ซอฟต์แวร์ที่เหมาะสมแล้ว ทำอะไรกับมัน รหัสแหล่งที่มาของการเขียนโปรแกรมการเขียนโปรแกรม รหัสเป็นจริงเพียงข้อความและมัน มีลักษณะที่แตกต่างกันขึ้นอยู่กับสิ่งที่ภาษา ที่คุณใช้ไม่แตกต่างจากภาษาอังกฤษและ ภาษาสเปนและรัสเซียมองที่แตกต่างกัน เมื่อคุณพิมพ์พวกเขาที่แป้นพิมพ์ของคุณ ดังนั้นบรรทัดแรกนี้สำหรับตอนนี้ใช้เวลาในการ ความเชื่อที่เพียงแค่เปิดกราฟิกจาก อินเทอร์เน็ต, ที่มีเสียงดังกราฟิก เราเพิ่งเห็น นี้บรรทัดถัดไปที่นี่เป็นตัวอย่างของ ห่วงและเราเห็นจริงเดียวกับที่ ศัพท์แสงในวิดีโอ TED ห่วงคือสิ่งที่เกิดขึ้นอีกครั้ง และอีกครั้งและแม้ว่านี้ อย่างมีลักษณะคลุมเครือกับ คำหลักและวงเล็บบางส่วนและ อัฒภาคบาง เราจะกลับมาก่อนที่จะยาว แต่ห่วงว่ามีหลักคือ บอกโปรแกรมย้ำกว่าทั้งหมด ของจุดที่มีเสียงดังเหล่านั้นจากซ้ายไป ขวาบนลงล่าง เพราะในตอนท้ายของวันที่ภาพ ชอบ - และคุณสามารถจริง ชนิดของมันบนโปรเจ็กนี้ - เป็นจริงเพียงตารางของจุด ดังนั้นเราจึงสามารถระบุแต่ละจุดเหล่านั้น โดยพิกัด x, y, และกับเรื่องนี้ โปรแกรมตอนนี้เราสามารถเริ่มต้น ทำบางอย่างเพื่อจุดเหล่านั้น ดังนั้นสิ่งที่ฉันจะไปข้างหน้าและที่นี่ ผมจะทำผมจะทำการเปลี่ยนแปลงบางอย่าง ครั้งแรกที่ฉันจะไปข้างหน้าและได้รับการกำจัด จากทั้งหมดที่เป็นสีเขียวและสีฟ้า เสียงและฉันจะไปข้างหน้า และพิมพ์ต่อไปนี้ เป็นที่ยอมรับไวยากรณ์คลุมเครือ im สำหรับภาพ ตั้งสีฟ้าที่ตำแหน่ง x จุลภาค สถานที่ตั้ง y, 0 ในคำอื่น ๆ ที่ฉันต้องการเพียงแค่ ปิดทั้งหมดจากสีฟ้า จุดที่อยู่ในภาพ ฉันจะไปข้างหน้าในขณะนี้และคลิก ทำงานนี้ / ปุ่มบันทึกและคุณจะ สังเกตด้านขวามือ ภาพที่เกิดขึ้น ตอนนี้สีเขียวสุดของมัน แต่ที่ไม่ ที่น่าแปลกใจเพราะแท้จริงฉันหัน ปิดโดยการทำ 1 0 ทั้งหมดของ สีฟ้าในภาพที่ว่า ดีตอนนี้ขอทำอีกเล็กน้อย im สำหรับภาพจุด setGreen, X, Y และนั่นก็หมายความย้ำจากซ้าย ไปทางขวาแล้วบนลงล่าง เปิดออกที่มีมูลค่า 0, เช่นกัน ประหยัด และโปรเจ็กเตอร์คุณสามารถไม่จริง จริงๆเห็นอะไรที่ทั้งหมด บนหน้าจอแล็ปท็อปของฉันถ้าผมมองในเวลาเพียง วิธีที่ฉันสามารถดูบิตของ ภาพเพราะพวกเขายังคง สีแดงในมีบาง ถ้าคุณเคยได้ยินคำย่อ RGB - สีแดง, สีเขียว, สีฟ้า - มันหมายถึงองค์ประกอบนี้ จากภาพโดยใช้ เพียง แต่ผู้สามสี และตอนนี้เราได้โยนทิ้งไป เขียว, สีฟ้าทั้งหมด แต่ มีไม่มากสีแดง เพื่อให้ฉันเหวี่ยงขึ้นสีแดง ฉันจะทำ? ดีแรกที่ผมจะถาม โปรแกรมคำถามนี้ ฉันจะไปข้างหน้าและขอเรียกว่า ตัวแปรเช่นเดียวกับในพีชคณิต คุณสามารถมี x หรือ y หรือ z ฉันจะประกาศตัวแปร และพูดว่าใส่ในตัวแปรนี้ ชั่วคราวค่าของ ภาพ getRed ค่าที่ x, y และอีกครั้งที่เราจะกลับมาทั้งหมด ของรายละเอียดนี้ในอนาคต แต่ตอนนี้ใช้เวลาเพียงแค่ความเชื่อว่า บรรทัดนี้จะขอโปรแกรมอะไร เป็นค่าสีแดงที่ x, y? ที่จุดนั้น? แล้วฉันจะทำอะไรเพื่อมัน แล้วผมจะทำภาพจุดชุดสีแดง ที่ x, y, y แต่เวลานี้ฉันจะไป เพิ่มโดยทำครั้งสีแดง, สมมติว่า 10 ดังนั้นมันเพิ่มขึ้นโดยมีปัจจัยจาก 10 ผมขอซูมออกตอนนี้และ คลิกสามารถเรียกใช้ / Save และ voila, ที่อยู่ที่นั่นทั้งหมด เวลาแม้ตามนุษย์ของเรา ไม่มากเห็นมัน ดังนั้นอีกครั้งนี้ในขณะนี้คือรหัสจริง, ตัวอย่างของภาษาที่เราจะมา กลับไปก่อนที่จะยาว แต่ตระหนักถึงโดยเฉพาะอย่างยิ่งบรรดาของคุณ ที่มีประสบการณ์ดังกล่าวก็ค่อนข้าง ทันทีที่ตัวเราเองจะเป็น การเขียนรหัสเช่นว่ามี ในความเป็นจริงเครื่องมือที่คุณกำลังทั้งหมด ค่อนข้างคุ้นเคยบางที CS50 คือ เครื่องมือแน่นอนช้อปปิ้งของตัวเองซึ่งเป็น รีบูตจริงในฤดูร้อนนี้โดยบางส่วน อดีตนักศึกษา CS50 ของตัวเอง ตอนนี้หัน TFs ดังนั้นสิ่งนี้เกิดขึ้นจะสร้างเว็บไซต์ ในภาษาที่เรียกว่า PHP จะใช้ฐานข้อมูลที่เรียกว่า MySQL สิ่ง ซึ่งเราจะได้รับในมือของเรา สกปรกต่อไปในภาคการศึกษา แต่เชื่อหรือไม่แม้บางสิ่งบางอย่าง เช่นนี้ในที่สุดจะช่วยลด ที่ง่ายที่สุดของลูปและเงื่อนไข สาขาเช่นเดียวกับที่เราเห็นเพียงแค่ ช่วงเวลาที่ผ่านมาในวิดีโอ TED สิ่งที่ฉันคิดว่าฉันทำตอนนี้ไม่ได้เป็นส่วนแบ่ง บางสิ่งบางอย่างเพียงแค่เราพนักงานได้ทำ สำหรับมหาวิทยาลัย แต่บางสิ่งบางอย่าง อดีตนักศึกษาสาม - นักเรียนในความเป็นจริง - ทำให้ปีที่ผ่านมา, เซียร์, แดเนียลและ แซมสุดท้ายของคนมีก่อนไม่มี ประสบการณ์การเขียนโปรแกรม เมื่อเขาหยิบ CS50 และสำหรับโครงการสุดท้ายของพวกเขา จัดแสดงที่ CS50 แฟร์ โปรแกรมที่เรียกว่า wrdly ซึ่งเป็น โปรแกรมบนเว็บสำหรับการที่พวกเขาทำ วิดีโอที่ฉันคิดว่าฉันต้องการแบ่งปันนี้ ให้ความรู้สึกเพียงแค่สิ่งที่เป็น ที่เป็นไปได้ในช่วงปลายเทอม [เล่นเพลง] DAVID ลัน: นั่นจากศูนย์สัปดาห์ ถึงสัปดาห์ที่ 12 ปีที่ผ่านมา [APPLAUSE] DAVID ลัน: เป็นทีเซอร์มากเกินไปจริงๆ เพื่อเป็นการเรียกน้ำย่อยของคุณคือการมีอะไร เป็นไปได้คุณอาจจะเห็นแล้ว หรือเร็ว ๆ นี้อาจเห็น market.cs50.net, เครื่องมือใหม่ที่ทีมงานของหลักสูตรมี ได้ทำงานในคราวนี้ ความร่วมมือกับนักศึกษาฮาร์วาร์ หน่วยงานดังกล่าวที่เริ่มต้นในปีนี้ และต่อเนื่องหวังว่าจะเป็นแบบนี้ ฤดูร้อนมาคุณจะมีมาตรฐาน โอกาสในมหาวิทยาลัยที่จะซื้อและ ขายสิ่งที่สนใจของคุณ และร่วมกับพันธมิตรที่ผ่าน HSA คุณจะ นอกจากนี้ยังสามารถที่จะวางรายการออก หนึ่งในร้านค้าทางกายภาพ HSA ที่บาง จุดในอนาคตเพื่อให้เป็นไป สิ่งที่พร็อกซี่โดยเฉพาะอย่างยิ่งในขณะที่คุณ จบการศึกษาและไม่จำเป็นต้องต้องการ ทิ้งสิ่ง แต่จ่ายจริงมัน ส่งต่อไปยังคนที่อาจจะตามคุณ ที่นี่ในมหาวิทยาลัย ดังนั้นเพิ่มเติมเกี่ยวกับการที่จะมาถึง แต่น้อยมากที่เป็นรูปธรรมเครื่องมือ ที่ออกมาจาก CS50 ในเร็ว ๆ นี้ ปีที่บางส่วนของคุณอาจจะ ที่คุ้นเคยและคนอื่น ๆ ของคุณอาจจะ googling ตอนนี้ที่ CS50.net/2x คุณจะ พบการเชื่อมโยงไปยังการขยาย Chrome ซึ่งเป็นชี้ของวิธีที่คุณสามารถ ใช้จาวาสคริปต์ว่าภาษาเดียวกันกับที่เรา ใช้กับหอไอเฟลสักครู่ที่ผ่านมา ที่จะใช้ความเร็วในการเล่น 2x สำหรับทุกวิดีโอที่ฮาร์วาร์ iSites นี่คือสิ่งที่สร้างขึ้น เป็นเครื่องเล่นวิดีโอ CS50 ของตัวเอง แต่นี้เกินไปหากคุณเริ่มต้นที่จะขุด เป็นรหัสที่มาที่เราจะ อย่างมีความสุขให้ใช้ได้คุณจะเห็นว่า คุณยังสามารถแก้ปัญหาเช่นเดียวกับที่ เร่งเครื่องมือในเว็บไซต์ที่มี ที่คุณคุ้นเคยเป็นอย่างดี ดังนั้นคำว่าขณะนี้อยู่ในหลักสูตรและ ความคาดหวังและสิ่งที่อยู่ข้างหน้า โดยทั่วไปเราแน่นอนจะรวบรวมที่นี่ เมื่อวันจันทร์และวันพุธ - แม้ว่า ศุกร์นี้เราจะรวบรวมเพราะ จากสัปดาห์ช้อปปิ้ง - 1:00-14:00 แม้ว่า จนบางครั้ง 02:30 ระบุว่าคุณจึงอาจต้องการหรือ จะต้องใช้เวลาเรียนบางที่ 02:00 เป็นต้นไปหรือแม้กระทั่งก่อนที่จะตระหนักถึง แน่นอนว่าเป็นกำลังใจให้สิ่งที่เรียกว่า การลงทะเบียนพร้อมกันด้วยเหตุนี้เราจะ สนับสนุนการยื่นคำร้องต่อคณะกรรมการโฆษณาและ ถิ่นที่อยู่ของคุณคณบดีในนามของคุณถ้า คุณมีความขัดแย้งในบางส่วนนี้ 1:00-02:30 ช่วง มุ่งหน้าไปยัง URL ที่ออนไลน์สำหรับ รายละเอียดเพิ่มเติม แต่ในแง่ของโครงสร้างการสนับสนุน ที่ characterizes CS50 สำหรับนักเรียน มากขึ้นและสะดวกสบายน้อยเหมือนกันเรา มีแทร็คที่แตกต่างของส่วน และนี่คือสองสามสัปดาห์ออกไป แต่ ก่อนที่จะนานคุณจะถูกถามว่า ระดับความสะดวกสบายของคุณ คุณเป็นหนึ่งในบรรดาความสะดวกสบายน้อยลง สะดวกสบายมากขึ้นหรือ ที่ไหนสักแห่งในระหว่าง? และเราจะมีสามที่แตกต่างกัน แทร็คที่ตอบสนอง ผู้ชมเหล่านั้นได้อย่างแม่นยำ เพื่อที่จุดในระยะไม่ควรคุณ แม้จะรู้สึกว่าคุณกำลังแข่งขัน กับนักเรียนที่มีมากขึ้นใด ๆ หรือพื้นหลังน้อยกว่าที่คุณ อันที่จริงหลักสูตรจะหมายถึงการเป็น มากขึ้นและการทำงานร่วมกันมาก เปิดกว้างมากขึ้นกว่าที่ ในแง่ของชุดปัญหาคุณจะ หาเกินไปที่นอกเหนือไปจาก มาตรฐานฉบับของปัญหาแต่ละสัปดาห์ ตั้งมักจะมีแฮ็กเกอร์ " รุ่น "ว่าหมายถึงการกำหนดเป้​​าหมาย ที่ 5% ถึง 10% หรือดังนั้น ประชากรที่แน่นอนในหมู่ผู้ สะดวกสบายมากขึ้นและต้องการที่มากขึ้น ของความท้าทายกว่ามาตรฐาน ฉบับ pset ที่คาดว่า รายละเอียดเพิ่มเติมเกี่ยวกับผู้ที่จะ ที่พบในหลักสูตร แต่ยังอยู่ในสามารถมีได้รายละเอียดพบว่า เกี่ยวกับหลักสูตรวันปลาย โดยปกติชุดปัญหาที่ จะครบกำหนดในวันพฤหัสบดี อย่างไรก็ตามคุณสามารถขยายจำนวนมากของคุณ กำหนดเวลาในฤดูใบไม้ร่วงนี้จากวันพฤหัสบดีที่ วันศุกร์ง่ายๆโดยการประชุมเราครึ่งหนึ่ง เพื่อที่จะพูดตอบไม่กี่อบอุ่นขึ้น คำถามในบางส่วนของปัญหาของสัปดาห์ ชุดที่จะทำงานโดยอัตโนมัติ แล้วให้คุณพิเศษตลอด 24 ชั่วโมง นอกจากนี้เรายังจะลดลงต่ำที่สุดของคุณ คะแนนตามหลักสูตร เพื่อให้คุณมีความรู้สึกของสิ่งที่เป็นปัญหา ชุดเป็น - เพราะมันเป็นจริง ปัญหาของหลักสูตรที่กำหนด ในที่สุดกำหนดเกือบทุก ประสบการณ์ของนักเรียนมากขึ้นดังนั้นกว่า บรรยายมากไปกว่าส่วนอื่น ๆ ดังนั้นกว่าที่สุดอื่น ๆ ทุกแง่มุมของการเรียนการสอน เมื่อปีที่แล้วเช่นเราเริ่มเป็น เราจะเริ่มในปีนี้ที่มีรอยขีดข่วน โดยเฉพาะอย่างยิ่งศุกร์นี้เราจะใช้สำหรับ เพียงแค่ช่วงเวลาหนึ่งวันของกราฟิก ภาษาโปรแกรมที่เราจะ เริ่มต้นการเขียนโปรแกรมโดยการลากและ วางชิ้นส่วนปริศนาที่มีเพียง ประกอบทางร่างกายถ้ามันทำให้รู้สึก จะทำเช่นนั้นมีเหตุผล สัปดาห์ถัดไปเราจะเปลี่ยนไปอย่างรวดเร็ว C, ค่อนข้างเก่า แต่ขนาดเล็กมากและ ภาษาง่ายๆที่จะช่วยให้เราสามารถ จริงๆไป 0-60 มากกว่าหลักสูตร เพียงไม่กี่สัปดาห์และจากนั้นพาร์เลย์ เหล่านั้นทักษะเดียวกันและความรู้ การเขียนโปรแกรมโครงสร้างพื้นฐานเป็น ภาษาระดับสูงเช่น PHP, JavaScript และยังคนอื่น ๆ ยังคง ปีล่าสุด, pset ที่สามในหลักสูตร เป็นที่ของการเข้ารหัส, การประยุกต์ใช้โดเมนเฉพาะซึ่งให้เรา นักเรียนท้าทายในการดำเนินการใด ๆ โปรแกรมจำนวนยันต์ที่ เพื่อช่วงชิงหรือถอดรหัสข้อมูล การเข้ารหัสมัน สำหรับรุ่นแฮ็กเกอร์โดยคมชัด, เราให้นักเรียนแฮกเกอร์ไฟล์ จากคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการยูนิกซ์ที่มีมาตรฐาน ชื่อผู้ใช้และรหัสผ่าน หลังจากที่มีการเข้ารหัส และเราท้าทายแฮกเกอร์เหล่านั้น นักเรียนในการถอดรหัสดีที่สุดเท่าที่จะทำได้ รหัสผ่านเหล่านั้นยังคงอยู่ในที่ โดเมนเดียวกัน ช่วงชิงเกมที่บาง ของคุณอาจจะคุ้นเคย ชิ้นนิติเวชที่เราให้นักเรียน การกู้คืนข้อมูลที่ได้รับ ลบอย่างอื่นจากตัวเองดิจิตอลของฉัน แฟลชการ์ดของกล้องที่มีขนาดกะทัดรัดโดย จริงเขียนซอฟแวร์ที่จะคิดออก, ที่ zeroes และคนในนั้น ว่ากล้องดิจิตอลที่ก่อนหน้านี้ ประกอบด้วย JPEG กราฟิก? ความท้าทายที่แปลก ๆ ปีที่ผ่านมา ที่เกี่ยวข้องกับการเขียนเร็วที่สุด ตรวจสอบการสะกดที่เป็นไปได้ในการแข่งขัน กับเพื่อนและเพื่อนร่วมชั้นเรียนถ้า ที่พวกเขาต้องการ การใช้พัฟ n หอบ ' โปรแกรมบีบอัด แล้วสิ้นสุดภาคการศึกษาที่มี CS50 การเงิน, web-based application ด้วย ซึ่งคุณสร้างเว็บไซต์ eTrade เหมือน ที่จะซื้อและขายหุ้นเพื่อที่จะ พูดตามจริงดึงเกือบ เรียลไทม์ Yahoo! คำพูด เงินทุน สิ่งที่เราไม่ได้ทำในปีที่ผ่านมา ชุดปัญหาหนึ่งที่ยังคงอยู่ กระนั้นที่ชื่นชอบ ถ้าคุณไม่เคยไป shuttle.cs50.net คุณจะเห็นผู้ใช้ อินเตอร์เฟซเล็ก ๆ น้อย ๆ เช่นนี้ แต่สองปีที่ผ่านมาในชั้นเรียน ดำเนินการโดยใช้ Google Maps และ ปลั๊กอิน Google Earth และนิด ๆ หน่อย ๆ จากความเข้าใจด้วยการขับรถไปรอบ ๆ มหาวิทยาลัย เพื่อให้วัตถุประสงค์ของเกมนี้คือ ที่คุณสามารถเห็นบางส่วนของใบหน้า, คือการขับรถรอบมหาวิทยาลัยที่กำลังมองหา พนักงานพวกเรียนการสอนและ CAs และ เมื่อคุณวางพวกเขา บนรถบัสรับส่งของคุณ ไม่มีของพวกเขาจริงดูเหมือนจะเป็นที่นี่ ดังนั้นเรากำลังจะเข้าสู่การโกงรหัส [เสียงหัวเราะ] DAVID ลัน: มีที่เราไป ทั้งหมดขวา และที่นี่ในขณะนี้คือพนักงาน เจือทั่วมหาวิทยาลัย และในขณะที่คุณสามารถดูบนขวามือ ด้านข้างของหน้าจอให้บริการรถรับส่ง มีที่นั่งว่างเปล่า และวัตถุประสงค์คือการเขียน รหัสที่จะจำลองนี้ การขับรถและหยิบขึ้นมาและวาง ออกของผู้โดยสาร ที่หนึ่งด้วยการใช้ภาษา เรียกว่า JavaScript ดังนั้นโปรแกรมที่ตระหนักถึงความต้องการที่จะ จะอยู่ในวิถีเดียวกันนี้ของเรา ปีเช่นกัน ในแง่ตอนนี้จากการสนับสนุนเพิ่มเติม เรามีเวลาทำงาน ในขณะที่คุณอาจจะได้เห็นในบ้านของคุณเอง รับประทานอาหารที่ห้องโถงหรือใน Annenberg, เราจะรับประทานอาหารในบ้าน ห้องโถงสี่คืนต่อสัปดาห์ - Leverett, Pfoho เอลเลียตและ Annenberg ปีนี้ PM 8:00-11:00 และสิ่งที่เราคิดว่าเราควรจะทำในปีนี้ บางสิ่งบางอย่างเล็ก ๆ น้อย ๆ ที่แตกต่างกันคือ หากคุณได้ยินเสียงคำรามปีที่ผ่านมาว่า มันเป็นบิตเครียดเกินไปนี้ ปีเวลาทำงานในขณะที่เราจะอธิบาย สัปดาห์หน้าจะเป็นอินทรีย์มากขึ้น ด้วยเหตุนี้เมื่อมาถึงคุณจะ ส่งไปที่ตารางหนึ่งโดยเฉพาะอย่างยิ่ง ที่สมาชิกในทีมงานหลาย ๆ รอคอย, และเราจะทำสิ่งอื่น ๆ อีกมากมาย อินทรีย์ ไม่มีคิวมากขึ้น iPad ไม่มีมากขึ้น แต่ ค่อนข้างมีใกล้ชิดมากขึ้น การสนทนารอบโต๊ะเพียง แปดหรือเพื่อให้นักเรียนเพื่อให้เรา ประมาณความรู้สึกของสิ่งที่เป็นอย่างอื่น จะเป็นชั้นเรียนขนาดเล็กมาก เรานำเสนอเป็นอย่างดีสิ่งเหล่านี้เรา เรียก walkthroughs วิดีโอถ่ายทำใน โดยหนึ่งในความก้าวหน้าของการเรียนการสอนของหลักสูตร เฟลโลว์ส Zamyla ซึ่งเธอ เดินคุณผ่านปัญหาของสัปดาห์ ชุดที่นำเสนอเคล็ดลับและเทคนิคสำหรับ ความท้าทายที่รออยู่ข้างหน้า และตรงกันข้ามหลังจากที่ชุดปัญหานี้ เนื่องจากในปีนี้เรายังจะปล่อย คลิปเล็ก ๆ น้อย ๆ เรียก mortems โพสต์ที่ จริงเดินคุณผ่าน โซลูชั่นตัวแทนทั้งดีและ ไม่ดีผ่านทางที่คุณสามารถอนุมานว่า คุณอาจจะมีหรือควรจะมี ดำเนินการแก้ปัญหาของคุณเอง และสิ่งที่เราจะนำเสนอเป็นครั้งแรก ในปีนี้เช่นกันโดยเฉพาะอย่างยิ่ง สำหรับนักศึกษาผู้ที่ประโยชน์ของตัวเอง ของที่อื่น ๆ แน่นอน ทรัพยากร แต่อย่างไรก็ตามกำลังดิ้นรน ทั้งหมดมากเกินไปแน่นอน ตัวเองจะจับคู่นักเรียนเหล่านั้น ทรัพยากรอนุญาตกับผู้สอนเพื่อให้ คุณมีมากใกล้ชิดมากขึ้น โอกาสกว่าบ้านห้องโถงรับประทานอาหาร อนุญาตให้มีการให้ความช่วยเหลืออย่างใดอย่างหนึ่งต่อหนึ่ง ตอนนี้เหลือบสุดท้ายที่บางส่วน ของเกมที่สิ้นสุดในสายตา คุณอาจจะคุ้นเคยกับ hackathon CS50 ดีมาธันวาคมนี้จาก 08:00 น. ถึง 07:00, จุดเริ่มต้นของ ระยะเวลาการอ่านจะเป็นโอกาส เพื่อรวบรวมกับเพื่อนร่วมชั้น - นี้จะเป็นรอบ 21:00 - ในระหว่างที่คุณดำน้ำในขั้นสุดท้ายของคุณ การดำเนินโครงการข้าง เพื่อนร่วมชั้นเรียน, เพื่อนและอาหาร นี้จะเป็นรอบ 01:00 เมื่อ ชุดแรกของอาหารที่มาถึง และเรื่องนี้เป็นเรื่องเกี่ยวกับที่ 04:00 ปีโดยเฉพาะอย่างยิ่งที่ CS50 hackathon แต่จุดสำคัญที่แท้จริงของการเรียนการสอนคือ หมายถึงพอใช้ CS50, มหาวิทยาลัยกว้าง การจัดนิทรรศการของโครงการของคุณเองสุดท้าย ที่ครอบครัวและเพื่อน ๆ ทุกคน ได้รับเชิญเป็นนายหน้าของเราและ เพื่อนของเราจากอุตสาหกรรม นี้เช่นเป็นเหลือบของ คน 2,000 บวกที่ได้เข้าร่วมการประชุม ปีที่ผ่านมา การแสดงออกเช่นนี้ไม่ใช่เป็นเรื่องธรรมดา และเช่นเดียวกันทำของคุณ เพื่อนร่วมชั้นมีความสุขในสิ่งที่ คุณเคยประสบความสำเร็จ และอันที่จริงในช่วงท้ายที่เรามี เหตุการณ์เริ่มต้นจากระยะเช่นกัน ถ้าสิ่งที่ต้องการอุทธรณ์นี้ให้คุณหรือ คุณอยู่ที่อย่างน้อยอยากรู้อยากเห็นเป็นสิ่งที่ นี้รู้ว่าเป็นประเพณีใหม่ของ แน่นอนจะเรียกว่าวันปริศนา CS50 และนี่คือการก่อตั้งคู่ของ ปีกลับไปจริงๆส่งสัญญาณให้มหาวิทยาลัย วิทยาศาสตร์คอมพิวเตอร์ที่ไม่ได้เกี่ยวกับ การเขียนโปรแกรมและก็ไม่แน่นอน เกี่ยวกับอ้าแขนรับนักเรียนเฉพาะผู้ที่ ที่ได้สัมผัสมาก่อน ความจริงแล้วมันเกี่ยวกับการแก้ปัญหา มากกว่าปกติ และเพื่อให้จิ๊กซอว์วันที่ผ่านมาไม่กี่ ปีนี้มีการพัฒนาเป็นดี ความร่วมมือกับเพื่อนของเราที่ Facebook โดยจะมีนิยาย รางวัลและพิซซ่าข้ามแม่น้ำที่ i-ปฏิบัติการนี​​้มาเสาร์ มุ่งหน้าไปยัง URL ที่มีสองหรือสาม เพื่อนหากคุณต้องการที่จะเข้าร่วม ในประเพณีใหม่นี้ ดังนั้นผมจึงอยากจะถามว่าคุณเก็บหนึ่ง สิ่งที่อยู่ในใจและเราได้มีเพียงแค่ คลิปสองนาทีที่ ที่จะปิดในวันนี้ 73% คือจำนวนที่ต้องจำ เค้กเกินไปจะรอคุณอยู่ข้างนอกนี้ ปีกในขณะที่เราเลื่อนได้ในเวลาเพียง สองช่วงซึ่งเป็นประเพณี ของการเรียนการสอนเป็นอย่างดี แต่นี่เป็นคำพูดที่สำคัญจาก รายวิชาที่จะเก็บไว้ในใจ ในที่สุดเรื่องอะไรในหลักสูตรนี้ มีไม่มากที่คุณจะจบลง เมื่อเทียบกับเพื่อนร่วมชั้นของคุณ แต่ที่ คุณในสัปดาห์ที่ 12 จบลงเมื่อเทียบกับ ตัวเองในสัปดาห์ 0 แต่เหลือบมองว่าเราจะปล่อยให้คุณ กับที่นี่ในวันนี้เป็นครั้งสุดท้ายที่นี่ โดยเดียวกันแดเนียลของเราที่ทำ วิดีโอ wrdly รอสักครู่ที่ผ่านมา ผมปล่อยให้คุณกับความคิดชั่วนี้ ของสิ่งที่อยู่ข้างหน้า และในขณะที่เราทำเช่นนี้ถ้าเราสามารถมี CS50 เจ้าหน้าที่จากหน้าห้อง ที่จะมาถึงขั้นตอนในการวาดทั้งหมด อื่น ๆ ของภาพที่มองเห็นว่า รอคุณอยู่ในสิ่งที่ปีนี้ - รับอึดอัด เราจะสรุปกับเรื่องนี้ ที่นี่บนหน้าจอ [เล่นเพลง] DAVID ลัน: นี่คือ CS50 [เพลง - MATT & KIM "IT'S alright"] 1 SPEAKER: I love CS50 มากกว่าแมว 2 SPEAKER: Whoaaaa [เสียงหัวเราะ] DAVID ลันนี้ก็คือ CS50 เราจะเห็นคุณในวันศุกร์ [APPLAUSE และเชียร์] เล่าเรื่อง: ที่ CS50 ถัดไปบนเวที การสาธิตไม่ได้เป็นไปตามแผน DAVID ลัน: เราต้องการที่จะหาไมค์ สมิ ธ ในสมุดโทรศัพท์นี้ ดีสิ่งที่เป็นสัญชาตญาณของคุณ? ฉันอาจจะกระโดดประมาณกลาง สมุดโทรศัพท์, เหลือบมองลงเห็นว่า ฉันที่ M และฉันรู้ว่าตอนนี้ไมค์ สมิ ธ ไม่ได้เป็นไปทางซ้าย เขาจะต้องไปทางขวา และเพื่อที่จุดนี้เรา อักษรสามารถฉีก - ที่จุดนี้เราอย่างแท้จริงสามารถฉีก - ที่จุดนี้เราสามารถเปรียบเปรย ฉีกสมุดโทรศัพท์ในช่วงครึ่งปี [strumming กีตาร์]