Ifyoudoask a questiontoday, dobesuretomuteor a muteyourselfaccordingly.
Nexttothatshouldbe a startorstopvideobutton.
Doifyouhave a webcamorcameraofsomesortofkeepitonduringofficehourssothatweget a senseofwhowerechattingwithinthemiddleofyourzoomwindowisprobably a chaticonsothatyoucanchattextuallyonyourkeyboardwithclassmateswhowereintheroomaswell.
I mean, I'venoticedthatit's oneofthemosthardestproblemsinthecourse, andmysecondquestionisthatthisyear.
So I wastryingtohelpsomestudentshere, and I waslookingattheWeekeightProblemSetsonDSOUnlikelastyearwhereyouhadonlyoneproblemthatwasfinancedthisyear, youhadlike a wholerockbarrageofproblemsencompassingWeb R.
And I myselfreallywantedretakethecoursejusttosee, becausetheywere, likesomanychangesthisyear, especiallythatone.
Sowhatwastheideabehind?
Likechangingthatandkeeping a spellerproblem, However, sure, whydon't I trytoanswerthefirstquestionandthenturntoBrianforthesecondquestion?
Esospellerhasindeedbeenwiththecourse.
I thinksince 2007 when I firststartedteachingCS 50 ithasindeedalwaysbeen a goodchallenge.
Butit's reallymeanttobe a veryclimacticproblemforstudentstosolve.
Intheverylastweekthatwespendonseetheprogramminglanguage I thinkit's incrediblyempoweringforstudentsinclasstoactuallyimplementtotheirownhashtablespecifically, orinthepast, studentshadthechoiceofimplementing a try.
Alternatively, um, and I thinkthecompetitivepartofithasbeenappealingto a lotofstudents.
Ifunfamiliar, thisproblemsetallowsyoutoimplementyourveryownspellchecker, forwhichwegiveyou a bigdictionaryof 140,000 plusEnglishwords, andyouhavetoimplementthefastestspellcheckerthatyoucanandtheonethatusestheleastamountofmemory.
Andthenwehave a competitionofsortsofbigboard, a leaderboardwherestudentsarerankediftheyoptintothis, basedonhowlittleramorhowlittletimetherecodehasused.
Andthatseemstobe a funwayofnotmakingthecoursecompetitivebutmakingonesmallpieceofitsoandBriancanperhapsspeakbesttopeaceateight.
Andhowandwhyitchangedsomuchthisyear.
Yeah, sure.
Sothispastyearandsheis 50 we'veintroducedattheendoftheclasswhatwecallourvariousdifferenttracksusedtobethatattheendofCS 50 andeveryonewouldlearn a littlebitofWebprogramming, whichwas a lotoffunformanystudentsinnothingbuilds a reallyinterestingandexcitingprojects.
I guessthat's gets a littlebitlessaboutartificialintelligenceandmoreintotheworldof, like, virtualreality.
It's probablytheclosestthingwehavetothatnow, intermsofyouhavetheabilitytoputyourselfinto a virtualspaceandacceptthat.
Thatwasthething I wassaying.
You'reThefactisthatwecannotgo.
Wecanallactuallyinteractwiththeworld.
I mean, thatworldiswellchilled.
Thepeopleinsteadisalsowearedisplaying.
Gord, howyoufeeling?
Yeah, I guessso.
Youwant a Youwanttoreallyjustrecreateentirevirtualworldthatyoucanactuallyinteractwithatthemoment.
I thinkthat's moreintherealmofsciencesection, butyouneverknowSortofwhathappenswithtechnology.
Thankyouforthequestion.
CanwegoovernexttoAh, Zion, I'm sorryif I'm notpronouncingyournameright, Malik?
Allright.
It's okay.
It's okay.
Soyourquestioncanyoualsopronouncehernameforus?
andtelluswhatcountryyou'refrom.
Allright.
MynameisthatMalik.
I amfromAustria.
And, yeah, I participatedinCS 50 because I wanttobe a A leadingcomputerScientistsoneday, hopefully.
Andnowthefirstquestionis I startedwithCS 50 ahlastweek, and I'm workingprettygoodwithit.
Buttheproblemisthatwhen I, umandwhen I workwith a problemsetAndwhen I triedtosolve a problem, sometimesonthemorecomfortableproblems I struggle, Forexample, thecreditproblemonweekone.
Um, I saidtwodaysinfrontofthat, and I wasreallyconfusedattheend.
So I endedupsubmittingonlythecashproblem.
And I wantedtoask, um, isthere a waytoimprovedmyproblemsolvingorcan I learnit?
And I betyouwillfeelyourselfmuchmorecapableofdoingthoseproblems, andtheywillcomemuchmoreeasily.
But I thinkifyoudothemonLeewithintheindividualweek, it's hardtosolvesomeofthembecauseyou'renotyetmorecomfortable.
Butyouwillbeaftermoreweeksofpractice.
Thankyou.
Sure.
Goodquestion.
Canwegoovernext?
ThioShowcase.
I'm sosorry.
I'm notgonnabeablepronouncethiscorrectly, but I thinkyouseemegoinginthere.
Doyouwanttopronounceyournameforus?
ShookIsJackon?
Justremembertoamuseyourself.
Stillmuted.
Allright, Theloss.
Actually.
SomeoneOh, therewego.
Go.
Yes.
Hello.
MynameisSeanhome?
Yes.
Sowhereyougoing?
Whatareyoufrom I amfromPakistan's that's Ah, CentralAsia.
Wonderful.
What's yourquestion?
Myquestionrelatedtoalsoagain, improvementisthat's asitisawakingoffideaorlogicalthinkinginmymind, too, when I solvinganyproblemsrelatedtomaybeallgreatMick, uh, questions.
And I just, uh, I'm goingtosolveanyproblemsrelatedto, maybe, or a sortieorsuchkindoff a raiseandgraphics.
And, uh, I wanttosolveanyproblemsyouknow, relatedtoGod.
Algorithmic.
Maybeitdoesn't matter.
Yeah, whatwhatkindofresourcesoritvice.
Yourecommendmetoimprovemypoliticalsinking?
Sure, it's a verygoodquestionandverybroadlyapplicabletocomputerscienceingeneral, I think I havetwopiecesofadvicetogivetheirpieceofadvice.
Numberoneiswhenyou'retackling a bigalgorithmicchallenge.
Whatcreditcardcompanyproduced a, particularlywithcreditcardnumber, Andthat's a biggerchallenge, but a smallerchallenge.
Youmightstartwiththat.
Okay, given a creditcardnumber, figureoutwhatthe 1st 2 digitsofthecreditcardnumber, forexample, maybe a ahsmallerproblemthat's a littlebiteasiertotalk a littlebiteasiertoreasonabout.
Patternswillstarttorealizethatthisproblemyou'retryingtosolvenowisverysimilarorhavesomethingsincommonwith a problemyou'vealreadysolvedbefore.
Andthatmightguideyoutowardsfiguringoutwhattoolsarealgorithm, somestrategiesyoumightuseforsolvingyourcurrentproblemnow, and I imagineyoumeancomputingproblemsspecifically, Butit's perhapstimelyustoday.
I'vejustpastedintothechatwindowtheEarlofCSFiftiesAnnualCS 50 X PuzzleDay.
UseJavaorpython, which I doadmitcanbemoreaccessible, a littleeasiertopickupbecausetheydon't havepointers.
Theydon't have a CZmanyofthesamepitfallsas a languagethat C has, andtheyalsohavemorefeaturesthatmake a fewthingsmoreeasy, moreeasilydoneincode.
So I wouldn't getdiscouraged.
I thinkifyoucantakesomeothercoursefirst, maybeinsomeotherlanguagethatit's totallyfineifyourschoolallowsandthencomebackto a courseandseewhatmanyuniversitiesdois.
It's prettyrareforstudents, I think, inanintroclasstobeimplementingtheirownhashtableonLeemidsemesteron, andthat's indeedmeanttobe a challenge.
Soifandwhenyou'rereadytogettothatpoint, I thinkyou'llfindsee, veryenlighteningandempoweringbutdefinitelychallengingatfirst.
Butdon't getdiscouraged.
Justtakestimeandpractice.
Couldwegonext?
Thio?
HowaboutRon W Ifyou'd liketosayyournameandwhereyou'refrom, too?
Yeah, it's run.
I'm fromGermany.
I'm thestrikenursed.
Um, so I'd liketoknowwhyandhowdidyoubecomeprogrammerandwhattipsdoyouhavetostaymotivated?
Goodquestion.
I thinkwecouldprobablyeachanswerthisdifferently.
I don't thinkofmyselfas a programmer, perse, eventhough I enjoydoingit, I willadmit, I don't think I personallywouldenjoydoingitfulltimeas a softwaredevelopmentjob.
A lotofthecodethat I Britaincertainlyinrecentyearsisallrelatedtoseeus 50 insomeway, eithercreatingtoolsoraddingthetoolsthatarestudentsusedorthatareteachingfellowsorstaffuseon.
Soforme, I justget a realkickoutofwritingsoftwarethatotherpeopleuse.
But I don't thinkpersonally I wouldwanttodoitalldaylong, eventhough I havemanyfriends, too.
Doexactlythat, Brian.
Yeah, I mean, I alsodon't considermylike, I'm not a programmer.
Professionally, I dowritesomeprograms, butmostofmyjobisintheeducationsetting, but I firstreallystumbledacrossprogramming.
Um, justby, like, takingmyfirstclassinit.
Itwasinhighschool.
I tookmyfirstcomputerscienceclassandjustfounditveryempoweredintermsoftheproblemsthatenabledmetosolve.
I rememberveryearlyonjustbuildingsomeverysimpleprogramsthatwe'reabletobeusefultomeandotherpeople.
And I thinkthatwasthemotivatingthingformeIsthepowerthatprogramminghastoenableyouwithjust, youknow, a couplelinesofcodetobeabletobuildsomethingthatwasactuallyimpactful, other, usefulormeaningfulinsomeway.
Andasforpractice, I think I wouldjustsolveasmanyproblemsincodeasyoucan.
Onceyouhave a breathofbackground, youreallyareabletothenstarttakingonparttimeopportunitiesandprogramming, maybeevenfulltimeentrylevelpositions, but a commonnextdatastructuresandalgorithms.
AsforWeb, and I letmeturntoBrianbecausehehappenstoteachCS 50 zoneversionsofthosetwooptions.
Foranyonewhoisinterestedinthose, there's the I costontheWebprogrammingclasseswellandthosethey'rereallyjustmeanttoserveasintroductionstothefieldofartificialintelligenceandWebprogramming.
Soifyou'd like, youcantake a lookatthoselecturestheretoget a senseforwhat a I isallabout, andtogetanopportunitytowriteSameh I programsofyourown.
Buthonestly, I thinkonceyou'vetaken a fewcourses, itreallyistime.
Thioleavethenest, sotospeak, justlike a babybirdwouldandstartdefendforyourselfandsayyestosomeprojectorsayyestosomeopportunitythatscaresyou a littlebit, andyoumightnotevenbesurehowyou'regonnadoit.
Butonceyouthengetyourfootingandgetyourconfidence, I thinkyou'llfindthatyoucanstarttakingcoursestofillingapsinyourknowledge, butnotnecessarilytoprepareyouforopportunitiesthatyoudon't yetknowabout.
Thankyouforthatquestion.
CanwegonexttoNadia?
Sure.
Thankyou.
Owesomebodymissnaughty, um, fromUkrainefromKiev.
Andthankyoufortheupcomingpuzzleday.
I'm reallyexcited.
It's a secondyearofmine, and I wasreallybadlastyear, hopingforsomethingbetter.
So, um, I justactuallyfoundmyself.
I completedtheCS 51stintroductorycourselastyear, and I wasreallyexcitedaboutit.
And I foundmyselfreallyworriedthat I lackedsometheoryandwhat I did.
I boughtsometheorybooks, don't loadedthem, startedreading, and I didnotreallyfind, likewhatif a well, youinthosebecause I couldnotfitoldinformationintomybrain.
YouactuallystolemyrecommendationThere I wasalsoabouttopacethetheoryofcomputationbookbyMichaelSimpson.
Iftheoryofcomputationofsomethinginterestingtoyouintermsofwhatcomputerscandoandwhatandhowyouthinkaboutcomputers a littlemoretheoretically a littlebitmoremathematically.
That's a greatbookthat I woulddefinitelyrecommend.
It's noteasy, and I don't knowifwedo a greatjoballofthetime, but I thinkthesimpleanswerisempathyandrememberingwhatitwasliketonotunderstandmaterialyourselfandrememberingwhatitwasliketofeellikeeveryoneelseintheroomorintheclasswassmarterthanyouareknewbetterthanmaterialandtotrytoputyourselfintotheshoes.
Sotospeakofthatstudent, tohelpthemwith a narrativebothverballyandinthecourseishomeworkassignmentsandslidesandsoforth.
Getfromthestartingline, sotospeak, tothefinishlinewithoutlikelettinggooftheirhandsduringthatprocess, and I thinkittakespractice.
I thinksIttakessensitization, forinstance, eventhoughthiscourseCS 50 happenstobetaughttoourcollegeundergraduatesatHarvard, I firstgotmystartteachingin a lectureshiproleatHarvard's ExtensionSchool, whichis a muchbroaderdemographicofstudents, youngstudents, oldstudents, everyoneinbetweenwhohavegoneorwhohavenotgonetocollege.
Andsoitwas a muchmorediverseaudienceofstudentsbothinCambridgeandonline.
And I thinkthattohelpsensitizedmetwodifferentlearningstyles I thinkwehavealways.
I havealwayshadstudentswhoare, Ah, verydifferentbackgroundsgeographically, socially, economically, academically.
And I thinkthathelpstoo, notassumingthatyourstudentbodyisallofthesametypeorofthesamemindset.
Thiothemathematicsofcomputerscienceandthenseeus 1 24 takesthat a littlebitfurtherintotheanalysisofalgorithmsandtheefficiencyofthosealgorithmsandstudyingdatastructures.
Sosee, a 50 itselfdoesnothave a specificcoursethatisaboutalgorithms.
ButifyouarelookingtotakesimilarcoursesDavidearlierinthechatpastethatarelinkedtothePrincetoncourseraalgorithmsloss, whichcoversmanyofthesametopicsthatCS 1 24 doesaswellonsothat, I wouldsuggest, is a classpotentiallylookout.
Ifyou'realsointerestedinalgorithms, I cantellyouthetextbookthatisusedforCS 1 24 ThealgorithmsclassesheartatHarvardaswellasotheralgorithmsclassismagainstthisonethat I justpastedhere.
IntroductiontoalgorithmsbyCorman, LizaDescend, BravestandSteinoftenabbreviatedtojustseeLRsfortheinitialsoftheauthorsofThat's quite a popularandfamousbookaboutalgorithmsandisverycomprehensive.
Soifyou'reinterestedinstudyingandnorlearningmoreaboutalgorithms, I woulddefinitelysuggestthatbookaswell.
I wish.
Goahead.
Goahead.
Rojo.
Didany X tripleofproblemssexual, uh, relatedrelatedtothisyear's 50?
OurproblemsetsrelatedtoCS 50.
Yeah, apartfromthisyear's 50 problemsix.
Oh, notperse.
Butifyougotothis, youare l which I willpasteintothechatwindow.
I think I postedthisalready, butyesterdaywejustlaunched a courseaboutartificialintelligence.
Ifyou'reinterestedin a newintroductiontosomeoftheideasonartificialintelligence.
Thatcoursewecovertopicsrangingfromhowyouwouldsolvetheiryes, fromtypesofsearchproblemstohow a I canplaygames, too.
How a I canunderstandhumanlanguageandtranslatelanguages, forexample, aswellastopicsandmachinelearning, likeneuralnetworksandotherpopulartopicsthere, too.
Soit's notsomethingthatyou'reinterestedin.
Thatcourseisavailableaswell.
And I thinkyoualsoaskedabouttextbooks, theartificialintelligencetextbookthat I happentoreallylikeintheonethatshares a lotincommonwiththecoursethatweteachiscalledArtificialIntelligence.
A ModernApproachbyStuartRussellandPeternorBigon.
I'vepastedthelinktothatbookaswell.
Soifyou'reinterestedin a textbookaboutartificialintelligence, thatbookisquitegoodonBiff.
You'relookingformorevideos.
WehavevideosandproblemsthatthecourseonFedExaboutartificialTeligentwell, and I'm notsureifyoumentioned C.
Also, I'vejustpastedintothechatwindow a linkto a bookcalledHackersDelight, whichis a funbookonlearningSeeatallthelowerof a level.
A czWell, asalgorithms.
Moregenerally.
Thankyouforthatquestion.
Couldwegoingnext, Thiokoban.
If I'm pronouncingitright, you'd liketosayhelloandwhereyou'refrom?
Hi, I'm fromthe U S.
Ah, wow.
I didnotexpectthat.
Uhuh.
Firstofall, I'd liketothinkDavidandBryan I tookfinishedCS 50 recently.
Itwasthebestcourse I'veevertaken.
I noticedBrian, uh, releasedyou 50 eh?
I yesterday I lookedatthefirstlectureand I triedtopromisethat.
Allright, I noticedthatwhenyoutrytodownloadthedistributionclothesAh, lotofthecodedoesn't actuallyfunctiononCS 50 i.
D.
So I waswonderingafteryoufinishedyour 50 What I desire, whatterminalsdoyourecommendtomoveon?
Sure.
Brian, Wanttofieldthatone?
Yeah.
So I'llstartbyjustpointingoutthatforthatveryfirstproblemintheeyecourseyoushouldbeabletorun.
Theprogramwillbedistributedtodatasets.
Withthatproblem, a smallerdataseton a biggerone.
Youshouldbeabletogetthesmalleroneworkingonthe I d.
Butforthebigdataset, a lotofAIainowisaboutanalyzingbigdata.
You'reunfortunately a littlebitconstrainedbythefactthattheideaisrunningintheInternetandhas a limitedamountofmemoryavailabletoyou.
SothebigDatasaid.
Actually, it's toomuchmemorythatwillactuallyfitinthe I.
Theyhaveallthesyntaxhighlightingandthemanaging a differentfilesandterminalsthatyoucanruncodeinon.
Sothosemightbe a goodplacetogetstartedintermsofeditingcodeonyourowncomputerinsteadofontheidea.
Someoneelsealsomentionedpiecharm.
That's anotherpopularoneintermsofan i D forpythonspecificallyonthere.
Definitelyothersotherthantheoneswe'vejustmentionedtotheirmanydifferentchoicesthatyouhaveavailabletoyouhere, just a coupleofpopularonesthat I happentolike.
Whataresomeprisonfullcommunitythatyouguyswillrecommendustojoin a lookintojustsothatwehavekindofthecamaraderieorthathelpthat, especiallynowthatonequarantinecan't haveme.
Basically, he's Yeah, it's a reallygoodquestion.
Youknow, I think I havebeenfollowingonred.
It's a numberofcommunitieswhicharenice.
I don't knowiftheyarestrictlyuniversityorientedthatoddsareit's a broaderdemographicthanthat.
Butletmeseeif I canpacetheUralofatleastonesubreddithere.
Soifunfamiliarred, itis a popularsitefordiscussion, solearnprogrammingisactually a reallyniceone.
Andthereis a linktoallofourvariousdifferentcommunitiesisdefinitely a veryactivegroupofstudentsthatareonFacebookthatarecommunicatingandformingcommunitytogether.
A swellisondiscordthatarealwayschattingaboutCS 50 ofprogrammingoranyofthespecificproblemson.
Sothatcouldbe a placewhere a lotofourownstudentsonlinehavebeenabletosigncommunity.
I have a coupleofquestionswiththerecentprojectandalso a personal I asked.
Thatwasreallyshort.
I'lljustsortofthetechnicalquestion.
I alwaysworkaround, Uh, whatdevelopersandcoffeeshopswhen I tryto, uh, codewhenpythonanddoingmoreoffanalyticworks, oreven a littlebitoffinancialderivativeofpredictions.
Ah, withwithwithwithmylife?
Becausemyclientknowsmass.
I don't knowmath.
But I finditverydifficulttocommunicatewithmyWebdevelopersinthesensethat, uh, recently I wastryingtouselast a p I tobuild a serverinterruptiontoautomatesomeexcelspreadsheets.
Wearegooey.
Andthenandthen I was.
I builtitallfittedauthentication, uh, endpointwherewhere I lostmyselfoutduringthetechdevelopmentofmyFBIandthenlettheWebdeveloperswhowerelikeMay I lookatyourcookiesand I waslike, Arethosecookiesglutenfree?
Soitgetstothepointwhereitstartsveryas a pythonuser, it's veryhardtocommunicatewithdrama, scriptdevelopersorotherpeopleofdifferentdomains.
Andhowdid I orisitjusttooabstract?
It's Python.
YoumightaswelltothinkofitasEnglish, andyoucouldjustsearchGoogleandtherewouldbe a documentationforeverysinglething.
Andit's justdifferentstructure, a wayofthinking.
Reason.
Python.
How's myfirstquestion?
Soarenotreally.
Honestly, I thinkyouwon't havethatsameimpressionofthelanguageonce.
I thinkyouhavemorefamiliaritywithotherlanguages.
There's somanysimilaritiesamong a lotofthesemorepopularlanguagestoday.
Pythoncanbeusedprocedurally.
Itcompulsivelyusedpartlyfunctionallythoseairtermsthat I usedearlieraswell.
Um, and I thinkyou'llfindthateachoftheselanguagesorenvironmentsorframeworksjusthasdifferentwaysofsolvingthesameproblem.
Howcan I encourageundergradstudentstoparticipateinyourresearch?
Whatstartedout?
Ourstartingbut a computerscienceOh, aregoodDominicamunitywhosmallerprojectsareOh, something's Oh, yeah, That's a greatquestionaboutencouragingundergraduates.
I thinkoneofthechallengeswithstartingtodocomputerscienceresearchjustaftertakingoneortwoclassesincomputerscienceisthatthere's a biglearningcurvetobeabletogetuptospeedoneverythingyouneedtoknowabouttheresearchprojectinallthebackgroundinformationforwhateverthefieldofresearchhappenstobe.
Andso, ifyouwanttoencourageundergraduatestobeabletoworkwith a particularresearchproject, I thinktryingtocomeupwith, uh, smallertasksthataremore, uh, moreeasilygraspablebysomeonewhomaynothavemuchexperienceinthatparticulardomainofresearchcanbequitehelpful.
I knowthat.
Definitely.
When I wasjuststartingcomputerscienceandstartingtodo a littlebitofresearch, that's what a lotoffacultyhelpedtodoforme.
It's notrequiremetounderstandtheentiretyoftheprojectthatgivemesomesmallerpieceofthatprojectwhere I couldfocusjustonunderstandingthattacklingthatandthenovertime, starttoget a bettersenseforwhatthelargerprojectISS, butdivinginto a bigprojectallatonce.
Condemnfinitelybe a littlebitintimidatingandwegotoRohan.
Uh, they, um I wanttothankyouallsoyoucouldhearme.
Yes, wecan.
Okay.
Uh, I wannathankyouallforyouandyourteamforyoureffort.
Andso I findthattobe a prettyinterestingwaytofindinterestingcomputationalproblemstosolveandafteryousolveit, too, thenthinkabouthowyoumightgoaboutsolvingitmoreefficientlyorsolvingunit a differentlanguage.
There's a nicecommunityaroundthoseproblemsaswell.
On I Seeinthechat, therearemanyothersuggestionsthatpeoplehavethatmightbeworthtaking a lookattwoforothersourcesofproblemstosolve.
Simon, canwegotoyournext?
Yes, thanksverymuchforthetime I justhad.
So I'm Simon.
I'm fromLondon, England.
I'm Carlyinmythirdyearofanundergraduatedegreestudyingcomputerscienceondoingmymaster's nextyear, but I stillhavenoideawhatoffcomputerscience I reallywanttogointo.
Um, it's somethingthatJacobtouchedonearlier.
Like, Doyouhaveanytipsforexploringdifferentareas, likewhetherit's systemsormlorlogic, because I'vedonemodulesineachofthem, But I'm strugglingtoreallypick a topictodomydissertationonlikefurtherresearch.