[MUSIC Duke luajtur] Kjo është CS50-- Harvard Futja universitetit me intelektuale ndërmarrjet e shkencave kompjuterike dhe artin e programimit. Dhe emri im është David Malan, dhe Unë kam qenë vetëm duke menduar këtë mëngjes, kjo është amazingly 20 vjet sot që unë e kaluar u ul ku ju djema bëni tani. Ajo ishte 1996. Unë kam qenë një i paedukuar mjaft, dhe unë isha duke marrë CS50 për herë të parë. Dhe unë nuk e kishte marrë edhe deri nervore për të marrë atë vetë vit fillestar, pjesërisht për shkak të kohës. shkenca kompjuterike për mua është lloj i pëlqen, meh. Unë kam qenë pak e një geek në rritje up, por nuk e kam me të vërtetë kanë ndonjë intelektual interes në atë që u shfaq të jetë vetëm një bandë e tërë e njerëzit e programimit të gjithë kohën. Dhe unë u frikësuar që të jetë i sinqertë. Kursi dhe kompjuter shkenca më shumë në përgjithësi ka pasur dhe në një farë mase, ende ka këtë reputacionin e një fushe për kini kujdes, në qoftë se vetëm për shkak se kaq shumë prej nesh janë të panjohura me të dhe të sigurtë për të. Dhe me të vërtetë nuk ishte deri sa unë shopped kjo klasë që i paedukuar mjaft fall-- dhe madje edhe atëherë, I regjistruar vetëm sepse professor-- një nga mentorëve të mi të parë, Brian Kernighan tani në Princeton-- lejohet mua për të marrë të kalojë klasës dështojnë. Dhe me të vërtetë, kjo është arsyeja pse sot ne lejojnë dhe inkurajojnë studentët për të marrë këtë klasë ul / unsat. Dhe vetëm atëherë, nga fundi i semestrit nuk e kuptoj si, wow, kjo nuk ka qenë një fushë të tillë të panjohur. Në të vërtetë, kjo ishte një shumë fuqizimin fushë, dhe më shumë excitingly, sidomos më vonë, ashtu siç ia kam kurse në Arts Dramatike 101 dhe latine A dhe pastaj në fund arkeologjia shkollë grad, nuk kam me të vërtetë të fillojë për të parë kryqëzimet e kësaj fushë, kompjuter shkenca, me humane, shkencat natyrore, artet, mjekësi, dhe si. Dhe kështu kjo është ajo që është vetëm në mënyrë të zoti për shkenca kompjuterike në fund të fundit, si ne shpresojmë se ju do të see-- është zbatueshmëria e saj në këto fusha të tjera, dhe se si ju mund të marrë disa sotme dhe semestri-së idetë dhe aftësitë praktike përsëri në domenin tuaj, dhe në fakt të eksplorojnë këtë ndërprerje i arteve liberale dhe shkencat. Pra, 73% prej jush, në qoftë se kaluar vit është ndonjë shenjë, asnjëherë nuk kanë marrë një kurs CS para. Pra, nëse, si unë, ju jeni ndjenja pak frikësuar, apo sinqerisht ju nuk jeni të vërtetë të sigurtë se pse ju jeni edhe këtu. Ndoshta ju vetëm ndjekur disa miqtë e mbi të Sanders tani. Kjo është krejtësisht në rregull. Qëllimi këtu është që të lidh ju dhe për të siguruar të se në qoftë se ju do të shikoni për të majtë dhe në të djathtë, ju jeni duke shkuar për të parë shokët e klasës me sa pak apo sa shumë përvojë që ju vetë mund të ketë. Dhe me të vërtetë, ne do të ndajnë disa statistika sot më vonë për çfarë demografia e klasa tipike të duken si. Dhe si shtuar reassurance-- dhe këtë ne do të thotë që kam marrë gjatë Disa vite ago-- në Syllabusi kursit të është this-- se ajo që në fund të fundit çështje në këtë kurs nuk është aq shumë ku ju deri në fund deri në lidhje me shokët e klasës tuaj, por ku në javën e 11, fundi i semester, përfundojnë në krahasim me veten në javë 0, që është ku jemi sot këtu. Dhe kjo është ajo që e kuptova të gjitha ato vite më parë. Dhe unë e di shumë Klasat e them këtë, por është e veçanërisht e vërtetë në shkenca kompjuterike. Ne fund te ditës, kjo fushë është e panjohur si ajo ishte për mua dhe mund të jetë për ju, është me të vërtetë vetëm për zgjidhjen e problemeve. Dhe si e tillë, ajo e ka këtë zbatueshmëria për të marrë fusha të tjera. Dhe në fakt, nëse kemi provuar të gjej se çfarë do të thotë kjo, kjo është zgjidhja e problemeve në thelbin e saj, unë guxoj të them. Ka input-- kështu që çdo gjë është është se ju jeni duke u përpjekur për të zgjidhur. Ka prodhimi, e cila është shpresë zgjidhje për këtë problem. Dhe pastaj, si ne do të thonë në shkenca kompjuterike, ka kjo kuti e zezë në mesme që ju nuk domosdoshmërisht duhet të kujdesen për mënyrën se si funksionon. Ju vetë përfundimisht fuqinë zbatojë atë që është brenda asaj kutie. Por, për qëllimet e sotme e më shumë në përgjithësi në jetë, të gjithë ju intereson është se këto probleme të zgjidhen. Dhe ajo që ky kurs është në fund të fundit për të është eksploruar kryqëzimin e këto hyrjet dhe daljet, dhe këto të ashtuquajturat Algoritmet, si ne do të shohim së shpejti, që të zbatojë atë që është e nën atje, individualitet. Por këto inputet dhe këto outputs-- çfarë do të vërtetë do të thotë? E pra, në fund të ditës, ne kemi nevojë ndonjë mënyrë të përfaqësojnë informacion. Kjo është veçanërisht e vërtetë në një kompjuter, e cila si dashuroj dhe komplekse si ajo mund të duket, është një pajisje shumë e memec. Ajo merr electricity-- qoftë nga një kabëll ose një bateri si input-- dhe pastaj ajo prodhon disa Përgjigjet preprogramed në ekran. Por si nuk kemi marrë nga të fillojë për të përfunduar atje? E pra, çfarë është një problem për t'u zgjidhur? E pra, ndoshta ne mund të, në fillimi i çdo semestër, të përpiqet të marrë frekuentimin në një dhomë si kjo. Kështu që unë mund të bëjë si një, dy, tre. Ose ndoshta, në qoftë se unë e bëri atë për të lloj të mbajtur nën kontroll e myself-- të mbajnë gjurmët e things-- Unë mund të shpejt të drejtuar nga gishtat. Kështu që unë vetëm mund të hash një marks-- personi, dy, tre, katër, pesë, gjashtë, shtatë, tetë. Dhe të gjithë ne kemi ndoshta bërë këtë, qoftë në duart tuaja ose në një copë letër. Dhe kjo është në fakt vetëm diçka që quhet notation-- unary ku në qoftë se ju keni vetëm një letër në alfabetit tuaj, një ose hash shenjë në këtë rast, për çdo input ju doni për të numëruar, ju duhet të vënë poshtë një nga këto letters-- një nga këto shenja. Në rregull. Kjo është e gjitha mirë dhe të mirë dhe jo të gjithë se e komplikuar. Por kompjutera nuk janë të gjithë se shumë më e komplikuar. Në të vërtetë, shumica prej jush ndoshta e di edhe nëse ju nuk e keni me të vërtetë konsiderohet se çfarë do të thotë kjo, se kompjuterat e kuptojnë vetëm zero dhe ones-- të ashtuquajturin sistemin binar. Ne njerëzit, nga ana tjetër, janë aq shumë më të sofistikuara për aq si ne e kuptojmë zero nëpërmjet numër nëntë. Por edhe në qoftë se është binar, në fillim shikim, jo ​​të gjithë që të njohur, kjo rezulton se është ashtu si sistemet dhe idetë që ne tashmë e dimë. Kështu për shembull, e konsiderojnë këtë. Kjo është vetëm një sekuencë e simboleve. Dhe të gjithë ju, kur glancing në atë, ndoshta mendoj 123-- asgjë me të vërtetë interesante atje. Por, pse është ky numër, 123? Këto janë vetëm glyphs në screen-- vetëm modelet që dikush mund të ketë tërhequr ose të shtypur. Por në qoftë se ju jeni si unë, ju ndoshta kujtoni nga klasën e shkollës se ka lloj kolona apo vende këtu. Ka vend të dikujt dhe vendi i dhjetë për dhe vendin e njëqind së. Dhe arsyeja që kjo është 123 dhe jo vetëm një model i tre simboleve është për shkak se, natyrisht, në qoftë se ne kanë një një në radhën e qindësheve, ju bëni matematikë e 100 herë një, dhe pastaj të dy në vend të të dhjetëve. Pra, kjo është 10 herë 2, dhe pastaj tre në Vendi i dikujt dhe kjo është 1 herë 3. Dhe kur ju të shtoni të gjithë ata lart, të Sigurisht, ju merrni 100 plus 20 plus 3. Pra, kemi filluar me vetëm një model e symbols-- një alphabet-- por pastaj ne plotësisht kuptimin onto ajo me anë të këtyre kolona. E pra, ajo rezulton se kompjuterët nuk janë me të vërtetë të gjitha që të ndryshme nga ju dhe mua. Por, në vend të përdorimit kompetencat e 10, në mënyrë të speak-- 1, 10, 100, 1000, 10.000 vendi dhe kështu me forth-- ata në fakt vetëm përdorin kompetencat e 2-- kështu një, 2, 4, dhe pastaj në qoftë se ne kemi vënë më shumë shifra, 8, 16, 32, 64, 128, e kështu me radhë. Dhe kështu kjo është se si një kompjuter do të përfaqësojnë numrin 0, ashtu si ne njerëzit. 0, 0, 0-- dhe ju ndoshta mund të mendoj çfarë modeli i zero dhe ato, në qoftë se një kompjuter mund vetëm flasin 0 ose 1-- çfarë model do të përfaqësojë se numri ne njerëzit e dinë si 1? Yeah-- 0, 0, 1. Në rregull. Pra 0, 0, 1 është se si ne përfaqësojmë 1, kështu që ju mund të jenë të prirur atëherë të përfaqësojnë numrin 2, në qoftë se ju keni Vendi Katër-së dhe vendi të dy së si një vend, ju mund të thoni, mirë, në qoftë se kemi pasur një 1 në vend të dikujt, dhe tani ne duam të numëruar deri në 2, ju mund të bëni këtë dhe të lënë që kjo të jetë një zero. Por sigurisht kjo nuk është se si sistemi decimal punon ose. Nëse ju vendosni një shifër në të dy këto kolona, ju keni marrë për të bërë aritmetikë. Pra, çfarë numri nuk kam aksidentalisht vetëm përfaqësojnë? Pra, kjo është 3, sepse 2 herë 1 plus 1 herë 1, natyrisht, na jep tre. Pra, kjo do të jetë dy. Pak lloj flips, si të thuash, si 0 të bëhet një, ashtu si një 9 role mbi dhe bëhet 0 kur mbani 1. Kjo pastaj do të jetë tre natyrisht. Four-- një tjetër gjë interesante ndodh, ku ata rrokulliset mbi dhe ju mbajnë 1, kështu që të flasin. Kështu që kjo, natyrisht, është 4. Por nëse ju përpara të shpejtë tani, çfarë është numri më i madh do të jetë që një kompjuter mund të përfaqësojë? Pra, kjo është vetëm shtatë në këtë rast, apo jo? Sepse ju keni një një në katër, një në dy, një në një. Pra, kjo është 4 plus 2 plus 1. Kështu që ju jep shtatë. Dhe me të vërtetë, ajo do të duket në shikim të parë se kompjuterat mund të llogarisë jo më të larta se sa kjo. Por kjo sigurisht nuk është e vërtetë. Çfarë bëjmë ne njerëzit, kur ne duam për të numëruar më e lartë se si 999? Vetëm mbajnë një të tillë dhe vetëm shtoni një shifër e katërt në të majtë. Dhe kështu në të vërtetë ne mund. Ne mund të kemi një tetë-së vendin dhe vendin e një 16-së, dhe vendi i një 32-së, 64, dhe ju 128-- vetëm mund të mbajë në deri në pafundësi. Kështu këto zero dhe ones-- e ashtuquajtura system-- binary janë ato që një shkencëtar kompjuteri do në përgjithësi e quajnë pak, ose shifra binar. Por tani, si nuk kemi marrë nga Koncepti ose grafika e këtyre gjërave për një kompjuter të vërtetë? Ne duket se skipping një hap këtu. E pra, vetëm input në fund e ditës, për laptop tim këtu është kjo rrjedha e energjisë elektrike. Edhe në qoftë se kjo është një kohë të gjatë Koha që keni menduar për ose kurrë nuk menduan për si energji elektrike punon, ka elektronet rrjedhin ose jashtë, dhe kjo është lloj ime e input. Pra, nëse kjo është e gjitha që ne jemi duke marrë si të dhëna këtu, çfarë mund të bëjmë me këtë informacion? E pra, ne mund të mendojnë për një zero si vetëm një mungesë të energjisë elektrike. Asgjë nuk është flowinw, asgjë nuk është lëviz, asgjë nuk po ndodh. Kjo është vetëm default state-- zero. Por nëse nuk ka energji elektrike rrjedh, pse jo ne vetëm në mënyrë arbitrare, por globalisht vazhdimisht, e quajnë atë një të. Pra, thjesht duke pasur asnjë pushtet, ne kemi një zero, po pushtet, ne kemi një one-- pa pushtet, po pushtet. Dhe në këtë mënyrë, duke përdorur diçka më shumë fizike ose elektronike ne fillojmë për të zbatuar këtë nocion të diçka ose duke qenë një ose një zero. Në të vërtetë, ne mund vetëm të bëjë atë mbi këtu. Kështu që këtu, unë kam jo tre, por tetë llamba, secila prej të cilave ka kaloni vet. Dhe kështu që nëse kam kërkuar për të përfaqësuar numri shtatë këtu, Unë mund të kthehet në këto tre llamba. Dhe me të vërtetë, brenda kompjuteri im është miliona, miliarda gjërave që janë vetëm më e vogël se kaq, të quajtur transistorëve, çelsin, që ju vetëm të kthehet në dhe jashtë. Pra, këto janë relativisht të big-- çelsin big-- brenda laptop-- tim shumë, shumë, shumë, shumë çelsin më shumë. Por të gjithë ata bëjnë është pikërisht that-- kthehet diçka në, të kthehet off diçka. Dhe si të tillë, një kompjuter mund të përfaqësojë, me ato miliona apo miliarda e transistorëve, shumë dhe shumë zero dhe ato. Dhe nuk ka pajisje të tjera ende se ju lejon të ruani të informacionit afatgjatë, kështu që kur ju tërheq plug, ju nuk do ta humbasin atë. Por kjo është një histori për një ditë tjetër. Pra, çfarë mund të bëjmë me këto copa? Mund ne vetëm për të marrë presioni off e me-- mund dikush duan të vijnë këtu dhe të ofrojnë një demo? Unë pashë këtë dorë të parë. Si e ke emrin? MADAY: MADAY. DAVID Malan: MADAY, eja up. Gëzohem që u njohëm. MADAY: Gëzohem që u njohëm. DAVID Malan: Ejani në këtë mënyrë. Unë nuk do të duhet të cik ju lart. Në rregull. Kështu që këtu, ne kemi, notice-- një, two-- ne do të redaktoni se out-- një, dy, katër, tetë, 16, 32, 64, 128. Kjo është e qëllimshme. Ka tetë bit here-- binary zero digits-- dhe ato. Dhe pak është një njësi e dobishme e measure-- jo si të dobishme një njësi e masës mbi veten. Zakonisht doni të paktën tetë nga këto gjëra, alias një bajt. Pra, ne kemi një bajt të bit këtu. Pra, nëse ne të kërkuar për të sfiduar ju me, për shembull, duke përcaktuar, në binar, kjo vlerë here-- 42. Dëshironi të marrë një goditje me thikë në këtë? MADAY: [padëgjueshme]. DAVID Malan: Yeah, vetëm të shtyjë pak çelsin bardhë përpara. Dhe ju doni për të përcaktuar nga 42, dhe e mundshme është ky stres CS50 topin në qoftë se ju merrni këtë. Në rregull. Kështu që ju duhet 32. Ne do të duhet 42. Pra, kjo është një tetë, kështu që kjo është 40. Dhe bërë excellent-- shumë të bukur. Faleminderit. [DUARTROKITJE] Në rregull. Pra, ne kemi një top shumë të stresit. Le ta bëjmë këtë edhe një herë në qoftë se ne mund të. Një vullnetar tjetër? Top pa pagesë stresi, ball pa stres. NE RREGULL. Mbi këtu në mes, nuk ju duan të zbritur? Në rregull. E di. Atje shkojmë. Kështu që numrat here-- vijnë më poshtë. Si e ke emrin? Davey: Davey. DAVID Malan: Davey. NE RREGULL. Eja up, Davey. Gëzohem që u njohëm. Dhe ajo që ne do të kemi të spell-- nëse ju mund të zgjatem atje për vetëm një moment-- është numri 50. Por, por, por, por, por, këto janë magnet shkollave klasën për një arsye. Mori vetëm pak më e vështirë, të gjithë të drejtë? Ka ende tetë. Në rregull. Pra, çfarë kemi atje? Ne kemi 32. Bukur. 32 plus 16 na jep 48-- në mënyrë të ngushtë. Dhe e mrekullueshme. Urime për Davey si. [DUARTROKITJE] Në rregull. Pra, ne mund të bëjmë këtë të gjithë ditën e gjatë, dhe ajo nuk ka marrë të gjitha që më shumë interesante dhe më sfiduese. Por kjo është me të vërtetë point-- është se si relativisht e thjeshtë është, në fund të ditës, atë që një kompjuter ka për të ruajtur informacione, për të ruajtur inputeve dhe në fund të fundit ruajtur ose përfaqësojnë këto rezultate. Por numrat vetëm nuk janë të gjitha që interesante. Pra njerëzit, disa vite më parë, vendosur, ju e dini se çfarë? Ajo do të jetë mirë në qoftë se kompjuterat nuk ishin vetëm calculators për aritmetikë operacionet, por në fakt mund të të bëjë gjëra të tilla si përpunim teksti, ose email, ose incarnations më moderne këto lloje të teknologjive. Dhe kështu që bota ka vendosur në mënyrë arbitrare, por universale, se në qoftë se ju doni të ruajtur kapitalin Letra Një në një kompjuter, ju e dini se çfarë? Le të vetëm të gjithë janë dakord për të ruajtur disa model i zero dhe ones-- bits-- se në fund të fundit përfaqëson numrin dhjetore 65. Ne vetëm do të të gjithë janë dakord me këtë. 66 do të përfaqësojë B, 67 do të përfaqësojë C, dhe ka bunches e modeleve të tjera të zero dhe ato, ose numrat themelor, që do të përfaqësojë letra të tjera ende. Pra, nëse ju lloj i mentalisht absorbuar këtë për një moment, Unë qëllimisht vënë A me anë të I, ku H a 72 dhe I është 73. Në qoftë se një kompjuter, atëherë, në kontekstin e një program word processing ose një e-mail, zbuloi nën kapuç të ketë këto modele të modelit bits-- i bit përfaqësojnë 72, pastaj 73, pastaj 33-- çfarë mund të shkruhet kjo në këtë program? Pra hi, dhe pastaj diçka. Ne nuk domosdoshmërisht e di, por në të vërtetë 33-- jo në tabelë earlier-- ishte thjesht një pikë thirrje. Pra, 72 është H, 73 është I, 33 ndodh të jetë një pikë thirrje ende. Por kjo është e gjitha mirë dhe të mirë, dhe në fakt në ditët e sotme, në vend se përdorni vetëm shtatë ose tetë bit, në sajë të diçkaje quajtur Unicode në krahasim për ascii mbrapa në ditë, ne fakt mund të përfaqësojë edhe më shumë karaktere interesante se vetëm këto English origjinale njëanshëm letra. Por ne gjithashtu mund të përfaqësojnë edhe gjëra neater si ngjyra. Nëse ju keni dëgjuar ndonjëherë akronim RGB, e kuqe, jeshile, blu, që thjesht do të thotë se një kompjuter zakonisht përdor tre grupe të bits-- disa numri i bit që përfaqësojnë një numër për sa kuqe doni, një tjetër grup i bit për sa green doni, dhe një numër tjetër të vendosur për sa blu që ju dëshironi. Kështu që një numër i madh do të thotë shumë red, numër i vogël do të thotë nuk ka të kuqe. Dhe kështu këto janë lloj të vlerave të mesme këtu. Pra, më jepni disa të kuqe, më jepni disa gjelbër, dhe më jepni pak blu. Dhe në qoftë se ju përzierje e këtyre tre hije të ngjyrës së bashku, në këtë rast, që ju të merrni këtë hije vrazhdë e verdhë ose ngjyrë kafe. Por model i tetë plus tetë plus eight-- deri 24 bits-- majta në të djathtë, është si një kompjuter do të prezantojnë atë ngjyrë të veçantë. Tani kjo është vetëm një pikë në një ekran. Nëse ju shikoni të vërtetë afër në TV tuaj kompjuter, ju do të shihni pika ose pixels. Dhe në qoftë se ju keni një rrjet të tërë të pixels, horizontalisht dhe vertikalisht, ju keni imazhe. Dhe pastaj nëse ju merrni një imazh dhe pastaj të lajë sillu një tjetër imazh, një tjetër image, një tjetër imazh, një tjetër imazh, të vërtetë të shpejtë, ju sigurisht keni filma. Dhe kështu që vini re ku kemi filluar. Ne kemi filluar me këto zero dhe ato. Ne kemi punuar nga atje për të decimal numra, si ne përfaqësojnë ata. Tani ne kemi shkronjat e alfabetit. Por në kontekste të tjera presin, ne mund të përdorim disa më shumë copa dhe përfaqësojnë ngjyra. Sa më shpejt që ju keni Aftësia për të përfaqësuar ngjyrat, ju keni mundësinë për të përfaqësuar fotografi dhe gifs animuar dhe karaktere të tjera të tilla në ekran. Dhe kur ju keni një bandë e tërë e images fluturuar nga njeriu në të njëjtën kohë, kjo duket si filma, dhe kështu që ju të merrni video si. Pra, duke përdorur këto shumë primitives thjeshta bëjmë ne kanë rrugën e përfaqësuar në fund të fundit të gjitha këto forma të mediave. Dhe ne kemi përhumbur përsëri dhe përsëri dhe përsëri, deri ne marrë nga nivelin më të ulët në këtë nivel më të lartë. Kështu që na jep ky Ideja e përgjithshme e abstraksionit. Por, kemi filluar këtu. Këtu tani, ne fuqi paraqesin në një kompjuter inputet tona me zero dhe ato, Rezultatet tona në zero dhe ato, por ajo që shkon brenda kutisë? Kjo është ku kompjuter shkenca merr interesante. Kjo është ajo ku ju mund të vërtetë të sjellë tuaj mendjet e veta të mbajnë për të zgjidhur problemet. Ne tani mund të përcaktojë, për Pjesa tjetër e semestrit, po. Unë e di se si punon binare. Mbaj mend se si ASCII ose Unicode-- hartës për letters-- vepra. Dhe kjo sigurisht qëndron për arsye se ne mund të përfaqësojë të kuqe dhe të gjelbër dhe blu, dhe përfaqësojnë multimedia si. Por kjo është një temë interesante. Kjo është ajo që e bën dikë të aftë për zgjidhjen e problemeve. Dhe një problem i tillë ne si për të bërë, në të vërtetë, po pjesëmarrjen, ose bërë këtë algorithmically. Dhe përsëri, unë mund të bëjë këtë. Unë mund të bëjë një, dy, tre, katër pesë, gjashtë, shtatë, tetë nëntë. Dhe unë mund të shkruaj atë poshtë për të mbajtur gjurmët e saj. Por kjo është vetëm se si unë do të paraqesin informacionin. Ose unë mund të bëjë këtë faster-- dy, katër, gjashtë, tetë, dhjetë, 12, 14, 16, 18, 20, 22-- ai ndjehet si dy herë sa më shpejtë por është ende do të marrë një të tërë shumë kohë. Por kjo rezulton, në qoftë se ne levave ende edhe kompjutera resource-- dhe vërtet këto ditë kanë CPUs të shumëfishta apo trurin. Ajo rezulton kompjutera mund të bëjë shumë gjëra në të njëjtën kohë, dhe në të vërtetë ne, në këtë dhomë, mund të paraqesin pikërisht këtë. Pra, kjo është pak e shoqërore vështirë, por në qoftë se ju do të më humor për vetëm një proces tre-hap, le pyes të gjithë në vend ka vetëm të ngriteni për një moment. Ngrihu. Pra, mendoni për veten, numri one-- kështu që të gjithë në këtë dhomë, me përjashtim të njerëzve të cilët nuk i kanë detyrojnë, janë duke menduar numër një. Kështu që është numri juaj tani. Ky është hapi i parë, ose si një shkencëtar kompjuteri ose një programues zakonisht do të bëjmë, ne jemi duke shkuar të fillojë numërimi në zero. Në qoftë se numri më i vogël që mund të përfaqësuar me këto llamba është zero, thjesht duke lënë ato të gjitha off, unë mund edhe vetëm të fillojë numërimi nga zero është në vend të një. Dhe kështu kjo është ajo Shkencëtarët kompjuterike bërë. Pra hap zero, ngrihen dhe mendoj për numrin një. Hapi tjetër është this-- palë off me dikë këmbë dhe shtoni numrat tuaj së bashku. E mrekullueshme. Pra, në këtë moment në kohë, fjalë për fjalë të gjithë të marrin pjesë është duke menduar të numrit 2, me përjashtim të për një person i rastësishëm në qoftë se ne kemi një numër i rastësishëm i njerëzve në dhomë. Dhe tani hapi i tretë këtu do të të this-- njëri prej jush duhet të ulen. Njëri prej ju duhet të ulen, dhe në qoftë se ju jeni ende në këmbë, kthehemi të hap një të tillë. Në rregull. Në rregull. Pra gjithnjë e më shumë njerëz duhet të ulur poshtë. Vini re se kjo ka shkaktuar një loop-- një lloj cikli. Disa nga ju duhet të jetë awkwardly mbërthyer, duke shkuar mbrapa dhe me radhë në mes të një hap dhe dy, një dhe dy, një dhe dy. Eshte ne rregull. bug ynë i parë. Ne do të merremi me këtë. Në rregull. Më lejoni të përpiqemi për të nxitur gjërat së bashku. Në teori, vetëm një person është në këmbë si të gjithë vazhdon të çiftuar off. Por më lejoni të shpejtuar gjërat me njerëzit ende në këmbë. Çfarë numri jeni duke menduar për të? 46. NE RREGULL. Shkoni përpara dhe të ulen. Ju djema janë ende në këmbë. Kush është ende në këmbë? Çfarë numri jeni duke menduar për të? NE RREGULL. Pra, ne do të kthehet tek ju. Në pjesën e prapme? Cfare eshte ajo? 22. OK dikush tjetër deri top-- vërtet? 34. NE RREGULL. Mbi këtu në right-- time deri këtu? 132, shumë e bukur. 22? NE RREGULL. Dhe i cili është ende në këmbë? Ketu? 46, shumë e bukur. 72. Unë nuk mund të ngecë shumë më të gjatë. Po? 30, e bukur. Ketu? 23? 23. Dhe unë mendoj se është e të gjithë me përjashtim të ju djema, nuk ka presion. Oh, prisni. 28? Vetëm tetë. NE RREGULL. Vetëm tetë. Ketu poshte? 30. 23. 24. 18. Ky është zbatimi i keq i këtij algoritmi ndonjëherë. NE RREGULL. Pra, dikush tjetër? Ndonje tjeter? NE RREGULL. Nje me shume. 16? NE RREGULL. 16. Në rregull. Pra, nëse unë nuk kam humbur dikush në shoh me inat këtu, kur unë hit Enter, ne do të shohim, algorithmically, numri i përgjithshëm i njerëzve në Sanders. Për shkak se një herë, është sikur të gjithë si ju ul, kaloi numrin tuaj off dikujt tjetër, dikujt tjetër, dikujt tjetër, në mënyrë që në teori, në fund të fundit, vetëm një i vështirë Personi duhet të lënë në këmbë. Por kjo është në rregull. Ne ankorua gjërat me dorë. Kjo është veçanërisht e vështirë për të parë në këtë hapësirë ​​të veçantë. Dhe numri i përgjithshëm i njerëzve ne mendojmë se ka këtu është 546. Numri i përgjithshëm i ishte dorëzuar nga miqtë e mësimdhënies, kush e bëri atë të vjetër Shkolla mënyrë të ngadaltë, ishte 820. [Duke qeshur] [DUARTROKITJE] Eshte ne rregull. Pra me siguri pra, nuk janë këto mete. Dhe kjo është në rregull. Dhe kështu që mendoj se përsëri në këtë diçka e hera e parë ju shkruani nuk do të punojnë. Kjo ka ndodhur me mua si edhe këtu. Por le të shqyrtojmë se si ne fuqi aplikojnë këtë ide të njëjtë për diçka ju mund të keni parë më parë, e cila është kjo e vjetër e shkollës teknologji here-- një libër me të vërtetë e madhe e telefonit. Dhe mendoj se këtë libër e telefonit ka 1000 faqe dhe 1000 emra dhe numrat alfabetike në brendësi të saj. E pra, ne mund të lloj të zbatohet një të ngjashme Ideja për këtë problem shumë fizike, vetëm duke përdorur më. Unë vetëm lloji i mashtruar nga leveraging të gjithë ju me shumë dhe shumë e CPU të ndryshme ose truri ekzekutimin e ndonjë algorithm. Por në qoftë se kjo është vetëm pak vjetër me, unë ende mund levave të njëjtin thelbin e një ideje e ndarjes dhe pushtimit këtë problem përsëri dhe përsëri, ku gjysma prej jush, gjysma prej jush, gjysma prej jush, gjysma prej jush, teorikisht mbajtur ulur poshtë, deri sa ne u lanë, teorikisht, me vetëm një person. Pra, në këtë shkollë të vjetër technology-- ne nuk nevojë për këtë dalin nga harta këtë teknologji të vjetër e shkollës, ne mund të fillojmë të shikojmë për dikë si Mike Smith, një faqe në një kohë. Dhe unë shoh se jo, Mike nuk është këtu. Unë jam ende në seksionin A. Përfundimisht, unë gjej veten në seksionin B. Dhe kjo është një algorithm-- hap pas hapi udhëzim. Fillojnë në faqen e fillimit dhe të një në një kohë, shikoni për Mike Smith. A është kjo correct-- këtë algorithm apo qasje? Po, kjo është e saktë. Nëse Mike është këtu, në fund Unë do të merrni për të. Por kjo nuk është efikas. Është padyshim shumë i ngadalshëm. Kështu që unë mund të levave twosies njëjta qasje. Unë mund të bëj lloj të dy, katër, gjashtë, tetë, 10, 12. Kjo është dy herë më shpejt. Unë jam duke shkuar për të marrë të Mike më i shpejtë në qoftë se ai është atje. Është ajo e saktë? Po, por dëgjova një No little--. Tani kam dëgjuar A nr. Po. Ka një bug potencialisht. Ndoshta Mike vetëm aksidentalisht merr sandviç në mes dy faqe, sepse unë jam duke fluturuar me anë të ky dy në një kohë. Pra, të paktën ne kemi nevojë për disa lloj fix kushtëzuar. Unë kam nevojë për të thënë, hej, në qoftë se kam goditur dikë të cilit Emri i fillon me një T në vend të një S, Unë më mirë të dyfishtë përsëri të paktën një faqe. Pra, buggy në fillim, por ndreqshëm. Por askush prej nesh janë duke shkuar për të kërkuar Mike Smith me anë të një telefoni 1,000 faqe libër një faqe në një kohë. Çfarë është një person normal do të bëni? Ju jeni duke shkuar për të shkuar në S-së, në qoftë se ju e dinte se ku S-së. Ju mund të shkoni afërsisht në mes ose pak anon kah fundi. Dhe unë shoh këtu poshtë dhe Jam në seksionin M. Por çfarë do të dini në lidhje me këtë problem tani, se ne nuk domosdoshmërisht të dini para me të gjithë ne vetëm duke numëruar veten ekuivalente? E pra, Mike është në mënyrë të qartë do të jetë Kjo pjesë e librit në qoftë se ai është këtu në të gjitha, sepse është e renditura. Dhe kështu që ju mund shumë dramatically-- [Gulçues] E di. [DUARTROKITJE] Është e vërtetë me të vërtetë e lehtë në qoftë se ju bëni atë poshtë shpinë atje. Por atëherë ju mund të hedhin gjysma e problemit larg. Tani, unë jam i lënë me të njëjtin problem-- gjeni Mike Smith në një telefon book-- por tani libri telefoni fillon në M dhe shkon tek Z, por kjo është gjysma aq i madh. Por kjo është ajo që është mbresëlënëse. Ashtu si në teori, ju djema, kur ju të gjithë u ul vetëm gjysmën në një kohë, problemi mori gjysmën aq i madh, gjysma aq i madh, përsëri dhe përsëri. Pra, është bërë ky problem njëjtin problem por gjysma aq i madh. Tani kjo është një problem 250 faqe. Sa më shpejt që unë të kuptojë, oh, unë jam në seksionin T rastësisht. Unë kam shkuar shumë larg. Unë mund të hedhin se gjysma e librit të telefonit larg. Tani, unë jam deri në një katërta e problemit. Dhe ju mund të përsëris, e përsëris, të përsëritur deri në, në teori, ju jeni lënë me vetëm një faqe. Dhe në qoftë se Mike është në atë faqe, Unë tani mund të zgjidhin këtë problem. Por, sa shpejt e kam zgjidhur atë? Në rastin e parë, ajo mori mua si ndoshta 1.000 hapa për të gjetur Mike Smith. Ajo mund të ketë marrë me-- I kap librin e telefonit dhe unë fillova të kërkoj një faqe në një kohë, dhe Mike mund të jetë 1,000 faqe më vonë. Qasja e dytë ndoshta merr mua 500 hapa, sepse unë jam duke fluturuar përmes dy në një kohë. Dhe qasja e tretë edhe pse, kjo është veçanërisht e fuqishme. Por le të marrin në konsideratë se çfarë ne fakt bëri me këtë qasje të tretë. Unë do të keni atë që unë do të thërrasë vetëm këto Deklaratat këtu, një në një kohë. Pick up një libër telefoni. Të hapur në mes të librin e telefonit. Shikoni në emrat. Dhe pastaj gjërat merrni pak më intelektualisht interesante, nëse ende të thjeshta. Nëse Smith është ndër më të emrat në atë faqe të tanishme, pastaj të bëjë diçka me kusht. Është si një pirun në rrugë. Call Mike. Nëse Mike është në mesin e emrave në këtë faqe, të quajtur Mike. Por vetëm të bëjë vijën katër në qoftë linjë pemë, në qoftë se ju do të, është e vërtetë. Përgjigja për këtë pyetje është po. Tjetër në qoftë se Smith është parë në book-- me fjalë të tjera, në qoftë se unë jam në seksionin M dhe unë jam duke kërkuar për dikë që të e majta, atëherë çfarë duhet të bëj është diçka shumë e ngjashme. Atëherë unë duhet të hapur në mes i gjysmës së majtë të librit. Kështu që të shkojnë majtë, dhe pastaj të kthehemi në hap dy. Shikoni në emrat atje. Pra, me fjalë të tjera, të bëjë të njëjtën gjë, por në një problem që i është përgjysmuar. Ti e di se çfarë tjetër? Nëse Smith është vonë në libër bazuar në faqen e unë jam duke kërkuar në, e hapur në mes të të gjysma e djathtë e librit dhe pastaj të kthehemi përsëri të hap dy, else-- ka një mundësi katërt këtu. Mike-së ose këtu apo në të majtë ose në të djathtë apo jo atje. Dhe këtu kemi mirë parasysh këtë. Dhe në fakt, në qoftë se ju keni pasur ndonjëherë kompjuteri juaj vetëm të rrëzuar në ju, që nganjëherë, por jo gjithmonë, Rezultati i vetëm një programues njerëzore nuk kuptuar, oh xhiruar, nuk ka fakt ky skenar katërt. Dhe në qoftë se ju nuk shkruani kodin për të trajtuar këtë skenar, ndonjëherë ju nuk e dini çfarë mund të bëjë kompjuteri. Dhe me të vërtetë një program mund të rrëzimit. Por në këtë rast, kam menduar në lidhje me të, dhe unë i thashë, tjetër lë, sepse kjo është e katërta Skenari logjike e mundur. Tani, le të vetëm të shtoni disa fjalori kështu ne mund të fillojë të hedh rreth kushte që janë ndryshe mjaft intuitive. Të gjitha gjërat që unë kam vetëm theksuar në të verdhë këtu, Unë jam vetëm duke shkuar për të funksione ose procedura. Ata janë vetëm lloji i veprimeve. Pra marr, e hapur për të, shikoni në, e quajnë, të hapur, të hapur, quit-- këto janë vetëm veprime, ose ne do të thirrjen e tyre më formalisht, funksione. Ndërkohë, tani në të verdhë, Unë e kam theksuar gjëra that-- le të vetëm të fillojnë duke e quajtur ato kushte ose degët. Këto janë pikat ku vendim ju mund të shkoni në këtë mënyrë, në këtë mënyrë, apo ndonjë drejtim tjetër akoma. Pra, ata do të jenë kushtet. Dhe tani kjo është pak njohës. Le të quajmë këto pyetje shprehjet Boolean, pas dikë me një mbiemër bool. Dhe një shprehje Boolean është vetëm diçka që është ose e vërtetë ose e rreme, po ose jo. Pra, kjo është pyetja të cilës përgjigje intereson, në mënyrë që të në një gjendje të bëjë një decision-- të kthehet një përgjigje, dhe pastaj të shkojnë majtas ose djathtas, ose diçka tjetër krejt. Dhe pastaj në fund, këto Linjat here-- kthehemi të hap dy, të shkojnë prapa të hap two-- ne mund të zbatuar këtë ide në mënyra të ndryshme. Dhe pastaj ata prej jush me përvojë programore mund të ketë bërë ose mund ta imagjinoj duke bërë këtë në mënyra të ndryshme. Por, për qëllimet e sotme, është e vetëm ideja që ka rëndësi. Kjo është ajo që inducing ne përgjithësi do të thërrasë një loop-- një lloj cikli, sepse ajo është bërë me të bërë diçka përsëri. Pra, tani, le të vetëm të marrin në konsideratë sa i mirë ky algoritëm është. Eshte e sakte. Nëse Mike-së në libër, është një nga ata katër scenarios-- përsëri dhe përsëri dhe përsëri, ne do të gjeni atë. Por, sa i mirë është ajo? E pra, ne nuk kemi të jetë shumë formal këtu. Por, le të vetëm komplot diçka, x dhe y, për të marrë një ndjenjë e formës së këtij problemi. Në boshtin x këtu është madhësia e problemit tim. Dhe ata një y-aks këtu do të jetë koha për të zgjidhur. Kështu që ndoshta kjo është numri i faqeve. Ndoshta kjo është e sekonda ose faqe turns-- çfarëdo. Megjithatë ju doni për të numëruar është ajo që kjo foto do të përfaqësojë. Dhe kjo algorithm pari, unë jam duke shkuar për të përshkruar si vetëm një vijë të drejtë. Nëse ka n faqe në libri telefon, atëherë ai mund të marrë mua sa më shumë si hapa n për të gjetur Mike. Nëse Verizon ose kompani telefonike shton një faqe më shumë vitin e ardhshëm, ajo mund të marrë më një shumë step-- edhe një njësi të kohës për të gjetur Mike. Pra, nuk është vetëm ky në një raport. Kjo është një vijë e drejtë shpat. Ndërkohë, që të dytë algorithm-- në qoftë se unë jam duke shkuar dy në një dy time--, katër, gjashtë, tetë apo double-- duke shkuar nëpër faqet dy herë në një kohë, dy në një kohë, është ende vijë e drejtë. Ka tani një njeri të dy raporti, por pak më poshtë. Pra, nëse ka këtë shumë faqe në tabelë këtu në të verdhë, që mund të marrë më këtë shumë hapa ose sekonda, përndryshe ajo do të marrë mua dy herë më shumë në vijën e kuqe. Por vija e gjelbër është takeaway vërtetë. Kjo është ajo që ne në përgjithësi thërrasë një regjistër logorithm-- nga n, ku n është numri i faqeve. Por kjo është forma që ka rëndësi sot, për shkak se ne nuk kemi të mendoj edhe për komplot pikë. Mendoni për një skenar ekstreme. Supozoni Verizon nesër dyfishon numri i faqeve në atë librin e telefonit, nga 1,000 deri në 2,000. Në algorithm parë, unë mund të humbni një shtesë 1,000 hapat e kërkuar për Mike, vetëm për shkak se Verizon dyfishuar madhësinë e librit. E dyta algorithm-- të fuqisë kap për mua një shtesë 500 hapa. 1000 faqet e më shumë, shkoj dy në një time-- 500 hapa më shumë për të gjetur Mike. Por kjo algorithm tretë është lloj i magjike. Verizon dyfishon numrin i faqeve nga 1,000 deri në 2,000, por sa shumë më tepër hapa bën të marrë mua për të kërkuar Mike? Kjo është vetëm një, sepse unë mund vetëm heq Libri i telefonit një më shumë kohë nga një problem 2,000 faqe në një 1000 Problemi faqe, dhe voila. Unë kam marrë një pickim masive nga ajo. Dhe në qoftë se ju shkoni me të vërtetë ekstreme, supozojmë se librin e telefonit Kompania kishte diçka të çmendur si një libër telefoni 4 miliardë faqe. Dhe sa hapa mund të marrë për të gjetur Mike Smith në 4 miliardë faqe Libri i telefonit? Është një numër i madh, por vetëm 4 miliardë 2 miliardë për 1 miliard 500 milionë, 250 million-- ende tingëllon si një numër të madh, por unë jam shumë shpejt marrjen e vlerave më të vogla. Dhe në fakt, në qoftë se unë bëj matematikë drejtë, unë mund të ndajnë vetëm 4 miliardë nga rreth 32 herë më parë I marrë poshtë për të vetëm një. Pra, nëse ai libër telefoni ishin 4 miliardë faqe e gjatë, ndonjë gjë e madhe. Brenda disa sekonda, ndoshta 32 sekonda, unë mund të ndajnë atë në gjysmë dhe përfundimisht të gjeni Mike ose në përfundimin se ai nuk është aty. Dhe kjo është esenca e një algorithm-- një algoritmi të mirë. Dhe kjo është një nga më të Qëllimet e një klase si kjo, është duke u përpjekur të kuptoj se si mund ta zgjidhjen e problemit jo vetëm të saktë, si unë gjithmonë e dinte se si për të bërë atë një faqe në një time--, por në mënyrë korrekte dhe të mirë. Si mund të projektimit të mirë zgjidhje për problemet? Pra, le të marrin një moment këtu dhe do t'ju japë një kuptim tani i CS50 kurs vetvetiu më të futur Anëtarët e stafit të një kurs disa të. Vetëm para 2:00, ne do të të marrë një pushim të shkurtër në mënyrë që ato prej jush të cilët janë të pazar duck dhe të marrë një shikoni në një klasë tjetër dhe ndiqte vazhdimin e këtij online. Por tani për tani, më lejoni të prezantoj CS50, klasa vetë, dhe në veçanti ajo që është e re. Pra pranverë kaluara, ne kaloi mjaft e time-- Stafi i kursit dhe I-- menduarit në lidhje me atë që është e duam CS50 të jetë, dhe do të kthehet në para parime, kështu që të flasin, për t'u marrë parasysh se çfarë është ajo që ne duam ky kurs të duken si dhe të jenë të si për studentët e vet. Dhe kështu që ju do të shihni në problemin vendosur zero, si dhe, një ftesë për të marrë një vështrim në atë URL e cila përmbledh disa nga motivet prapa pas karakteristikat e rënies 2016. Kështu si ju mund të keni mbledhur nga TL: prospekt DR, syllabus sot, si dhe nga katalogu Natyrisht, këtë vit në CS50, ju jeni duke pritur vetëm për të marrë pjesë today-- kështu punë të mirë done-- dhe leksion fundit më 21 nëntor. Dhe ju jeni të mirëpritur, por jo pritet të të marrë pjesë në këto ligjërata në mes, sepse ajo që ne jemi duke bërë këtë vit, është qitje në kohë reale materiale kurs të. Pra, çdo gjë do të qëndrojë aktuale dhe të përfshihet sa më mirë që can-- ngjarjet aktuale dhe bisedat që folks fuqisë të ketë në industri në bota, por duke e bërë atë material në dispozicion, si rezultat, edhe earlier-- plotë me transkriptet plota tekst dhe searchability dhe lidhjet me burime të tjera. Dhe me të vërtetë, ne kemi qenë duke pretenduar për disa kohë dhe ne tani e besojnë këtë, se ne mund të krijojë, digjitale, një më të immersive, a më bindëse përvoja arsimore, në krahasim për të mbledhur këtu disa 23 herë në person, dikush dëgjuar si unë thjesht flasim për shkenca kompjuterike, në krahasim me të angazhohen në mënyrë më aktive. Pra, ju do të shihni në planin mësimor të kursit një skicë e semestrit këtu, së bashku me të, kur ligjërata do të filmuar, për të cilën ju jeni të mirëpritur, por nuk pritet, dhe kur ata do të të jetë lëshuar në faqen e internetit të kursit. Dhe ajo që ne do të bëjmë këtu në Të mërkurën duke filluar javën e ardhshme, është shumë më e ngushtë, me vetëm ata folks që duan të marrin pjesë, është një shëtitje të ashtuquajtur anë, ku unë dhe kokat e rrjedhës së në të vërtetë do të bëjë gjëra pak më intime këtu poshtë në orkestër seksioni, ende kanë disa teknologji dhe ecin përmes set Problemi jave aktual, dhe ju ofrojnë particularly-- nëse në mesin e ata pak comfortable-- të gjithë më shumë udhëzime që ju mund të dëshironi ose nevojë për sfidën e javës së. Dhe në mënyrë të ngjashme, për ata që nuk mund të marrin pjesë ato në person, ndonjë gjë e madhe. Nuk do të udhëhiqet në mënyrë të ngjashme nga një prej stafit të lartë të kursit, Zamalya, të njëjtën mundësi e ngulitur në problemin e përcakton vetë. Problem vendos këtë vit do të dalë të premteve dhe nuk do të më shtatë ditë më vonë, por 10 ditë later-- qëllimisht mbivendosje me çdo problem vendosur, në mënyrë që të akomoduar mirë, ne shpresojmë, dobësim dhe rrjedhën e në oraret e studentëve, sidomos kur midterms ose atletikë apo akademikë ose extracurriculars priren të vijnë e të shkojnë sidomos në mes të semestër. Kjo duhet të ju jap një më të vogël diskrecioni nëse ju front ngarkesës javën tuaj me CS50 ose ngarkesë mbrapa ajo në fundjavë në vijim në vend. Kështu që shikoni për planin mësimor të kursit këtu për orarin e tij. Dhe ju do të vëreni edhe në mesin e ndryshimet e këtij viti, për ata më të njohur me programimit në të kaluarën, ne do të fillojnë semestrin si ne do sot në Scratch, të përqëndrohet veçanërisht në gjuhën quajtur C, dhe pastaj nuk e tranzicionit për PHP, por me një gjuhë të quajtur Python në fund të semestrit në kontekstin e programimit web, së bashku me SQL dhe JavaScript, HTML, CSS, dhe edhe më shumë. Dhe në përgjigje të një FAQ, kjo është me të vërtetë rasti se CS nuk është aq e frikshme sa unë herë mendonin se ishte, por ajo është aq shumë punë pasi kisha dëgjuar se mund të jetë. Por kjo është të themi se këtu janë disa Statistikat nga rënia 2015 trupit studentor, ku vijat horizontale blu përfaqësojnë numrin mesatar të orëve raportuar. Dhe ju do të shihni një mesatare prej gjashtë deri në 10 për 12-- ndoshta 16 apo më shumë e kështu me radhë, por me grindje të lartë të jetë e qartë. Dhe kështu të kuptojë se nuk është vetëm studentët më të rehatshme dhe më pak të rehatshme gjatë, por një mbështetje i korrespondon Struktura për të marrë ata studentë përmes semestrit sukses. Në të vërtetë, në përgjigje të një FAQ, duhet ju të marrë CS50 si vitin e parë? Absolutisht. Dhe në fakt, unë nuk pendohem nuk ka gjetur rrugën time ose gjetur një fushë të re se viti i parë si. Dhe duhet të marrë CS50 me kurse të tjera, sigurisht si well-- dhe këshilla të përgjithshme të fuqisë japin studentëve, që CS50 është ndoshta jo lloji i klasës apo klase intro që ju duhet të marrë me tre tjetër ose katër të tjerë klasa p-set. Por në qoftë se ju jeni duke marrë dy të tjera p-grup klasa, diçka tjetër, dhe CS50, absolutisht të dëgjueshëm. Unë kam pasur shumë studentë në kaluara bërë kështu mjaft sukses. Dhe për të marrë ju në drejtim që përfundojë linjë me sukses, ka sigurisht kanë sections-- këngë të ndryshme për studentët më të rehatshme, më të rehatshme, dhe diku në mes, ku në kursin e grupi i parë problem, ju do të kërkohet për të përshkruar veten. Dhe nëse ju jeni në mesin e atyre më pak të të rehatshme, kjo është lloj gjë që ju vetëm e di vend. Dhe me të vërtetë, kjo është qenë rritje demografike në CS50 për mjaft për disa vjet. Që nga vjeshta e kaluar për shkalles, 58% të klasës e përshkroi veten si në mesin e atyre më pak të rehatshme, me 9% në mesin e atyre më shumë të rehatshme, dhe pastaj nxënësit e tjerë atje në red përshkruar veten si diku në mes. Dhe ju do të shihni këtu temat e përgjithshme dhe orar e seksioneve, të gjithë nga të cilat janë të ofruara në person, në kohë reale, me kursin e Stafi mahnitshme të shokëve të mësimdhënies dhe asistentë kurs, disa prej të cilëve ju do të takohen në një moment të vetëm. Seksionet veten, si ju do të shihni, do të të jenë të hënën dhe të martën dhe të mërkurën, në mënyrë që të lejojë që të zhyten në pas të angazhohen, në qoftë se ju në mënyrë të zgjedhur, në kursin e leksion parë atë javë. Dhe pastaj orarit të punës, të cilat sigurisht, me kalimin e çdo viti, kanë qenë jo më pak e një sfiduar për kursin. Dhe këtë vit, ne nuk jemi duke planifikuar vetëm për të mbajtur zyra hours-- një në një mundësi për ndihmë për Studentët të mërkurave enjteve dhe të dielave, e fundit e atyre qenë në pasdite me dizajn për të zvogëluar disa nga stresi që pa ndryshim lind me natën vonë p-settting me një afat looming-- por orarit të punës do të ofrohen hënën dhe të martën dhe të Të mërkurën, dhe të premten dhe të shtunave, falë miqve tanë në HSA. CS50 tani ka hapësirë ​​të vet për studentët dhe stafin CS50, në majë të 67 Mount Auburn Rruga, të drejtë ka në Harvard Square. Vizioni për të cilin është se CS50-së NGP dhe AK gjatë gjithë javës, shumë e shumë të gjithë më ditë, do të jetë atje për mbështetje. Pra, nëse ju keni marrë disa Pyetja në një p-grup ose ju jeni ndjeheni pak bllokuar ose pak i hutuar, dhe dreq, ju keni marrë një orë ose gjysmë ore në mes të klasave, sidomos në square-- mund të pop në dhe të ketë këtë pyetje u përgjigj e kanë atë konfuzion clarified-- shumë në shpirt, ju jeni të njohur, i math vetë qendra pyetje matematikës departamentit, por shumë e shumë rreth orën për [? Gcal?] Se ne do të postoni online. Tutoring është gjithashtu në dispozicion për ata i studentëve, të lirë nga rruga e Stafi i vet, nëse ju do të donte më intime një për një, ose dy ose tre shokët e klasës vetëm, duke punuar me një nga anëtarët e stafit të kursit. Dhe me të vërtetë, këto këtu janë vetëm disa nga anëtarët e stafit të kursit, disa prej të cilëve ju do takohen në një moment të vetëm. Në fakt, CS50 e vet Mësimi shokët kreu, dhe sigurisht kokë asistent, dhe preceptor, mund të vijë në dorë, të lejojë që ata të thonë hello. [DUARTROKITJE] Kryetari 1: [padëgjueshme]. [DUARTROKITJE] SPEAKER 2: [padëgjueshme]. [DUARTROKITJE] Kryetari 3: [padëgjueshme]. [DUARTROKITJE] DAVID Malan: Dhe na lejojë të të sjellë në bordin e dytë të CS50-së më stafi i lartë, Rob dhe Zamayla si. [DUARTROKITJE] Në të vërtetë, si Rob dhe Zamayla kanë qenë me ne për kaq shumë kohë, që unë kam qenë në gjendje për të shkuar në arkivat CS50-së dhe për të gjetur këtë SD shumë pamjet e tyre të marrin pjesë në skenë vetë disa vite më parë. ROB: [padëgjueshme]. [DUARTROKITJE] ZAMAYLA: [padëgjueshme] [DUARTROKITJE] DAVID Malan: Ju faleminderit. Pra, përveç këtyre Anëtarët e ekipit këtu, CS50 ka një ekip prej rreth 100 anëtarë të stafit, të gjithë prej të cilëve do të jetë në dispozicion për seksionet dhe të orarit të punës dhe shumë më tepër. Dhe siç thotë edhe Rob, kjo është rregullim më i rëndësishëm e CS50 në 10 vitet që Unë kam qenë në [padëgjueshme]. [Padëgjueshme] fokusuar sidomos në sigurimin e një strukture mbështetëse, zvogëlimin larg shumë pjesa më e madhe që ka qenë akumuluar në 10 vjet Zhvillimet e Përsëritës në grupe me probleme kurs së. Pra këtë vit, jo vetëm në klasë, por gjithashtu në formë të problemit të kursit grupe, ju duhet të gjeni gjëra të të jetë më i efektshëm, makinë prerëse, shumë më i dëgjueshëm se në vitet e kaluara, si ne derdhur një pjesë të bagazhit që është zhvilluar nga natyra e zhvillim vitit pas viti dhe iterating. Kështu reja dhe të përmirësuara fillon sot. Ju do të takohet me disa më shumë nga Stafi kurs të dalë në [e padëgjueshme] në 2:30, ku ne të shërbejë, si një traditë, tortë. Ka një tortë pak më shumë se kaq, por ju do të takohen Erin dhe Tobias dhe të tjerët ende. Dhe më lejoni t'ju jap një turne para se të dëgjojmë nga disa punonjës të tjerë në klasë, e atë që i pret si. Në fakt, ne gjithmonë të fillojë CS50-së Semestri kjo vjen shtunën, me atë që quhet Dita e CS50 Puzzle. Ajo nuk ka të bëjë me shkenca kompjuterike në vetvete, por me rreth problemit zgjidhjen më në përgjithësi. Dhe në qoftë se ju në mënyrë të zgjidhni për të marrë pjesë, per disa nga ftesat, ju mund të keni parë derën rënë ose në skenë këtu, kjo është një mundësi në ekipe e dy ose tre ose katër, për të marrë pjesë për puzzles dhe pica dhe shpërblime dhe more-- kjo e shtunë, stay tuned për më shumë. Ju do të gjeni shumë se çdo E premte, në Zjarri dhe Ice, ka CS50 sjellë një tërë bandë e studentëve për drekë, për të bërë një pjesë të madhe klasë të ndjehen më intime, dhe në përgjithësi sjellë së bashku alumni dhe miqtë nga industria të flasin për atë që ata kanë qenë deri në viti diplomimit. Në mënyrë të ngjashme, këtë vit, do të kemi përurojë parë ndonjëherë CS50 50 kodim contest-- një mes të semestër mundësi për të lejuar të gjithë në një zgjedhë në bazë, për të patur një Sfida e lajthis kundër shokëve, përsëri në grupe prej dy apo tre apo katër, duke përdorur vetëm se programimi tru që pastaj kanë nën rrip tuaj pas vetëm gjashtë apo shtatë javë e klasës, dhe të marrin pjesë në këtë lloj të konkurrencës online-- qoftë se ju dëshironi për të grihë tuaj aftësitë e të gjithë më shumë në këtë sfidë. Në fund të semestrit është e ashtuquajtura CS50 Hackathon-- një mundësi që fillon në orën 7:00 PM përfundon në 7:00 të mëngjesit dhe gjatë rrugës 12 orë të mbrëmjes, në të cilën të zhyten në project-- përfundimtar të kursit një mundësi për të hartuar dhe zbatuar më ndonjë gjë me interes për ju me mësimin tuaj udhëzime shokët e s. Rreth 9:00 AM bëjmë ne zakonisht shërbejnë pica, 1:00 AM, Philippe-së, si dhe disa prej nesh të cilët janë ende zgjuar në 5:00 të mëngjesit, janë dërguar me autobusë anijes poshtë Rruga për IHOP për mëngjes. Dhe pastaj disa ditë më vonë është e ashtuquajtura CS50 fare-- një fund të ekspozitës semestër në festimi i se sa larg aq shumë e CS50 studentë kanë ardhur nga Javën zero të gjitha mënyra për javë, dhe duke mbajtur parasysh se 73% e atyre Shokët e klasës dhe juaji këtë vit kanë asnjëherë nuk marrë një klasë CS para. Në fakt, të ritheksoj sa më shumë, këtu është pak fytyrat e më shumë nga stafi CS50 e. Kryetari 4: [padëgjueshme]. SPEAKER 5: [padëgjueshme]. SPEAKER 6: [padëgjueshme]. SPEAKER 7: [padëgjueshme]. SPEAKER 8: [padëgjueshme] Kryetari 9: [padëgjueshme]. Kryetari 4: [padëgjueshme]. SPEAKER 10: [padëgjueshme]. SPEAKER 11: [padëgjueshme]. SPEAKER 12: [padëgjueshme]. SPEAKER 13: [padëgjueshme] SPEAKER 14: [padëgjueshme]. SPEAKER 13: [padëgjueshme]. SPEAKER 15: [padëgjueshme] SPEAKER 16: [padëgjueshme]. SPEAKER 11: [padëgjueshme] SPEAKER 5: [padëgjueshme]. DAVID Malan: Një pjesë e ekipit janë vetë pazar klasa. Por nëse ata anëtarë e stafit CS50 këtu, mund të vijnë në për vetëm një moment. CS50-së NGP dhe AK dhe [? Stafi?] Anëtarët here-- këto janë vetëm disa e një faces-- për të cilin ju vetëm pa, dhe një other-- disa dhe disa të tjerë akoma. Pse nuk shkojmë përpara dhe të lejojë ju djema një pushim pesë minuta. Nëse keni nevojë për të rosë jashtë për klasa dyqan, kjo është në rregull. Dhe në pesë minuta, ne do të rifillojë, duke marrë një vështrim në Scratch-- ku e para e gjuhës sonë të programimit, takohen Stafi i kursit këtu disa më shumë, dhe të përqëndrohet në fund të fundit në problemin vendosur zero. Pra, ne do të kthehet në pesë minuta. [DUARTROKITJE] Në rregull. Pra, ne jemi të kthyer. Dhe në e mbetur tonë koha sot, qëllimi është për të nivelit fushën e lojës për sa i përket disa terminologjisë, për sa i përket disa ide. Sepse në të vërtetë, sipas disa nga Listat e mëparshme, atje do të jetë një varg i nivelet e përvojës në klasë, disa prej të cilëve studentë kanë marrë disa programe më parë, disa prej të cilëve nuk kanë. Dhe kështu me këtë problem parë vendosur dhe me këtë gjuhë e parë nuk kemi një mundësi për të filluar për të marrë për të dhënë, pasi sot disa të fjalorit të përbashkët dhe ide. Dhe ne do të bëjmë këtë me anë të languages-- parë kursit të përveç C dhe Python dhe JavaScript dhe SQL dhe HTML dhe CSS, ne do të jetë duke u përqëndruar fillimisht dhe vetëm për problemin vendosur zero në këtë gjuhë grafike, të quajtur Scratch, zhvilluar nga Media Lab MIT'S poshtë rrugës, për të ndihmuar studentët dhe fëmijët në veçanti shprehin veten e tyre algorithmically-- në një mënyrë më të qëndrueshme me atë mund ta quajmë të menduarit kompjuterike. Dhe kjo është një gjuhë e dobishme për shkak se shumë shpejt javën e ardhshme në javën e parë, nuk kemi kalimin në një më të gjuha tradicionale dhe misterioze të quajtur C, e cila është e pastër tekstuale. Ju vetëm përdorni tastierën tuaj në Për të shkruar udhëzimet si këto në ekran. Por edhe në qoftë se ju kurrë nuk kam parë një gjuhë programimi më parë, në vetëm glancing në kjo, të gjithë të jenë të fshehtë, ju ndoshta mund të mendoj se ndoshta printime Hello World. Por ka shumë të overhead sintaktik atje. Nuk është e pazakontë hash simboli apo hash tag up krye. Ka kllapa kënd, disa kllapa, formatimin e teksteve kaçurrel, gjysmë-colon-- ka vetëm aq shumë vizuale Sintaksa që merr në mënyrë. Ne fillim kursin me Scratch në mënyrë që të merrni kaluar të gjithë ata intelektuale jointeresant distractions, dhe në vend të kësaj të përqëndrohet në idetë. Në fakt, kjo mund të jetë përpara. Kjo, për këtë, javë do të jetë pas. Kjo, në këtë grafik Scratch gjuhës, është se si ju do të zbatojë të njëjtën program-- një program që kur të të drejtuar, thjesht thotë Hello World. Dhe çfarë është e mirë për Scratch është se është ky program grafike Mjedisi që përdor copa mister ose blloqe, se vetëm bashkoj së bashku nëse kjo ka kuptim logjik për ta bërë këtë. Dhe me Scratch mund të zhvilloni animacione dhe lojra interaktive dhe art, dhe çdo numër të gjërave që ju mund të imagjinoni në mendjen tuaj, dhe zbatimin e tyre thjesht duke zvarritur dhe duke rënë copa mister. Dhe me të vërtetë, ne do të kemi mundësinë për të shprehur disa nga të njëjtat ide që sapo përmenda një moment më parë në kontekstin e Mike Smith dhe të kërkoni një telefon book-- gjëra si funksionon, vetëm veprimet, gjëra të tilla si sythe që bëjnë gjëra përsëri dhe përsëri, variabla, e cila është diçka që ne do të prezantoj, por kjo është e njohur mbase nga algebra-- vetëm një lloj placeholder për të ruajtur disa vlera që ju mund të nevojë për shprehje Boolean later--, ku ata po jo apo e vërtetë pyetje të rremë nga para. Kushtet janë ato forks në road-- ato degë në mënyrë që të flasin. Dhe pastaj ka disa njohës Karakteristika ne do të shohim edhe sot, quajtur vargjeve dhe temat e ngjarje, që ne pastaj do të rishqyrtojnë gjatë Koha në gjuhë të ndryshme. Por Scratch na lejon për të shqyrtuar të gjitha këto. Kështu që këtu në Scratch, kjo purple bllok është ajo që një funksion është zakonisht do të duken si. Kjo pjesë mister purple se ka disa fjala si të themi, që është veprim, dhe pastaj ajo mund të ketë një Argumenti ose një parameter-- ndonjë mënyrë i këtij lloji të customizing ajo që e bën block në mënyrë që ajo nuk është para-përcaktuar nga MIT çfarë thotë ky bllok purple. Në fakt, ju do të shihni në një moment që unë jam në gjendje të tipit fjalët si botë përshëndetje, ose Përshëndetje David, apo përshëndetje Zamayla, apo çdo gjë që unë dua, në argumentin në atë mister piece-- kuti e bardhë atje. Ndërkohë, në qoftë se unë dua një lak, ne do të shihni se ka puzzle copë që shikoni një portokalli të vogël si kjo. Dhe forma e tyre lloj sugjeron se diçka ndodh përsëri dhe përsëri në një cikël. Pra, nëse unë të përfundojë një bllok thonë hello botë me një bllok përgjithmonë në Scratch, ajo është vetëm do të mbajë thënë përshëndetje Bota përgjithmonë, mjaft fjalë për fjalë. Ndërkohë, ka një tjetër lloj lak në Scratch se ne do të see-- një përsëritje block-- ku, në qoftë se ju ditur paraprakisht se sa herë ju dëshironi lak për të ekzekutuar një numër i caktuar i kohës në fact-- ju mund të specifikoni se nga shtypja në një numër apo edhe mbylljen në një variabël, si x apo y si ne do të shohim. Në të vërtetë, variabla si i në këtë rast, e cila është një emër i përbashkët për një variabël integer që vetëm ruan një number-- një numër të plotë mund të jetë, për të përdorur këtë bllok portokalli këtu për vendosur një ndryshore si i zeros. Ja një shembull në të gjelbër e një shprehje Boolean në Scratch. Edhe pse kjo duket si një matematikë formula, pabarazitë matematikës si kjo me të vërtetë janë shprehje Boolean. Kjo është ose e vërtetë apo e rreme. I është më pak se 50. Kjo është ose një po ose jo përgjigje ose përgjigje të vërtetë apo e rreme. Dhe ne në përgjithësi do të thërrasë këto shprehje Boolean. Dhe kjo nuk duhet të jetë 50. Ajo mund të jetë më pak se x y, më i madh se y, e barabartë me y-- çdo numër të tjera Pyetjet mund të kërkohet. Tani, në shikim të parë, kjo mund të duket papritmas mjaft të guximshme këtu, dhe kjo është. Por koncepti i mençur, është e mjaft të njohur nga më parë. Nëse x është më pak se y, se thonë se sa më shumë. Tjetër në qoftë se x është më i madh se y, pastaj të thotë sa më shumë. Tjetër të thënë x është i barabartë me y. Pra, ne kemi një shembull ka një scenario-- tretë e vetmja tretë possibility-- x është ose madhe se, më pak se, ose e barabarte me. Pra, ne kemi një pirun me tre mënyra në rrugë. Dhe njoftim se çfarë është e ftohtë Scratch here--, kjo do të duket, ka vetëm një mister pjesë, në këtë rast, në nëse tjetër bllok. E megjithatë, kjo do të duket se nënkuptojnë ju mund të vetëm një pirun dy mënyra në rrugë. Ju mund të shkoni majtas ose djathtas, por çka në lidhje me këtë skenar të tretë? Po në qoftë se x është e barabartë me y? Ndonjë gjë e madhe. Merr një copë mister, vendos një tjetër brenda saj për të krijuar ekuivalentin semantik e në qoftë se, në qoftë tjetër, else-- dhe tani ju kanë të tre mënyrë pirun në rrugë. Dhe si ne do të shohim, copa mister Scratch mund të shtrirë dhe të rritet, kështu që si për të mbushur më shumë gjëra në to. Ju nuk keni për të përshtaten çdo gjë në madhësinë e saj default. Kjo është diçka që ne do të shpejt shih quhet një grup. Është si një list-- disa mënyrë të ruajtjen copa të shumta të informacionit në një variabël, jo vetëm një numër. Këto ne do të shohim një përfaqësues të diçka e quajtur multi-fillesë. Në fakt, të gjithë tuaj Macs dhe PC këto ditë mbështetur multi-fillesë, që do të thotë se ju mund të vërtetë bëjë gjëra të shumta në një kohë. Ju mund të keni Microsoft Word deri në dukshëm, duke punuar në një ese. Ju mund të keni një shfletues në hapjen sfond G-mail, ose Facebook, ose si. Kompjuteri juaj mund të bëjë gjëra të shumta sot, për shkak se ajo është multi-i ndërprerë, dhe programet e ata janë në në të veçantë janë edhe multi-i ndërprerë. Ka gjëra quajtur ngjarje si edhe në botën e Scratch, dhe pastaj nuk ka një mënyrë shumë, për të bërë copa tona të puzzle custom nëse gjërat në fakt nuk ekzistojnë paraprakisht. Pra, le të motivuar këtë si më poshtë. Disa vite më parë, kur unë së pari zbuloi Scratch, kur unë ishte në fakt një Studenti grad në MIT, ne vetë u ngarkuar për të bërë detyrat e shtëpisë. Dhe unë implemented-- të cilat, në retrospektivë, ishte një vendim shumë të varfër për shkak se është kënga më e egërsuar në botë për të dëgjuar për tetë orë duke punuar në homework-- tuaj por diçka që unë e thërres Oscar Time, e cila është ndoshta një këngë të njohur. CS50s vetë Jordan Hayashi, një nga më shumë anëtarë të lartë të stafit, ka përmirësuar atë për vitin 2015 dhe tani 2016 që nga mbrapa në ditë, Unë kisha çdo gjë vetëm do në Oscar plehra mund. Tani ne mbështesim riciklimin dhe kompostimin. Por për të pikturuar foto e asaj që ne mund të bëjmë këtu dhe për të motivuar disa nga shembujt e nivelit më të ulët, mund të marrim një tjetër vullnetar për të dalë vetëm në dorë dhe luajnë ime e parë detyrat e shtëpisë caktimi ndonjëherë? Eja up. Si e ke emrin? HENRY: Henry. DAVID Malan: Henry, eja up. Eja up. Kokë as mënyrë, dhe ju do të shihni në një moment, Unë jam duke shkuar për të shkuar përpara dhe e goditi flamuri gjelbër në anën e sipërm të djathtë qoshe, që do të thotë shko. Shenja ikonë të vogël të ndaluar do të thotë të ndaluar, dhe kjo është kur ju filloni dhe të ndaluar programin. Gëzohem që u njohëm. Në rregull. Pra, ne jemi duke shkuar për të parë udhëzimet në ekran në një moment të vetëm. Dhe vetëm duke luajtur këtë lojë për disa seconds-- besimin mua, ne nuk do të duan të luajnë të gjitha mënyra për të end-- ju do të të marrë një kuptim të asaj që e bën programi. Dhe më shumë se vetëm të përqëndrohet në Henry duke qenë i mirë apo i keq në këtë lojë, fokus dhe si u zbatua nga mua fillimisht dhe më pas nga Jordani. Me fjalë të tjera, ku janë variablat? Ku janë sythe? Ku janë funksionet? Dhe ne do të shohim nëse ne nuk e shohim ata nën kapuç. Vetëm kliko dhe terhiq plehra në bin e duhur. [MUSIC Duke luajtur] Në rregull. Kjo eshte shume e mire. Pse nuk ndalet atje. Faleminderit. Urime për Henry. Faleminderit. [DUARTROKITJE] Vetëm imagjinoni debugging atë program. Në qoftë se ka një problem të dy Në song--, por më shumë minuta çfarë po ndodh këtu me të vërtetë? Si e komplikuar si ajo mund të të fillojë të duket për të marrë me kalimin e kohës, vërtetë gjithnjë e më shumë sende filluar në rënie, çfarë është interesante në lidhje me ky lloj i example-- dhe ne do të shohim disa others-- është se në qoftë se ju shikoni kaluara kompleksiteti ose sofistikimi i lojës, ka një ndërtesë shumë e thjeshtë blloqe që play-- gjitha prej të cilave, në qoftë se ju gjej ato me ato blloqe ndërtimi, janë shumë të arritshme dhe të zbatueshme për vete. Për shembull, është e qenë disa kohë, por unë jam i goxha i sigurt se çfarë unë fillimisht e bëri kur duke e bërë këtë lojë për herë të parë ishte I tërësisht si zvarriten. Unë nuk të përqëndrohet në të gjitha mbi të Logjika apo copa mister, I fokusuar në grafikë dhe gjetjen post rrugë dhe plehra mund dhe të gjithë se. Por ata ishin të nevojshme Përbërësit në fillim. Dhe një herë kam mbaruar procrastinating dhe hedhjen kornizën gjithëpërfshirës, I vendosur, më lejoni vetëm të bëjë një të tillë pjesë e rënies plehra nga qielli. Dhe ne do të shohim Scratch mbështet gjëra të quajtur karaktere sprites-- që mund të kanë kostume të ndryshme në mënyrë që ata duken të ndryshme. Dhe kështu që kam vënë një plehra kostum në një sprite tillë. Dhe unë vetëm nevojë për atë të bien nga qielli. Dhe kështu kjo rezulton, Scratch, si shumica e gjuhëve të programimit, mbështet numrat e rastit, ose Numrat teknikisht pseudokod rastit, në mënyrë që duke e zvarritur dhe duke rënë copa të caktuara mister, Unë kam qenë në gjendje të ketë plehra vijnë nga e majta në të parë. Dhe pastaj herën tjetër ajo ra, nga e drejta dhe pastaj nga mesi. Dhe të gjithë loja e bëri ishte vetëm kanë plehra bie nga qielli. Ju nuk mund të vënë në atë apo të klikoni mbi të. Ju nuk mund të hapni plehra mund. Ju nuk mund të bëjë asgjë. Por kjo ishte një hap fëmijë drejt vizionit tim përfundimtar. Dhe pas kësaj, unë në fakt zbatuar një lloj i ndjerë kështu që nëse ju nuk klikoni dhe terhiq në copë plehra mbi kanaçe plehra, Oscar-së kapak do të hapur dhe të mbyllur. Asgjë nuk do të ndodhë me plehra, por të paktën kapak do të hapur dhe të mbyllur. Pra, atëherë kontrolloni, hap dy nga dy. Dhe kjo është ajo që do të jetë kryesore në të dy problemin vendosur zero dhe në programimin më në përgjithësi, është që të marrë këto hapa shumë të qëllimshme të fëmijës. Sepse jo vetëm që e bën atë të ju lejojnë të të ndjehen të arritur sinqerisht më shumë quickly-- kjo është gjëja më e keqe në botë në përpjekje për të zbatuar të gjitha Oscar Time, pastaj orë më vonë goditi flamurin e gjelbër, dhe asgjë nuk punon ashtu siç pritet sepse kur bëni ju edhe fillojnë të korrigjoj ose troubleshoot atë program? Është vetëm e madhe. Dhe kështu të vërtetë të përqafuar këtë ide të marrë hapa të fëmijës steps-- përsëri dhe again-- ndërtimin e diçka që është, në fund të fundit, me të vërtetë mbresëlënëse dhe komplekse, por në fillim, nuk është gati aq shumë në mënyrë. Në fakt, le ta bëjmë këtë. Më lejoni të shkojnë përpara and-- Scratch veten ekziston në internet në Scratch.MIT.edu, dhe ju do të jetë i tha si shumë herë në problemin vendosur zero, specifikimet për e cila tashmë është në faqen e internetit CS50 e. Por kjo është ajo që Scratch vetvete është. Dhe nuk ka të vërtetë vetëm tri fusha kryesore. Në krye la atje është e ashtuquajtura faza. Kjo është Scratch. Kostum parazgjedhur është një mace. Dhe kjo është bota drejtkëndëshe në të cilat ju mund të move-- lart, poshtë, majtas, të drejtë dhe disa sende të tjera. Në mes këtu janë kategoritë tona ose paleta tona të pjesëve puzzle, dhe ngjyra të ndryshme do të thotë gjëra të ndryshme. Dhe në qoftë se ju të thes rreth, ju do të shihni gjëra të tilla si sythe dhe kushtet dhe variablave dhe përbërës të tjerë. Dhe pastaj këtu është zona scripts. Kjo është ajo ku unë mund të drag and drop ato copa mister për të bërë gjëra. Pra, le ta bëjmë një gjë të tillë. Më lejoni të shkojnë përpara and-- dhe unë e di ku është. Kështu që unë jam duke shkuar për të menjëherë të klikoni në ku di gjërat janë të gatshëm të jenë të, por duke treguar dhe duke klikuar dhe poking rreth janë të pashmangshme. Pra, kur flamuri gjelbër klikuar, çfarë unë dua të bëj? Unë jam duke shkuar për të bërë këtë. Unë jam duke shkuar për të drag këtë mister purple copë, thonë hello për dy sekonda, dhe më lejoni të zmadhuar. Dhe unë jam duke shkuar për të ndryshuar këtë të jetë ajo që unë dua që ajo të be-- Hello World për dy sekonda është e mirë. Tani, unë jam duke shkuar për të klikoni flamur të gjelbër, ose në qoftë se unë me të vërtetë dua, Unë mund të të plotë të ekranit dhe pastaj kthehen. Ajo thjesht do të mbajë çdo gjë në një dritare. Green world flag-- përshëndetje. Në rregull. Jo të gjithë se interesante. Pra më lejoni të shkoj përpara dhe të bëjë këtë. Më lejoni të provoni një tjetër. Kur flamuri gjelbër clicked-- le të bëjë diçka si një tingull. Dhe vini re se nga kutia falas ju merrni një zë mace, siç është Sprite default. Kështu që tani më lejoni të shkoj përpara dhe të goditi flamurin e gjelbër tani. [Meowing] Aw. Kjo është adorable. Unë jam programimit. Pra, çfarë kam bërë? Kjo është ekuivalente e një programi. Është padyshim super thjeshtë. Ajo nuk ka të vërtetë të marrë të gjithë se shumë përpjekje dhe MIT bënë shumica e punës, por unë ju kam quajtur një funksion. Unë kam përdorur një funksion. Unë kam bërë disa veprime, duke përdorur vetëm se një pjesë purple puzzle. E pra, në qoftë se unë dua të bëj tre Meows në një rresht? Më lejoni të shkojnë përpara dhe të bëjë dy dhe tre. Dhe vini re se kur ju rri pezull aty pranë një pjesë mister, një linjë të vogël të bardhë shfaqet lloj magnetically, dhe ajo do të parakohshme së bashku, kur ju le të shkojnë. Le të shohim se çfarë ndodh këtu. [Meowing] Ka një bug. Unë vetëm të dëgjoj një Meow. Pse mund që të jetë? Po? Po. Ne vërtetë nuk e dëgjoni këtë, por kjo është intuita e mirë. Ata janë të gjithë duke luajtur në të njëjtën kohë. Pse? E pra, kompjuteri është vetëm do të bëni atë që ju them se për të bërë. Pra, nëse ju thoni, tingull play, luaj tingull, luajnë të shëndoshë, por ju nuk e thoni atë për të luajtur deri në ju jeni bërë, të luajë derisa ju jeni bërë, ajo do të hidhte në erë me anë të programi i vërtetë i shpejtë dhe nuk vetëm atë që ju them se për të bërë. Kështu që unë në fakt kanë nevojë për të rregulluar këtë në disa mënyra. Unë vetëm mund të bëjë këtë, të shpëtoj prej kësaj. Më lejoni të provoni këtë mister të tjera piece-- luajnë Meow shëndoshë deri bërë, dhe pastaj terhiq tre këto dhe kliko Play. [Meowing] Kjo nuk është e vërtetë very-- falënderoj ju, duke filluar shumë e natyrshme. Pra, pse nuk e le I-- shkoj për të kontrolluar këtu. Bukur. Prisni një të dytë, dhe tani më lejoni të kthehem të tingujve, dhe të shëndoshë të luajë deri bërë, dhe pastaj më lejoni të prisni një të dytë. Dhe pastaj më lër të shkoj dhe për të marrë një të tillë më të shëndoshë, dhe këtu ne do të shkojmë. [Meowing] Pak më e natyrshme, por kjo nuk është shumë efikas. Ashtu si unë isha duke u mërzitur, të gjithë të jenë të ai shkurtimisht, duke klikuar mbrapa dhe me radhë dhe me të vërtetë dublikuar work-- tim shumë e shumë kopjimi dhe pasting. Në të vërtetë, në qoftë se unë Kontrollit klikuar ose djathtas klikuar, Unë mund të ketë kopjuar vetëm dhe ngjit. Çfarë do të jetë një më të mirë të ndërtuar për të përdorur? Cilat ide para? Yeah, kështu që një lak. Dhe në fakt, në qoftë se ne poked rreth, ne mund të gjeni pikërisht këtë. Më lejoni të shkoj në ngjarjet ose më mirë Kontrollit. Kështu repeat-- Unë nuk duan që ajo të jetë 10 herë. Kjo do të merrni bezdisshëm shpejt. Por unë do të të përsëritur tri herë. Më lejoni të kthehem të shëndosha dhe të luajë zërin derisa ajo është bërë. Më lejoni të kthehemi në Kontrollin dhe vetëm të presim një të dytë. Dhe vini re, ju mund të mendoj se kjo nuk i përshtatet, por përsëri në qoftë se ju le atë magnetike të parakohshme në vend, ajo do të rritet për të mbushur. Çfarë është ajo luaj tani? [Meowing] NE RREGULL. Bukur. Dhe kjo është ajo që do të quhet një program i cili është gjithashtu i saktë. Ajo meowed tre herë në mënyrë të drejtë natyrisht, por është e projektuar mirë. Unë jam duke përdorur më pak tepricë. Unë nuk kopjoni dhe ngjisni asgjë. Unë vetëm përdorur një ide më të mirë. Tani, kjo nuk është ende e gjitha që interesante me Scratch nuk ka bërë çdo gjë. Pra, le të bëjë diçka tjetër në vend. Le të bëjmë diçka përgjithmonë. Dhe ju e dini se çfarë? Motion duket interesante. Le të ketë atë të lëvizë 10 hapat dhe goditi luajnë tani. NE RREGULL. Edhe ne mund të lloj terhiq atë mbrapa, dhe ai është ende drejtimin për shkak se ai e bën këtë përgjithmonë. Pra, loop është duke bërë ajo që është thënë për të bërë, por kjo nuk është e gjitha se interesante. Le ta bejme kete. Më lejoni të shtoj një bllok të kontrollit, dhe të përdorin një të tillë e këtyre kushteve për herë të parë. Kështu ajo do të shkojë 10 steps-- 10 pika, 10 pixel në screen-- atëherë ajo do të kërkoni këtë pyetje. Nëse diçka është e vërtetë, atëherë bëni diçka brenda këtij blloku. Pra, ajo rezulton sensing ka një tërësi bandë e expressions-- Boolean Pyetjet e po jo apo e vërtetë false form-- më lejoni të bëjë këtë. Nëse touching-- dhe pastaj nuk ka kjo rënie e vogël down menu. Unë mund të parameterize atë. Nëse prekur edge-- le të bëjë diçka të tillë. Pra, nëse prekur edge-- më lejoni të shkoj përsëri në lëvizje. Dhe pse nuk kemi vetëm të kthehet rreth 180 gradë? Në rregull. Pra përgjithmonë, lëvizin 10 hapa. Nëse jeni të prekur edge, të kthehet 180 gradë. Dhe kjo nuk është fundi i programit sepse ju jeni në një bllok përgjithmonë, kështu që ajo do të shkojë përsëri dhe përsëri dhe përsëri dhe përsëri. Pra, le të shohim se çfarë ndodh. NE RREGULL. A buggy pak, por lloj i ftohtë. Dhe ne mund të shtoni në këtë disa gjëra pa kuptim që nuk janë të gjitha që intelektualisht interesante. Por nëse ne e goditi kjo pak mikrofon button-- ouch. Më lejoni të pastër këtë ide. Më lejoni të rritur këtë si ata do të thonë në TV. Clean up që, Save, dhe tani të shkojnë deri në Scripts. Dhe tani, më lejoni të shkoj të shëndosha. Më lejoni t'i jepte një emër. Unë do të thërrasë këtë Ouch. Dhe tani luajnë Ouch shëndoshë. Vini re duket në pak drop down menu. Le të shohim. [OUCH] [Duke qeshur] Por ne mund të ndryshojmë t tij në të fluturojnë. Ne mund të jetë dy herë më i bezdisshëm. [OUCH] Ose në qoftë se ne kemi bërë atë si 1.000 hapa në një time-- NE RREGULL. Pra, ne jemi duke shkuar për të lënë se një i vetëm. Pra, përsëri, ndërtimi I blocks-- filluar me diçka super të thjeshtë, dhe pastaj kam shtuar një funksion, shtuar një funksion, ka shtuar një funksion. Dhe unë nuk duhet të shqetësohen për si e para e ato karakteristika u zbatua si unë të vazhdojë për shtresë gjëra në krye. Pra, në fakt, më lejoni të bëj një tjetër këtu. Më lejoni të shkoj përpara dhe të hapur një skedar që I sollën më parë, të quajtur dele. Pra, ajo ka një pak më të ndryshme karakter që duket si kjo. Dhe më lejoni të shohim nëse unë nuk mund të të bëjë diçka duke përdorur një kundër në këtë case-- një ndryshore të ashtuquajtur. Unë jam duke shkuar për të shkuar përpara dhe nën Events-- më lejoni të merrni një flamur të gjelbër klikuar. Atëherë më lejoni të shkoj të të dhënave, të cilat unë e di nga vetëm duke luajtur rreth para, është vendi ku variablat janë. Dhe unë jam duke shkuar për të shkuar përpara dhe terhiq këtë. Pra, një ndryshore të quajtur kundër, dhe Unë do të nisja atë në zero. Unë mund të telefononi atë anything-- x ose y ose z--, por në programim, duke e quajtur diçka në një semantike mënyrë e dobishme, si kundër, që përshkruan se çfarë është ajo, kjo është një shumë më e lehtë për të lexuar kodin tuaj më vonë. Më lejoni të shkojnë përpara dhe për të marrë a përgjithmonë bllokojnë këtu. Dhe më lejoni të shkoj me duket faqe dhe të bëjë një bllok Say. Por ajo që është e ftohtë në lidhje me variablat është I nuk duhet të shkruani vetëm në diçka si Hello World, të cilat ne kemi tashmë bërë, unë në vend të kësaj mund të shkojnë në të dhënave dhe terhiq ndryshueshme tim, dhe madje edhe edhe pse forma nuk mjaft duket si ajo duhet të përshtatet, ajo do të rritet për të mbushur. Dhe unë do të them vetëm counter për një spoiler-- second-- ai do të mbështetet. Ne do të themi atë për një të dytë. Atëherë unë jam duke shkuar për të shkuar dhe të që ai të presë për një të dytë, kështu që nuk ka numëruar deri shumë shpejt. Dhe pastaj në fund, për të ndryshuar kundër nga one-- me fjalë të tjera, ardhura counter nga një Vlera shtesë dhe të bëjnë këtë përgjithmonë. Kështu delet shumë, si një programues, numëron nga 0. Dhe në qoftë se ne presim kohë të mjaftueshme, ai do ta bëjë këtë përgjithmonë. Por kjo nuk është saktësisht e vërtetë, sepse në fakt, si ne do të zbuloni në javën e parë, integers dhe kompjutera më në përgjithësi, teknikisht kanë vetëm një finite-- mirë, më tepër kompjutera, kur ato përfaqësojnë integers, vetëm një numër i caktuar i bit. Këto llamba atje vetëm mund të mbështeteni aq e lartë para se ju jeni nga llamba. Dhe një kompjuter shumë, ka vetëm aq shumë memorie, vetëm që ka kaq shumë transistorëve, kështu që ajo vetëm mund të mbështeteni aq e lartë. Pra, rezulton se delet, Unë mendoj se, mund të llogarisë në 2 miliardë apo diçka goxha i madh. Pra, ne nuk do të presim që kjo të ndodhë. Por në fund disa bug do të ndodhë që mund të ketë disa botën shumë reale pasojat. Por përtej deleve, që vetëm paraqet një ndryshore. Le të shkojnë përpara dhe të hapur diçka që kam bërë më parë quajtur këtu Pet Cat-- Pet Cat këtu. Dhe vini re këtu se është pak blloqe, por kur flamuri gjelbër klikuar, gjithnjë duke bërë në vijim. Nëse jeni të prekur miun pointer-- kështu kursorin në ekran, arrow-- play meow shëndoshë dhe pastaj të presin dy sekonda. Dhe vetëm të bëjë këtë përgjithmonë. Vetëm vazhdimisht prisni për të parë nëse të pointer-- nëse macja është prekur treguesin. Kështu i goditi të luajë. Asgjë nuk po ndodh. Por si unë të lëvizur kursorin mbi mace, [Meowing] Dhe në qoftë se unë të lëvizin atë larg, jo petting cat më. Pra, disa logjika e kushtëzuar mbivendosur brenda një lak. Si në lidhje me këtë shembull, me qëllim quajtur Mos Pet Cat? Çfarë është kjo do të bëni? [Meowing] Pse duhet të mos manar cat? [Meowing] NE RREGULL. Pra, ky është një shembull i një rast tjetër. Kjo është një pikë e vendimit dhe sepse është e ulur në lak, ata janë të dy duke u kontrolluar. A është kjo e vërtetë? A është kjo e vërtetë? A është kjo e vërtetë? A është kjo e vërtetë? Dhe në fund, një nga ata që do të zbatohen dhe kështu ju dëgjojnë as Meow ose ulërimë e luanit në këtë rast. E pra, le të bëjmë një të pak më të sofistikuar që kam bërë më parë too-- temat. Pra, një fije është vetëm një gjë që një kompjuter mund të bëjë. Pra, një program multi-i ndërprerë është një program që mund të bëjë gjëra të shumta në të njëjtën kohë. Dhe të gjitha këto shembuj deri tani kanë pasur vetëm një script, në mënyrë që të speak-- një program si kjo këtu. Por vini re ky program ka dy sprites, dy karaktere. Njëra është një zog. Njëra është një mace. Dhe vini re, kur unë klikoni mbi këto poshtë majtas, ata çdo kanë skenaret e tyre ose programe të lidhur me to. Dhe të dy ata programe, njoftim, start me clicked-- flamurin kur e gjelbër le të shohim në të cat-- kur flamuri gjelbër klikuar. Dhe kështu në të vërtetë, kur unë goditi luajnë tani, dy gjëra do të ndodhin në të njëjtën kohë. Macja dhe të shpendëve janë dy do të veprojnë në të njëjtën kohë për të krijuar këtë efekt. Dhe ju mund të imagjinojmë se çfarë po ndodh. Ka një lak dhe zogun dhe mace janë në një lak. Zogu është vetëm kërcim si Unë kam qenë më parë kur kam thënë ouch. Por cat mënyrë të qartë ka një avantazh. Ka një tjetër bllok ndjerë që tregon cat qëllimisht të shpendëve në këtë rast këtu. Pra, ne mund të vë në lojë përveç, duke shikuar nëpër ato blloqe, se çfarë po ndodh. Por përbërës kyç këtu është një. Zogu, në mënyrë që kjo lojë nuk është plotësisht boring-- ose kjo animation-- fillon në një drejtim të rastit. Dhe kompjuteri po rritet një numër në mes të 90 dhe 180 në thelb, në mënyrë që ajo është një pak më të ndryshe animacion çdo herë. Dhe pastaj vini re këtu, në qoftë se cat po e prek zogun, atëherë luajtur luan katër sound-- ulërimë. Por ndërkohë në zog-së paleta, ne kemi këtë. Forever, nëse nuk është prekur mace, vetëm i mbajnë në lëvizje tre hapa. Dhe pastaj këtu është një tjetër copë puzzle. Nëse ju jeni në buzë, fryrje. Pra zogu është vetëm lloji i minding biznesin e vet, vetëm fluturues përreth dhe kërcim, dhe kjo është me të vërtetë macja që kishte logjikën e kushtëzuar për të përcaktuar nëse ajo kishte kapur të shpendëve. Në rregull. Pra, le të bëjmë një tjetër këtu, kjo duke u quajtur Hi Hi Hi. Dhe kjo këtu vetëm e bën këtë në një lak përgjithmonë. Por notice-- si nuk kemi të ndaluar ky program shumë i bezdisshëm? Hit space bar. Sepse në qoftë se unë bëj këtë, program-- dorën e majtë vini re kjo është vazhdimisht listening-- është shtypi kyç hapësirë. Nëse bar hapësirë ​​presion, dhe nëse po, çfarë do të bëni? Ajo ka një teknikë shumë të zakonshme. Ajo përcakton një ndryshore të barabartë me disa vlera. Por kjo toggles këtë vlerë. [? Pra, pamja?] bazuar në I shape-- kanë një variabël që unë shkroi më parë të quajtur Mbytur, e cila vetëm thotë po ose jo. A është mbytur zë apo jo? E vërtetë apo e gabuar? Dhe njoftimi, unë jam duke thënë se në qoftë se this-- heshtur është zero, atëherë të ndryshojë për një, tjetër vendosur memec atë në zero. Pra, vetëm rrokullisje vlerën nga zero në një. Unë mund të ketë done-- ndryshojë atë nga dy deri në tre dhe tre në dy ose katër të pesë ose katër në gjashtë. Por kjo nuk ka rëndësi çfarë numrat I përdorin, për sa kohë që unë mbaj ndryshuar atë të kundërtën. Dhe më çdo programues do të vetëm zgjidhni zero dhe one-- rreme dhe të vërtetë, off dhe on-- për të përfaqësuar këtë. Dhe kjo është ende running. Nëse unë goditi space bar përsëri [SEAL SOUNDS] Programi është ende running. Sepse nuk ka ky dorëshkrim të tjera që thotë se, përgjithmonë të bëjë të mëposhtme. Nëse ndryshorja mbytur barabartë zero-- kështu që nëse ju nuk jeni të mbytur është logic-- nëse është e rreme ose jo, atëherë luajnë të shëndoshë, sepse ju nuk jeni të mbytur. Ju duhet të luajnë të shëndoshë dhe pastaj mendoj se hi hi hi për dy sekonda dhe pastaj të presin, dhe të bëjë atë përsëri dhe përsëri dhe përsëri. Dhe kështu në këtë mënyrë do të kemi një rrugë për njerëzit to-- për programet për të bashkëvepruar. Dhe ata nuk kanë të të si datë të tjerët. Në fakt, poking around-- nuk ka pun intended-- dikush shpenzuar një sasi të madhe të kohë në internet implementues PokemonGo në Scratch. Kjo edhe ju geolocates në Cambridge ose Allston këtu. Pra, nëse ju doni të shihni se çfarë shumë njerëz mund të bëni është this-- menu shumë të dashuroj. Kliko këtu. Kjo është më me arrow çelësat e mia tani. Unë jam duke shkuar për të shkuar pas kësaj. Kliko. Dhe tani ju klikoni PokeBall. Unë do të thotë, unë mendoj se ju jeni duhet të klikoni PokeBall. Në rregull. Kështu që unë e bëri atë. Unë mund të shkoni këtu. Dhe ky person zbatuar disa më shumë Pokeballs mbi here-- tre Pokeballs. Ne do të postoj një lidhje në këtë online kështu që ju mund të luajë. Por njoftimi ka vetëm disa blloqe themelore të ndërtimit. Ajo duket shumë njohës, dhe kjo është. Kjo është mbresëlënëse dhe më shumë se ne do zakonisht presim, sigurisht për problemin e caktuar zero. Unë nuk kam asnjë ide se si të gjatë ky person shpenzuar online. Por kjo është e gjitha vetëm një lak. Ka një playing shëndoshë. Ka një lloj lak dëgjuar për nëse unë jam goditur arrow deri ose poshtë shigjetë ose e majtë dhe të djathtë, dhe pastaj nëse është kështu, ajo është duke lëvizur ajo disa numrin e pixels. Dhe pastaj në qoftë se unë klikoni në një sprite, ka një lloj nëse gjendjes atje. Yeah, kjo po bëhet shumë intensive. Ne jemi duke shkuar për të ndaluar. Kjo është e gjitha ato blloqet themelore të ndërtimit. Nuk ka përbërës të tjerë të tjerë se ato ne i kemi shikuar tashmë. Dhe ende këtu, më lejoni të bëj një grup i fundit i shembujve që paraqet një tablo shumë të asaj që ju mund të bëni këtu. Këtu ka një program shumë të thjeshtë që vetëm bën this-- kollë, kollë, kollë. Dhe vetëm në bazë të asaj që ne i kemi shikuar deri më tani, ku është e qartë mundësi për përmirësim. Ky program është i saktë. Ajo kollitet tri herë, e cila është ajo që unë menduar. Por është zbatuar dobët. Është projektuar keq. Pse? Po. Kjo nuk është një lak. Dhe kjo nuk është aq shumë se kjo nuk është një lak, është se ka një shumë tepricë. Nuk është e kopjuar dhe Kodi ngjit, kështu që të flasin. Dhe zgjidhja ndoshta është me të vërtetë një lak. Pra më lejoni të shkoj përpara dhe për të përmirësuar mbi atë. Dhe unë jam duke shkuar për të drag ato këtu. Më lejoni të shkojnë përpara dhe për të marrë një përsëritje bllok, të ndryshojë kjo në tre. Unë jam duke shkuar për të hedhur larg disa nga këto blloqe. Dhe ju do të vëreni se është mjaft intuitive. Ju drag and drop dhe gjëra të shfaqen dhe zhduken përfundimisht. Dhe unë mund vetëm drag këtë në këtu, dhe tani unë kam një version të pastër ende. Por ju e dini se çfarë? Ka kjo mundësi tani për abstraction-- për të filluar për të përcaktuar fjalor të ri se MIT nuk e parashikojnë. Ka të presim dhe të përsëritur dhe përgjithmonë dhe në qoftë se, por çka nëse unë dua të prezantoj fjala kollë si një bllok? Çka nëse unë dua një pjesë mister qëllimi i të cilit në jetë është që të kollë? E pra, le të shohim në këtë version këtu, që e kam bërë si më poshtë. Magjike, unë kam krijuar kjo pjesë mister këtu, i cili Scratch ju lejon të bëni. Dhe me të vërtetë C dhe Python dhe JavaScript janë do të ju lejojnë të bëni këtë si. Ju mund të krijoni porosi tuaj copa që ju të telefononi atë që ju dëshironi. Në këtë rast, kollë e ndjen si një përkufizim të arsyeshëm. Dhe pastaj me këto copa poshtë këtu ju mund të përcaktojë se çfarë do të thotë. I zvarritur dhe rënë nga kjo paleta here-- më shumë blocks-- këtë purple madh bllok, ku kam shtypur në kollë si emri i copë tim të ri puzzle. Dhe atëherë unë jam duke thënë se çdo kohë një përdorues e quan këtë pjesë të re mister kollë, të bëjë një rol dhe një prisni. Dhe kështu deri këtu në bllokun tim të përsëritur, Unë vetëm mund të nxjerr me kollë tri herë. Dhe unë do të argumentojnë, sidomos në rast se ti më fsheh këtë detaj. Kush kujdeset se si kollë zbatohet? Të gjitha që më intereson si programues që unë mund të kollë. Unë nuk e kujdesit se si thonë zbatohet. Unë vetëm kujdes se cat mund të them diçka. Unë mund abstrakte larg se detaje dhe vetëm të përqëndrohet në atë që është në ekran këtu. Por unë mund të marrë këtë hap më tej. Vini re se këtu, unë kam zbatuar lak tri herë. Por, çfarë nëse në vend që unë kap këtë version? Dhe çka nëse në vend në këtë version këtu, Unë vetëm të ndryshojë copë tim mister për të marrë një argument dhe input vetvete? Dhe kjo mund të jetë e input një numër si tre. Deri tani, në qoftë se unë jam duke shkruar një program dhe unë dua macja me kollë, Unë në fakt mund të them mister copë sa herë të kollë, për shkak se në fund këtu, një njohës version i këtyre pjesëve puzzle porosi lejon mua që të specifikojë kollë fakt merr një input-- merr një argument të tillë. Dhe ju e dini se çfarë? Ndoshta e kuptoj, prit një minutë. Kollitjes është same-- kjo është në thelb të njëjtën ide si teshtitjes. Kjo është vetëm një tjetër Fjala në ekran. Unë mund abstrakte larg më tej dhe të zbatojë ky version i fundit i një kollë, të cilat në shikim të parë është mënyra më komplekse në kërkim. Por vini re atë që kam bërë. Unë kam tani generalized-- genericized really-- këtë pjesë mister që do të quhet thonë fjalë n herë. Dhe tani unë kam dy pjesë të reja mister këtu poshtë përcaktojë kollë n herë. Dhe çfarë bën funksioni kollë? Çfarë bën puzzle porosi pjesë e mia? Ajo vetëm kërkon bllok të themi, duke kaluar në fjalë unë dua të them, kalon në numrin e herë unë dua të them. Sepse tani unë mund të zbatojë teshtij thjesht thënë achoo, në këtë rast, një pjesë disa herë. Dhe kështu që unë jam layering dhe layering. Dhe përsëri, çelësi këtu nuk është si kam zbatuar atë, por fakti se në qoftë se unë vetëm fjalë për fjalë lëvizin ato jashtë ekranit, shikoni sa e thjeshtë nuk e nëse goxha programi im tani duket. Për shkak se ajo çfarë e bën atë thotë, unë kam përhumbur larg ajo që është brenda asaj kutie të zezë. kjo ndodh të jetë një kuti purple këtu, por unë e kam penguar larg asaj që është brenda sepse unë nuk e kujdesit se si funksionon. Unë vetëm kujdes tani që ajo punon. Dhe me të vërtetë, në problemin vendosur zero, kjo është pikërisht lloji i layering e ideve ju do kanë mundësi për të eksploruar. Është pikërisht mundësia për aplikojnë zgjidhjen e problemeve teknika, në atë që është ndoshta një Mjedisi panjohura. Dhe nëse ju nuk e keni programuar para ose programuar më parë, ju do të gjeni se ka një diçka të vogël në këtë mjedis për të gjithë. Dhe me problemin e ngritur një në kohën e një jave, ne do të tranzicionit për të fokusuar në një gjuhë të nivelit më të lartë të quajtur C-- ose më mirë një më të ulët Gjuha e nivelit të quajtur C-- kjo është edhe më e e fuqishme, edhe pse është e pak më i fshehtë në shikim të parë. Dhe ju do të kuptojë per TL sotme: DR, se ky problem të vendosur ka një të shkurtër dritare e kohës se sa ato në të ardhmen, thjesht për shkak se ju duhet të gjeni atë në mënyrë të drejtë të arritshme. Dhe mos u shqetësoni nëse të shtoni klasa vonë. Ne do të trajtojë atë para se të gjatë. Dhe para se të shtyjë për tortë, le të përfunduar me vetëm një sy dy minuta se çfarë ju pret këtu në CS50. [MUSIC Duke luajtur] Në rregull. Kjo është ajo për CS50. Ne do të shohim së shpejti. Cake është shërbyer tani. [MUSIC Duke luajtur] SPEAKER 17: A keni dëgjuar i dielave, shef? SPEAKER 18: Ndoshta ka më shumë nën kapuç.