[Daqq video] Trijonf -A ta matematiċi u l-ħila mekkaniċi huwa dan awtomatika ġdida kbira calculator fil-Harvard University. Problemi kumplessi fil-matematika magħmula permezz tal-magna f'forma kodifikata fuq tape jiġu solvuti b'mod preċiż fil- frazzjoni minuta mill-ħin mitlub għall-kalkolu tal-bniedem. Iddisinjati biex iħaffu kull forma ta ' riċerka matematiċi u xjentifiċi, il-moħħ mekkaniku ġgant se jaħdmu l-Istati Uniti Navy sat-tmiem tal-gwerra tal. [END Daqq] DAVID J. Malan: Dan, huwa CS50. Il-passat kien maġika post, imma jekk inti stajt qatt CROWLEY dak li mezz huwa fl Harvard Science Center, huwa tabilħaqq parti mill- Harvard Mark I, u huwa fuq display hemm issa għall-ħafna snin. U dak li inti ser tara inkorporati fil-sett problema wieħed huwa ħarsa wara l-kwinti lejn dak li apparat ma, u ma, minn Professur Harry Lewis, li tkun fil dipartiment xjenza tal-kompjuter hawn. Allura aktar fuq li fi ftit ftit. Imma llum aħna jibdew transizzjoni mill-aħħar ġimgħa għal dan, u aħna ser iġibu aċċenn ta 'ritratt wieħed hawn li attwalment pjuttost famużi. Hawn xi ħadd jaf liema dan hawnhekk huwa fuq l-iskrin? Mill-inqas skond leġġenda. Yeah. UDJENZA: L-ewwel virus. DAVID J. Malan: Allura kien allegatament l-ewwel bug attwali fil-kompjuter. Issa fir-realtà l-bug kelma, għal żball fil-programm, ġie magħna għal xi darba fid-dinja fiżika, u din kienet waħda mill-ewwel ħinijiet dokumentati fejn xi ħadd fil-fatt mnittfa kamla kbir mill-Mark Kompjuter II, poġġih fil-binder, u mbagħad rreġistrata, hija bħala l-ewwel bug magħrufa li jkunu effettivament ġew misjuba fiżikament. Allura b'hekk iddaħħlet dan in Lore lum. Kollox mill-aħħar ġimgħa hija disponibbli online. Fil riżorsi partikolari li inti tista mhux neċessarjament avviż, speċjalment jekk ġejjin hawn fil-persuna. Allura wieħed mill-fellows tagħlim kull sena jagħmel sett canonical ta 'noti, hekk ikollok bżonn ma jżommux rasek l-isfel, jippruvaw li tifformulaha mill-aktar xejn li jista 'jiġri hawn fil-klassi. Allura jirrealizzaw li dawk hekk imsejħa [? Scribd?] Noti huma online, ċertament l-pjastri u kodiċi tas-sors li nużaw fil-klassi. Nagħmlu traskrizzjonijiet test sħiħ disponibbli kif ukoll. Mela jekk inti vagament tiftakar xi tul, u tixtieq tfittex it up ftit aktar faċilment, tirrealizza li kollha ta 'dan huwa online jitfittex. Kif ukoll walkthroughs ukoll. Tabilħaqq, illum aħna tibda tħares lejn lingwa ta 'programmar livell aktar baxx, dalwaqt ikunu magħrufa lilna kif C, u huwa faċli ħafna li tip ta 'jintilfu wara biss ftit mumenti ħin, u mbagħad it-tip ta wonder kif aħna fil-fatt ltqajna biex ftit aktar eżempju kumpless mid-sempliċi. U hekk tirrealizza aħna ser ċirasa pick matul il-klassi xi mill-eżempji rappreżentattivi, iżda tirrealizza li tant aktar huwa wkoll disponibbli online sabiex inti tista 'taħdem permezz ta 'dan fil-pass tiegħek, madankollu int l-aktar komdu. Iżda aħna jitħalla 'off ma' programmi li kienu biss dan. So I ikklikkja l-bandiera aħdar, u dak li ma dan il-programm do? Jgħid, hello, dinja. Jagħmel il-qattus jgħidu bonjour fid-dinja ftit tiegħu fuq in-naħa ta 'fuq tax-xellug tal user interface scratch s. Iżda aħna beda jintroduċi xi terminoloġija ġimgħa li għaddiet. U għalhekk, affarijiet bħal dan we called liema? Liema jista 'jkun it-terminu ġeneriku għal dan? Yeah. Metodu jew dikjarazzjoni. Sure, huwa ta 'azzjoni. Agħmel dan. And yet kien hemm forom oħra għall scratch, Minbarra dawn l-hekk imsejħa dikjarazzjoni, kienu wkoll affarijiet bħal dan, li aħna msejħa dak? Yeah. Allura loop. U f'dan il-każ, dan il-ħaġa jirrepeti, ovvjament, 10 darbiet. Hemm dejjem blokk. Hemm ftit oħrajn. U llum aħna qed tmur biex tara kif tittraduċi dan għal dinja aktar moderna, jekk inti se, anki jekk huwa ser jidhru ewwel daqqa t'għajn li jkunu ferm iktar arcane. Iżda dawn kienu tabilħaqq loops. U allura għandna affarijiet simili dan, li kellu dan forma, u essenzjalment mistoqsijiet. U aħna imsemmi dawn bħala dak? UDJENZA: espressjoni Boolean. DAVID J. Malan: Yeah. Espressjoni Boolean. Xi ħaġa li huwa jew vera jew falza, iva jew le, wieħed jew żero, madankollu inti tixtieq li tara l-dinja. Iżda aħna msejħa dawk Boolean espressjonijiet, u aħna plug tagħhom f'kundizzjonijiet, jew fergħat. U fid-dinja ta ' Scratch, kollox nicely interlocks f'termini ta 'għamla tagħha, jekk jagħmel sens loġiku li jagħmlu dan, imma inti ma għandekx tieqaf fil biss tagħmel ħaġa waħda kondizzjonalment, inti jista 'jkollhom proverbial furketta fit-triq u tagħmel jew dan jew dak jekk il-kundizzjoni hija vera jew le. U mbagħad, kif tkun taf tara, jekk inti ma jkunux diġà, Tista 'anki bejta dawn il-blokok. Allura Scratch tikber biex timla l-forom li inti tista 'tixtieq li daħħal fis dan, sabiex inti tista 'attwalment tesprimi l-aktar kwalunkwe loġika li inti tista 'tixtieq li tagħmel. Kliem issa ftit ta tħabbira kemm hawn u New Haven. Allura sezzjonali jibda llum. Il-URL għal dan hija fuq li l-kors website, għal dawk familjari. Sezzjonijiet ser ikun opportunità li jiltaqgħu flimkien f'ambjent ħafna aktar intimi minn [? Sanders?] Tippermetti, b'10 sa 20 klassi ma ' tagħlim sħabi fil binarji differenti, u b'rati differenti, jekk hekk jagħżlu. Tabilħaqq l-offerti kors sezzjonijiet differenti għal dawk inqas komdi, aktar komdu, u x'imkien bejniethom, u r-rwol ta 'thumb hawnhekk, huwa hemm l-ebda definizzjoni formali, imma jekk int inqas komdi, inti tip ta 'jafu. Int daqsxejn Intrepid dwar il idea ta 'titjib marda, forsi, lura fil-klassi, jew li juru sa fl bejn taqsima. Jekk inti kont qed programmazzjoni peress li inti kienu sitt snin, aktar komda, forsi lilek. U jekk huwa tip ta toss-up, dan huwa eżattament dak li l-bejniethom huwa maħsub li jkun. Issa, fil-frattemp, għal klassi dan id-daqs, hija tieħu us żmien pjuttost twil għat-taqsima kulħadd, hekk aħna hekk imsejħa, sezzjonijiet super, ġejjin up dan weekend u ġimgħa d-dieħla kmieni, hekk tagħti ħarsa fuq il-websajt tal-kors ta għal dawk li huma naturalment wiesgħa, u wkoll iffilmjati għal dawk li ma jkunux jistgħu jgħamluha. U sezzjonijiet nfushom se tibda fil-ġimgħa tlieta mill CS50 indiċi żero. Problema sett 0 diġà fuq il-websajt il-kors tal. U jirrealizzaw li inti do jkollhom disat ijiem tard dan is-semestru. Allura dan huwa upgrade mill-aħħar sena, meta kellna ħamest ijiem tard. Mela jekk int mintix, għandna disa settijiet problema. Inti għandek disa tard ġranet, li kull waħda minnhom inti tista 'biss jonfqu wieħed fil-ġimgħa fuq. Li effettivament tagħmel id ta ' il-problema settijiet il-ġimgħa dovuta, iżda l-għan huwa li l-ftit daqsxejn ta 'pressjoni psikoloġika fuqek biex nipprova nikseb affarijiet fil-Ħamis għaliex kif inti dalwaqt se jiskopru, għall-aħjar jew għall-agħar, l-aktar kollox fid-dinja software jispiċċa tieħu ħafna itwal milli suppost tantiċipa. Allura iqisu li jkun sort ta 'opportunità biex tgħin yourself mira Ħamis imma jieħdu kumdità peress li, iva, kollox huwa dovut il-ġimgħa. U jekk inti tippreżenta minnhom fuq Il-Ħamis, li mill-isbaħ. M'hemm l-ebda punti ta 'bonus jew extra kreditu biex jintlaħqu dik l-iskadenza. Huwa maħsub li jkun crutch biss. U ħinijiet tal-uffiċċju, kemm hawn u fi New Haven, fil-persuna, jekk inti tixtieq li jiltaqa 'ma' xi wieħed mill-korsijiet tagħna tagħlim fellows u CAs għall-għajnuna. Kull dritt. Allura issa, ejja jagħmlu dan aktar reali. U għal mument li għaddej biex tibda li jiksbu ftit aktar arcane, iżda ħafna malajr nhar il-Ġimgħa u ġimgħa d-dieħla se nkunu jistgħu jagħmlu dan ħafna aktar minn nistgħu s'issa fil Scratch. Allura aħna introdotti kodiċi aħħar ġimgħa, għalkemm pictoral. Kien biċċiet puzzle. U aħna formalizzata li huwa xi ħaġa imsejħa source code, iżda ma look like? Ukoll, deher ftit xi ħaġa bħal din. U, fil-fatt, biss biex tip ta ' tease fejn nistgħu mmorru ma 'dan. Jien ser jimxi 'l quddiem u jiftħu tieqa hawn, u jien biss ser jagħżlu File Ġdid. U jien ser tiffranka dan il-fajl bħala xi ħaġa bħal bonjour dot c. Aktar dwar din l-għażla ta ' kliem fil ftit mument. U dan huwa kif xi ħadd jista tmur dwar kitba ta 'programm. Inkludi I standard / O dot h, prinċipali int null, u mbagħad miftuħa kaboċċi Brace, qrib kaboċċi Brace, printf bonjour dinja comma, backslash n, punto virgola, Save, isir. OK. Stajt bil-miktub ewwel tiegħi programm, iżda li għaddej li jkun oerhört underwhelmed għaliex meta I attwalment run dan il-programm, naturalment, billi l-ewwel kitba jagħmlu hello, u mbagħad dot slash hello, u aħna ser jgħaddu din fil ħafna aktar dettall fil-mument, li kollox ma. Ma pop miftuħa kwalunkwe tieqa. Ma tagħmel xejn partikolarment fancy. Kull ma huwa dak I told li tagħmel, imma kif nistgħu jiksbu għal dak? U kif nistgħu nibnu fuq dak? Well, ejja jintroduċu xi ftit kunċetti differenti hawn. Allura wieħed, aħna qed madwar biex tibda permezz ta 'programm imsejjaħ kompilatur. Teżisti kompilatur għall Mac OS, Windows, Linux, kull numru ta 'sistemi operattivi, u aħna ser dalwaqt jintroduċu inti għad- ambjent li aħna se tkun qed tuża, iżda kompilatur hija biss ġenerali tul għal biċċa ta 'softwer li jieħu source code u tipproduċi object code minnha. Fi kliem ieħor, jekk inti jkollhom bħala input sors tiegħek kodiċi, xi ħaġa bħal dak I biss ittajpjat, finalment tipproduċi object code. U object code huwa verament ftit mod fancy ta 'tgħid outputs s żero u s wieħed. Fi kliem ieħor, is-sors kodiċi, anki jekk huwa ser tfittex arcane ftit, u ftit inqas ħbiberija minn Scratch ewwel daqqa t'għajn, huwa inqas xi ħaġa li aħna bnedmin jistgħu jifhmu. Huwa tip ta 'jistenna u ħsejjes simili Ingliż anki jekk huwa konċiż ħafna. Billi programmazzjoni tal żero u wieħed, kif predeċessuri tagħna kellha tagħmel, xi snin ilu, ma kienx daħla gost. And yet, dan huwa dak li l- kompjuter xorta jifhem. Allura kompilatur gets us mill kodiċi tas-sors ta 'oġġezzjoni kodiċi. Huwa simili jiftħu fajl bl- kompilatur, u meta inti isalvawh, inti tikseb dawk żerijiet u dawk. Allura aħna ser tara kif tagħmel li fi ftit mument. Imma ejja issa jippruvaw jipprovdu pont bejn ġimgħa li għaddiet u dan, sabiex anke kif aħna nikseb mdendla fuq affarijiet simili ċingi kaboċċi, u semicolons, u parentesi, u kollha ta 'dawn intellettwalment interessanti aspetti ta 'programmazzjoni, li ħafna jifhem vjaġġ nies up kmieni, jirrealizzaw li kollha tal-ideat illum, huma l-istess kif l-aħħar. Allura aħħar, rajna dan l-eżempju hawn, program Hello World. Well, jibdew illum, jekk irridu biex jimplimenta l-istess programm, li għaddej biex tfittex ftit xi ħaġa bħal din. U aħna ser jispjegaw qabel twil dak int, u prinċipali, u bla effett, u kollha ta 'dak huwa, iżda mill-inqas nara hawn diġà l-Hello World familjari. Sadanittant, affarijiet simili funzjoni, jiġifieri hello, huwa ferm sempliċiment se tkun dikjarazzjoni sempliċi ħafna bħal dan. Printf bonjour dinja, b'xi kwotazzjonijiet, bil-backslash, bil-punto virgola, iżda aktar fuq li fil-ġejjieni. Linji, sadanittant, dan huwa loop li, naturalment, jgħid bonjour dinja dejjem, u dan wieħed għaddej biex tfittex ftit weirder milli fl-aħħar, imma jekk jien ngħid xi ħaġa simili, filwaqt veru, I tista 'mbagħad jistampa Hello dinja ġdid u għal darb'oħra u għal darb'oħra u għal darb'oħra. U allura kemm tista 'xorta ta tibda jiddeduċu hawn, din il-konvenzjoni ta 'użu braces kaboċċi huwa tip ta 'prodotti simili tħaddan l- linja indentati ta 'kodiċi hemmhekk. Il-linja printf tal-kodiċi ferm simili l-biċċa puzzle isfar up hawn fuq. Allura aħna ma tkunx qed tmur biex ngħid dejjem, aħna qed tmur biex ngħid filwaqt veru, iżda aħna ser tara għaliex dan huwa biss daqsxejn. Sadanittant, jekk ikollna loop bħal dan, fejn inti jirrepetu xi ħaġa finit żminijiet numru, dan wieħed wisq huwa se jieħu ftit jkollna użati li, iżda li għaddej biex ngħid għal int i gets zero, i inqas minn 10, i ++, u mbagħad printf mill-ġdid. Iżda hemm għaddej li jkun mudelli. U għal dawk minnkom familjari ma AP Computer Science, jew Java, jew kwalunkwe numru ta 'lingwi oħra, kważi kollha ta 'dawn constructs s'issa għandha tfittex l-aktar familjari. Allura varjabbli. Allura hawnhekk silta Scratch sempliċi li tistabbilixxi varjabbli msejħa counter għal żero, u mbagħad dejjem jgħid il-counter, u allura tbiddel l-counter minn wieħed. Allura li jibda bil żero, u mbagħad wieħed, tnejn, tlieta. Ukoll, kif jista aħna jintroduċu dik fil din il-lingwa l-ġdida ftit simili? Counter int ugwali żero, filwaqt vera, li huwa l-istess idea minn qabel l li jagħmlu xi ħaġa għal dejjem, u jien biss ser printf. U issa huwa jkollna ftit stramba, mija i, iżda aktar fuq li li ġejjin, iżda dawn l-ideat huma eżattament l-istess. Aħna biss issa jridu jaderixxu ma l-sintassi li l-kompjuter huwa ser domanda minna. Espressjoni Boolean, xi ħaġa bħal SX inqas minn y, jew x inqas minn y, uy inqas minn z. Huwa ser tfittex ftit xi ħaġa bħal dan, ma parentesi biss bħal fil-matematika għal miżura tajba għal ftit jiżguraw li l-ordni ta 'operazzjonijiet huwa kif għandna l-ħsieb. U issa, kundizzjonijiet. Mela jekk x inqas minn y, jgħidu x hija inqas minn y, inkella jekk x huwa akbar minn y, jgħidu x huwa akbar minn y, inkella loġikament, x irid ikun ugwali għal y. Allura inti tista 'timplimenta xi ħaġa bħal din fil Scratch, jew inti tista 'timplimenta it f'dan sintassi. U għal darb'oħra, il-braces kaboċċi huma tip ta ' tagħti l-istess forma bħall-puzzle biċċiet, iżda l-sintassi, issa, huwa forsi jibdew isegwu xi mudelli. Allura, dak ma dan tagħtina hawn? Allura aħna qed lura mbagħad fl program prinċipali tagħna. Ejja attwalment, issa, tagħmel xi ħaġa ma 'dan. Allura f'dan il-ħafna ewwel linja naraw qawwija jinkludu, I standard / O, dot h, u mbagħad ftit angolu stramb parentesi taħt dak. int prinċipali null, u mbagħad printf bonjour dinja. Hekk biss tieħu pass. Xi ħadd li qatt programmati qabel, mill-inqas jispjegaw waħda minn dawn il-linji. Bl-użu forsi xi wħud l-lingwaġġ tal-ġimgħa li għaddiet. X'inhu printf, per eżempju? Yeah. UDJENZA: [inaudible] DAVID J. Malan: Yeah. Huwa funzjoni, jew stqarrija, minn terminoloġija ġimgħa li għaddiet. U huwa azzjoni li qed jagħmel xi ħaġa. Issa din il-funzjoni, jew din id-dikjarazzjoni, ma jidher li jieħdu xi tip ta 'input? U f'liema sens ma huwa jidhru li jieħdu input, jekk iva? Input, liema do I jfisser minn dak? Yeah. UDJENZA: [inaudible] DAVID J. Malan: Yeah. Allura Scratch out biċċiet puzzle ftit fejn inti tista parametrize dan. Inti tista 'tgħid l-irrepeti blokk kif ħafna drabi li jirrepeti, b'tali mod li kien input ta xorta, u bħad Scratch kellhom placeholder ftit abjad għan-numru inti tip fil- hekk ukoll nużaw f'dan parentesi dinja test biex tagħtina din il-forma ċirkolari li fih nistgħu plagg input tagħna. Wara kollox, għexieren ta 'snin ilu meta din il-lingwa, jissejjaħ C, kienet ivvintata ebda wieħed antiċipat hija waħda minna, dawn xi snin wara, aħna'd jridu funzjoni li tgħid bonjour. Dritt? Hija d jkun sbieħ jekk kien hemm biċċa puzzle, jew kliem ewlenin, li sejjaħ hello, li litteralment biss jgħid bonjour. Iżda aħna ma bżonn li. Jista 'jkollna xi ħaġa ferm aktar baxxa livell, bħal print ġeneriku kmand, li jieħu input, u stampi xi rridu. Allura avviż issa l-mudell li se jibdew jitfaċċaw. Paren miftuħa, paren qrib hija apparentement tħaddan l-input, u mbagħad nara double kwotazzjonijiet fuq iż-żewġ truf. Għad hemm backslash stramb n, iżda nisperaw issa int tista 'tibda Ħares għall-inqas li printf qed tieħu f'xi forma ta 'input. Mhux faċli għall-utent kif Scratch, iżda huwa biss simili li jkollhom pplaggjata xi valur hemmhekk. Kull dritt, issa ejja fil-fatt tagħmel xi ħaġa ma 'dan. Allura xi wħud minnkom tista 'taf minn li shopped il-klassi qabel, ċċettjaw mal-ħbieb, li għal ħafna snin użajna xi ħaġa imsejħa l-appliance CS50. Dan kien terminu jiddeskrivi teknoloġija imsejjaħ il-magna virtwali, li hija biċċa ta 'softwer li tiegħek predeċessuri se tniżżel off websajt tal-kors tal b'xejn. Huma wkoll tniżżel biċċa ħielsa ta 'softwer imsejjaħ hypervisor, xi ħaġa imsejħa bħal VMware, jew VirtualBox, jew kwalunkwe numru ta 'għodod oħra, u fuq tagħhom Mac jew PC jew kwalunkwe kompjuter li kellhom sena li għaddiet u fl-aħħar snin, huma jista 'jirdoppja ikklikkja ikona biex imexxu dan is-software imsejjaħ il-hypervisor. U allura ġewwa ta 'dak il-programm huma tiftaħ il appliance CS50. U l-effett kien li jekk predeċessur tal tiegħek kien għaddej Mac OS jew Windows, hu jew hi mbagħad sussegwentement kellhom tieqa ġdida fuq tagħhom screen running ambjent CS50 s. Allura magna virtwali ihallik run wieħed sistema operattiva ġewwa ta 'ieħor, u dan huwa eżattament dak li għamilna. Matul parti kbira naturalment il-we jużaw sistema operattiva imsejħa Linux, speċifikament Ubuntu Linux, u dan huwa mod tajjeb ħafna fl-aħħar snin ta ' jagħmlu ċert li kulħadd fil-kors biss kellhom l-istess ambjent. U inti tista 'tuża kwalunkwe tip ta' kompjuter li inti fil-fatt tixtieq. Fost il-aspetti negattivi, għalkemm, kieku ma kienx bħal żewġ gigabytes li tniżżel dan il-ħaġa. Hija ma neċessarjament xogħol super sew fit persuni li kompjuters li forsi biss kellhom GIG jew hekk ta 'RAM, jew le wisq gigahertz ta 'veloċità CPU, u għalhekk din is-sena, għal dan u raġunijiet oħra, li aħna qed transizzjonijiet li dan l-ambjent. L-hekk imsejħa CS50 IDE, li hija ibbażati fuq software b'sors miftuħ, u pjattaforma appoġġjati li kumpanija msejħa Cloud9 jappoġġja fl-Ewropa, li jippermetti li essenzalment għandhom l-istess ambjent eżatt bħal fil snin li għaddew, iżda fil-sħaba hekk imsejħa. Allura x'inhi l-sħaba? You ħadthom probabbilment għafast icon tagħha fuq Mac tiegħek jew PC. X'inhu l-sħaba? Yeah? A louder ftit. Yeah. Huwa biss mazz ta 'kompjuters x'imkien ieħor li jaħżen id-data u run softwer u simili. Allura huwa verament ftit l-kelma de jure deskritti [? rentable?] kompjuters li jgħixu xi mkien ieħor. Li inti, lilek innifsek, mhux bilfors stess. Allura meta data tiegħek, jew tiegħek programmi, huma fil-sħaba, hija biss ifisser li huwa fuq xi ħadd ieħor tal-kompjuters bnadi oħra, u mhux, x'aktarx, fuq tiegħek laptop fiżika jew desktop. U hekk dan huwa dak CS50 IDE issa huwa. Minn issa inti ser tmur għal ċertu URL li inti se ddaħħal li, fil-problema stabbilixxa l-1, aktar tard din ġimgħa, li mbagħad, wara qtugħ fi, jagħtik dan l-ambjent. U ħafna Scratch bħal kellhom bordijiet differenti ftit involuti, hekk ukoll il IDE CS50 i jkollhom eżattament dan. Min-naħa ta 'fuq tax-xellug hawn, int ser tara fajl browser familjari. Allura kull tal-fajls li inti jitqiegħed fis dan l-ambjent huma biss se jiġu elenkati hemmhekk. Fajls u folders. Fuq il-quċċata dritt hawn, int ser tara post fejn inti tista 'attwalment jikteb il-kodiċi tiegħek. Inizjalment fis-C, aktar tard fil- tul fil-PHP u JavaScript, u, forsi għal finali proġetti, Ruby jew Java jew Python jew kwalunkwe numru ta 'lingwi huma appoġġjati f'dan l-ambjent. Mhuwiex fil-livelli kollha marbuta li CS50 speċifikament. U mbagħad fil-kantuniera t'isfel hawn, speċjalment għal dawk aktar komda, għandek xi ħaġa imsejħa tieqa terminal. U dan il-tieqa terminal tippermetti inti jesegwixxu kwalunkwe kmand li inti tixtieq f'dan l-ambjent sħaba. Huwa jippermettilek li jinstallaw kwalunkwe softwer addizzjonali li trid għax għandek hekk imsejħa għeruq, jew amministratur privileġġi. Allura fi kliem ieħor, anki jekk dan aħħar mill-aħħar ospitat fil-sħaba, u anke jekk aħna għandna ssimplifikatha biex tkun sa ċertu punt awtomatikament, litteralment introduzzjoni, grazzi għall Dan Armendáriz, u Dino, u Dan Bradley fit-tim CS50 matul l- passat ħafna xhur, inqas komdi modalità li l-ġlud ħafna tal- distrazzjonijiet inizjalment konfuża. Kollox teżisti biex jirrappreżentaw sistema tal-kompjuter tipiku li inti tista 'tuża fid-dinja reali. Allura dak li ma dan kollu jfisser, u x'nistgħu attwalment tagħmel magħha? Ejja attwalment tieħu Peek fuq programm. Hekk jien ser tiftaħ is- ambjent attwali hawnhekk, li huwa biss Chrome tagħna browser, li jistgħu jkunu Firefox, jista 'jkun Internet Explorer, jew xi browser oħra kif ukoll. Huwa sħiħa skrinjati hawn għall-mument. U nixtieq li attwalment tease apparti dak li dan il-programm kien. Mela ejja tagħti ħarsa, billi zooming up top, fil dak li għamilt, u kif I ltqajna hawn. Allura hawnhekk dawk eżatt istess linji ta 'kodiċi. Allura dan huwa l-istqarrija, kif inti issemma qabel. Il-funzjoni li tgħid bonjour. Il ċingi kaboċċi, fuq linja erba 'u linja sitt, preżumibbilment tip ta 'pakkett dik il-linja li jassoċja bl-essenza tal-programm tiegħi. Allura fil-fatt, dan il-keyword prinċipali, dan huwa up hemm fuq il-linja tlieta, inti tista 'taħseb li bħala l-ekwivalenti ta 'li meta bandiera aħdar għafast, blokk fil Scratch. Allura li kollox għandna hawnhekk, huwa meta bandiera aħdar għafast, jistampa, jew jgħidu, bonjour dinja. Imma ejja tagħti raden, issa, b'liema dan l-ewwel, linja aktar arcane, huwa. Sharp jinkludu, open angolata parentesi, I standard / O dot h, qrib bracket angolata. X'inhu li forsi tagħmel, speċjalment jekk inti ħadthom programmati qabel f'xi lingwa oħra. Yeah? UDJENZA: [inaudible] DAVID J. Malan: Yeah. Eżattament. Allura dan huwa giving you aċċess għal librerija, biex ngħidu hekk, ta 'funzjonijiet. U librerija tal-funzjonijiet hija funzjonijiet li xi ħadd ieħor kiteb, jew riċentement jew twil ilu, sabiex inti ma jkollhom jivvinta r-rota. Per eżempju, aħna ma għandek tkun taf, fl-2015, kif jiktbu kodiċi li tpoġġi karattru fuq l-iskrin tiegħi. Xi ħadd ieħor ħa dehret li bl-funzjoni printf sabiex I tista sort ta astratta bogħod minn dak, jew saff fuq quċċata ta 'tiegħu jew tagħha kodiċi, u issa ħu għall mogħtija li kwalunkwe programm nikteb jistgħu jistampaw xi ħaġa għall-iskrin. Allura dan l-ewwel linja hemm fi stadju wieħed jinkludi l-hekk imsejħa fajl header għall-librerija standard. Allura tara, il-lingwa li aħna issa qed jaħdmu kellhom librerija standard ma 'lottijiet ta' funzjonijiet. Printf huwa wieħed minnhom, u li l-ewwel linja tal-kodiċi ifisser jagħtu me aċċess għal dawk il-funzjonijiet, sabiex I ma jkollhom jivvinta dik ir-rota. Issa ejja mur l-tieqa qiegħ u jagħmlu eżattament dak li għamilt qabel. A mument ilu, meta I kien whizzing permezz tal-kodiċi, ittajpjar it out għall-ewwel darba, I malajr ħafna ittajpjat, jagħmlu bonjour. Liema kienet li kollha dwar kieku inti raden? X'kienet I tagħmel? Yeah? Qatt f'moħħhom. Huwa OK. Yeah. UDJENZA: Kumpilazzjoni dan. DAVID J. Malan: Yeah. Kien biss kompilazzjoni tagħha. Dritt? Anke jekk dan huwa kompletament familjari lilek, huwa pjuttost Ingliż simili. Huwa ċertament mhux żerijiet u dawk, so I għadhom bżonn li run permezz ta 'dak l-hekk imsejħa programm, kompilatur, li għaddej li teħodha bħala input u jipproduċu output. U mill-inqas, għal issa, fil dan l-ambjent Linux, iżda dan mhuwiex prerekwiżit, dan huwa biss fejn aħna ser tibda, inti ġeneralment jinteraġixxu ma sistemi tal-kompjuter bħal dan billi l-hekk imsejħa linja tal-kmand. Allura ma 'Teptip pront u t-tastiera tiegħek, u mhux tant maws, u mhux hekk twieqi ħafna u ikoni u menus, pjuttost kollox huwa testwali. U anki jekk dan iħoss, fl-ewwel daqqa t'għajn, forsi, bħal pass lura, huwa attwalment ferm aktar mod qawwi u ta 'espressjoni ta tikkontrolla kompjuter speċjalment kif inti, yourself, isiru aktar komdu minn inqas. Li għaddej biex jippermettu li tagħmel ħafna affarijiet aktar milli sempliċiment dak Microsoft jew Apple tippermetti li tagħmel ma ' sistema operattiva grafika tagħhom. Allura meta I hit Ikteb, issa, xejn jiġri dan iż-żmien minħabba apparentement l- bonjour programm tkun aġġornata. U dak li kien il-kmand I dam wara li? Dot mmejla hello, u bonjour dinja. Issa ejja tagħti pass lura għal ftit mument. Jirriżulta li jagħmlu bonjour huwa biss Mod issimplifikat ta tikkompila programm. Ejja biss jintroduċu biċċa waħda ta 'jargon, iżda mbagħad jimxu bogħod minnu, peress li huwa ma dak kollu li interessanti għal skopijiet lum. Il kompilatur aħna qed tmur biex tibda tuża huwa msejjaħ Clang, għall-lingwa C. U dan huwa programm li s run biss bħal għamilna fil-linja tal-kmand hemmhekk. U hekk jekk irrid jikkompilaw programm li I kitbu fil-fajl imsejjaħ bonjour dot c, I litteralment biss tip clang bonjour c jidħol. Il-ħaġa umoristiċi hija, għal raġunijiet storiċi, jekk jien ma jispeċifikawx il- isem tal-programm li nixtieq li output, jekk jien ma tispeċifika isem ta 'fajl għal dawk żerijiet u dawk, li ħafna stramb snin konvenzjoni ġiet adottata ilu fejn jinħass tip ta ' tweġiba tajba fil-ħin, ukoll ejja biss b'mod arbitrarju sejħa tal- ewwel programm aħna tikkompila dot out. A jiġi l-ewwel fl-alfabett. Out, huwa l-output. Allura aħna se sejħa tal-programm awtomatikament dot out. U li l-multa minħabba li jekk irrid tmexxi l-programm f'dan it-test ibbażata ambjent, I biss tip dot mmejla dot out jidħol. U imur eżattament bħal qabel. Mela ejja ara dak reali fast. Mela jekk immur lura għall tiegħi source code CS50 IDE, u I minflok tagħmel dan, clang bonjour kerrikot c jidħlu, avviż xejn ma jidher li jiġri, iżda kważi dejjem fil dan l-ambjent Linux, meta xejn ħażin jidher li jiġri, li ifisser xi ħaġa tajba fil-fatt ġara. Jekk ma tarax żball messaġġ, kollox huwa probabbilment tajjeb. U fil-fatt, jekk I issa do dot mmejla tikka out jidħlu, stajt run istess programm tiegħi. I għad għandhom il-programm bonjour minn qabel minħabba fil-fatt, huwa se tkun daqstant nicer biss tip jagħmel minflok ftakar dawn incantations ta kmandi, imma ejja naraw kif nistgħu jista 'jtejjeb fuq din, madankollu. Allura, dan huwa l-kmand biex jikkompilaw l-kodiċi. Dan huwa l-kmand biex imexxu il-kodiċi ikkumpilata wara. Kif nista 'tispeċifika isem ta' fajl? Well ejja biss jintroduċu wieħed aktar biċċa jargon. Meta int f'dan test ambjent ibbażati, int tmur jridu jispeċifikaw affarijiet imsejħa argumenti kmand linja. Li huwa biss mod fancy ta 'tgħid, kliem ieħor fil-pront li tweak l-imġiba ta 'kwalunkwe programm int taħdem. Allura speċifikament il-programm Jien tmexxija, billi jiġu ttajpjati l-isem clang, huwa l-programm imsejjaħ Clang. Allura dan huwa jew l-iskola antika ekwivalenti ta 'double-click fuq Microsoft Word jew icon xi programm. Jien minflok sempliċiment ittajpjar isimha, imma f'dan il-verżjoni tal-kmand, I mbagħad ikollhom sing spazju o bonjour ispazju bonjour dot c. Għalhekk anki jekk inti stajt qatt lagħbu f'din id-dinja qabel, ħu raden dak ma o sing bonjour do? Jew dak ma tgħid clang tagħmel? Yeah. UDJENZA: [inaudible] DAVID J. Malan: Yeah. Hija biss tistabbilixxi output tal-fajl li jkun bonjour minflok il-sillier dot out. U, tabilħaqq, ejja ipprova din. Mela jekk jien issa do, l-ewwel ejja tagħmel dan, r m bonjour. Li jitneħħew. U li għaddej biex ngħid tneħħi fajl regolari hello, li huwa arcane bla bżonn, imma hija biss mezzi do inti tixtieq li tħassar il-fajl, u I tip y għall iva. U avviż, jekk inti kienu glancing fil-quċċata xellug, hija ma jisparixxu mill up hemm. Let me issa do o sing clang, u Jien ser jimxi 'l quddiem u jagħmlu hello, fil-limiti kollha, bonjour dot c. Issa, jekk nagħmel dot slash hello, dak li inti tistenna? Forsi huwa każ sensittivi. Forsi mhuwiex. Ejja naraw. L-ebda fajl jew direttorju. U nistgħu tip ta iqarrqu bil biss tħares lejn quċċata xellug. What did I ovvjament isalva l-programm kif? Kollha tappijiet bonjour. Allura fil-fatt, li għaddej biex jagħmlu differenza. Allura issa bonjour dinja huwa lura. Issa din hija kollha multa u tajjeb, u kollha ħafna mind numbing-, li tip ta 'staġnati f'dawn dettalji, iżda fehim tagħhom hija tajba. Ittajpjar dawn dejjem incantations twal mhux se jkun partikolarment gost, hekk nies fid-dinja ivvintat programm ieħor, xi snin ilu, imsejħa jagħmlu, li sempliċement tippermetti li inti tip għamla, l-isem tal-programm inti tixtieq li tagħmel, u jagħmlu huwa intelliġenti fis-sens li għandha tagħti ħarsa fil l-folder attwali, aka direttorju, u jekk għandek fajl imsejħa bonjour dot c, li huwa l-fajl se tiġbor għalik fi programm imsejjaħ bonjour. Allura huwa mod ferm aktar sempliċi ta ' tagħmel l-kmandi aktar cryptic li għamilna qabel. U aħna għandna pre-konfigurati CS50 IDE tkun taf li għandha tagħmel o sing u numru ta ' bnadar oħra, jew argumenti kmand linja, li aħna ser tara qabel twil. Imma ejja issa fil-fatt jagħmlu xi ħaġa aktar interessanti. Just jittajpja out bonjour dinja kollha l-ħin huwa mhux kollha li konvinċenti. So let me jimxi 'l quddiem u l-bidla dan il-programm u jgħidu, bonjour David. Issa jien ser jinżlu hawn. Jien ser jimxi 'l quddiem u jagħmlu jagħmlu bonjour. U għal darb'oħra issa int tara tagħmel qed juri inti l-itwal sekwenza ta 'kmandi li huwa tagħmel għaliex aħna ħadthom pre-konfigurati dan il-mod, iżda aħna bżonn ma tinkwetax għal issa dak li qed jagħmel ieħor milli huwa kumpilazzjoni dot mmejla hello, bonjour dinja. X'hemm ħażin? Yeah. UDJENZA: [inaudible] DAVID J. Malan: Iva. Allura, żball noobie. I Avviż dan huwa super sottili, iżda l-asterisk hawnhekk, fil-tab, ifisser biss li inti ma meħlusin, u browsers u programmi oħra tagħmel dan kultant. Allura s kontroll jew kmand s għandha isalvawh. Issa let me jimxi 'l quddiem u terġa 'tmexxi l-programm. Recompiled. Dritt, dan huwa proċess multi-pass. Ebda wieħed minnhom huwa partikolarment kumpless, iżda kwalunkwe ħin aħna jibdlu l-fajl, għandna bżonn li tinbidel il-riżultat li żerijiet u dawk, u dot slash bonjour. Ara naqra. Allura dan huwa underwhelming ħafna li aħna biss stampata dan. Ejja tagħmel l-affarijiet ftit aktar dinamiku, issa. Ukoll jirriżulta, li bħal Scratch, C jappoġġja varjabbli. U jirriżulta jekk inti tixtieq li jkollhom varjabbli li l-ħażniet, mhux numru bħal aħna tipikament għamlet il Scratch, iżda bħal kelma, jew frażi, jew isem, inti tista 'tispeċifika varjabbli li jkunu ta 'sekwenza tip. Allura aħna ser tara aktar ta ' dawn fi ftit mument, iżda jirriżulta li C, u ħafna lingwi bhalu, għandhom tipi speċifiċi ħafna ta 'varjabbli. Mhuwiex bħad algebra, fejn ikollok x, y, uz u dawn huma biss dejjem numri, b'mod lingwa ta 'programmar inti jista 'jaħżen numri, inti tista jaħżnu karattri individwali, inti tista 'taħżen kelma sħaħ, inti tista jaħżnu ritratti kollha, fajls sħaħ ħoss, u simili. Għalhekk għandna bżonn li jispeċifikaw liema it-tip ta 'varjabbli tagħna huwa. U mill-konvenzjoni jien ser sejħa tiegħi s varjabbli biss għaliex dan huwa konċiż, u s stands għall sekwenza. U allura jien ser taħżen ġewwa ta 'dan il-varjabbli, Eżatt bħal ma Scratch meta nuża l-blokk stabbilit, Jien ser tuża l- operatur assignment fis C, li nicely biżżejjed huwa l-istess tiffirma, imma s-sinjal ugwali ma dan. Jiċċaqlaq xi ħaġa fuq il-lemin fil in-naħa tax-xellug tal-espressjoni. Allura dak I għamlu, li jkun ċar fil linja ħames, hija stajt ddikjarat varjabbli. Stajt qal lill-kompjuter, jagħtu me memorja għal varjabbli, sejħa hija s- u jaf minn qabel li jien ser li tkun tqegħid string fiha. U string huwa biss sekwenza ta 'karattri. Huwa kelma, jew frażi, jew il-paragrafu, imma hija sekwenza ta 'karattri. Mhuwiex numri. What string am I se tkun tqegħid fis dak il-varjabbli? Well, apparentement nikkwota unquote, "Hannah". Issa avviż l-mudell li l-emerġenti. Hemm espressjoni naħa tax-xellug. Hemm espressjoni lemin, sseparati bil-sinjal ugwali. U ħu raden, jekk familjari madankollu, ma 'dak il-virgola qed tagħmel. X'hemm dan preżumibbilment tagħmel għalina? Yeah? UDJENZA: [inaudible] DAVID J. Malan: Yeah. Huwa biss li jtemm il-linja. Dritt? Il-kompjuters tixtieq li tkun bi frankezza jafu, litteralment, x'għandek tagħmel. Bħall-butir tal-karawett u eżempju sandwich jelly, jekk inti ma jispeċifikawx eżattament dak li għandek il-ħsieb, jista 'jitħalla għas-sentenza jew żball. Il virgola ifisser, din hija għal dan il-kmand. Huwa qed super preċiżi, u huwa ħaġa faċli ħafna li jħallu off. Allura issa dan il-programm ma jidhirx li jiġu iġib ruħu b'mod differenti sakemm I jagħmilha aktar dinamiku. Allura minflok hard jista tiegħi stess isem, let me tpoġġi valur placeholder. U jirriżulta li, u naf dan meta tkun aqra d-dokumentazzjoni, u uża l-funzjoni għas-snin, li printf kienet maħsuba biex tkun dinamika. Inti ma għandekx tkun taf minn qabel liema kliem inti tixtieq li tqiegħed fiha. Tista 'minflok' jkollhom placeholder, bħal fil-mija s, li se tgħid il- kompjuter, poġġi string hawn. Li string irridu li tqiegħed hemmhekk? Will jirriżulta li bejn dawn parentesi, li tiftakar, jiddemarkaw l-input għal funzjoni, jekk għandek comma separati lista ta 'affarijiet hawn, aħna fil-fatt jgħaddu fil multipli inputs għal funzjoni. Hekk biss bħal xi Scratch blokki, inti tista 'ma kellhom magħhom għal proġetti tiegħek għadhom jew fil kollha, xi blokki Scratch għandhom żewġ inputs. Żewġ kaxxi bojod inti tista tip numri jew kliem fis. Allura biex ma C jkollhom funzjonijiet simili printf li tista 'tieħu żewġ inputs. U għal darb'oħra, dan comma huwa tisseparahom. Allura bl-Ingliż, għal darb'oħra anki jekk inti stajt qatt programmati qabel, billi dan printf loġika hija funzjoni, jieħu żewġ inputs, li waħda minnhom huwa placeholder, dak li inti t-tama printf se tagħmel ma 'dan il-kontribut? Li għaddej biex jgħidu bonjour Hannah, nisperaw. Allura biex tagħmel dan għandna bżonn biex isalvawh. Jien ser zoom out. Jien se jmorru lura hawn u jgħidu, jagħmlu bonjour jidħlu. Oh. Xi ħaġa ħażin, u fil-fatt dan huwa pjuttost kbira. I ikollhom sitt linji ta 'kodiċi u bħall 12 linji ta 'żbalji. Allura, bil-ħerqa għal dan. Allura x'inhu għaddej hawn? Allura l-aħjar regola ġenerali hawn, speċjalment meta int bdew, ma jsibux distracted mill l-għalf fil-qiegħ. Fil-fatt, I ħafna deliberatament biss impress up għaliex ħafna drabi, kompjuter huwa mhux kollha li bright ta 'apparat. Huwa ser titħawwad. Jekk jidhrilha ħaġa waħda li ma tifhimx, dan jista 'jfixkilhom oħra linji ta 'kodiċi bħala mhux korretti, anki jekk dawn qed perfettament multa. Allura inti dejjem tixtieq taħdem top stabbiliti permezz tal-iżbalji. U ċertament din hija super arcane fil-mument. Error, l-użu ta 'mhux iddikjarat string identifikatur. Did I tfisser standard fil-? Le, I fisser string. U huwa tipponta lejn, forsi huwa typo. Tip simili, fil-verifika jespliċitaw- mod geeky ħafna, iżda r-raġuni hawnhekk, u tkun taf taf dan biss mill-prattika, huwa li jirriżulta li string ma jeżistix fil C. Fil-fatt, C hija lingwa partikolarment qodma, u huwa livell baxx ħafna, U ma ħafna karatteristiċi li jista 'jkollok kibru ma jekk għandek, fil-fatt, programmati fl Java, kif xi wħud minnkom, imma int tista jgħallmu affarijiet ġodda. U fil-fatt, għamilna dan CS50, anki jekk sa l-aħħar tas-semestru, kollha ta 'dawn ir-roti ta' taħriġ se tneħħew mis- dak li nagħmlu f'dawn ewwel ftit ġimgħat inizjalment huwa irridu wkoll inti jinkludu CS50 dot h. Li huwa fajl header. Aktar dwar dan fil-futur. Huwa fajl li fih funzjonijiet li għandna bil-miktub għalik. U fost dawk il-funzjonijiet huwa funzjonijiet biex jinkiseb input mill-utent, bħall kordi, u numri, u n-numri reali, u aktar. Iżda għandu wkoll xi shortcuts ftit. Din tiddefinixxi Boolean bħala tip ta 'data. C ma jkollux vera jew falza. Iżda aħna tista 'tagħtiha l-kunċett ta' vera jew falza permezz ta 'din il-librerija. U lanqas ma jkollu string mibnija sakemm aħna jinkludu din il-linja. Allura din il-linja tal-kodiċi jgħidlekx l-kumpilatur, ħej, Clang, tfittex f'dan il-fajl għal kollu mazz ta 'kodiċi li CS50 kitbet sabiex kull min juża dan il-fajl tista 'tieħu għall mogħtija l- Karatteristiċi li ħadthom miżjud. Allura issa let me jimxi 'l quddiem u ċar l-iskrin, u jekk kurjużi jien biss qal kontroll l kull darba biex ċar l-iskrin, jew inti tista tip ċara. Jien biss se jimxi 'l quddiem issa u tip jagħmel hello, u kollox huwa tajjeb. Still produzzjoni arcane, iżda mhuwiex messaġġ żbaljat. Issa jekk nagħmel dot mmejla hello, u bħala aside, dot slash huwa familjari għal ħafna. Dan ifisser biss, dot mezzi l-direttorju kurrenti. Mela jekk inti stajt qatt jintużaw DOS, jew Linux, Unix jew inti tista għamlu xi ħaġa bħal cd dot dot, fejn dot dot ifisser jmorru lura fil time, jew mur lura, jew ogħla sa direttorju tiegħek. Dot ifisser biss ħarsa fil l-direttorju kurrenti. Irrid hello, li huwa dritt hawn. U fil-fatt, issa jgħid bonjour Hannah. U jekk nibdel mill-ġdid li Maria, recompile ikun jagħmel hello, dot slash hello, il-programm jżomm jinbidlu. Iżda dan għadu programm pretty stupid. Jekk irrid li vapur dan il-programm, jew jagħtu lil habib, jew jagħtu lill Maria jew Hannah għal dik il-kwistjoni, li l-multa. I tista customize għal tnejn minnhom, iżda huwa qatt ser tkun dinamika. Huma ma jistgħux jibdlu darba huwa kkompilat isfel lejn dawk żerijiet u dawk. Allura dak li għamilna xi ħaġa aktar intelliġenti? X'jiġri jekk, minflok hard-kodifikazzjoni fil-programm isem din il-persuna, dak jekk aħna biss jiksbu il-sekwenza fuq talba? Allura fi kliem ieħor, let me tagħmel dan. Jien ser recompile dan il-programm. U let me zoom fil-qiegħ issa. Jagħmlu bonjour dot slash bonjour. Issa xejn qed jiġri. Nistgħu jiksbu voluntier malajr biex jagħmlu xi ħaġa jiġri? Come fuq up. X'hemm isem tiegħek? Pancho: Pancho. DAVID J. Malan: Pacho? Come fuq up. Ladarba inti tikseb up hawn, dan huwa se tkun underwhelming ħafna, iżda huwa aktar interessanti minn lili ittajpjar dan. Jekk inti tixtieq li tmur quddiem u t-tip tiegħek isem, I magħmula dan il-programm biss ghalik. Just tip ismek. Ikteb. Wonderful. Kull dritt, nirringrazzjak ħafna. Pancho: Grazzi ħafna. DAVID J. Malan: OK. [Applause] Dan kien ħafna tip. Hawnhekk inti tmur. What did nagħmlu? Allura aħna finalment, għall-inqas, magħmula dan il-programm dinamiku. Issa huwa għadu ċertament billi underwhelming disinn, iżda aħna finalment ikollhom l-abbiltà issa biex jikteb il-kodiċi bil-quddiem, ħafna bħall-awturi ta 'printf, u mbagħad dinamiku jadattaw ibbażata fuq il-kontribut aħna mogħtija, jew mill-programmer, jew mill-bniedem li attwalment interazzjoni mal-programm. Mela ejja fil-fatt issa tipprova li do a constructs oħra ftit u ara jekk aħna ma tistax tagħmel il-programmi lilhom infushom b'mod aktar sofistikati. Mela ejja imorru quddiem u minflok miktub dan wieħed mill-bidunett, Jien se jmorru fil-lum source code, u dan kollu hija disponibbli fuq li l-kors website, u inti tista 'ttawwal u qatra fl-ambjent tiegħek stess come il-ġimgħa ladarba problema sett 1 jagħtik l- istruzzjonijiet, jew inti tista ' jagħmlu dan fil-linja tal-kmand bħala ukoll, iżda aktar li ġejjin fil-p stabbilixxa l-1. Ejja naraw x'hemm f'dan il-programm hawn imsejħa, aġent li jżid dot c. Issa stajt diġà kkummentaw dan, imma x'hemm ġdid? Ewwel daqqa t'għajn, liema linja tal-kodiċi huwa assolutament ġdida? Probabbilment le fundamentalment familjari issa. UDJENZA: [inaudible] DAVID J. Malan: Yeah, hekk int x ugwali tikseb n. Imxejna qatt xi parti minn din qabel, iżda int huwa probabbilment is-simbolu għal liema tip ta ' varjabbli, [? minn?] integer. Allura int għal numru sħiħ. Huwa biss qed aktar konċiż. x hija biss arbitrarju. x uy u z għadhom pretty raġonevoli għal numri, iżda ġeneralment aħna ser jużaw kliem darba programmi tagħna jiksbu aktar kumplessi. Get int, naturalment, ferm simili get spag, huwa probabbilment se tikseb l int mill-utent, u allura aħna qed tmur biex jagħmlu l-istess ħaġa ma 'y. U apparentement, anke jekk din aħħar linja, 24, jistenna aktar kumplessi, li għaddej biex ngħid is-somma ta 'dan u li huwa dan ħaġa oħra. Ui avviż fil-mija probabbilment tindika liema? X'rwol mija i apparentement sservi? Huwa biss placeholders. Dritt? Mija s kien għal string, mija i huwa għall integer. Hemm għaddej li jkun fil-mija f għall floating punt valur, li huwa biss numru bi punt deċimali. Fi kliem ieħor, numru reali. Mela ejja fil-fatt jiġbor dan programm reali fast u ma tagħmel aġent li jżid. Whoops. Opportunità tajba. Allura avviż hawn, dan il-ħin l-utent tiegħi isem għal dan il-kont huwa jharvard. I am fil IDE CS50, aka IDE50. U issa bil-blu hawnhekk, huwa jsemmi, iżda mill-ambjent, ta 'fejn I am. U fil-fatt, jekk I zoom sal-quċċata hawn, avviż li għandi IDE50 u nara din il-kelma, jekk inti tip ta ' dawran ras tiegħek għall-ġenb, workspace. Fil-qosor, il-fatt li Jien jaraw workspace slash tilde ifisser li f'dan it-test ibbażata ambjent kmand, I am fl-ekwivalenti test ta dan grafiċi folder up here. Allura meta I do dot slash aġent li jżid, huwa qal ebda regola li jagħmlu waqfa aġent li jżid mira. I do not know dak li tfisser, iżda huwa ħażin għal xi raġuni. L-ebda fajl jew direttorju huwa saħansitra aktar ċar. Fejn huwa mbagħad? Ibbażat fuq fejn I għafast li tiftaħ il-fajl preċedenti. Fejn jista 'jkun? Huwa probabbilment fis-sors ta w wieħed, għal l-Erbgħa, u I tista 'tara, tabilħaqq, jekk I miftuħa li sa. Hemm aġent li jżid dot c, iżda fil dan l-ambjent ibbażat fuq test, għal darb'oħra, I għandhom ikunu super espliċita. Jekk I trid tibdel direttorji fis sors wieħed Erbgħa I bżonn għat-tip, cd ispazju sors wieħed L-Erbgħa jidħlu u issa bidliet fil-pront tiegħi għal tagħti me a CUÉ viżwali li Jien, tabilħaqq, x'imkien ieħor fl-ambjent tiegħi, imma issa I jistgħu do jagħmlu aġent li jżid, jidher li jaħdem, dot mmejla aġent li jżid, tagħti me numru sħiħ. One. Tnejn. Is-somma ta 'wieħed u tnejn huwa tlieta. Imma jekk jien ma tikkooperax, ejja ara dak tikseb int ma. Agħti me integer. No Retry. OK. Multa. 50. 50. Kull dritt. Allura finalment tikkoopera. U li wħud mill- funzjonalità li dawn il-funzjonijiet jistgħu jkunu mibnija għalik. Allura ġewwa l-implimentazzjoni tal nikseb int, dak li l-ipprogrammar jinbena mill-aħħar ġimgħa hija probabbilment fl hemm biex iġġiegħel din l-imġiba ta 'retry, retry, retry? Yeah, hemm probabilment xi tip ta 'loop. Li għaddej biex tfittex sintattikament differenti minn blokok Scratch, il iżda li fil-fatt x'hemm ġewwa l-fajl. U fi żmien ftit ġimgħat aħna ser fil-fatt tfittex fil-librerija CS50 dwar x'hemm ġewwa, iżda hemm a loop timponi eżattament dan. Ejja play ftit iblah logħba hawn ma 'dan il-fajl. Kundizzjoni żero dot c. Aħna biss se ġeneralment jibdew jingħaddu għal żero. U I iżommu scrolling passat xi wħud mill-għalf fil-quċċata. Bil-blu hawn, demarkata kollha ta 'dawn l-istilel u l-slashes, dawk minnkom li programm qabel, dak li huwa dan? Għaliex inżommu taqbeż is-site fuqha? What? UDJENZA: Huwa kumment. DAVID J. Malan: Yeah. Huwa biss kumment. Dan huwa kumment għall-bnedmin biex jinqraw, li fil-każ tagħna, tgħidilna dak li l-isem tal-fajl huwa, li kiteb dan, u dak li ma, sabiex inti ma għandekx biex tinqara permezz-kodiċi li tkun taf liema dan il-fajl huwa kollha madwar. Huwa biss deskrizzjoni, imma funzjonalment huwa irrilevanti. U nista 'anki titħassar mill fajl tiegħi u ma jkollu ebda impatt. Il-linji mmerraq huma dawn ewwel tnejn hawn, issa. null prinċipali int huwa l-ekwivalenti minn meta tagħna bandiera aħdar għafast, hekk aħna qed tmur biex jitlaq minn dak tkun għal-lum, u aħna ser terga 'lura, eventwalment, dwar liema int u mingħajr effett huma, iżda issa, Avviż dak I ghamilt Hawnhekk ukoll, inti tista 'wkoll, jekk għandek konformi jikkummentaw, jekk għandek a ħsibt inti tixtieq li jaqsmu dwar linja partikolari ta 'kodiċi, konvenzjoni C huwa li tagħmel mmejla slash, u kliem konċiż mbagħad ftit, mhix sentenza sħiħa, ġeneralment mhux paragrafu, li biss jispjega lilek, jew tiegħek TF, jew qarrejja jew kollegi oħra, dak kodiċi tiegħek qed tagħmel. Allura minflok li tħares f'dan u jiddeduċu minn linji disa u 10, dak li huwa dan isir, b'konformità tmienja I biss jagħtu kumment li issaqsi lill-utent biex integer, allura jien ma jkollhom biex jaħsbu wisq iebes dwar dak Linji disa u 10. I biss jafu li dan huwa dak kollettivament li qed isir. Kif? Well, hawn l--pront. Hawn il-jkollna tal-int. U bbażati fuq il-preċedenti imġieba, jidher li huwa simili get int huwa intelliġenti biżżejjed li jiġi żgurat li il-bniedem jikkoopera u jagħtiha integer. Imma issa naraw dan. U dan huwa reminixxenti tal scratch. Jien fejn sostniet li jien analiżi tal-input tal-utent, iżda kemmxejn impreċiż. U dan apparentament C hija kif aħna jesprimu jekk inkella, fergħa, furketta fit-triq, imma I jgħidu kemmxejn impreċiż. X'inhu l-bug f'dan il-programm? About aktar lura? Yeah. UDJENZA: [inaudible] żero. DAVID J. Malan: Yeah. Mela jekk jien tip fil żero, ejja jikkunsidraw eżattament il-każ każ, jew rokna, jekk inti se. Mela jekk jien tip fil żero, liema minn blokki se apparentement grab? Il jekk jew il-inkella? Il inkella, u li għaddej biex ngħid, inti qabad numru negattiv. U fil-fatt, żero mhux suppost li jkun pożittiv jew negattiv, u għalhekk li jkun żbaljat. Dan ikun bug. Allura kif nistgħu jiffissaw dan? Xi ħadd li qatt programmati qabel? Do inti want-- UDJENZA: [inaudible] DAVID J. Malan: tiġbed lura? UDJENZA: [inaudible] DAVID J. Malan: Oh, inti għandek? Xi ħadd li qatt programmati qabel. Jridu jippruvaw idek fil dan, fil-shirt aħmar? Come fuq up. Oh yeah, jaqgħu fuq up, jekk inti ma mind. Allura qatt ma programmati qabel, x'hemm isem tiegħek? Lauren: Lauren. DAVID J. Malan: Lauren, id-dritt. Allura jiffissaw dan bug għalina. You ħadthom ma bbenefikawx C, preżumibbilment, u probabbilment l-ebda lingwa oħra. Allura jiffissaw dan il-programm għalina. Nizza biex jissodisfaw ya. Ebda pressjoni. Lauren: Yeah. DAVID J. Malan: Iżda għal darb'oħra, jekk dan Gamble imur skond il-pjan, l takeaway hawn se jkun, biss mill-ġdid, biex tibda li l-avviż mudelli u jiddeduċu minn sintassi eżistenti kif inkella inti tista 'tesprimi yourself, no pun maħsuba, sabiex biex jaqbdu xi xenarju addizzjonali. Allura aħna qed tgħid inkella jekk. printf, tajba. U avviż ma CS50 IDE, u IDE frankly-- stands għall Integrat Ambjent iżvilupp. Huwa biss mod fancy ta 'tgħid programm li jgħinek program. Hija ma affarijiet faċli għall-utent bħall- meta inti tip parentesi waħda, awtomatikament tagħtik l-oħra. Il-preżunzjoni tkun li int eventwalment tmur jridu tip li, u wkoll tagħmlu ma 'kwotazzjonijiet. So I simili linja 23. 99% tal-mod hemmhekk. Xi ħadd tixtieq li Chime fi bil-ponta? Smajt virgola mill-udjenza. Tajba. Allura li tikkompleta dan. U issa, I biss ikollhom ftit kosternazzjoni bil-linja 21. Kif irridu li tesprimi din? Dak kwistjoni irridu li jistaqsu, taħseb? Allura qabel staqsejna l-mistoqsija, jekk n hija akbar minn żero, jagħmlu dan. Else, tagħmel dan. Għalhekk għandna bżonn li jagħżlu mistoqsija li titlob hawn. UDJENZA: [inaudible] DAVID J. Malan: Tajba. Mela jekk n ugwali żero. Eċċellenti. Mela ejja nieqaf hawn. Grazzi tant għall braving dan. Ħalli nagħtikom ftit ferm mistħoqqa stress ballun, forsi hemm. Allura aħna qed kważi hemm. Fil-fatt, Lauren, jekk inti ma moħħ, let me jagħmlu waħda tweak hawn, biss sabiex ikunu konsistenti anke ma dak rajna fil Scratch, liema ma nixtieq li tagħmel mal-linji 21 u 24, just darb'oħra bbażati dwar kif għamilna dan fil Scratch, forsi? UDJENZA: Nimxu it up. DAVID J. Malan: Yeah, jġorrhom up. Allura l-kundizzjoni inkella, it-tielet, jew raba, jew il-ħames, jew fergħa finali, għandha tabilħaqq jidħlu afterward, u li jinsab biss permezz tal-konvenzjoni, sempliċiment għaliex jekk inti se. So I do bżonn li jagħmlu dan tweak. U għandi bżonn biex tpoġġi tiegħi Brace kaboċċi lura hawn. U issa, dan il-programm se jiġbor. Aħna tant qrib, iżda hemm bug ħafna, ħafna sottili. Ejja naraw x'jiġri. L-ewwel, let me imorru quddiem u zoom out. Jien ser jimxi 'l quddiem u tip jagħmel kundizzjoni żero. Oh, I gideb. Issa l-kompilatur hija attwalment pretty intelliġenti. U jien ma verament jifhem huwa messaġġ ta 'żball. Jużaw ir-riżultat ta 'assenjazzjoni bħala kundizzjoni mingħajr parentesi, hija apparentement ħażin. Imma dak ma jfisser? Ukoll għal darb'oħra, tfittex għal xejriet fl kodiċi li konna rajna qabel, dak li huwa linja 17 fil-fatt tagħmel, anki jekk Lauren maħsuba kemmxejn xort'oħra? Yeah. UDJENZA: [inaudible] DAVID J. Malan: Yeah. Mela ftakar-sinjal ugwali, apparentement kif konna użati qabel, mhuwiex ugwali. Assenjazzjoni tagħha, minn lemin għax-xellug. Allura linja 17 fil-mument hija kundizzjoni, u huwa eżekuzzjoni kodiċi ġewwa l parentesi, imma meta dan il-kodiċi tesegwixxi, dak li qed jiġri għall-valur ta 'żero? X'qed jiġri lill-valur ta 'n? Issir żero. Mela jekk n qed issir żero, u għal darb'oħra, bħala kull ġimgħa li għaddiet, aħna ġeneralment ngħidu li żero hija falza u waħda hija vera, jew iva huwa wieħed u ebda huwa żero. Allura vera u falza, wieħed u 0. Jekk n bħala tal-linja 17 kien minħabba l-valur 0, huwa żero vera? No Bħala definizzjoni, żero hija falza. Dik hija l-konvenzjoni aħna qed ser riċiklaġġ għall miexja 'l quddiem. Allura se linji 18, 19, u 20 qatt japplikaw issa, loġikament? Huma ma jistgħux. Allura aħna staqsa l-mistoqsija iżda pjuttost mhux preċiż, u inti ma tkunx taf dan sakemm inti stajt tidher dan, is-soluzzjoni fis-C huwa meta inti tixtieq li jesprimu ugwaljanza, inti tgħidli ugwali ugwali. Allura sinjal ugwali kien diġà uża sa billi assenjazzjoni, mill-lemin għax-xellug. Ugwali ugwali mezzi ugwali. U jekk int verament tixtieq moħħok li jiġu mgħawwġa, fil JavaScript u PHP, hemm ugwali ugwali ugwali, li tfisser xi ħaġa oħra għal kollox, imma aħna ser jiksbu għal dak qabel twil. Allura dan huwa tiffissa sempliċi, iżda tirrealizza super faċli biex jagħmlu dan l-iżball, u mbagħad nistaqsu u l-ġlieda għall-minuti, jekk mhux siegħa, għaliex huwa kodiċi tiegħi ma eżekuzzjoni bħala I-intenzjoni? Huwa għaliex inti ma tell dan preċiżament dak li inti fisser. Allura li kien kważi perfetta, u kien kbir li aħna stumbled madwar dawn iż-żewġ ftit affarijiet għaliex issa jekk aħna jiffissaw għalihom, u I do jagħmlu żero kondizzjoni dot mmejla kundizzjoni żero, Nixtieq integer jekk jogħġbok. Ejja naraw. No Huwa ser seħħ lili biex tagħmel dan. Allura 42. I qabad numru pożittiv. Allura issa kif nista 'jipprova dan il-programm korretta? Jekk int matematiku, inti ma tistax verament jipprova dan bi prova u żball, id-dritt? Inti tista 'mhux biss prova mill eżempju, iżda mill-inqas bħala programmer aħna mhux qed ser jippruvaw li tipprova għal issa li dan huwa effettivament korretta, imma I għandu probabbilment test f'xi każijiet rappreżentattivi. Stajt ttestjati 42. I jistgħu jittestjaw 43. I jistgħu jittestjaw 44. Test 45. Dritt? Imma I jistgħu jagħmlu dan żmien twil verament. Dak li jkun ftit aktar każijiet interessanti li jippruvaw? UDJENZA: [inaudible] żero. DAVID J. Malan: Allura żero. Ċertament. U tajjeb, konna ltqajna dan iż-żmien, grazzi għall-kodiċi ġdid Lauren. X'hemm każ ieħor tajjeb biex tipprova? UDJENZA: wieħed negattiv. DAVID J. Malan: waħda negattiva, u forsi xi ftit akbar, hekk forsi negattiv 42, iżda b'mod ġenerali, meta ittestjar programmi tiegħek nimxu 'l quddiem, int tmur jridu jaħsbu lilek innifsek, bħal dak huma l-każijiet differenti fundamentali. U jien DARE ngħid każ negattiv, bħala każ pożittiv, u każ żero pretty ħafna rawnds dawn jitwettqu. Ejja nħarsu lejn varjant ta 'dan għalkemm. Kundizzjonijiet wieħed. Din hija soluzzjoni korretta hawnhekk, sabiex tkun taf tara tnejn u online, jekk inti timxi permezz tal- walkthroughs, se ġeneralment inkrement dawn gradwali sakemm aħna jiksbu eżattament l-approċċ dritt. X'jiġri jekk ridna li jistaqsu żewġ mistoqsijiet f'daqqa? Let me jiftħu din minflok. Mhux swiċċ, għal raġunijiet Ser naraw ieħor żmien. X'hemm ġdid sintattikament hawn? Jien bħalissa playing a game fejn il-kompjuter li jgħidilhom me, jagħtu me integer bejn wieħed u 10, u mbagħad jien tiġġudika input-utent. Bl-Ingliż, ibbażati fuq il-kodiċi tara hawn bil-blu, dak li huwa dan il-programm tagħmel? UDJENZA: [inaudible] qabad numru kbir jew żgħir. DAVID J. Malan: Yeah. Huwa biss li tiddeċidi jekk I qabad big, jew medju, jew numru żgħir bbażata fuq ħafna definizzjoni arbitrarja ta 'intrapriżi żgħar, medji, u kbar hawn, iżda avviż l sintassi li l-ġdida hija din. M'hemm l-ebda inqas minn int jew ugwali għal tiffirma, jew ikbar minn jew ugwali għal jiffirmaw, fejn wieħed ikun fuq l-oħra, li inti jistgħu jesprimu fil bħal Microsoft Word. Allura fil-lingwa ta 'programmar inti tipikament biss tagħmel żewġ karattri, wieħed wara l-oħra. U dan xi probabbilment jirrappreżentaw, ampersand ampersand. UDJENZA: [inaudible] DAVID J. Malan: Yeah. Dan ifisser biss u minħabba li Jirriżulta li l-awturi ta 'C użati ampersand wieħed, li inti tista 'taħseb tkun perfetta għall-kunċett ta 'u, hija diġà użata up, ampersand hekk ampersand attwalment jaqbad il-każ aħna fil-fatt tixtieq. Mela ejja issa stumble madwar żewġ affarijiet. Let me imorru quddiem u tiftaħ wieħed. Xi ħaġa li ftit tħassib. Impreċiżjoni dot c. Let me jintroduċu żewġ affarijiet hawn. Waħda, avviż li nistgħu nagħmlu matematika, kif eżatt bħal qabel meta għamilna flimkien ma 'żewġ numri, xuy. X'inhu dan il-programm apparentament tagħmel? Stajt ma kkummentaw encore, u stajt introdotti fil-mija f, imma I malajr għidt qabel mija f ifisser b'punt li jvarja valur, li huwa numru reali. Xi ħaġa ma 'deċimali punt, li mhuwiex numru sħiħ. What do you think dan il-programm huwa jippruvaw juru lili fuq l-iskrin? Yeah? UDJENZA: Ir-riżultat ta 'wieħed fuq 10. DAVID J. Malan: Yeah. X'hemm-riżultat ta 'wieħed maqsum f'10. Dritt, minħabba li kull wieħed inti għandek probabilment kibret jafu li wieħed aktar minn 10 huwa dak? Yeah, huwa biss 1/10 jew 0.1. Dritt? Mela ejja ara dak li dan fil-fatt hu. So let me jimxi 'l quddiem u jiffrankaw din. Let me jinżlu hawn. Jagħmlu impreċiżjoni dot slash nuqqas ta 'preċiżjoni, u avviż, wisq, f'ambjent Linux, inti ma għandek tip out nuqqas ta 'preċiżjoni u jieħdu ġurnata kollha. Hija ġeneralment, jekk inti hit Tab, huwa se jispiċċaw ħsieb tiegħek għalik, ibbażata fuq il-kliem li huma disponibbli fid-direttorju kurrenti. OK. Allura inti kienu dritt. Wieħed maqsum f'10 huwa, fil-fatt, 0.1. Imma jien ftit kurjuż. U jirriżulta printf jappoġġja xi karatteristiċi li biha inti tista 'tispeċifika aktar minn in-numru default ta 'punti deċimali. Mela jekk Irrid nara 10 deċimali punti I tista 'tagħmel fil-mija, għall-simbolu placeholder, dot 10 għal, jagħtu me 10 punti deċimali, u mbagħad xorta punt floating valur, u, bħala twarrib, dak li huwa dan backslash n apparentement inżommu tuża? Jirriżulta huwa simbolu għal linja ġdida. Hu l-mod espliċitu ħafna ta 'tgħid li l-kompjuter, tmexxi l-cursor għall-ieħor linja wara li inti qed isir. U aħna ser tara x'jiġri meta aħna ma tagħmel dan. Let me recompile jagħmlu impreċiżjoni. Issa dot mmejla impreċiżjoni. OK. Still dritt. Wieħed maqsum f'10. Issa jien jkollna ftit kurjuż, għalkemm. X'jiġri jekk I ħarsa 20 deċimali jirrimarka, recompile, terġa 'ssir, u bħala twarrib għal veloċità, inti tista 'wkoll tuża up tiegħek u 'l isfel vleġeġ biex iscroll matul l-istorja tiegħek, sabiex inti ma għandhomx iżommu retyping dawn il-kmandijiet, jidħlu. Huh. I ma jitgħallmu li fl-iskola grad. Kull dritt, so let me tara bħal 29 postijiet barra. Forsi huwa biss fluke. Forsi kompjuter tiegħi qed jaġixxi stramb. Li mhux xi ħaġa, id-dritt? Huwa qed jagħmel xi ħaġa deterministically. Sabiex tagħmel impreċiżjoni. OK, li l-messed up. Allura dak li qed jiġri? Allura apparentement tiegħek għalliem ġie tinsab lilkom ilkoll ta 'dan iż-żmien għall raġunijiet li aħna ser tara qabel twil. Imma ejja aħħar ma 'programm ieħor. Din hija programmi ftit xi ħadd kiteb xi snin ilu, u huwa attwalment parti minn konkors. Ħadd ma attwalment jikteb kodiċi bħal dan, u jekk inti tagħmel, dan huwa stylistically problema. Imma n-nies jagħmlu dan għall bragging drittijiet. Biex tikteb l-aktar konfużjoni tfittex programm li madankollu ma xi ħaġa interessanti. U n-nota ħsibt aħna'd leave illum, qabel Colton jilgħab us out hawn, huwa li tmexxi dan il-programm, li, anki fi biss bl-użu C f'dan ibbażat fuq test ambjent, jagħtina dan. Dammit. [Rires] Stand by. [Inaudible] l m c sing. Inti qed tmur biex tara d-maġika incantation li aħna ser tara qabel twil. [Inaudible] Kull dritt. U issa inti tista 'anki tagħmel affarijiet bħal dan. Thats it. Għal CS50 aħna, se tara int nhar il-Ġimgħa. [Daqq tal-mużika] [Applause]