David MALAN: Ito ay CS50, at ito ay ang simula ng isang linggo. At kung ano ang naisip naming gawin ay hilahin pabalik ang kurtina ng isang aparato na ginagamit ng maraming ng marahil mo na lumakad na nakalipas ngayon para sa taon, ngunit marahil ay hindi kailanman lubos Kilala kung ano ito ay. Kaya device na ito ay marahil na tumingin pamilyar sa karamihan sa iyo sa pamamagitan ng ngayon. [Video playback] -Isang pagtatagumpay ng matematika at mekanikal kakayahan ito ay mahusay na bagong awtomatikong sa calculator Harvard University. Buhol-buhol na mga problema sa matematika ilagay sa pamamagitan ng machine sa form na naka-code sa tape ay tumpak na malulutas sa isang minuto fraction ng oras na kinakailangan para sa pantao pagkalkula. Dinisenyo upang mapabilis ang lahat ng mga paraan ng matematika at pang-agham na pananaliksik, ang higanteng mekanikal utak kalooban gumana para sa Estados Unidos Navy hanggang digmaan end. [END-playback ng video] David MALAN: Kaya na kung ano ang nakikita mo sa ang Science Center, na kung saan na machine na ngayon ang makikita. Ikaw lang talaga makita ang bahagi nito. Tanging ang isang bahagi ay kasalukuyang sa display, at iyon ay isang aparato na tinatawag na Markahan ang ako, at ito ay mahalagang isang talagang malaking calculator. Ito ay nagtagumpay sa pamamagitan ng Mark II, at ito ay mula sa Mark II na namin talaga makakuha ng isang bit ng leksikon. Ito ang unang naitalang pagkakataon ng isang bagay na ikaw ay tungkol sa upang maging lahat masyadong pamilyar sa ibabaw ng kurso ng semestre - lalo, isang bug. Kaya ito naka-out sa isa point ang Marcos II aparato ay hindi gumagana nang maayos, at sa mas malapit inspeksyon, nagkaroon nga ng isang bug - isang gamugamo - na gamugamo - sa loob. At mula pa nang, kami ay tinutukoy upang mga pagkakamali sa mga programa tulad ng mga bug. Kaya higit pa sa na sa darating. Nagsasalita ng video pati na rin, kung hindi pa, alam na CS50 ay malinaw naman kumuha. Ang mga aralin ay karaniwang pumunta up kanan pagkatapos klase sa uri ng isang pre-release hindi nai-edit na format, at pagkatapos ng isang araw o dalawa mamaya, kami maglagay ng isang mas mataas na resolution at mas mataas na kalidad na bersyon. Maaari mong isipin ang Vanessa, sino ay nagkaroon ng kapalaran ng pag-play sa Google Glass, kung saan ako remembered sa singilin oras na ito. Kaya kung nais mong makabuo pagkatapos ng klase at maglaro, dapat gumagana ang mga ito ngayon. At kung gusto mong makita kung ano Vanessa nakita ang iba pang mga araw, ano ang makikita mo dito - hayaan mo akong taasan ang lakas ng tunog dito sa aking laptop. [Video playback] -Kaya hayaan mo akong queue ito ay up. Ayos lang. Kaya hawakan ito. Ayos lang. OK, Glass. Mag-record ng video. Ayos lang. Vanessa? [END-playback ng video] David MALAN: Ang lahat ng karapatan, sa gayon ang dahilan na hindi ito gumana para sa karamihan ng sa iyo ang katapusan ng klase ay dahil ako nagpatuloy i-record ang isang oras ng na footage na tumuturo sa aking sarili matapos Ko bang ilagay ang baso pababa. Kaya ngayon, makikita ko bang iwan ang mga ito off, ngunit salamat mong Vanessa para sa pagiging tulad ng isang magandang sport. Samantala, isang pares ng mga anunsyo bago kami sumulong ngayon. Kaya isa, CS50 ay may tradisyon ng paggawa kung ano ang aming makakaya upang subukang gumawa ng isang napaka malaking klase pakiramdam mas maliit. At patungo sa layuning iyon, karamihan sa tuwing Biyernes, magtipon namin sa isang restaurant sa ang parisukat, Fire at Ice, na may 30 o 40 ng iyong mga kaklase, sarili ko, ang ilan sa ang pagtuturo kawani, at kami lamang magkaroon ng isang napaka kaswal tanghalian. Madalas naming imbitahan ang mga kaibigan mula sa industriya, alumni ng klase, alumni ng kolehiyo, talagang lamang na makipag-chat sa bawat isa iba pang up, makipag-usap tungkol sa buhay pagkatapos kolehiyo, buhay sa kolehiyo, at ang gusto. Kaya kung nais mong makibahagi sa ito unang tulad tanghalian ito sa Biyernes 1:15, pumunta sa na URL sa ilang mga punto. Space ay limitado, kaya ang gagawin namin unang dumating unang maglingkod. Ngunit kailangan naming gawin ito muli sa isang paulit-ulit na batayan, kaya hindi na mag-alala kung wala ka gumawa ito sa ang unang batch. Ngayon, sa mga tuntunin ng mga mapagkukunan na ibinigay curricularly sa pamamagitan ng mga kurso, mayroong isang buong liko, at kung hindi mo pa nakuha up ang website ng kurso ni na, sa partikular, sa ilalim ng mga aralin, makikita mo na ang lahat ng bagay namin ginawa noong nakaraang linggo ay doon, parehong sa video at ilang mga pag-uuri ng mga electronic na form. Subalit sa kabila ng mga video, makikita mo ang na mayroong ngayon ang buong teksto transcript, halimbawa, ng bawat panayam. Kaya kung kami talaga bumalik sa screen na ito dito sa Vanessa, at mag-navigate sa ilalim na sulok ng screen, makikita mo na talaga, hindi para sa Biyernes ng panayam, ngunit kung pumunta kami pabalik sa Miyerkules, dahil ang tampok na ito ay tumatagal ng ilang araw, makikita mong makita na maaari mong talaga hilahin pataas, para sa mas mahusay o para sa mas masahol pa, ang bawat salita na ako o isang volunteer sa entablado sinabi. At higit pa sa na. Maaari mong aktwal na hanapin ito, maaari mong mag-click sa anumang ng mga pangungusap, tumalon sa puntong iyon sa video, lahat patungo sa at pagtatapos ng ginawa ang lahat ng materyal na ang mas magagamit sa paglalayag. Ngunit kung mas gusto mong hindi sundin ito sa ganoong detalye, makikita mo ang, para Halimbawa, ang maliit na menu dito para sa 1.5x bilis, 2x bilis, o i F ko na magsalita masyadong mabilis para sa iyo, 0.75x bilis. Kaya mapagtanto ang lahat ng iyon ay Available doon para sa iyo. Ngunit lampas na, para sa aralin, Napagtanto na rin naming gumawa ng mga mapagkukunang ito Available din. Mga slide, halimbawa code, ang anumang bagay na ako gawin sa stage o nang maaga ng klase, Makikita post kami doon sa gayon ay maaari mong i-play kasama sa bahay o sa Sanders. Ngunit kung ano ang aming din naisip naming gawin ito taon para sa unang pagkakataon ding magbigay sa iyo ng walkthroughs ng mga halimbawa. Nagiging, bilang ko na sumasalamin sa halaga ng CS50 ng aralin, ko na nagsimula na sa tanong lamang kung paano kapaki-pakinabang ito ay para sa mga ka guys upang umupo doon, para sa akin upang tumayo dito, at para sa akin na makipag-usap sa iyo, lalo na bilang ang materyal, ang halimbawa, kumuha ng mas kumplikadong. Dahil walang paltos, makalipas ang ilang bilang ng mga minuto, isang tao kalooban zone out, at pagkatapos mong makaligtaan ang ilang mga pangunahing kaalaman ng ilan Halimbawa, at pagkatapos ay hindi ka talaga nawala para sa natitirang bahagi ng klase, na kung saan ay hindi ang pinakamabuting paggamit ng ang iyong oras, o, talaga, atin sama-sama bilang isang klase. At ano kaya naisip naming subukang gawin, lalo na para sa ilan sa mga mas kumplikadong mga halimbawa na maaaring hindi ko gawin hustisya upang sa klase, na hindi namin kapangyarihan magkaroon ng panahon para sa klase, o maaari mong lamang zone out habang, ay makikita kaming bumuo ng isang serye ng mga walkthroughs ng mga mga halimbawa upang kung pumunta ka sa, para sa Halimbawa, huling Biyernes ng video ng pahina dito sa ilalim ng mga halimbawa, makikita mo na para sa Biyernes, mayroong ngayon na ito mag-link sa walkthroughs. At ang format ng mga ay magbabago sa paglipas ng panahon. Para sa ngayon, kami ay gumagamit ng isang simpleng Playlist ng YouTube. Ngunit ano ang ginawa ko sa aming koponan ng produksyon pagkatapos ay maglakad sa pamamagitan ng bawat at ang bawat isa sa mga halimbawa muli, sana ay pagturo out sa mas malaking kalinawan kung ano mismo ang takeaways maaaring maging o dapat na mula sa bawat isa. Kaya makikita mo, halimbawa, mula sa huling linggo, ang lahat ng mga halimbawa sa scratch nagpunta kami sa pamamagitan tapos ka na linearly na sa fashion. Kaya huwag mag-atubiling upang hikayatin o hindi makisali sa mga materyal na ito. Talagang isang tema na ito ng partikular na kurso ay na mayroong marahil higit pa sa ang paraan ng mga mapagkukunan kaysa sa iyo maaaring posibleng makuha sa ibabaw kurso ng isang semestre. Ngunit iyon sinasadya. Ito ay nilalayong maging gayon ikaw bilang indibidwal na mag-aaral maaari self-piliin ang batay sa iyong pag-aaral ng estilo. Kaya kung aralin gumana para sa iyo, mahusay. Kung seksyon gumana para sa iyo, mahusay. Kung walkthroughs gumana para sa iyo ng mas mahusay, mahusay. Ito talaga ay nasa sa iyo upang piliin kung ano ang mga mapagkukunan ng ang pinakamahusay na gumagana para sa iyo. Panghuli, salamat sa isang nagtapos sa isang paaralan ng Siyempre, kami ay nagbibigay din ng isang canonical magtakda ng mga tala sa manunulat. Kaya sa halip na mayroon kang ulo guys pababa sa aralin scribbling down na mga bagay na dumating up sa klase, namin, ang staff, bibigyan ka ng kung ano ang aming pakiramdam ay isang canonical hanay ng mga tala sa magbakante ka na ng kaguluhan ng isip, upang kung ikaw ay dito at nakikipag-ugnayan, ikaw ay tunay na nakatuon sa kung ano ang nangyayari sa, kasama ng iyong mga kaklase ang ginagawa hanggang sa entablado, kung ano ang up sa screen, at hindi lamang sa pagsusulat down na walang bawas ang mga salita kung ano ang nangyari sa mga na-sinabi. Kaya mapagtanto ang lahat ng mga mapagkukunan Available sa iyo. Sectioning, sa mga kasagutan sa isang FAQ, Magsisimula ito Miyerkules. Kami mahalagang maghintay hanggang matapos karamihan ibang mga klase ay tapos na sa gayon maaari naming i-minimize ang bilang ng mga pagbabago na kailangan naming gawin. Pero paparating na ito katapusan ng linggo, na nagsisimula Linggo, magiging isa isang halimbawa ng oras ang tinatawag naming sobrang seksyon. Ang mga ito ay kumuha para doon sa mga hindi maaari dumalo, at mahalagang, ang ulo kurso ay ituturo sa amin sa pamamagitan ng ilang mga ng C na bahagi ng kurso, patungo sa isang dulo ng hanay problema isa, na ay magiging aming unang C batay problema set. At ang mga ito ay lamang maging opsyonal na mga seksyon sa pag-asa ng kung ano ang kalooban maging umuulit na mga seksyon na humantong sa pamamagitan ng 50 plus ang kurso ni pagtuturo Fellows linggu-linggo. Sa Linggo o Lunes o Martes, namin May 90 minutong seksyon sa isang napaka- tradisyonal na kahulugan, na kung saan ay magiging mga pagkakataon para sa mga kamay at higit pa kilalang-kilala pagsusuri ng materyal ng kurso. Nang walang karagdagang linggal, ipaalam sa akin upang ipakilala ulo ng kurso ni, sino sa likod ng mga eksena sa akin, paggawa ng lahat ng bagay mangyari. Kung ang mga dito ngayon ay maaaring sumali sa akin, Rob at Lauren at Joseph at Lucas, lahat ng kanino ay naging sa Siyempre para sa ilang oras. RJ ang pangatlong tulad miyembro ng aming koponan. Hindi siya maaaring maging dito ngayon, ngunit siya nagtanong sa akin upang ipakita ang isang larawan ng kanya. Hindi ako sigurado gusto niya ito isa, ngunit doon siya ay. At ipaalam sa akin lamang payagan ang mga koponan upang sabihin kumusta at ipakilala ang kanilang mga sarili upang makakuha ng mong malaman ang mga ito pati na rin ang iyong sariling pagtuturo kapwa term na ito. Lauren CARVALHO: Hi. Ang pangalan ko ay Lauren Carvalho. Isa akong residente turuan nang sarilinan sa Leverett House. Din ako sobrang nabigla na maging isang ulo TV para sa CS50 sa taong ito. CS50 ay isang napaka mapaghamong klase pati na rin bilang isang napakalaking klase, kaya kung ikaw may anumang mga alalahanin, kung sa palagay mo parang ka bumabagsak sa likod, huwag mag-atubiling makipag-ugnay sa alinman sa amin sa heads@cs50.het, o sa akin, kung ikaw ay i-play sa aking mga golden aso para sa pamamaril puppy. Narito ang Lucas. Lucas Freitas: Hey, guys. Ang pangalan ko ay Lucas Freitas. Ako ay isang junior [hindi marinig] computer science at aghamwika. Ako talaga mula sa Brazil, at ako din Napagtanto silangan Asian studies. Kaya kung mayroon kang anumang mga katanungan tungkol sa computer science o mga wika o anumang bagay, lamang ipaalam sa akin. O CS50, lalo na. Joseph ONG: Hi. Ako Joseph. Ako ay isang senior pag-aaral sa computer na agham sa Elliott House. Kaya, sabihin makita. Makikita mo sa akin sa paligid ng pagdala isa sa mga malaking camera. Ako ang resident photographer staff 50 para sa pati na rin, at mga mag-aaral ay madalas na kung minsan hindi sinasadya sa akin para isang Asian turista. Kaya kung makikita mo sa akin na may camera, hindi tumatakbo ang layo. Ngumiti lang at huwag kang mahiya. At Umaasa ako na masiyahan ka 50. Tatangkilikin ko ito talaga kapag ako kinuha ito, at iyon ang dahilan kung bakit ako TFing para sa mga tatlong taon. Rob BOWDEN: Hi. Ako Rob. Ito ang aking ika-apat na semestre sa CS50. Ko lang ang nagtapos Mayo. Ako ay sa Kirkland. Ako nasasabik para sa semestre, at Umaasa ako na ikaw ay masyadong. David MALAN: Salamat sa taong ito ni ulo, at sa RJ pati na rin. Kaya ang ilang huling mga tala sa mga mapagkukunan. One, p itakda 0 ay up. Isa na ito ay umiiral lamang sa standard edition, na kung saan ay sinadya para sa mga kabuuan ng klase. Na nagsisimula sa p hanay 1, magkakaroon Hacker edisyon ng karamihan ng mga hanay ng problema, kung saan, muli, sasaklawin ang materyal may isang bit higit pa sa isang hamon, habang pa rin ang paghawak sa ilang ng parehong paksa. Gawin tumingin sa website ng kurso ni para na pagtutukoy para p hanay 0. Oras ng opisina, masyadong, ay magsisimulang ito linggo, ngayong gabi, bukas, Miyerkules, at Huwebes sa iba't-ibang dining halls sa campus. Tingnan ang cs50.net/ohs para sa opisina oras para sa mga kurso, at mapagtanto na ito Magiging napaka-kaswal na mga pagkakataon, oo nga, sa pagsisimula ng semestre, na dumating sa pamamagitan ng gamit ang iyong laptop na sa panahon ng bakasyon utak. Magdala ng ilang mga kaibigan at makipag-chat up ang TFs course at Cas na may anumang mga katanungan na maaaring mayroon ka. At Hindi ko bigyang-diin ang sapat, kahit na para sa scratch at problema hanay 0, mayroong talaga ay walang pipi tanong. Walang estudyante masyadong hindi komportable upang magtanong. Mangyaring huwag mag-atubiling upang samantalahin ng ang mapagkukunang ito. Ito ay magiging doon recurringly sa buong semestre, bilang ay CS50 Talakayin. Ito ay online na talakayan ang kurso ni forum sa address na iyon doon. Ano gagamitin din namin gawin sa panahon ng aralin ay ring subaybayan ito, salamat sa pagtuturo koponan ng kurso. At kaya kung mayroon kang isang katanungan sa panahon ng magbigay ng panayam, dahil sinabi ko ng isang bagay mahina o hindi sa lahat, sa pamamagitan ng lahat ng paraan, magtanong na sa real time kung mayroon kang ang iyong laptop o telepono sa website, at gagawin namin ang pinakamahusay na sa malapit sa real time upang tumugon sa mga iyon. Mayroon bang anumang mga katanungan tungkol sa CS 50? Pagkatapos ng isang huling tala ng mina. Na isyu ng SAT UNSAT. Habang ikaw ay i-finalize ang iyong mga card pag-aaral, kung hindi pa, nauunawaan natin na ang overarching pananaw ng SAT UNSAT, magagamit para sa lahat ng mga mag-aaral, talaga upang makatulong na tumagal ng gilid off ng isang kurso tulad nito, kaya na magsalita, upang kung ikaw mahanap ang iyong sarili sa late night, 02:00, 03:00, talaga banging iyong ulo up laban sa ang wall kung saan alam mong ikaw ay 99% ng ang paraan doon upang makumpleto, ngunit sa iyo may kaya maraming iba pang mga bagay na maaaring gawin, Sa tingin ko ng isang mas mahusay na paggamit, madalas, ng mga mag-aaral 'ng oras ay sa katunayan lumipat sa mga iba pang mga bagay sa gayon maaari mong optimize ang iyong oras lahat sa paligid. At Sab UNSAT ay isa mekanismo sa pamamagitan ng kung saan maaari mong gawin ginhawa sa katotohanan na 99% ng ang paraan doon ay pa rin medyo darn magandang. Katulad nito, masyadong, kung nag-dumating sa kurso na walang paunang background o hindi halos bilang magkano bilang background mo Sa tingin iyong mga kaklase maaaring mayroon, totoo o mali, mapagtanto na ito ay isang pagkakataon upang makuha ang iyong mga kamay marumi may mga kurso, ilagay ang iyong mga paa sa tubig, kaya na magsalita, halos tulad ko ang aking sarili ginawa taon na ang nakaraan na may pass / mabibigo. Tulad ng aking sinabi noong nakaraang linggo, nagkaroon ng kursong ito, tulad ng iba, hindi magagamit pumasa / mabibigo sa oras, marahil ko gagawin Hindi pa kailanman stepped paa sa ang klase, kahit na ginawa ko, limang linggo mamaya, baguhin ang aking isip, na kung saan mo Maaaring pati na rin, at lumipat sa o sulat mula sa gradong katayuan. Ayos lang. Kaya kami ay tumingin sa mga bagay tulad na ito sa Biyernes, at kami ay masyadong mabilis pagpunta upang lumipat sa isang bagay na mukhang mas misteriyoso ngayon. Ngunit ito ay gayunman ang parehong pangunahing ideya. Ano ang pangkalahatang termino na namin ginagamit upang ilarawan ang isang malaking suliranin piraso na ang mukhang ito? Kaya, ang isang pahayag. At maaari kang tumawag ito anumang bilang ng mga bagay. Ngunit kailangan lang namin tumawag ito ng pahayag, at isang pahayag Sinasabi lamang ang programa - o sa kaso ng mga scratch, ang engkanto - upang gawin ang isang bagay. Kamustahin sa kasong ito. Parang ganito kami sa halip na tinatawag na kung ano? Oo, kaya isang Boolean expression. Ang isang Boolean expression lamang ang isang bagay iyon ay totoo o hindi, at kaya scratch tumatawag na ito sa ang hugis na ito, ngunit din may isang tandang pananong upang ihatid ang ideya na ang sagot sa tanong na ito Alinman sa tama o mali, oo o hindi isa, 1 o 0. At ginagamit namin ang mga Boolean expression sa loob ng constructs tulad ng mga ito, na namin na tinatawag na kung ano? Kaya, kondisyon o sangay. At ang kundisyon nakikita dito sa May scratch ng kaunti placeholder para sa isang puzzle na piraso ng na hugis, ang layunin na kung saan ay sa gayon ay maaari mong i-drag ito at i-drop ito sa tuktok at pagkatapos ay mag-utos sa program na ito kung Boolean expression ay totoo, gawin ito hanay ng mga mga tagubilin, sa hanay ng mga pahayag, iba gawin ito iba pang mga hanay ng mga tagubilin. At isipin ang na maaari mong nest ang mga bagay na ito. Kahit na mayroong hindi magkano ang kuwarto biswal sa puzzle na piraso, scratch ay lalaki at pag-urong upang magkasya anumang puzzle piraso mong i-drag at i-drop sa may kaya maaari mong talagang nest na ito at May tatlong paraan tinidor sa kalsada. Kung, kung ibang tao, iba pa. At maaari ka ring pumunta lampas na sa pamamagitan ng nesting karagdagang at karagdagang bilang kinakailangan. Kaya bilang wakas, nakita natin constructs tulad ng ito, kung hindi, na kilala bilang isang loop. At ito ay lamang ng isang bagay na gumagana isang bagay muli at muli at muli. Sa kasong ito, ito ang mangyayari sa maging isang may wakas dami ng beses, ngunit din namin Nakita ang isang halimbawa kung saan ang bilang ng mga beses na nagmula sa isang variable, kaya ito maaaring baguhin. At din namin nakita ng isa pang block nang sama-sama tinatawag na magpakailanman block na nagpahintulot sa amin upang loop walang katapusan ang haba. Kaya isa pang bumuo na scratch 2.0 ay may - at doon sa iyo ng karagdagang komportable sa naunang background ay pa rin pamilyar sa ito bumuo - mga bagay na aming tinatawag na kung ano? Kaya namin na tinatawag na mga pag-andar, kung hindi man na kilala bilang mga pamamaraan. May kaunting pag semantiko pagkakaiba, ngunit magkakaroon kami tatawag sa kanila lamang function. At isang function, sa kaso ng mga scratch, ay isang pasadyang piraso puzzle na Maaari kang lumikha ng iyong sarili sa gayon ay mayroon kang isang bagong piraso puzzle na, sa ganitong kaso, ay tinatawag na ubo, na Lumilitaw sa lahat ng iba pang mga Available ang puzzle piraso sa scratch. Kahit na ang MIT ay hindi ilikha ito puzzle piraso, ng ginawa mo. Kaya isang function na nagpapahintulot sa iyo na lumikha ng mga bagong pag-uugali, bigyan ito ng isang function na pangalan, at pagkatapos ay tumawag ito, kaya na magsalita. Talagang gamitin ito sa mga programa muli at muli at muli nang hindi na kinakailangang maghintay para sa isang tao tulad ng MIT pababa ng kalsada sa ilikha bagong pag-andar mula sa simula. Maaari kang bumuo ng iyong sarili ang mga puzzle piraso sa iyong sarili, at pagkatapos ay muling gamitin ang mga ito sa iyong sariling mga programa. At makikita natin ang umuulit na halimbawa ng na ngayon at pasulong. Kaya ngayon, kami transition ngayon sa isang bagay na mas arcane. Ngunit sa pagtatapos ng araw, isang bagay mas malakas at nagpapahayag at higit pa kinatawan ng path na kami ay magiging sa lahat ng semestre sa buong isang numero ng mga wika - na ng code o source code. At ang source code, ito lumiliko out, ay hindi kung ano ang isang computer Karaniwang aktwal na tumatakbo. Source code ganito ang hitsura. Kaya ito ay, muli, marahil ang pinakasimpleng programa maaari naming magsulat sa isang wika na tinatawag na C. Magsisimula kami sa mang-ulol-hatiin ito bago mahaba, at kung ito talaga ang hitsura ng Griyego sa iyo sa ngayon, nagtitiwala sa akin. Sa loob lamang ng isang linggo o dalawang oras ng, ito ay magiging lahat ng masyadong pamilyar at talagang medyo kinatawan ng nagiging kumplikadong mga halimbawa na kung saan bibigyan ka ring makakuha ng mas kumportable. Ngunit hindi lamang sa iyo ay maaaring tumakbo ito uri ng code karaniwan. Mayroon kang upang i-on ito sa isang bagay na ang computer mismo nauunawaan. At kaya para sa na, kailangan namin ng isang bagay kami ay pagpunta sa tumawag sa isang tagatala. Tagatala ay isang programa na tumatagal source code, na tulad mo lang nakita, bilang input, at ito ay gumagawa zeroes at mga bilang output, kung hindi man Kilala bilang object code. At ito ay mga zeroes mga bago at na maaaring magmukhang medyo ganito na sa huli ay naunawaan sa pamamagitan ng iyong Mac o iyong PC. Kung kailanman na iyong narinig sa marketing ng expression Intel Inside, na lamang ay nangangahulugan na ang isang kumpanya na tinatawag na Intel ay manufactured ang talino ng iyong computer - kung hindi man ay kilala bilang ang CPU, gitnang processing unit - at ito lamang ang mga bagay na Naiintindihan ng mga pattern ng zeroes at bago. At ito sa pamamagitan ng pag-convert ng source code sa object code sa pamamagitan ng prosesong ito dito na aming gagawin sa isang pares ng mga utos sa loob lamang ng kaunti, ikaw ay paglikha ng mga pattern ng zeroes mga bago at na ang mga empleyado sa Intel mayroon Nagpasya kumakatawan sa ilang mga pahayag. Ngayon, hindi ko pa alam kung saan kung saan ay sa pamamagitan lamang ng glancing sa mga zeroes at bago. Karamihan sa mga tao mga araw na ito ay hindi. Ngunit sa isang lugar sa may isang pattern ng zeroes mga bago at na kumakatawan sa pahayag print. Sa isang lugar sa, maaaring may iba't ibang magtakda ng zeroes mga bago at na Kumakatawan sa mga kuru-kuro ng magpakailanman o ulitin 10 beses o kahit ngiyaw, kung ito ay talagang isang programa na maaari magsama ng ilang mga tunog. Kaya sa maikling, mga kawani na tao ay nagpasya lamang, magkano tulad ng ginawa namin para sa ASCII - para sa mga titik ng mga alpabeto noong nakaraang linggo - mga kawani na tao nagpasya na kahit na mas kumplikadong pattern ng zeroes mga bago at Kinakatawan mas kumplikadong pag-uugali tulad ng pag-print o sinasabi o meowing. At kaya para sa ngayon, at higit sa lahat pasulong sa semestre, isasaalang-alang namin para sa Binigyan na may isang taong may korte out kung paano gawin na pagmamapa. Ngunit kami, pare-pareho sa ideyang ito ng layering sa tuktok ng gawa ng tao taong dumating bago sa amin, ay magdadala para sa Binigyan ang katotohanan na ito ay nangyayari sa sa ilalim ng hood. Ngunit kami ay mas interesado sa gusali ng mga bagay na higit na kawili-wili sa tuktok ng lahat ng ito. At gayon nga, ang unang programa namin nagsulat sa scratch ito ay sobrang simple isa, Hello World. At maaari mong isipin na ito bilang pagiging pangunahing programa na sumasaklaw scratch ni pag-uugali bilang ng huling Biyernes. Ngayon, kami ay pagpunta sa simulan upang isalin Scratch piraso sa palaisipan source code sa wikang ito na tinatawag na C kaya na kung ano ang mukhang ito sa Biyernes, simula sa araw na pasulong, ay ngayon pagpunta sa ganito ang hitsura. Tinatanggap na mas misteriyoso. Medyo Ito ay distracting at uri ng pag-iisip numbing upang makita ang lahat ng mga quote at ang semicolons at ang panaklong at iba pa. Ngunit kung sinimulan mo na huwag pansinin ang anumang bagay sa iyo hindi maunawaan, at talagang tumingin sa kakanyahan ng puting teksto sa screen, tiyak na nakikita mo, tulad ng gagawin ko, "Kumusta, mundo." Na mga linya up sa lilang statement up tuktok, at ito ay nagiging out na ang pangunahing keyword ay pagpunta sa pumila conceptually kapag may green bandila na-click. Kaya sa ibang salita, samantalang sa simula, namin ipatupad ang programa Kamusta Mundo may mga dalawang piraso puzzle, sa C, kami ay pagpunta sa ipatupad ito sa mga apat medyo misteriyoso mga linya. Ngunit bilang namin sumisid ng mas malalim sa ito, bibigyan ka makita na ang bawat isa sa mga puting mga character sa screen talaga May ilang mga makabuluhang kahulugan, at karamihan sa aming mga programa ay pumunta sa Inaasahan structurally medyo pareho. Kaya ang isang pahayag, upang maging malinaw, kung ano mukhang "halimbawa kumusta mundo" sa Biyernes ay pagpunta upang simulan ang hinahanap i ito sa Lunes. printf ("kumusta, mundo"). At mayroong ilang mga kakatwang mga backslash n, mayroong mga panaklong, mayroong semicolons. Ngunit sa pagtatapos ng araw, ang susi takeaway ngayon ay na ang lahat ng aming ginagawa ay nagta-translate ng mga bagay mula sa larawan bumubuo sa teksto ng form. Kaya isang loop na ang mukhang ito noong nakaraang linggo ay pagpunta sa ngayon hitsura isang bagay na katulad nito. At hayaan mo akong itatwa, tulad ng sa Wala, mayroong iba't ibang mga paraan upang makamit ang parehong layunin. Parehong sa C. Hindi ako nagpapakita sa iyo ang tanging paraan upang gawin ang mga bagay, ngunit isang paraan upang isalin ito magpakailanman i-block sa isang loop sa C. Ito ang isa dito, ulitin 10 beses. Ito ang isa talagang uri ng bends ang tututol ang unang pagkakataon na makita mo ito. Ngunit upang ipatupad na simula ngayon, kami ay pagpunta sa gumamit ng isang para sa loop, kaya na magsalita. At malinaw na mayroong ilang mga syntax na medyo kumplikado doon may ako at pantay at 0, ngunit sa sandaling namin sumisid sa na ngayon pasulong, lamang ka ng pagpunta upang makita na na lahat nang simple ang paggawa ng ilang basic aritmetika upang makakuha ng sa amin mula sa 0 sa hanggang sa 9 o 10 sa kasong ito. Panghuli, may mga variable, makikita mo maalala muli na variable ay isang piraso ng imbakan. Well, kung ano ang nagkaroon kami sa kaliwa doon huling linggo ay pagpunta upang tumingin ng kaunti isang bagay tulad na ito sa linggong ito. Ngunit muli, higit pa sa na sa darating. Nagkaroon kami ng Boolean expression, na noong nakaraang linggo, mukhang ito. Sa linggong ito pasulong, sila ay pagpunta sa simulan upang tumingin ng kaunti tulad na. At isa na ito ay talagang medyo reassuring. Ito ay talagang halos na simple bilang ang berdeng mga bloke. Ngunit dito mayroon kaming, muli, ang ilang mga bagong syntax may mga ampersand, ngunit maaari mong marahil hulaan samantalang sa scratch, mo sabihin A-N-D, tila sa C, hindi namin pagpunta sa sinasabi ampersand ampersand. Ngunit lahat ng ito ay magiging natural na bago ang haba. Kundisyon. Noong nakaraang linggo, ito ay tumingin tulad ng ito sa kaliwa. Linggo na ito, sa kanan, ito ay pagpunta sa hitsura na. Ngunit muli, ang key takeaway dito ay na bilang ka ng mga bagay tulad na sa sa kanan, at lalo na kung mas mababa komportable, ito ay isang uri ng higit sa iyong mga ulo, kumuha ka ng isang maliit na mapuspos Ako talaga ay walang mga ideya kung paano ko magagawa posibleng makabuo ng na mula sa wala - magbigay ng isang patudyong salita hindi inilaan - lamang mapagtanto na ikaw talaga ang parehong ideya na marahil nadama kaya marami pang iba natural sa nakaraang linggo. At kahit na hindi mo pa dived sa problema hanay 0, sa palagay ko makikita mo na ang puzzle piraso ay medyo madaling maunawaan, o hindi bababa sa kaya maging sa paglipas ng panahon. Kaya natin sumisid in Sabihin makakuha ng aming mga kamay marumi dito sa ang unang simpleng programa. At simple ay, siyempre, kamag-anak. Upang gawin ito, pupuntahan ko babaguhin ang mga screen sa device ko na tinatawag na CS50 appliance. Ang CS50 appliance ay isang piraso ng software na tumatakbo sa loob ng isang window sa aking Mac, at maaari mo ring patakbuhin ito sa isang window sa loob ng iyong PC, na ay nagbibigay-daan sa akin upang magkaroon ng parehong eksaktong computer na kapaligiran bilang bawat tf, bilang bawat CA, pati na ang bawat mag-aaral sa klase. Dahil ang CS50 appliance ay literal isa pang operating system tinatawag Linux - partikular Fedora Linux - at kami, mga kawani, na-configure ang pag-install proseso para sa operating system sa paraan na ang isa, mayroong isang maliit CS50 logo sa gitna, dalawang, mayroong isang pasadyang menu sa sa ibaba, at tatlo, pedagogically, namin pinasimple ang user interface bilang magkano hangga't maaari sa gayon ay kapag ikaw unang sipain ito bagay up sa iyong sariling Mac o PC, mayroon ka ng parehong kapaligiran bilang ang iba, at ikaw mayroon ng lahat ng mga tool na kailangan mo para sa mga kurso nang hindi na kinakailangang malaman out paano i-install sa bawat isa at bawat tool na paisa-isa. Kaya ito hitsura medyo tulad ng Mac OS o Windows. Sa ibabang kaliwang sulok, mo mahalagang magkaroon ng Start menu ng uri, o isang menu ng Apple. At pagkatapos ay mayroon kang kung ano ang pinaghihinalaan namin kalooban maging iyong tatlong pinaka-karaniwang mga icon. Ang isa ay Chrome. Mayroong isang browser sa loob ng appliance. Dalawang ay isang programa na tinatawag na gedit, na Nakita namin Panandalian noong nakaraang linggo, kung saan ay lamang ng isang graphical editor. At tatlong ay isang Terminal programa, na ay isang itim at puting window mula sa nakalipas na panahon na nagbibigay-daan sa amin upang makapag-type nang higit pa arcane ngunit mas malakas na utos sa ang aming keyboard. Kaya pupuntahan ko sige at mag-click sa gedit, at makatitiyak na nagpapatuloy ang problema itakda 1, na inilabas sa Biyernes, kalooban ituturo sa iyo ang lahat ng mga parehong mga hakbang. Pansinin na mayroon akong isang medyo simple user interface na may tatlong bahagi. Sa kaliwa, mayroon akong isang malaking walang laman window na tinatawag na source code. Iyon ay kung saan ako pupunta upang makita ang isang buod ng anumang code na isulat ko. Sa kanang bahagi, mayroon akong isang malaking tab, kasalukuyang hindi naka-save, at iyon kung saan ang aking code pupuntahan pumunta. At sa ibaba, ako ay isang naka-embed Terminal na window, isang itim at puti prompt kung saan ang maaari kong i-type command sa sumulat ng libro at patakbuhin ang aking mga program - na ay, upang gumawa at magpatakbo ng aking mga programa. Kaya natin simulan simple. Hayaan akong pumunta up sa File, I-save. Pupunta ako sa sige at pumunta sa jharvard. Kaya ang appliance, hindi isinasaalang-alang ng kung ano ang ang iyong pangalan ay, ay kabilang sa isang tao na may pangalang John Harvard, kung sino ang may isang jharvard bahay direktoryo sa loob ng kung saan ang lahat ng iyong mga file ay pumunta. Ito ay ang iyong sariling kopya ng kanyang account, kaya hindi namin ang lahat ng pagbabahagi ang parehong hard drive. Ikaw lang ay ang ilusyon ni Juan Harvard sariling. Sa maaga, ko talaga Dropbox install. Ang appliance ay may preprepared Dropbox upang kung anumang bagay napupunta mali sa panahon ng semestre, kung ikaw ay naka-configure ang iyong appliance na may libreng Dropbox account, ang lahat ng iyong mga file kalooban ay awtomatikong naka-back up mo kaya Maaari napaka madaling mabawi ang mga ito. At ako pagpunta sa pumunta sa aking Dropbox direktoryo, at mayroong naka pagpunta upang maging ng ilang iba pang mga bagay doon. Pero pupuntahan ko sige at pumunta sa File, I-save. Pupunta ako sa pumunta sa jharvard, Dropbox, at hanggang dito, pupuntahan ko ibigay ang aking programa ng sobrang simple pangalan, hello.c, at pagkatapos ay i-save. Kaya Mayroon akong ang parehong interface ngayon. Ang tanging bagay na nagbago ay ang tab up tuktok. Kaya ako masyadong mabilis pagpunta sa muling likhain na programa mula sa mga slide ng ilang sandali ang nakalipas. Kaya sa pangunahing (walang bisa), at pagkatapos ay printf, "Kumusta, mundo," isang medyo misteriyoso backslash n, malapit quote, isara panaklong, tuldok-kuwit, at pagkatapos Ctrl S upang i-save. At notice bilang isang bukod ano lang lumitaw dito sa itaas na kaliwang. At ito ay hindi kapaki-pakinabang ngayon, ngunit ay magiging kapaki-pakinabang sa paglipas ng panahon. Ikaw lamang ang makikita, muli, ang isang buod ng ang code na iyong isinulat. At dahil ako ay sumulat ng isang bagay na tinatawag na main, na ang dahilan kung bakit ang salitang pangunahing pop up doon. Ngunit para sa pinaka-bahagi, namin hindi kailangan na ngayon. Ang lahat ng mga karapatan, kaya i-claim ko na ito ang aking unang programa na nakasulat sa isang programming wika na tinatawag na C. Alam namin mula sa Biyernes na kung ano ang bagay na ito ay pagpunta sa gawin napaka uninterestingly kapag ako tumakbo lamang ito ay ipakita - sa ibang salita, i-print, bilang isang computer siyentipiko sasabihin - kumusta mundo sa screen. Kaya upang gawin ito, mapapansin mo na mayroon akong upang pumunta down na dito sa aking terminal window, at ngayon ay mayroon ako isang nagbi-blink na prompt. Ngunit ito ay isa ng keyboard na bersyon ng ang aking John Harvard home directory. Ito ay isang keyboard sa pamamagitan ng paraan na i-navigate ang aking hard drive. Kaya hindi talaga ako makapag-type tulad ng ginawa ko huling linggo gawing kumusta, dahil ito ay pagpunta sa sabihin walang mga panuntunan upang gumawa ng target - isang bagay ang mali. Hindi ko pa masyadong alam kung ano na ang mensahe ibig sabihin, ngunit iyon ay dahil sa pamamagitan ng default, kapag ito itim at puting window ay binuksan, ako sa loob ng John Harvard ni home directory. Ngunit kung saan ang nakuha ko na i-save ang program? Sa aking Dropbox folder. Ngayon, ang lahat ng sa amin na lumago up sa mga computer kung saan mo lamang i-double click icon sa isang folder, ang ito bubukas up, at voila. Iyon ay kung saan ang mga file na tinatawag na hello.c ay magiging. Kaya sa katunayan, sabihin gawin iyon. Hayaan akong sige at i-minimize ang gedit tulad ng ginagawa mo sa Windows o Mac OS. Hayaan akong pumunta sa Home folder sa kaliwang tuktok. Kukunin ko makita dito ng grupo ng mga folder. Ito ang aking Dropbox folder. Ang checkmarks Nangangahulugan itong ma-sync. At mayroong ilang mga bagay in dito, ngunit napansin na hello.c ay sa katunayan doon. At kaya sa Mac OS o Windows, normal, Gusto ko i-double click na, ito ay bubukas up sa kahit anong program, at ako ay handa na upang patakbuhin. Ngunit ngayon, hindi bababa sa simula ngayon, namin kailangang gumawa ng isang hakbang paurong lamang sa magbibigay sa iyo ng ilang mga pangunahing mga kasangkapan para sa iyong tool kit na kung saan upang gawin higit pa malakas na mga bagay bago ang haba. Kaya sa ang pagsenyas na ito, kailangan kong gawin ang katumbas ng pag-double click ang Dropbox folder. At upang gawin iyon, pupuntahan ko na mag-type para sa CD baguhin direktoryo, Dropbox, ipasok. At ngayon mapansin ang mga panaklong sa aking tinatawag nang gayon prompt ngayon sinasabi na ako sa tilda, ang maliit na squiggly simbolo sa kaliwang tuktok ng pinaka-keyboard, / Dropbox. Ito lamang ang shorthand notation para sa sinasabi ng mga tao, ikaw ay ngayon sa loob ng ang Dropbox folder, tulad ng kahit na double mo ay nag-click sa ito. Kaya ngayon kung pumunta ako nang maaga at i-type gumawa kumusta, ipasok, makikita ko ang isang napaka misteriyoso utos, ngunit hindi isang error na mensahe, parang, at pagkatapos ay isa pang nagbi-blink na prompt. At kung isipin ang mo, kailanman ay kaya mabilis sa Biyernes, ginawa namin ito. . / Kumusta. Ano ikaw ay tungkol sa upang makita ang resulta ng aking tumatakbo ang program na ito, o, sa Mac OS at PC mga tuntunin, kung gusto ko normal double mag-click sa isang programa -. isang app programa o sa isang. exe, ito ay bubukas isang window at napatakbo. Ang pag-type. / Kumusta ay katulad lamang ng double ng pag-click sa isang programa upang patakbuhin ito, ngunit ginagamit ang aking keyboard. Ipasok, kumusta mundo. At na ito. Kaya sabihin mang-ulol na ito bukod sa gayon ito Hindi sa tingin masyadong maraming tulad ng Griyego. Kaya. / Ibig sabihin kung ano? Kahit sino sino ang kailanman navigate isang keyboard kapaligiran na tulad nito, kung ano ang tuldok nagre-refer sa? Ang kasalukuyang direktoryo. Kaya ang kasalukuyang direktoryo ay lamang isang kasingkahulugan para sa isang folder. Kaya sa pamamagitan ng sinasabi ng mga tuldok na slash, ako ay sinasabi, tumingin para sa isang programa na tinatawag na kumusta sa kasalukuyang directory - sa kasalukuyang folder. Sa ibang salita, ang aking Dropbox folder. At iyon ang dahilan kung bakit pagpindot ng Enter pagkatapos noon aktwal na tumatakbo ang program na. Kung ako ngayon uri LS, mapapansin na ang nakikita ko ang lahat ng bagay sa aking Dropbox folder. Pagkuha ng Started.pdf, na Dropbox Nagbibigay sa iyo ng libre, ang aking mga larawan direktoryo, isang pampublikong direktoryo, hindi na-save Dokumento 1 na ako na ginawa ng isang pagkakamali ilang sandali ang nakalipas, foo.c, na aking ginawa nang mas maaga ngayon, at pagkatapos ay dalawang linya - hello.c at kumusta. Hello.c ay ang programa ko ay nagsulat na may gedit, at ano ang halo sa berde? Ang halo sa berde ay ang executable. Sa ibang salita, kapag nagpatakbo ako sa command na ito ng ilang sandali ang nakalipas - hayaan mo akong pagulungin pabalik sa panahon - kapag nagpatakbo ako gumawa kumusta, na sa gitna hakbang dito. At ito kinuha hello.c bilang input - Aka source code - at ito ay gumawa ng isang file na tinatawag na halo ng output, na naglalaman ng lahat ng mga zero at mga bago. At iyon ang dahilan kung bakit, sa dulo, maaari ko talaga magpatakbo ng isang command na tulad ng. / kumusta. Dahil sa Intel Inside, ang aking mga operating system, Linux, bubukas up ng mga zero at mga bago, mga feed ang mga ito sa talino ng aking computer - ang CPU - at na CPU alam, oh, narito ang isang pattern ng mga zero at mga bago na nagsasabing i-print ang mga sumusunod na bagay sa screen. Ano ang mga sumusunod na bagay? Quote magpanipi, "kumusta mundo." Ang lahat ng mga karapatan, sa gayon ang isang mabilis na buod ng ilan sa ang mga utos upang maaari naming simulan pagkuha ng mga ito para sa ipinagkaloob. Hayaan akong lumaktaw kung saan namin kaliwa off. At makikita mo na isipin ang nagkaroon kami CD sa aming likod tapusin ang isang sandali ang nakalipas. Ang mga ito ay, maglakas-loob ko sabihin, para sa layunin ngayon - siguro sa linggong ito - ang tanging utos namin baka kailangan na mag-type sa command na bukod sa prompt gumawa. Kaya CD nakatayo para sa kung ano? Baguhin ang direktoryo. Ito ay lamang ang katumbas ng double click sa isang folder. At bilang isang bukod, kung ikaw ay makakuha nawala kailanman sa loob ng iyong appliance, tulad na Dropbox - Gusto ko upang makabalik sa aking jharvard directory - kapag may pagdududa, CD, ipasok, na walang iba pang mga mga salita, at ito lamang ZIP code ka pabalik upang kung saan ka magsimula, na ay isang magaling kaunti shortcut. Ang lahat ng mga karapatan, kaya ngayon iba pang mga utos. LS. Ako nai-type na ng ilang sandali ang nakalipas. Ano sa tingin ninyo LS ibig sabihin ay? Kaya, listahan, tama? I-back sa araw, kapag ang mga tao ay darating up gamit ang mga command, sila na sinusubukan mong maging mahusay, at sa halip i-type ang L-I-S-T magpasok, sila Nagpasya LS. Iyon ay pinong. Ito tunog tulad ng sapat na listahan. Sabihin lamang uri LS ipasok, at na naglilista ng mga file o folder sa aking kasalukuyang folder. mkdir, maaari mong marahil hulaan. Gumawa ng direktoryo. Kaya hindi mo pumunta sa menu ng ilang mga file at piliin ang Bagong Folder sa environment na ito. Sa halip, i-type mo ang command na espasyo mkdir at pagkatapos ay ang pangalan ng folder na nais mong likhain, at ito ay tapos na. rm, maaari mong marahil hulaan. Alisin o tanggalin. Kaya kung nais mong tanggalin ang isang file, bibigyan ka makita sa hanay problema kung paano mo Maaari gawin ito. At rmdir, alisin ang direktoryo. Kaya, muli, kakailanganin ko ay may posibilidad upang lumipad sa ilang ng mga detalye, isa, dahil ang mga ito ay hindi lahat na magkano masaya na gumastos sa oras, ngunit ang dalawa, ibibigay namin sa iyo sa magkano ang mas detalyado sa alinman sa mga problema kurso ni Nagtatakda, lalo na ang standard edition, sa alinmang mga hakbang na maaaring kailangan mong i-type kaya na nakakakuha ka ng higit pa at higit pa umaliw sa mga bagay na ito. Ngunit ngayon hayaan mang-ulol sa akin apart isa pang bagay. Kapag kami gumawa ng nai-type kumusta ng ilang sandali ang nakalipas, Nakita namin ang isang misteriyoso pagkakasunud-sunod ng mga utos. Nakita namin, muli, gumawa ng halo. OK, sabihin gawin ito. Ako ay tungkol sa upang makagawa ng isang pagkakamali, ngunit [Hindi marinig] ngayon umamin ako ay tungkol sa at gawin itong kusa. Ano ang gagawin ko mali lang ngayon? Oo, kaya hindi ako sa Dropbox direktoryo, dahil ang isang sandali ang nakalipas ko CD-type na lang at pindutin ang enter. Naka-zoom na ako pabalik sa kung saan ako nagsimula, na kung saan ay hindi na kung saan ang aking mga file ay, kaya ko talagang kailangan na gawin ang CD Dropbox ipasok, at ngayon ang maaari kong gawin rm kumusta ipasok, alisin regular na file kumusta. Hindi ko alam kung bakit ito kaya misteriyoso. Iyon lang ang paraan sigurado ka ba Gusto mo bang tanggalin kumusta? Maaari mong i-type y para sa yes, ipasok, at ngayon ito ay nawala. At ngayon, kung ako type gawing kumusta muli, ito ay pagpunta sa muling likhain ang aking mga bagay na code, muling likhain ang mga zero at mga bago. Ngunit ano ang deal sa may ito napakatagal na command? Well, kami mang-ulol-hatiin ito bago mahaba, ngunit gumawa - Sinabi ko ng kaunti ng isang maliit na kasinungalingan bago - ay hindi isang tagatala. Gawing ay isang programa na awtomatikong figure out kung paano patakbuhin ang isang tagatala para sa iyo. Kaya ang command na ikaw talaga ay dapat na tumatakbo upang i-convert ang hello.c kumusta sa aktwal na hitsura ang kaunti pa tulad nito. At huwag sana mayroon kaming upang aktwal na tandaan na kailanman type na buo pagkakasunud-sunod ng mga command out. Ang layunin ng gumawa sa buhay ay upang tandaan na ang antas ng pagiging mahirap para sa amin at automate kung ano gagawin kung hindi man maging masyadong pagod sa hakbang na ito. Ngunit maaari kong tinatayang na. Kaya per ito kaunti sheet impostor dito, ako maaari tinatayang kung ano ang command na iyon ay paggawa sa pamamagitan ng simpleng pag-type kalatungin, na kung saan ay ang pangalan ng tagatala kami ay magiging gamit ang semestre. Kung alinman sa mga mo pa kailanman tapos iOS pag-unlad para sa iPhone o iPad, Kalatungin ay ang programa na iyong ginagamit sa loob xcode upang gawin ang iyong mga apps. Kalatungin, bagaman, ay lamang ng isa pang programa na ang pangalan maaari naming i-type sa command na prompt, at sa pamamagitan ng pagpapasok ito ngayon, Maaari ba kitang ipakilala ang isang bagay na ang isang maliit na kinatawan ng mga utos na dumating. Kaya ipaalam sa akin gawin ito nang mano-mano. Kaya rm kumusta, at ngayon ay mapapansin kung sakaling Ako, tulad ng isang katinuan suriin - . / Kumusta, ano ang gagawin mo sa tingin ko Dapat makita kung gagawin ko ito? Ang ilang mga uri ng error. Walang naturang file na direktoryo. Kaya na ang isa ay talagang kaakit-akit direkta. Kaya ngayon hayaan mo akong i-clear ang screen. Control S nililimas lamang ang screen upang alisin ang ilang mga distractions. At ngayon pupuntahan ko nang manu-mano uri kalatungin-halo o hello.c. Kaya kung ano ito ay tungkol sa upang gawin? Mismong ang parehong bagay na gumawa ng ginawa para sa amin, ngunit ko itapon ang ilan sa hindi kailangan ang mga salita. Kalatungin ay ang program na pupuntahan kumuha ng file na. c bilang input at gumagawa mga zero at mga bilang output. Ngunit-o simula ngayon Tatawagan isang lumipat o ng isang flag. Ito ay lamang techie magulong pag-uusap para sa sinasabi ito ay isang salita-type ka sa isang prompt na kahit paano nakakaimpluwensya ang pag-uugali ng programa nagpapatakbo ka. Kaya ang sinuman nais upang hulaan kung ano-o nagbibigay? Output. Ito ay isang tao lamang napagpasyahan-o ibig sabihin output ng isang file na tinatawag na halo at gawin bilang input ano ang huling salita sa ay prompt, hello.c, upang kung ako pindutin ang Ipasok ngayon, walang tila mangyari. At nang kakatwa sapat, dito sa mundo ng programming, kung wala ang mangyayari, na marahil isang magandang bagay dahil mayroong walang error mensahe sa screen. Hello, ang Enter. Aking mga programa na ngayon tumakbo. Ngunit maaari kong gawin nakababagod kaunti mga bagay tulad ng ito. kalatungin-o, hihihi, hello.c, ipasok, at ngayon ay mayroon akong isang kaparehong programa na may pangalang hihihi. Ito behaves ang pareho, ngunit ang pangalan ay naiiba. Kaya ito ay lamang sabihin na kung gusto mo upang maka-impluwensya ang pag-uugali ng isang programa, kami ay pagpunta sa nagiging makita ang mga bagay na tinatawag na linya ng command argumento. Ito ay isang linya. Tina-type mo command. Samakatuwid, linya ng command. At linya ng command argumento lamang ang mga salita o maliit na piraso ng syntax na sa paano pa man maka-impluwensya ang pag-uugali ng mga programa na kami ay tumatakbo. Ang lahat ng mga karapatan, iyon ay marahil ang pinaka- pagbubutas programa maaari naming magsulat at makita. Natin ngayon gawin ang isang bagay mas kawili-wiling. Hayaan akong sige lang at lumikha ng isang bagong file. Pupunta ako sa sige at i-save ito sa Home directory John Harvard bilang, sabihin call ito custom.c, upang maging medyo pasadyang programa. Pupunta ako upang mag-zoom in sa aking tuktok ng ang mga tab dito at simulan muli. Isama ang standard stdio.h. Higit pa sa na sa ilang sandali. int pangunahing (walang bisa), nang higit pa sa na sa ilang sandali. printf ("kumusta, David"). Karamihan sa higit pang mga kagiliw-giliw, tama? Kaya ngayon kung - hindi dahil sa aking pangalan, dahil lang sa iba ito - gumawa ng custom na ipasok. Custom, kumusta, si David. Pero kahit na, masyadong, ay isang maliit na kasinungalingan. Ang program na ito ay maaaring pati na rin ay tinatawag na david.c, dahil hindi ito custom pag-uugali sa lahat. Talagang, gusto ko ng isang programa na nagtatanong ang mga gumagamit para sa kanilang mga pangalan. Kaya paano ko gawin iyon? Well, hayaan mo akong mag-scroll pataas sa paglipas dito. At bago gamitin ko ang isang pahayag sa Wala, bago gamitin ko printf, kung hindi man ay kilala bilang isang function, sabihin sa akin unang tanungin ang user para sa ilang mga input. Kaya upang magawa ito, kailangan ko upang gawin ang isang pares ng mga bagay. One, Kailangan ko ng isang lugar upang mag-imbak ng gumagamit pangalanan matapos ko na tinanong sa kanya o siya para dito. Ano bumuo ang kailangan kong gamitin marahil mag-imbak ng halaga tulad na? Ang isang variable. Kaya hindi katulad scratch, kung saan mo lamang makakuha ng isang magaling puzzle piraso, narito, kami ay may sa gamitin, malinaw naman, mga salita sa ipahayag ang ating sarili. At simula ngayon, anumang oras na gusto mo ng salita o isang parirala, sa programming, kami ay pagpunta sa tumawag na isang string. Kaya isang string ay isang salita o parirala sa isang. Ito ay isang pagkakasunod-sunod ng zero o higit pang mga character, mas pormal. At kung gusto mo tulad ng isang variable sa umiiral, ang iyong sasabihin ninyo akong bigyan ng isa. At ang paraan sa pamamagitan ng kung saan gagawin mo na ay upang sabihin string s tuldok-kuwit, kung saan maaari maging s anumang nais mo. Sa katunayan, s ay medyo underwhelming. Hayaan akong sige at higit pa malinaw na call ito pangalan. Bigyan mo ako ng isang string na tinatawag na pangalan. Ngunit ngayon, ano ang tao pangalan sa pamamagitan ng default? Well, kung ang tao ay hindi type ng kahit ano sa, malinaw naman, may pupuntahan upang maging walang halaga sa pangalan. At ito lumiliko out sa C, kung hindi mo bigyan sa isang variable ng isang halaga, ito ay pagpunta sa magkaroon ng isang halaga ng basura. Maaaring magkaroon ng ilang mga random na mga zero at mga bago, kaya lamang ka ng pagpunta upang makita ang basura, tunay, sa screen kung subukan mong ipakita ito. Ngunit maaari ko aayusin na sa pamamagitan ng sinasabi, talaga, tindahan sa loob ng pangalan ang sumusunod na halaga. Ang paraan iimbak mo ang mga halaga sa mga variable ay kung mayroon kang isang pangalan ng variable sa pakaliwa, kailangan mong ilagay kahit papaano kung ano ang iyong nais na mag-imbak sa ito sa kanan, at ang syntax para sa na ang nangyayari na maging tulad ng mga sumusunod. Hindi namin nakita ito bago, ngunit tumagal sa pananampalataya para sa isang sandali na may Umiiral na ang isa pang statement sa mundo na pupuntahan ko ulit tumawag function, at pag-andar na ito ay tinatawag na makakuha ng string. At ito ang literal na. Ito kahit papaano ay nakakakuha ng pagkakasunud-sunod ng mga character mula sa mga tao at pagkatapos ay ang isang bagay na may ito. At ito ang hitsura ng misteriyoso syntax. Karaniwan, kung gumagamit ka ng katumbas palatandaan - ikaw ay nasa mundo ng, sabihin nating, algebra, at ikaw talaga sinasabi x ay katumbas ng 1. Narito hindi namin sinasabi na iyon pangalan ay katumbas makakuha ng string. Namin sinasabi na tindahan sa pangalan kung ano ang sa kanang bahagi na ng equals sign. Ang equals sign kumakatawan ang pagtatalaga operator. Ito ay ang syntax na nagsasabing ilagay kung ano ang nasa kanang bahagi sa loob ng kung ano ang sa kaliwa. Kaya makapag-string ay isang bagong piraso ng pag-andar na hindi lamang ang ibig isang bagay - nagtatanong sa gumagamit para sa isang string - ito rin ay nagbabalik ito, kaya na magsalita. Kaya sabihin makita kung ano ang nangyayari na mangyayari dito. Pupunta ako sa sige ngayon at mag-zoom out, at ako pagpunta upang makakuha ng isang pares ng mga mga pagkakamali sa aking mga prompt. Pupunta ako mag-type gumawa ng custom, ipasok. Wow. Ang isang buong grupo ng mga pagkakamali. Ang lahat ng mga karapatan, kaya ito ay uri ng napakalaki, walang duda sa una, pero ito lumiliko out ang lahat ng mga napaka- tinatanggap na misteriyoso mensahe ng error ay nagre-refer na sa ilang mga pattern na magsisimula kami upang makita ang paglipas ng panahon. Kaya isa ito Kukunin ko off ang lakas ng loob, dahil ito ay unang. Gumamit ng hindi nagbigay-alam identifier string. Iyon ay nangangahulugan lamang na gedit, o kalatungin, sa kasong ito, ay hindi alam kung ano ang ibig sabihin ko sa pamamagitan ng string. At iyon ay dahil sa C, ang programming wika, doon talaga Walang variable ng uri ng string. C ay hindi alam na mga string umiiral. Ngunit kami, CS50 staff, gawin. At kaya nang maaga ng klase, kami lumikha ng isang file na tinatawag na CS50.h. At sa loob ng file na ito - at higit pa sa syntax na dumating - sa loob ng file na ito ay isang pagbibigay-kahulugan ng kung ano ang ko lang ang tinukoy walang bawas ang mga salita bilang isang string. Kaya sa pamamagitan lamang ng concluding ito isang linya ng code sa aking mga programa, Ako ngayon pagtuturo gedit at gumawa at kalatungin lahat sa kung ano ang i-string ay isang. Hindi ko alam kung paano pa. Sa ilang linggo, bibigyan namin ng alisan ng balat pabalik na layer. Ngunit para sa ngayon, alam na ito ay nagtuturo ang tagatala kung ano ang isang string talaga. Kaya ngayon hayaan mo akong i-clear ang aking down na terminal dito. Hayaan akong muling patakbuhin gumawa ng custom, at ako Nalutas ang lahat ng mga problemang ito. Kaya ito, masyadong, ay pagpunta sa maging isang umuulit na tema. Lamang ako ay nagsulat ng isang linya 9 programa, at pa ako nagkaroon 18 mga linya ng mga error. Iyon uri ng intimidating. Ngunit mapagtanto na sila madalas kaskad tulad na isang maliit pagkakamali pinalitaw ang pagkalito para sa tagatala, at tinitingnan nito magkano ang mas masahol kaysa ito ay. Kaya ngayon ang isang matalas tagamasid ay alam na nakakakuha ako ng isang string mula sa gumagamit, ngunit hindi ako talaga ginagawa kung ano dito? Hindi ko talaga ginagawa anumang bagay na may ito. Kaya kung ako talaga tumakbo ang mga custom na muli, ito ang nangyayari sa makatarungan umupo doon. Ano kaya ang nangyari? Aking mga programa Mukhang natigil sa ano linya, gusto mo sabihin? Kaya talaga ito ay natigil sa linya 7. At hindi nasaksihan namin ito dati, ngunit sa linya 7, mayroong, muli, ito pahayag, kumuha ng string. At ginagawa nito kung ano ang sinasabi nito. Ito ay naghihintay na ngayon para sa mga tao gawin ang mga string. Ito ay ganap unintuitive sa akin, ng tao ang, dahil hindi ko pa na-Sinabi kung ano ang gagawin. Ngunit ipaalam sa akin sige sa pananampalataya at hayaan mo akong magpanggap na maging Rob. Enter. Iyan ay hindi ang programa ko nilalayon. Kaya mayroon kaming ang aming unang blog. Ngunit sabihin subukan upang dahilan sa pamamagitan ng kung bakit ito ang kaso. Una, hayaan mo akong ayusin ang unang problema. Hayaan akong magdagdag ng isang linya dito na nagsasabing printf, ano ang pangalan mo? Sabihin lang gawin malapit quote, isara panaklong. Ngayon hayaan mo akong muling patakbuhin ang program. Problema. Hindi ako nakakakita na. I-right. Hindi ako mag-recompile ito. Kaya sa isang wika tulad ng C, dahil sa iyo baguhin ang source code ay hindi nangangahulugan na na nabago mo ang iyong mga object code upang makabuo ng bagong mga bagay na code, bagong mga zero at mga bago. Kailangan mong mag-recompile. Kung ako ngayon muling patakbuhin custom, ipasok, ah, ng kaunti pa malinaw. Ang pangalan ko ay Rob. Maraming surot pa rin. At gusto ko magtaltalan mayroong ng ilang mga bug ngayon. Ito lang mukhang kahindik-hindik, lantaran. Nagustuhan, Nagnais ng pinakamababang, dapat na mayroon ako isang space doon, o ilipat ang cursor sa bagong linya. At talagang, ang mga bagong linya. Iyon uri ng isang susi parirala na dito nasaksihan namin subalit hindi tinukoy. Ang paraan na kung saan makakakuha ka ng teksto upang ilipat papunta sa susunod na linya, hindi mo magawa ito. Ito ay nakakalito sa mga computer. Ito Mukhang dalawang magkahiwalay na mga linya ng code, wala sa kung saan ay ganap na ganap tama. Sa halip ay mayroon na maging mas malinaw at sabihin, magbigay sa akin ng isang bagong linya, na aming kumatawan sa c may backslash n. Kaya mayroong ilang mga character tulad. Backslash n ay maayos na Aesthetic. Hayaan akong mag-recompile ang aking programa. Hayaan akong muling patakbuhin ang aking mga programa. Ito mukhang mas mahusay. Ito ay pa rin medyo primitive, ngunit ito ay din pa rin maraming surot. Kaya mayroong isa - kahit na hindi mo pa-program bago, maaari mong marahil kumuha ng isang hula sa kung bakit ang programa ito ay pa rin flawed. Ano ang kailangan kong gawin iyon Hindi ko pa tapos pa? Kaya ko bang talagang gawin isang bagay na may pangalan. Tulad ng sa simula, maaari mo talaga magtalaga ng isang variable na tulad n o kontrahin tulad ng ginawa namin huling linggo - isang halaga. Ngunit kung hindi ka gumawa ng anumang bagay na may ito, walang pupuntahan mangyari. Ang lahat ng mga karapatan, kaya hayaan ayusin. Hayaan akong ilagay ang aking mga variable doon, at hayaan mo akong bumaba dito. Hayaan akong mag-recompile, hayaan mo akong re-run, Rob. Ngayon Ako ay lamang ng isang tulala, tama? Kaya ito ay hindi talaga ang nakakakuha sa akin ng anumang karagdagang. Ngunit na noon ay isang perpektong natural likas na hilig, nais kong magpakilala, tama? Kung ang variable ay tinatawag na pangalan, at ako nais ito upang pumunta doon, bakit hindi ko na lang type ito doon? Well, siyempre, mayroon kaming upang makilala sa ngayon sa pagitan ng kung ano ay isang string? Pansinin na quote magpanipi dito, kumusta pangalan? Ito talaga mismo ay isang string. Matapang Ito ay ma-code. Ito ay hindi mula sa tao. Ito ay mula sa akin, ang orihinal na programmer, ngunit pa rin ito ng isang string. Kaya't kung ikaw Literal na magsulat N-A-M-E loob ng isang string, kung ano ang nangyayari sa makakuha ng mga naka-print? Well, N-A-M-E. Namin sa halip kailangan upang sabihin sa printf, huwag i-print out literal pangalanan. I-print out ang halaga ng pangalan. At upang gawin iyon, ginagawa namin ang mga sumusunod na. At ito lamang ang isang tao convention. Namin sa halip sabihin s%, at na Nakatayo para sa string. At pagkatapos ay sa dulo ng aking mga malapit na quote, Pupunta ako upang ilagay ang isang kuwit at pumasa sa pangalawang argumento sa pahayag na ito. Pupunta ako mag-type pangalan doon. Kaya ngayon mapansin kami ay may isang bahagyang bagong syntax. Mayroon pa kaming dalawang panaklong, at simula ngayon hayaan sabihin sa akin na ang mga bagay-bagay sa pagitan ng mga panaklong ay kumakatawan argumento sa isang function - input na ay pagpunta sa paanuman makaimpluwensya sa pag-uugali nito. Kaya sa pamamagitan ng na ang logic, kung gaano karaming mga argumento printf ay mukhang pagkuha sa panahon na ito? Kaya ito ay anyong iinumin dalawa, at na sa katunayan ipinahiwatig sa pamamagitan ng mga kuwit dito. Kaya ito ay isang argument sa pagitan ng mga panipi. Kahit na ito ay may isang kuwit sa loob nito, ang lahat ng bagay ay nasa mga quote, na nangangahulugang isa ito sa mahabang string. Comma, pangalan ng variable. Kaya ngayon hayaan mo akong mag-zoom out. Hayaan akong muling patakbuhin ito. Rob. Diyablo, ano ang ginawa kong mali? Ang lahat ng mga karapatan, kaya kailangan mong mag-recompile. Kaya muli, madaling pagkakamali upang gawing maaga muli at muli. Kaya ngayon patakbuhin muli custom, Rob, ipasok, at voila. Kami ngayon ay mayroon ng isang pasadyang programa. Kaya ako ngayon ay may programa na paggamit ng ilang mga katangian na nagkakahalaga noting. One, gumagamit ako ng CS50.h, kung hindi man na kilala bilang ang CS50 library. At sa loob ng CS50 library ay mga function na ang ibang mga tao ay nagsulat - lalo na sa mga tauhan - para magamit mo, at makakuha ng string ay isa sa mga ito. Sa Loob ng line 2 ay stdio.h, at kung bakit ito ay doon? Kumuha ng isang hula. Ano umiiral sa loob ng standard IO magulang? Printf. Kaya printf, hindi mo makita ito kahit saan iba pa sa screen. Kailangan itong dumating sa computer na kahit papaano. Saan kinukuha ito nanggaling? Ito ay sa loob ng - ito ay ipinahayag, kaya na magsalita, sa loob ng isang file na tinatawag na stdio.h. Ngayon, para sa mga bagay na ito, kami ay bumalik sa kalaunan, dahil ito ay isang bit distracting para sa ngayon. Ito ay tumutukoy sa aming return type. Ito ay tumutukoy sa isang argumento. Ngunit para sa ngayon, kami ay nakatuon dito lamang sa mga linyang ito. Kaya string pangalan, lamang sa paglalagom, kung ano mismo ang gawin ito para sa akin? Kaya ito ipinahayag sa isang variable uri ng string. Kaya ito ay ginawa upang maging para sa mga salita, hindi para sa mga numero. Tulad ng isang bukod, kung ginawa ko gusto itong maging isang numero, nais kong sabihin isang bagay tulad ng int. Kung Nais kong maging isang lumulutang na tuldok halaga, isang bagay na may isang decimal point, Gusto ko sabihin Float. Ngunit para sa ngayon, lamang ko na sinabi string. At Ibinigay ko variable na ito isang pangalan ng pangalan, ngunit maaari ko na tinatawag na ito ng kahit ano. Sa katunayan, orihinal, ako na tinatawag na ito S. Ito dito ay lamang ng isa pang statement. Gaano karaming mga argumento ay ito pahayag pagkuha? Kaya lamang ito tumatagal ng isa, at na ay isang simpleng Aesthetic detalye ng pagpapakita ng isang bagay sa ang screen sa akin. Ano ang line 8 paggawa sa mga tuntunin ng karaniwang tao? Nagiging isang halaga mula sa user - lalo, isang string - at kung ano ang ginagawa nito dito? Lubos Ito ay handing ito sa ibabaw ng mga lalaki sa kaliwang bahagi ng equals sign kaya na sa kasong ito, ang pangalan ng variable na maaari talagang iimbak ito. At pagkatapos ay printf ay isa pang Halimbawa ng isang function. At sinasabi naming tumawag sa isang function. Upang gamitin ang isang function ay tumawag sa isang function. Ito bagay sa malas tumatagal ng dalawang argumento. Ang isa, kuwit, ang isang ito. Ito ang isa mismo ay lamang ng isang string na naglalaman ng isang placeholder. Nangangahulugan ang% s maglagay ng isa pang string dito. At ito sa pamamagitan ng paglalagay ng pangalan matapos ang kuwit, na pagpasok na bagay para sa akin. Kaya ang maaari kong gawin iba pang mga bagay pa rin. Hayaan akong sige ngayon at gawin ang isang bit ng isang ulok programa, ngunit hayaan mo akong tanggalin ito, at hayaan mo akong lumikha ng isang loop. Habang totoo. Ang tunay na simbolo ay malinaw naman palaging pagpunta sa maging totoo. Kaya kung anong uri ng loop ako pampalaglag sa pamamagitan ng pagsusulat ng isang linya tulad nito? Kaya isang walang-katapusang loop, tama? Lamang habang totoo. Walang paraan ko maaaring baguhin ang mga salita tunay na maging anumang bagay, kaya ito ay lamang ng pagpunta sa magpatakbo magpakailanman. Kaya kung nag-sakaling talaga ay nagkaroon ng isang programa sa iyong Mac o PC na mukhang na na-lock up, o ito ay ginagawa isang bagay at isang bagay, at ikaw lamang ay hindi maaaring makuha ang mga bagay na umalis maliban kung reboot ang iyong computer o hilahin pataas ang Task Manager o mga katulad, narito ang naturang isang halimbawa. Maaari ko bang sabihin, "Ako ay isang maraming surot programa." Isara ang quote, isara panaklong, tuldok-kuwit. Kaya muli, mapapansin ang pattern. Kahit na ang ilan sa aming mga syntax ay bago, ang keyword na habang, ang keyword totoo, notice ko magkaroon ng parehong uri ng kulot tirante. Mayroon akong isang tuldok-kuwit at panaklong. Kaya ngayon sabihin sige at sumulat ng libro na ito. Gumawa ng pasadyang, mga pasadyang. Kaya sa puntong ito, hindi mo kailangang i-restart ang iyong appliance, ang lahat ng karapatan? Kaya ang madaling aralin dito ay may dalawang daliri, Control C, magpapadala kami huminto na programa. Ngunit maaari mong makita ang eksaktong kung bakit ito bagay ay paulit-ulit na mismo muli at muli. Ang maaari kong gawin ng isang bagay ng kaunti mas kumplikadong bilang isang teaser. Pupunta ako sa sige at sabihin ang mga sumusunod na. Para sa int, na kung saan ay isang integer, i lamang ang isang generic na pangalan bigyan namin sa pinaka- variable sa programming kapag ikaw ay lamang pagbibilang, ay katumbas ng 0. Hayaan akong sige at sabihin habang i ay, sabihin nating, mas mababa sa 100, i plus plus. Susubukan naming i-back na ang syntax na ito, ngunit ito lamang ay nangangahulugan na dinagdagan i muli at muli. At kung ano ang gusto kong gawin dito? Printf, "ang maaari kong bilangin upang i." Ito ay isang maraming surot programa. Ano ang sinabi ko talaga binabalak dito? Porsyento hindi s, ngunit hindi mo gusto hulaan ito. % D ay isang integer decimal. I Comma. Hayaan akong ibalik. Hayaan akong ngayong mag-recompile may gumawa. Hayaan akong ngayon muling palabas ng pelikula gamit ang mga pasadyang. Maaari ba akong magbilang talaga sumpain mabilis kapag Sumulat ako ng isang programa tulad nito. Ngayon sabihin gawin ang isang bagay ng isang maliit na hindi sinasadya. Paano tungkol sa sabihin gawin ito habang i ay mas malaki kaysa sa o patas sa 0. Ano kaya ito ng pagpunta sa magbuod? Kaya lohikal, ito ay hindi kaya matalino, dahil ngayon kung ako muling palabas ng pelikula na ito, isalaysay, Maaari ko ngayon bilangin talaga, talagang mataas. Sa kasamaang palad, tungkol sa bilang mataas na bilang maaari ko count ay 4000000000, sa gayon ito ay pagpunta sa matagalan. Kaya bakit hindi natin iwan ito bilang ating cliffhanger, may pag-asa na sa Miyerkules, gagamitin namin makita kung programa tapos na ito. Dalawang, kami kitang ipakilala kung paano mo ang iyong sarili isulat ang iyong sariling mga pag-andar nang sa gayon ay napaka mabilis, sa pamamagitan ng Miyerkules, bibigyan namin, bilang namin paglipat mula sa simula sa C, simulan Sumusulat kailanman nagiging complex mga programa na gawin magkano, magkano ang higit sa ito. Kami ay makita mo pagkatapos. [Palakpakan] Tagapagsalita 1: Sa susunod na CS50, Puzzle Day ay isang tagumpay.