Professional Documents
Culture Documents
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Thisrepository Search
Explore
Features
prakhar1989 / awesomecourses
Branch:master
Enterprise
Watch
Pricing
Signup
Star
1,249
Signin
Fork
12,904
awesomecourses/README.md
1,636
prakhar198918daysagoAddedCSForAllbyHarveyMudd
64contributors
andothers
Raw
752lines(721sloc) 167.881kB
History
Blame
AwesomeCourses
Introduction
Thereisalotofhiddentreasurelyingwithinuniversitypagesscatteredacrosstheinternet.Thislistisanattempttobring
tolightthoseawesomecourseswhichmaketheirhighqualitymateriali.e.assignments,lectures,notes,readings&
examinationsavailableonlineforfree.
TableofContents
Systems
ProgrammingLanguages/Compilers
Algorithms
CSTheory
IntroductiontoCS
MachineLearning
Misc
Legend
LectureVideos
LectureNotes
Assignments/Labs
Readings
Courses
Systems
CS61CGreatIdeasinComputerArchitecture(MachineStructures)UCBerkeley
LectureVideos
LectureNotes
Resources
OldExams
CS107ComputerOrganization&SystemsStanfordUniversity
CS107isthethirdcourseinStanford'sintroductoryprogrammingsequence.ThecoursewillworkfromtheC
programminglanguagedowntothemicroprocessortodemystifythemachine.Withacompleteunderstanding
ofhowcomputersystemsexecuteprogramsandmanipulatedata,youwillbecomeamoreeffective
programmer,especiallyindealingwithissuesofdebugging,performance,portability,androbustness.
LectureVideos
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
1/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Assignments
CS140OperatingSystemsStanfordUniversity
Thisclassintroducesthebasicfacilitiesprovidedinmodernoperatingsystems.Thecoursedividesintothree
majorsections.Thefirstpartofthecoursediscussesconcurrency.Thesecondpartofthecourseaddressesthe
problemofmemorymanagement.Thethirdmajorpartofthecourseconcernsfilesystems.
LectureNotes
Assignments
CS162OperatingSystemsandSystemsProgrammingUCBerkeley
OperatingSystemscoursebytheChairofEECS,UCBerkeleyDavidCuller
YoutubePlaylistFall2014lectures
CS186IntroductiontoDatabaseSystemsUCBerkeley
IntheprojectassignmentsinCS186,youwillwriteabasicdatabasemanagementsystemcalledSimpleDB.For
thisproject,youwillfocusonimplementingthecoremodulesrequiredtoaccessstoreddataondiskinfuture
projects,youwilladdsupportforvariousqueryprocessingoperators,aswellastransactions,locking,and
concurrentqueries.
LectureNotes
Projects
CS241SystemsProgramming(Fall2014)UnivofIllinois,UrbanaChampaign
Systemprogrammingreferstowritingcodethattasksadvantageofoperatingsystemsupportforprogrammers.
Thiscourseisdesignedtointroduceyoutosystemprogramming.Bytheendofthiscourse,youshouldbe
proficientatwritingprogramsthattakefulladvantageofoperatingsystemsupport.Tobeconcrete,weneedto
fixanoperatingsystemandweneedtochooseaprogramminglanguageforwritingprograms.WechosetheC
languagerunningonaLinux/UNIXoperatingsystem(whichimplementsthePOSIXstandardinterfacebetween
theprogrammerandtheOS).
Assignments
GithubPage
CrowdSourcedBook
CS425DistributedSystemsUnivofIllinois,UrbanaChampaign
Brilliantsetoflecturesandreading
materialcoveringfundamentalconceptsindistributedsystemssuchasVectorclocks,ConsensusandPaxos.Thisis
the2014versionbyProfIndranilGupta.
Lectures
Assignments
CS452RealTimeProgrammingUniversityofWaterloo
WritearealtimeOSmicrokernelinC,andapplicationcodetooperateamodeltrainsetinresponsetorealtime
sensorinformation.Thecommunicationwiththetrainsetrunsat2400baudsoittakesabout61millisecondsto
askallofthesensorsfordataaboutthetrain'spossiblelocation.Thismakesitparticularlychallengingbecause
atraincanmoveabout3centimetersinthattime.Oneofthemostchallengingandtimeconsumingcoursesat
theUniversityofWaterloo.
Assignments
Lecturenotes
CS2043UnixTools&ScriptingCornellUniversity
UNIXlikesystemsareincreasinglybeingusedonpersonalcomputers,mobilephones,webservers,andmany
othersystems.Theyrepresentawonderfulfamilyofprogrammingenvironmentsusefulbothtocomputer
scientistsandtopeopleinmanyotherfields,suchascomputationalbiologyandcomputationallinguistics,in
whichdataisnaturallyrepresentedbystrings.Thiscourseprovidesanintensivetrainingtodevelopskillsin
Unixcommandlinetoolsandscriptingthatenabletheaccomplishmentandautomationoflargeandchallenging
computingtasks.Thesyllabustakesstudentsfromshellbasicsandpiping,toregularexpressionprocessing
tools,toshellscriptingandPython.
Syllabus
Lectures
Assignments
CS3410ComputerSystemOrganizationandProgrammingCornellUniversity
CS3410providesanintroductiontocomputerorganization,systemsprogrammingandthehardware/software
interface.Topicsincludeinstructionsets,computerarithmetic,datapathdesign,dataformats,addressing
modes,memoryhierarchiesincludingcachesandvirtualmemory,I/Odevices,busbasedI/Osystems,and
multicorearchitectures.StudentslearnassemblylanguageprogramminganddesignapipelinedRISC
processor.
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
2/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Lectures
Assignments
CS4410OperatingSystemsCornellUniversity
CS4410coverssystemsprogrammingandintroductoryoperatingsystemdesignandimplementation.Wewill
coverthebasicsofoperatingsystems,namelystructure,concurrency,scheduling,synchronization,memory
management,filesystems,securityandnetworking.Thecourseisopentoanyundergraduatewhohas
masteredthematerialinCS3410/ECE3140.
Syllabus
Lectures
CS4414OperatingSystemsUniversityofVirginia
Acourse(that)coverstopicsincluding:Analysisprocesscommunicationandsynchronizationresource
managementvirtualmemorymanagementalgorithmsfilesystemsandnetworkinganddistributedsystems.
Theprimarygoalofthiscourseistoimproveyourabilitytobuildscalable,robustandsecurecomputing
systems.Itfocusesondoingthatbyunderstandingwhatunderliesthecoreabstractionsofmoderncomputer
systems.
Syllabus
Lectures
CS5412CloudComputingCornellUniversity
Taughtbyoneofthestalwartsofthisfield,ProfKenBirman,thiscoursehasafantasticsetofslidesthatone
cangothrough.TheProf'sbookisalsoagemandrecommendedasamustreadinGoogle'stutorialon
DistributedSystemDesign
Slides
CSCE3613OperatingSystemsUniversityofArkansas(Fayetteville)
Anintroductiontooperating
systemsincludingtopicsinsystemstructures,processmanagement,storagemanagement,files,distributed
systems,andcasestudies.
Syllabus
Assignments
LectureNotes
Readings
CSCI360ComputerArchitecture3CUNYHunterCollege
Acoursethatcoverscachedesign,buses,memoryhierarchies,processorperipheralinterfaces,and
multiprocessors,includingGPUs.
CSCI493.66UNIXSystemProgramming(formerlyUNIXTools)CUNYHunterCollege
AcoursethatismostlyaboutwritingprogramsagainsttheUNIXAPI,coveringallofthebasicpartsofthekernel
interfaceandlibraries,includingfiles,processes,terminalcontrol,signals,andthreading.
CSCI493.75ParallelComputingCUNYHunterCollege
ThecourseisanintroductiontoparallelalgorithmsandparallelprogramminginCandC++,usingtheMessage
PassingInterface(MPI)andtheOpenMPapplicationprogramminginterface.Italsoincludesabriefintroduction
toparallelarchitecturesandinterconnectionnetworks.Itisboththeoreticalandpractical,includingmaterialon
designmethodology,performanceanalysis,andmathematicalconcepts,aswellasdetailsonprogramming
usingMPIandOpenMP.
ECE459ProgrammingforPerformanceUniversityofWaterloo
Learntechniquesforprofiling,rearchitecting,andimplementingsoftwaresystemsthatcanhandleindustrial
sizedinputs,andtodesignandbuildcriticalsoftwareinfrastructure.Learnperformanceoptimizationthrough
parallelization,multithreading,asyncI/O,vectorizationandGPUprogramming,anddistributedcomputing.
Lectureslides
MAE6740HybridSystemsCornellUniversity
Thiscoursewilldiscussthemodelingofhybridsystems,theanalysisandsimulationoftheirbehavior,different
controlmethodologiesaswellasverificationtechniques.Tocomplementthetheoreticalaspect,severalstateof
thearttoolswillbeintroduced.Newandemergingtopicsinhybridsystemsresearchwillbepresentedaswell.
Asthefieldofhybridsystemsisatrulyinterdisciplinaryone,drawingresearchersfromdynamicalsystems,
controltheory,computeraidedverification,automatatheoryandotherfields,oneofthegoalsofthiscourseisto
teachstudentsthelanguagethatwillallowthemtobridgethegapbetweenthesetraditionallydisjoint
disciplines.
Lectures
Readings
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
3/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
PODCPrinciplesofDistributedComputingETHZurich
Exploreessentialalgorithmicideasandlowerboundtechniques,basicallythe"pearls"ofdistributedcomputing
inaneasytoreadsetoflecturenotes,combinedwithcompleteexercisesandsolutions.
Book
AssignmentsandSolutions
SPACParallelismandConcurrencyUnivofWashington
TechnicallynotacourseneverthelessanawesomecollectionofmaterialsusedbyProfDanGrossmantoteach
parallelismandconcurrencyconceptstosophomoresatUWash
6.824DistributedSystemsMIT
MIT'sgraduatelevelDScoursewithafocusonfaulttolerance,replication,andconsistency,alltaughtvia
awesomelabassignmentsinGolang!
AssignmentsJustdogitclonegit://g.csail.mit.edu/6.824golabs20146.824
Readings
6.828OperatingSystemsMIT
MIT'soperatingsystemscoursefocusingonthefundamentalsofOSdesignincludingbooting,memory
management,environments,filesystems,multitasking,andmore.Inaseriesoflabassignments,youwillbuild
JOS,anOSexokernelwritteninC.
Assignments
Lectures
VideosNote:Thesearestudentrecordedcamvideosofthe2011course.Thevideosexplainalotofconcepts
requiredforthelabsandassignments.
15213IntroductiontoComputerSystems(ICS)CarnegieMellonUniversity
TheICScourseprovidesaprogrammer'sviewofhowcomputersystemsexecuteprograms,storeinformation,
andcommunicate.Itenablesstudentstobecomemoreeffectiveprogrammers,especiallyindealingwithissues
ofperformance,portabilityandrobustness.Italsoservesasafoundationforcoursesoncompilers,networks,
operatingsystems,andcomputerarchitecture,whereadeeperunderstandingofsystemslevelissuesis
required.Topicscoveredinclude:machinelevelcodeanditsgenerationbyoptimizingcompilers,performance
evaluationandoptimization,computerarithmetic,memoryorganizationandmanagement,networking
technologyandprotocols,andsupportingconcurrentcomputation.
ThisisthemusthavecourseforeveryoneinCMUwhowantstolearnsomecomputerscienvenomatterwhat
majorareyouin.Becauseit'sCMU(ThecoursenumberisassameasthezipcodeofCMU)!
LectureNotes
Assignments
15440DistributedSystemsCarnegieMellonUniversity
IntroductiontodistributedsystemswithafocusonteachingconceptsviaprojectsimplementedintheGo
programminglanguage.
Assignments
15749EngineeringDistributedSystemsCarnegieMellonUniversity
AprojectfocusedcourseonDistributed
Systemswithanawesomelistofreadings
Readings
18447IntroductiontoComputerArchitectureCMU
VerycomprehensivematerialonComputerArchitecturedefinitelymorethanjust"introduction".Onlinematerial
isveryuserfriendly,eventherecitationvideosavailableonline.ThisistheSpring'14versionbyProf.Onur
Mutlu
LecturesandRecitation
Homeworks7HWswithanswersetaswell
Readings
VU:DistributedSystemsDistributedSystems:PrinciplesandParadigms(Fall2012)VrijeUniversiteit,
Amsterdam
Distributedsystemsoftenappeartobehighlycomplexandintertwinednetworkedsystems.Touchingone
componentoftenaffectsmanyothersinsurprisingways.Inthiscourse,weaimatexplainingthebasicsof
distributedsystemsbysystematicallytakingdifferentperspectives,andsubsequentlybringingthese
perspectivestogetherbylookingatoftenappliedorganizationsofdistributedsystems.Thiscourseclosely
followsthetimelessclassicDistributedSystems:PrinciplesandParadigmsbysomeofthepioneersinthe
fieldofDistributessystemsAndrewS.TanenbaumandMaartenvanSteen
Slides
Videolectures
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
4/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Exams
ProgrammingLanguages/Compilers
CIS194IntroductiontoHaskellPennEngineering
Explorethejoysoffunctionalprogramming,usingHaskellasavehicle.Theaimofthecoursewillbetoallow
youtouseHaskelltoeasilyandconvenientlywritepracticalprograms.
Previoussemesteralsoavailable,withmoreexercises
Assignments&Lectures
ClojureFunctionalProgrammingwithClojureUniversityofHelsinki
ThecourseisanintroductiontofunctionalprogrammingwithadynamicallytypedlanguageClojure.Westart
withanintroductiontoClojureitssyntaxanddevelopmentenvironment.Clojurehasagoodselectionofdata
structuresandwecovermostofthem.Wealsogothroughthebasicsofrecursionandhigherorderfunctions.
ThecoursematerialisinEnglish.
GithubPage
COS326FunctionalProgrammingPrincetonUniversity
Coversfunctionalprogrammingconceptslikeclosures,tailcallrecursion¶llelismusingtheOCaml
programminglanguage
Lectures
Assignments
CS164Hackyourlanguage!UCBerkeley
Introductiontoprogramminglanguagesbydesigningandimplementingdomainspecificlanguages.
LectureVideos
CodeforAssignments
CS173ProgrammingLanguagesBrownUniversity
CoursebyProf.Krishnamurthi(authorofHtDP)andnumerousotherawesomebooksonprogramming
languages.UsesacustomdesignedPyretprogramminglanguagetoteachtheconcepts.Therewasanonline
classhostedin2012,whichincludesalllecturevideosforyoutoenjoy.
Videos
Assignments
CS240hFunctionalSystemsinHaskellStanfordUniversity
BuildingsoftwaresystemsinHaskell
LectureSlides
3Assignments:Lab1,Lab2,Lab3
CS421ProgrammingLanguagesandCompilersUnivofIllinois,UrbanaChampaign
Coursethatuses
OCamltoteachfunctionalprogrammingandprogramminglanguagedesign.
Lectures
Videos
Assignments
Exams
CS223PurelyFunctionalDataStructuresInElmUniversityofChicago
ThiscourseteachesfunctionalreactiveprogrammingandpurelyfunctionaldatastructuresbasedonChris
Okazaki'sbookandusingtheElmprogramminglanguage.
Lectures
Assignments
CS3110DataStructuresandFunctionalProgrammingCornellUniversity
AnothercoursethatusesOCamltoteachalternativeprogrammingparadigms,especiallyfunctionaland
concurrentprogramming.
LectureSlides
Assignments
CS4120IntroductiontoCompilersCornellUniversity
Anintroductiontothespecificationandimplementationofmoderncompilers.Topicscoveredincludelexical
scanning,parsing,typechecking,codegenerationandtranslation,anintroductiontooptimization,andcompile
timeandruntimesupportformodernprogramminglanguages.Aspartofthecourse,studentsbuildaworking
compilerforanobjectorientedlanguage.
Syllabus
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
5/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Lectures
Assignments
CS4400ProgrammingLanguagesNortheasternUniversity
Thisisacourseonthestudy,design,andimplementationofprogramminglanguages.
Thecourseworksattwosimultaneouslevels:first,wewilluseaprogramminglanguagethatcandemonstratea
widevarietyofprogrammingparadigms.Second,usingthislanguage,wewilllearnaboutthemechanicsbehind
programminglanguagesbyimplementingourownlanguage(s).Thetwolevelapproachusuallymeansthatwe
willoftenseehowtouseacertainfeature,andcontinuebyimplementingit.
Syllabus
LectureNotes/Resources
Homework
CS4610ProgrammingLanguagesandCompilersUniversityofVirginia
CoursethatusesOCamltoteachfunctionalprogrammingandprogramminglanguagedesign.Eachassignment
isapartofaninterpreterandcompilerforanobjectorientedlanguagesimilartoJava,andyouarerequiredto
useadifferentlanguageforeachassignment(i.e.,choose4fromPython,JS,OCaml,Haskell,Ruby).
LectureNotes
Assignments
CS5114NetworkProgrammingLanguagesCornellUniversity
Anintroductiontothespecificationandimplementationofmoderncompilers.Topicscoveredincludelexical
scanning,parsing,typechecking,codegenerationandtranslation,anintroductiontooptimization,andcompile
timeandruntimesupportformodernprogramminglanguages.Aspartofthecourse,studentsbuildaworking
compilerforanobjectorientedlanguage.
Syllabus
Lectures
CS5142ScriptingLanguagesCornellUniversity
Perl,PHP,JavaScript,VisualBasictheyareoftenrequestedskillsforemployment,butmostofusdonothave
thetimetofindoutwhattheyareallabout.Inthiscourse,youlearnhowtousescriptinglanguagesforrapid
prototyping,webprogramming,dataprocessing,andapplicationextension.Besidescoveringtraditional
programminglanguagesconceptsastheyapplytoscripting(e.g.,dynamictypingandscoping),thiscourse
looksatnewconceptsrarelyfoundintraditionallanguages(e.g.,stringinterpolation,hashes,andpolylingual
code).Throughaseriesofsmallprojects,youusedifferentlanguagestoachieveprogrammingtasksthat
highlightthestrengthsandweaknessesofscripting.Asasideeffect,youpracticeteachingyourselfnew
languages.
Syllabus
Lectures
Assignments
CS5470CompilersUniversityofUtah
Ifyou'reafanofProfMatt'swritingonhisfantasticblogyououghttogivethisashot.Thecoursecoversthe
designandimplementationofcompilers,anditexploresrelatedtopicssuchasinterpreters,virtualmachines
andruntimesystems.AsidefromtheProf'swittytakeoncheatingthepagehastonsofinterestinglinkson
programminglanguages,parsingandcompilers.
LectureNotes
Projects
CS6118TypesandSemanticsCornellUniversity
TypesandSemanticsisaboutdesigningandunderstandprogramminglanguages,whethertheybedomain
specificorgeneralpurpose.Thegoalofthisclassistoprovideavarietyoftoolsfordesigningcustom
(programming)languagesforwhatevertaskisathand.Partofthatwillbeavarietyofinsightsonhow
languagesworkalongwithexperiencesfromworkingwithacademicsandindustryoncreatingnewlanguages
suchasCeylonandKotlin.Theclassfocusesontypesandsemanticsandtheinterplaybetweenthem.This
meanscategorytheoryandconstructivetypetheory(e.g.Coqandrichervariations)areancillarytopicsofthe
class.Theclassalsocoversunconventionalsemanticdomainssuchasclassicallineartypetheoryinorderto
bothbreakstudentsfromconventialthinkingandtoprovidepowerfultargetscapableofformalizingthinkslike
networkingprotocols,resourcesensitivecomputation,andconcurrencyconstructs.Theclassprojectisto
designandformalizea(programming)languageforapurposeofthestudent'schoosing,andassignmentsare
designedtoensurestudentshavehadachancetopracticeapplyingthetechniqueslearnedinclassbefore
culminatingtheseskillsintheclassproject.
Syllabus
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
6/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Lectures
CSE341ProgrammingLanguagesUniversityofWashington
CoversnonimperativeparadigmsandlanguagessuchasRuby,Racket,andMLandthefundamentalsof
programminglanguages.
Lectures
AssignmentsandTests
CSEP501CompilerConstructionUniversityofWashington
Teachesunderstandingofhowamoderncompilerisstructuredandthemajoralgorithmsthatareusedto
translatecodefromhighleveltomachinelanguage.Thebestwaytodothisistoactuallybuildaworking
compiler,sotherewillbeasignificantprojecttoimplementonethattranslatesprogramswritteninacoresubset
ofJavaintoexecutablex86assemblylanguage.Thecompilersthemselveswillusescannerandparser
generatortoolsandthedefaultimplementationlanguageisJava.
Lectures
Assignments,Tests,andSolutions
DMFPDiscreteMathematicsandFunctionalProgrammingWheatonCollege
Acoursethatteachesdiscretemathsconceptswithfunctionalprogramming
LectureVideos
Assignments
CSC253CPythoninternals:AtenhourcodewalkthroughthePythoninterpretersourcecodeUniversityof
Rochester
NinelectureswalkingthroughtheinternalsofCPython,thecanonicalPythoninterpreterimplementedinC.They
werefromtheDynamicLanguagesandSoftwareDevelopmentcoursetaughtinFall2014attheUniversityof
Rochester.
Algorithms
CS61BDataStructuresUCBerkeley
Inthiscourse,youwillstudyadvancedprogrammingtechniquesincludingdatastructures,encapsulation,
abstractdatatypes,interfaces,andalgorithmsforsortingandsearching,andyouwillgetatasteofsoftware
engineeringthedesignandimplementationoflargeprograms.
Labs
LectureVideosonYoutube
CS473/573FundamentalAlgorithmsUnivofIllinois,UrbanaChampaign
Algorithmsclasscoveringrecursion,randomization,amortization,graphalgorithms,networkflowsand
hardness.ThelecturenotesbyProf.Eriksonarecomprehensiveenoughtobeabookbythemselves.Highly
recommended!
LectureNotes
LabsandExams
CS2150Program&DataRepresentationUniversityofVirginia
ThisdatastructurescourseintroducesC++,linkedlists,stacks,queues,trees,numericalrepresentation,hash
tables,priorityqueues,heaps,huffmancoding,graphs,andx86assembly.
Lectures
Assignments
CS4820IntroductiontoAnalysisofAlgorithmsCornellUniversity
Thiscoursedevelopstechniquesusedinthedesignandanalysisofalgorithms,withanemphasisonproblems
arisingincomputingapplications.Exampleapplicationsaredrawnfromsystemsandnetworks,artificial
intelligence,computervision,datamining,andcomputationalbiology.Thiscoursecoversfourmajoralgorithm
designtechniques(greedyalgorithms,divideandconquer,dynamicprogramming,andnetworkflow),
computabilitytheoryfocusingonundecidability,computationalcomplexityfocusingonNPcompleteness,and
algorithmictechniquesforintractableproblems,includingidentificationofstructuredspecialcases,
approximationalgorithms,andlocalsearchheuristics.
Lectures
Assignments
Syllabus
CSCI104DataStructuresandObjectOrientedDesign
UniversityofSouthernCalifornia(USC)
Lectures
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
7/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Labs
Assignments
AdditionalResources
CSCI135SoftwareDesignandAnalysisI
CUNYHunterCollege
Itiscurrentlyanintensiveintroductiontoprogramdevelopmentandproblemsolving.Itsemphasisisonthe
processofdesigning,implementing,andevaluatingsmallscaleprograms.ItisnotsupposedtobeaC++
programmingcourse,althoughmuchofthecourseisspentonthedetailsofC++.C++isanextremelylargeand
complexprogramminglanguagewithmanyfeaturesthatinteractinunexpectedways.Onedoesnotneedto
knowevenhalfofthelanguagetouseitwell.
LecturesandAssignments
CSCI235SoftwareDesignandAnalysisIICUNYHunterCollege
Introducesalgorithmsforafewcommonproblemssuchassorting.Practicallyspeaking,itfurthersthestudents'
programmingskillswithtopicssuchasrecursion,pointers,andexceptionhandling,andprovidesachanceto
improvesoftwareengineeringskillsandtogivethestudentspracticalexperienceformoreproductive
programming.
LecturesandAssignments
CSCI335SoftwareDesignandAnalysisIII
CUNYHunterCollege
Thisincludestheintroductionofhashes,heaps,variousformsoftrees,andgraphs.Italsorevisitsrecursionand
thesortingproblemfromahigherperspectivethanwaspresentedintheprequels.Ontopofthis,itisintended
tointroducemethodsofalgorithmicanalysis.
LecturesandAssignments
CSE373AnalysisofAlgorithmsStonyBrookUniversity
ProfStevenSkiena'snostrangertoanystudentwhenitcomestoalgorithms.Hisseminalbookhasbeentouted
bymanytobebestforgettingthatjobinGoogle.Inaddition,he'salsowellknownfortutoringstudentsin
competitiveprogrammingcompetitions.Ifyou'relookingtobrushupyourknowledgeonAlgorithms,youcan'tgo
wrongwiththiscourse.
LectureVideos
CS97SIIntroductiontoCompetitiveProgrammingStanfordUniversity
Fantasticrepositoryoftheoryandpracticeproblemsacrossvarioustopicsforstudentswhoareinterestedto
participateinACMICPC.
LecturesandAssignments
ECS122AAlgorithmDesignandAnalysisUCDavis
TaughtbyDanGusfieldin2010,thiscourseisanundergraduateintroductiontoalgorithmdesignandanalysis.
Itfeaturestraditionaltopics,suchasBigOhnotation,aswellasanimportanceonimplementingspecific
algorithms.Alsofeaturedaresorting(inlineartime),graphalgorithms,depthfirstsearch,stringmatching,
dynamicprogramming,NPcompleteness,approximation,andrandomization.
Syllabus
LectureVideos
Assignments
ECS222AGraduateLevelAlgorithmDesignandAnalysisUCDavis
ThisisthegraduatelevelcomplementtotheECS122AundergraduatealgorithmscoursebyDanGusfieldin
2011.Itassumesanundergradcoursehasalreadybeentakeninalgorithms,and,whilegoingoversome
undergraduatealgorithmstopics,focusesmoreonincreasinglycomplexandadvancedalgorithms.
LectureVideos
Syllabus
Assignments
6.INTHackingaGoogleInterviewMIT
ThiscoursetaughtintheMITIndependentActivitiesPeriodin2009goesovercommonsolutiontocommon
interviewquestionsforsoftwareengineerinterviewsathighlyselectivecompanieslikeApple,Google,and
Facebook.Theycovertimecomplexity,hashtables,binarysearchtrees,andothercommonalgorithmtopics
youshouldhavealreadycoveredinadifferentcourse,butgoesmoreindepthonthingsyouwouldn'totherwise
learninclasslikebitwiselogicandproblemsolvingtricks.
Handouts
TopicsCovered
6.851AdvancedDataStructuresMIT
ThisisanadvancedDScourse,youmustbedonewiththeAdvancedAlgorithmscoursebeforeattemptingthis
one.
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
8/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
LecturesContainsvideosfromsp2012version,butthereisn'tmuchdifference.
Assignmentscontainsthecalendaraswell.
6.854/18.415JAdvancedAlgorithmsMIT
AdvancedcourseinalgorithmsbyDr.DavidKargercoveringtopicssuchasamortization,randomization,
fingerprinting,wordlevelparallelism,bitscaling,dynamicprogramming,networkflow,linearprogramming,
fixedparameteralgorithms,andapproximationalgorithms.
RegisteronNBtoaccesstheproblemsetandlectures.
15451/651AlgorithmsCarnegieMellonUniversity
Therequiredalgorithmsclassthatgoindepthintoallbasicalgorithmsandtheproofsbehindthem.Thisisone
oftheheavieralgorithmscurriculumsonthispage.TaughtbyAvrimBlumandManuelBlumwhohasaTuring
Awardduetohiscontributionstoalgorithms.Courselinkincludesaverycomprehensivesetofreferencenotes
byAvrimBlum.
CSTheory
CIS500SoftwareFoundationsUniversityofPennsylvania
AnintroductiontoformalverificationofsoftwareusingtheCoqproofassistant.Topicsincludebasicconceptsof
logic,computerassistedtheoremproving,functionalprogramming,operationalsemantics,Hoarelogic,and
statictypesystems.
LecturesandAssignments
Textbook
CS103MathematicalFoundationsofComputingStanfordUniversity
CS103isafirstcourseindiscretemath,computabilitytheory,andcomplexitytheory.Inthiscourse,we'llprobe
thelimitsofcomputerpower,explorewhysomeproblemsarehardertosolvethanothers,andseehowto
reasonwithmathematicalcertainty.
Linkstoalllecturesnotesandassignmentsaredirectlyonthecoursepage
CS173DiscreteStructuresUnivofIllinoisUrbanaChampaign
Thiscourseisanintroductiontothetheoreticalsideofcomputerscience.Init,youwilllearnhowtoconstruct
proofs,readandwriteliterateformalmathematics,getaquickintroductiontokeytheorytopicsandbecome
familiarwitharangeofstandardmathematicsconceptscommonlyusedincomputerscience.
TextbookWrittenbytheprofessor.IncludesInstructor'sGuide.
Assignments
Exams
CS276FoundationsofCryptographyUCBerkeley
Thiscoursediscussesthecomplexitytheoryfoundationsofmoderncryptography,andlooksatrecentresultsin
thefieldsuchasFullyHomomorphicEncryption,IndistinguishabilityObfuscation,MPCandsoon.
CS278ComplexityTheoryUCBerkeley
AngraduatelevelcourseoncomplexitytheorythatintroducesPvsNP,thepowerofrandomness,average
casecomplexity,hardnessofapproximation,andsoon.
CS374Algorithms&ModelsofComputation(Fall2014)UniversityofIllinoisUrbanaChampaign
CS498section374(unofficially"CS374")coversfundamentaltoolsandtechniquesfromtheoreticalcomputer
science,includingdesignandanalysisofalgorithms,formallanguagesandautomata,computability,and
complexity.Specifictopicsincluderegularandcontextfreelanguages,finitestateautomata,recursive
algorithms(includingdivideandconquer,backtracking,dynamicprogramming,andgreedyalgorithms),
fundamentalgraphalgorithms(includingdepthandbreadthfirstsearch,topologicalsorting,minimumspanning
trees,andshortestpaths),undecidability,andNPcompleteness.Thecoursealsohasastrongfocusonclear
technicalcommunication.
Assignments/Exams
LectureNotes/Labs
Lecturevideos
CS3110DataStructuresandFunctionalProgrammingCornellUniversity
CS3110(formerlyCS312)isthethirdprogrammingcourseintheComputerSciencecurriculum,followingCS
1110/1112andCS2110.Thegoalofthecourseistohelpstudentsbecomeexcellentprogrammersand
softwaredesignerswhocandesignandimplementsoftwarethatiselegant,efficient,andcorrect,andwhose
codecanbemaintainedandreused.
Syllabus
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
9/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Lectures
Assignments
CS4810IntroductiontoTheoryofComputingCornellUniversity
Thisundergraduatecourseprovidesabroadintroductiontothemathematicalfoundationsofcomputerscience.
Wewillexaminebasiccomputationalmodels,especiallyTuringmachines.Thegoalistounderstandwhat
problemscanorcannotbesolvedinthesemodels.
Syllabus
Lectures
Assignments
CS6810TheoryofComputingCornellUniversity
Thisgraduatecoursegivesabroadintroductiontocomplexitytheory,includingclassicalresultsandrecent
developments.Complexitytheoryaimstounderstandthepowerofefficientcomputation(whencomputational
resourcesliketimeandspacearelimited).Manycompellingconceptualquestionsariseinthiscontext.Mostof
thesequestionsare(surprisingly?)difficultandfarfrombeingresolved.Nevertheless,alotofprogresshas
beenmadetowardunderstandingthem(andalsowhytheyaredifficult).Wewilllearnabouttheseadvancesin
thiscourse.Athemewillbecombinatorialconstructionswithrandomlikeproperties,e.g.,expandergraphsand
errorcorrectingcodes.Someexamples:
Isfindingasolutioninherentlymoredifficultthanverifyingit?
Domorecomputationalresourcesmeanmorecomputingpower?
Isiteasiertofindapproximatesolutionsthanexactones?
Arerandomizedalgorithmsmorepowerfulthandeterministicones?
Isiteasiertosolveproblemsintheaveragecasethanintheworstcase?
Arequantumcomputersmorepowerfulthanclassicalones?
Syllabus
Lectures
Assignments
CSCE3193ProgrammingParadigmsUniversityofArkansas(Fayetteville)
Programmingindifferentparadigmswithemphasisonobjectorientedprogramming,networkprogrammingand
functionalprogramming.Surveyofprogramminglanguages,eventdrivenprogramming,concurrency,software
validation.
Syllabus
Notes
Assignments
PracticeExams
CS3220IntroductiontoScientificComputingCornellUniversity
Inthisonesemestersurveycourse,weintroducenumericalmethodsforsolvinglinearandnonlinearequations,
interpolatingdata,computingintegrals,andsolvingdifferentialequations,andwedescribehowtousethese
toolswisely(wehope!)whensolvingscientificproblems.
Syllabus
Lectures
Assignments
CS4300InformationRetrievalCornellUniversity
Studiesthemethodsusedtosearchforanddiscoverinformationinlargescalesystems.Theemphasisison
informationretrievalappliedtotextualmaterials,butthereissomediscussionofotherformats.Thecourse
includestechniquesforsearching,browsing,andfilteringinformationandtheuseofclassificationsystemsand
thesauruses.Thetechniquesareillustratedwithexamplesfromwebsearchinganddigitallibraries.
Syllabus
Lectures
Assignments
6.045GreatIdeasinTheoreticalComputerScienceMIT
Thiscourseprovidesachallengingintroductiontosomeofthecentralideasoftheoreticalcomputerscience.
Beginninginantiquity,thecoursewillprogressthroughfiniteautomata,circuitsanddecisiontrees,Turing
machinesandcomputability,efficientalgorithmsandreducibility,thePversusNPproblem,NPcompleteness,
thepowerofrandomness,cryptographyandonewayfunctions,computationallearningtheory,andquantum
computing.Itexaminestheclassesofproblemsthatcanandcannotbesolvedbyvariouskindsofmachines.It
triestoexplainthekeydifferencesbetweencomputationalmodelsthataffecttheirpower.
Syllabus
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
10/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
LectureNotes
LectureVideos
IntroductiontoCS
CS10TheBeautyandJoyofComputingUCBerkeley
CS10isUCB'sintroductorycomputerscienceclass,taughtusingthebeginners'draganddroplanguage.
Studentslearnabouthistory,socialimplications,greatprinciples,andfutureofcomputing.Theyalsolearnthe
joyofprogrammingacomputerusingafriendly,graphicallanguage,andwillcompleteasubstantialteam
programmingprojectrelatedtotheirinterests.
Snap!(basedonScratchbyMIT).
Curriculum
CS50IntroductiontoComputerScienceHarvardUniversity
CS50xisHarvardCollege'sintroductiontotheintellectualenterprisesofcomputerscienceandtheartof
programmingformajorsandnonmajorsalike,withorwithoutpriorprogrammingexperience.Anentrylevel
coursetaughtbyDavidJ.Malan.
Lectures
CS61AStructureandInterpretationofComputerPrograms[Python]UCBerkeley
InCS61A,weareinterestedinteachingyouaboutprogramming,notabouthowtouseoneparticular
programminglanguage.Weconsideraseriesoftechniquesforcontrollingprogramcomplexity,suchas
functionalprogramming,dataabstraction,andobjectorientedprogramming.Masteryofaparticular
programminglanguageisaveryusefulsideeffectofstudyingthesegeneraltechniques.However,ourhopeis
thatonceyouhavelearnedtheessenceofprogramming,youwillfindthatpickingupanewprogramming
languageisbutafewdays'work.
LectureResourcesbyType
LectureResourcesbyTopic
AdditionalResources
PracticeProblems
ExtraLectures
CS61ASStructure&InterpretationofComputerPrograms[Racket]UCBerkeley
AselfpacedversionoftheCS61CoursebutinRacket/Scheme.61ASisagreatintroductorycoursethatwill
easeyouintoalltheamazingconceptsthatfutureCScourseswillcover,soremembertokeepanopenmind,
havefun,andalwaysrespectthedataabstraction
LectureVideos
AssignmentsandNotes
CS101ComputerScience101StanfordUniversity
CS101teachestheessentialideasofComputerScienceforazeropriorexperienceaudience.Participantsplay
andexperimentwithshortbitsof"computercode"tobringtolifetothepowerandlimitationsofcomputers.
Lecturesvideoswillavailableforfreeafterregistration.
CS106AProgrammingMethodologyStanfordUniversity
ThiscourseisthelargestoftheintroductoryprogrammingcoursesandisoneofthelargestcoursesatStanford.
Topicsfocusontheintroductiontotheengineeringofcomputerapplicationsemphasizingmodernsoftware
engineeringprinciples:objectorienteddesign,decomposition,encapsulation,abstraction,andtesting.
ProgrammingMethodologyteachesthewidelyusedJavaprogramminglanguagealongwithgoodsoftware
engineeringprinciples.
LectureVideos
Assignments
Allmaterialsinazipfile
CS106BProgrammingAbstractionsStanfordUniversity
ThiscourseisthenaturalsuccessortoProgrammingMethodologyandcoverssuchadvancedprogramming
topicsasrecursion,algorithmicanalysis,anddataabstractionusingtheC++programminglanguage,whichis
similartobothCandJava.
Lectures
Assignments
Allmaterialsinazipfile
CS107ProgrammingParadigmsStanfordUniversity
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
11/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Topics:AdvancedmemorymanagementfeaturesofCandC++thedifferencesbetweenimperativeandobject
orientedparadigms.Thefunctionalparadigm(usingLISP)andconcurrentprogramming(usingCandC++)
Lectures
Assignments
CS109ProgrammingPracticeUsingScalaKAIST
Thiscourseintroducesbasicconceptsofprogrammingandcomputerscience,suchasdynamicandstatic
typing,dynamicmemoryallocation,objectsandmethods,binaryrepresentationofnumbers,usinganeditorand
compilerfromthecommandline,runningprogramswithargumentsfromthecommmandline,usinglibraries,
andtheuseofbasicdatastructuressuchasarrays,lists,sets,andmaps.WewilluseScalaforthiscourse.
Lectures
Assignments
CS1109FundamentalProgrammingConceptsCornellUniversity
Thiscourseprovidesanintroductiontoprogrammingandproblemsolvingusingahighlevelprogramming
language.ItisdesignedtoincreaseyourknowledgeleveltocomfortablycontinuetocoursesCS111x.Ourfocus
willbeongenericprogrammingconcepts:variables,expressions,controlstructures,loops,arrays,functions,
pseudocodeandalgorithms.Youwilllearnhowtoanalyzeproblemsandconvertyourideasintosolutions
interpretablebycomputers.WewilluseMATLABbecauseitprovidesaproductiveenvironment,anditiswidely
usedbyallengineeringcommunities.
Syllabus
Lectures
Assignments
CS1110IntroductiontoComputingUsingPythonCornellUniversity
ProgrammingandproblemsolvingusingPython.Emphasizesprinciplesofsoftwaredevelopment,style,and
testing.Topicsincludeproceduresandfunctions,iteration,recursion,arraysandvectors,strings,anoperational
modelofprocedureandfunctioncalls,algorithms,exceptions,objectorientedprogramming,andGUIs
(graphicaluserinterfaces).Weeklylabsprovideguidedpracticeonthecomputer,withstaffpresenttohelp.
AssignmentsusegraphicsandGUIstohelpdevelopfluencyandunderstanding.
Syllabus
Lectures
Assignments
CS1112IntroductiontoComputingUsingMatlabCornellUniversity
ProgrammingandproblemsolvingusingMATLAB.Emphasizesthesystematicdevelopmentofalgorithmsand
programs.Topicsincludeiteration,functions,arraysandvectors,strings,recursion,algorithms,objectoriented
programming,andMATLABgraphics.Assignmentsaredesignedtobuildanappreciationforcomplexity,
dimension,fuzzydata,inexactarithmetic,randomness,simulation,andtheroleofapproximation.NO
programmingexperienceisnecessarysomeknowledgeofCalculusisrequired.
Syllabus
Lectures
Assignments
Projects
CS1115IntroductiontoComputationalScienceandEngineeringUsingMatlabGraphicalUserInterfaces
CornellUniversity
ProgrammingandproblemsolvingusingMATLAB.Emphasizesthesystematicdevelopmentofalgorithmsand
programs.Topicsincludeiteration,functions,arraysandvectors,strings,recursion,algorithms,objectoriented
programming,andMATLABgraphics.Assignmentsaredesignedtobuildanappreciationforcomplexity,
dimension,fuzzydata,inexactarithmetic,randomness,simulation,andtheroleofapproximation.NO
programmingexperienceisnecessarysomeknowledgeofCalculusisrequired.
Syllabus
Lectures
Projects
CS1130TransitiontoOOProgrammingCornellUniversity
IntroductiontoobjectorientedconceptsusingJava.Assumesprogrammingknowledgeinalanguagelike
MATLAB,C,C++,orFortran.StudentswhohavelearnedJavabutwerenotexposedheavilytoOO
programmingarewelcome.
Syllabus
Lectures
Assignments
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
12/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
CS1133TransitiontoPythonCornellUniversity
IntroductiontothePythonprogramminglanguage.CoversthebasicprogrammingconstructsofPython,
includingassignment,conditionals,iteration,functions,objectorienteddesign,arrays,andvectorized
computation.AssumesprogrammingknowledgeinalanguagelikeJava,Matlab,C,C++,orFortran.
Syllabus
Lectures
Assignments
CS2110ObjectOrientedProgrammingandDataStructuresCornellUniversity
CS2110isanintermediatelevelprogrammingcourseandanintroductiontocomputerscience.Topicsinclude
programdesignanddevelopment,debuggingandtesting,objectorientedprogramming,proofsofcorrectness,
complexityanalysis,recursion,commonlyuseddatastructures,graphalgorithms,andabstractdatatypes.Java
istheprincipalprogramminglanguage.Thecoursesyllabuscaneasilybeextractedbylookingatthelinkto
lectures.
Syllabus
Lectures
Assignments
CS4302WebInformationSystemsCornellUniversity
ThiscoursewillintroduceyoutotechnologiesforbuildingdatacentricinformationsystemsontheWorldWide
Web,showthepracticalapplicationsofsuchsystems,anddiscusstheirdesignandtheirsocialandpolicy
contextbyexaminingcrosscuttingissuessuchascitizenscience,datajournalismandopengovernment.
Courseworkinvolveslecturesandreadingsaswellasweeklyhomeworkassignments,andasemesterlong
projectinwhichthestudentsdemonstratetheirexpertiseinbuildingdatacentricWebinformationsystems.
Syllabus
Lectures
Assignments
CSCE2004ProgrammingFoundationsIUniversityofArkansas(Fayetteville)
Introductorycourseforstudentsmajoringincomputerscienceorcomputerengineering.Softwaredevelopment
process:problemspecification,programdesign,implementation,testinganddocumentation.Programming
topics:datarepresentation,conditionalanditerativestatements,functions,arrays,strings,fileI/O,andclasses.
UsingC++inaUNIXenvironment.
Syllabus
Notes
Assignments
PracticeExams
CSCE2014ProgrammingFoundations2UniversityofArkansas(Fayetteville)
Thiscoursecontinuesdevelopingproblemsolvingtechniquesbyfocusingonfundamentaldatastructuresand
associatedalgorithms.Topicsinclude:abstractdatatypes,introductiontoobjectorientedprogramming,linked
lists,stacks,queues,hashtables,binarytrees,graphs,recursion,andsearchingandsortingalgorithms.Using
C++inaUNIXenvironment.
Syllabus
Assignments
PracticeExams
6.001StructureandInterpretationofComputerProgramsMIT
TeachesbigpicturecomputingconceptsusingtheSchemeprogramminglanguage.Studentswillimplement
programsinavarietyofdifferentprogrammingparadigms(functional,objectoriented,logical).Heavyemphasis
onfunctioncomposition,codeasdata,controlabstractionwithcontinuations,andsyntacticabstractionthrough
macros.Anexcellentcourseifyouarelookingtobuildamentalframeworkonwhichtohangyourprogramming
knowledge.
Lectures
Textbook(epub,pdf)
IDE
CS14102andCS242020ComputerScienceIandIIforHackersUniversityofUtah
AnintrocourseinthespiritofSICPdesignedbyProfessorMatthewFlatt(oneoftheleaddesignersofRacket
andauthorofHtDP).MostlyRacketandC,andabitofJava,withexplanationsonhowhighlevelfunctional
programmingconceptsrelatetothedesignofOOPprograms.DothisonebeforeSICPifSICPisabittoo
much...
LecturesandAssignments1
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
13/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
LecturesandAssignments2
Textbook
RacketLanguage
CSforallCSforAllHarveyMuddCollege
Thisbook(andcourse)takesauniqueapproachtoIntroCS.Inanutshell,ourobjectiveistoprovidean
introductiontocomputerscienceasanintellectuallyrichandvibrantfieldratherthanfocusingexclusivelyon
computerprogramming.Whileprogrammingiscertainlyanimportantandpervasiveelementofourapproach,
weemphasizeconceptsandproblemsolvingoversyntaxandprogramminglanguagefeatures.
LecturesandOtherresources
MachineLearning
StatLearningIntrotoStatisticalLearningStanfordUniversity
Thisisanintroductorylevelcourseinsupervisedlearning,withafocusonregressionandclassification
methods.Thesyllabusincludes:linearandpolynomialregression,logisticregressionandlineardiscriminant
analysiscrossvalidationandthebootstrap,modelselectionandregularizationmethods(ridgeandlasso)
nonlinearmodels,splinesandgeneralizedadditivemodelstreebasedmethods,randomforestsandboosting
supportvectormachines.
ThelecturescoverallthematerialinAnIntroductiontoStatisticalLearning,withApplicationsinRwhichisa
moreapproachableversionoftheElementsofStatisticalLearning(orESL)book.
11785DeepLearningCarnegieMellonUniversity
Thecoursepresentsthesubjectthroughaseriesofseminarsandlabs,whichwillexploreitfromitsearly
beginnings,andworkthemselvestosomeofthestateoftheart.Theseminarswillcoverthebasicsofdeep
learningandtheunderlyingtheory,aswellasthebreadthofapplicationareastowhichithasbeenapplied,as
wellasthelatestissuesonlearningfromverylargeamountsofdata.Wewillconcentratelargely,althoughnot
entirely,ontheconnectionistarchitecturesthataremostcommonlyassociatedwithit.LecturesandReading
Notesareavailableonthepage.
10601MachineLearningCarnegieMellonUniversity
Thiscoursecoversthetheoryandpracticalalgorithmsformachinelearningfromavarietyofperspectives.It
coverstopicssuchasBayesiannetworks,decisiontreelearning,SupportVectorMachines,statisticallearning
methods,unsupervisedlearningandreinforcementlearning.Thecoursecoverstheoreticalconceptssuchas
inductivebias,thePAClearningframework,Bayesianlearningmethods,marginbasedlearning,andOccam's
Razor.Shortprogrammingassignmentsincludehandsonexperimentswithvariouslearningalgorithms.This
courseisdesignedtogiveagraduatelevelstudentathoroughgroundinginthemethodologies,technologies,
mathematicsandalgorithmscurrentlyneededbypeoplewhodoresearchinmachinelearning.
TaughtbyoneoftheleadingexpertsonMachineLearningTomMitchell
Lectures
ProjectIdeasandDatasets
EE103IntroductiontoMatrixMethodsStanfordUniversity
Thecoursecoversthebasicsofmatricesandvectors,solvinglinearequations,leastsquaresmethods,and
manyapplications.It'llcoverthemathematics,butthefocuswillbeonusingmatrixmethodsinapplicationssuch
astomography,imageprocessing,datafitting,timeseriesprediction,finance,andmanyothers.EE103isbased
onabookthatStephenBoydandLievenVandenberghearecurrentlywriting.Studentswilluseanewlanguage
calledJuliatodocomputationswithmatricesandvectors.
Lectures
Book
Assignments
Code
CS109DataScienceHarvardUniversity
Learningfromdatainordertogainusefulpredictionsandinsights.Thiscourseintroducesmethodsforfivekey
facetsofaninvestigation:datawrangling,cleaning,andsamplingtogetasuitabledatasetdatamanagement
tobeabletoaccessbigdataquicklyandreliablyexploratorydataanalysistogeneratehypothesesand
intuitionpredictionbasedonstatisticalmethodssuchasregressionandclassificationandcommunicationof
resultsthroughvisualization,stories,andinterpretablesummaries.
Lectures
Slides
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
14/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
LabsandAssignments
2013Lectures(slightlybetter)
CS188IntroductiontoArtificialIntelligenceUCBerkeley
Thiscoursewillintroducethebasicideasandtechniquesunderlyingthedesignofintelligentcomputersystems.
Aspecificemphasiswillbeonthestatisticalanddecisiontheoreticmodelingparadigm.Bytheendofthis
course,youwillhavebuiltautonomousagentsthatefficientlymakedecisionsinfullyinformed,partially
observableandadversarialsettings.Youragentswilldrawinferencesinuncertainenvironmentsandoptimize
actionsforarbitraryrewardstructures.Yourmachinelearningalgorithmswillclassifyhandwrittendigitsand
photographs.Thetechniquesyoulearninthiscourseapplytoawidevarietyofartificialintelligenceproblems
andwillserveasthefoundationforfurtherstudyinanyapplicationareayouchoosetopursue.
Lectures
Projects
Exams
CS224dDeepLearningforNaturalLanguageProcessingStanfordUniversity
Naturallanguageprocessing(NLP)isoneofthemostimportanttechnologiesoftheinformationage.
Understandingcomplexlanguageutterancesisalsoacrucialpartofartificialintelligence.ApplicationsofNLP
areeverywherebecausepeoplecommunicatemosteverythinginlanguage:websearch,advertisement,emails,
customerservice,languagetranslation,radiologyreports,etc.Therearealargevarietyofunderlyingtasksand
machinelearningmodelspoweringNLPapplications.Recently,deeplearningapproacheshaveobtainedvery
highperformanceacrossmanydifferentNLPtasks.Thesemodelscanoftenbetrainedwithasingleendtoend
modelanddonotrequiretraditional,taskspecificfeatureengineering.Inthisspringquartercoursestudentswill
learntoimplement,train,debug,visualizeandinventtheirownneuralnetworkmodels.Thecourseprovidesa
deepexcursionintocuttingedgeresearchindeeplearningappliedtoNLP.
Syllabus
LecturesandAssignments
CS231nConvolutionalNeuralNetworksforVisualRecognitionStanfordUniversity
ComputerVisionhasbecomeubiquitousinoursociety,withapplicationsinsearch,imageunderstanding,apps,
mapping,medicine,drones,andselfdrivingcars.Thiscourseisadeepdiveintodetailsofthedeeplearning
architectureswithafocusonlearningendtoendmodelsforthesetasks,particularlyimageclassification.
Duringthe10weekcourse,studentswilllearntoimplement,trainanddebugtheirownneuralnetworksand
gainadetailedunderstandingofcuttingedgeresearchincomputervision.
LectureNotes
GithubPage
CS287AdvancedRoboticsUCBerkeley
Thecourseintroducesthemathandalgorithmsunderneathstateoftheartroboticsystems.Themajorityof
thesetechniquesareheavilybasedonprobabilisticreasoningandoptimizationtwoareaswithwide
applicabilityinmodernArtificialIntelligence.Anintendedsideeffectofthecourseistogenerallystrengthenyour
expertiseinthesetwoareas.
LecturesNotes
Assignments
CS4780MachineLearningCornellUniversity
ThiscoursewillintroduceyoutotechnologiesforbuildingdatacentricinformationsystemsontheWorldWide
Web,showthepracticalapplicationsofsuchsystems,anddiscusstheirdesignandtheirsocialandpolicy
contextbyexaminingcrosscuttingissuessuchascitizenscience,datajournalismandopengovernment.
Courseworkinvolveslecturesandreadingsaswellasweeklyhomeworkassignments,andasemesterlong
projectinwhichthestudentsdemonstratetheirexpertiseinbuildingdatacentricWebinformationsystems.
Syllabus
Lectures
COMS4771MachineLearningColumbiaUniversity
CoursetaughtbyTonyJebaraintroducestopicsinMachineLearningforbothgenerativeanddiscriminative
estimation.Materialwillincludeleastsquaresmethods,Gaussiandistributions,linearclassification,linear
regression,maximumlikelihood,exponentialfamilydistributions,Bayesiannetworks,Bayesianinference,
mixturemodels,theEMalgorithm,graphicalmodels,hiddenMarkovmodels,supportvectormachines,and
kernelmethods.
LecturesandAssignments
CS395TStatisticalandDiscreteMethodsforScientificComputingUniversityofTexas
Practicalcourseinapplyingmodernstatisticaltechniquestorealdata,particularlybioinformaticdataandlarge
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
15/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
datasets.Theemphasisisonefficientcomputationandconcisecoding,mostlyinMATLABandC++.Topics
coveredincludeprobabilitytheoryandBayesianinferenceunivariatedistributionsCentralLimitTheorem
generationofrandomdeviatestail(pvalue)testsmultiplehypothesiscorrectionempiricaldistributionsmodel
fittingerrorestimationcontingencytablesmultivariatenormaldistributionsphylogeneticclusteringGaussian
mixturemodelsEMmethodsmaximumlikelihoodestimationMarkovChainMonteCarloprincipalcomponent
analysisdynamicprogramminghiddenMarkovmodelsperformancemeasuresforclassifierssupportvector
machinesWienerfilteringwaveletsmultidimensionalinterpolationinformationtheory.
LecturesandAssignments
CVX101ConvexOptimizationStanfordUniversity
Thecourseconcentratesonrecognizingandsolvingconvexoptimizationproblemsthatariseinapplications.
Topicsaddressedincludethefollowing.Convexsets,functions,andoptimizationproblems.Basicsofconvex
analysis.Leastsquares,linearandquadraticprograms,semidefiniteprogramming,minimax,extremalvolume,
andotherproblems.Optimalityconditions,dualitytheory,theoremsofalternative,andapplications.Interiorpoint
methods.Applicationstosignalprocessing,statisticsandmachinelearning,controlandmechanical
engineering,digitalandanalogcircuitdesign,andfinance.
Textbook
LecturesandAssignments
MachineLearning:20142015UniversityofOxford
ThecoursefocussesonneuralnetworksandusestheTorchdeeplearninglibrary(implementedinLua)for
exercisesandassignments.Topicsinclude:logisticregression,backpropagation,convolutionalneural
networks,maxmarginlearning,siamesenetworks,recurrentneuralnetworks,LSTMs,handwritingwith
recurrentneuralnetworks,variationalautoencodersandimagegenerationandreinforcementlearning
LecuturesandAssignments
Sourcecode
EECSE6894DeepLearningforComputerVisionandNaturalLanguageProcessingColumbiaUniversity
Thisgraduatelevelresearchclassfocusesondeeplearningtechniquesforvisionandnaturallanguage
processingproblems.Itgivesanoverviewofthevariousdeeplearningmodelsandtechniques,andsurveys
recentadvancesintherelatedfields.ThiscourseusesTheanoasthemainprogrammingingtool.GPU
programmingexperiencesarepreferredalthoughnotrequired.Frequentpaperpresentationsandaheavy
programmingworkloadareexpected.
Readings
Assignments
LectureNotes
Misc
AM207MonteCarloMethodsandStochasticOptimizationHarvardUniversity
ThiscourseintroducesimportantprinciplesofMonteCarlotechniquesanddemonstratesthepowerofthese
techniqueswithsimple(butveryuseful)applications.AllofthisinPython!
LectureVideos
Assignments
LectureNotes
CAP5415ComputerVisionUniversityofCentralFlorida
Anintroductorylevelcoursecoveringthebasictopicsofcomputervision,andintroducingsomefundamental
approachesforcomputervisionresearch.
LecturesandVideos
Assignments
CIS581ComputerVisionandComputationalPhotographyUniversityofPennsylvania
Anintroductorycourseincomputervisionandcomputationalphotographyfocusingonfourtopics:image
features,imagemorphing,shapematching,andimagesearch.
Lectures
Assignments
CIS4930/CIS5930OffensiveComputerSecurityFloridaStateUniversity
CoursetaughtbyW.OwenRedwoodandXiuwenLiu.Itcoversawiderangeofcomputersecuritytopics,
startingfromSecureCCodingandReverseEngineeringtoPenetrationTesting,ExploitationandWeb
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
16/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
ApplicationHacking,bothfromthedefensiveandtheoffensivepointofview.
LecturesandVideos
Assignments
CS75IntroductiontoGameDevelopmentTuftsUniversity
ThecoursetaughtbyMingY.ChowteachesgamedevelopmentinitiallyinPyGamethroughPython,before
movingontoaddressingallfacetsofgamedevelopment.Topicsaddressedincludegamephysics,sprites,
animation,gamedevelopmentmethodology,sound,testing,MMORPGsandonlinegames,andaddressing
mobiledevelopmentinAndroid,HTML5,andiOS.MosttoallofthedevelopmentisfocusedonPyGamefor
learningprinciples
TextLectures
Assignments
Labs
CS100OpenSourceSoftwareConstructionUCRiverside
Thisisacourseonhowtobeahacker.Yourfirstfourhomeworkassignmentswalkyouthroughtheprocessof
buildingyourownunixshell.You'llbedevelopingitasanopensourceproject,andyouwillcollaboratewith
eachotheratvariouspoints.
GithubPage
Assignments
CS193pDevelopingApplicationsforiOSStanfordUniversity
UpdatedforiOS7.ToolsandAPIsrequiredtobuildapplicationsfortheiPhoneandiPadplatformusingtheiOS
SDK.Userinterfacedesignsformobiledevicesanduniqueuserinteractionsusingmultitouchtechnologies.
Objectorienteddesignusingmodelviewcontrollerparadigm,memorymanagement,ObjectiveCprogramming
language.Othertopicsinclude:objectorienteddatabaseAPI,animation,multithreadingandperformance
considerations.
Prerequisites:Clanguageandobjectorientedprogrammingexperience
Recommended:ProgrammingAbstractions
UpdatedcoursesforiOS8Swift
CS223AIntroductiontoRoboticsStanfordUniversity
Thepurposeofthiscourseistointroduceyoutobasicsofmodeling,design,planning,andcontrolofrobot
systems.Inessence,thematerialtreatedinthiscourseisabriefsurveyofrelevantresultsfromgeometry,
kinematics,statics,dynamics,andcontrol.
Lectures
Assignments
CS3783DReconstructionwithComputerVisionUTexas
Inthislabbasedclass,we'lldiveintopracticalapplicationsof3Dreconstruction,combininghardwareand
softwaretobuildourown3Denvironmentsfromscratch.We'lluseopensourceframeworkslikeOpenCVtodo
theheavylifting,withthefocusonunderstandingandapplyingstateoftheartapproachestogeometric
computervision
Lectures
CS411SoftwareArchitectureDesignBilkentUniversity
Thiscourseteachesthebasicconcepts,methodsandtechniquesfordesigningsoftwarearchitectures.The
topicsinclude:rationaleforsoftwarearchitecturedesign,modelingsoftwarearchitecturedesign,architectural
styles/patterns,architecturalrequirementsanalysis,comparisonandevaluationofarchitecturedesignmethods,
synthesisbasedsoftwarearchitecturedesign,softwareproductlinearchitectures,domainmodeling,domain
engineeringandapplicationengineering,softwarearchitectureimplementation,evaluatingsoftwarearchitecture
designs.
CS3152IntroductiontoComputerGameDevelopmentCornellUniversity
Aprojectbasedcourseinwhichprogrammersanddesignerscollaboratetomakeacomputergame.This
courseinvestigatesthetheoryandpracticeofdevelopingcomputergamesfromablendoftechnical,aesthetic,
andculturalperspectives.Technicalaspectsofgamearchitectureincludesoftwareengineering,artificial
intelligence,gamephysics,computergraphics,andnetworking.Aestheticandculturalincludeartandmodeling,
soundandmusic,gamebalance,andplayerexperience.
Syllabus
Lectures
Assignments
CS4152AdvancedTopicsinComputerGameDevelopmentCornellUniversity
ProjectbasedfollowupcoursetoCS/INFO3152.Studentsworkinamultidisciplinaryteamtodevelopagame
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
17/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
thatincorporatesinnovativegametechnology.Advancedtopicsinclude3Dgamedevelopment,mobile
platforms,multiplayergaming,andnontraditionalinputdevices.Thereisaspecialemphasisondeveloping
gamesthatcanbesubmittedtofestivalsandcompetitions,orthatcanbecommercialized.
Syllabus
Lectures
Assignments
CS4154AnalyticsdrivenGameDesignCornellUniversity
Aprojectbasedcourseinwhichprogrammersanddesignerscollaboratetodesign,implement,andreleasea
videogameonlinethroughpopulargameportals.Inthiscourse,studentswillusetheinternettogatherdata
anonymouslyfromplayers.Studentswillanalyzethisdatainordertoimprovetheirgameovermultiple
iterations.Technicalaspectsofthiscourseincludeprogramming,databasearchitecture,andstatisticalanalysis.
Syllabus
Lectures
Assignments
CS4620IntroductiontoComputerGraphicsCornellUniversity
Thestudyofcreating,manipulating,andusingvisualimagesinthecomputer.
Assignments
Exams
CS4670IntroductiontoComputerVisionCornellUniversity
Thiscoursewillprovideanintroductiontocomputervision,withtopicsincludingimageformation,feature
detection,motionestimation,imagemosaics,3Dshapereconstruction,andobjectandfacedetectionand
recognition.Applicationsofthesetechniquesincludebuilding3Dmaps,creatingvirtualcharacters,organizing
photoandvideodatabases,humancomputerinteraction,videosurveillance,automaticvehiclenavigation,and
mobilecomputervision.Thisisaprojectbasedcourse,inwhichyouwillimplementseveralcomputervision
algorithmsthroughoutthesemester.
Assignments
Lectures
CS4700FoundationsofArtificialIntelligenceCornellUniversity
Thiscoursewillprovideanintroductiontocomputervision,withtopicsincludingimageformation,feature
detection,motionestimation,imagemosaics,3Dshapereconstruction,andobjectandfacedetectionand
recognition.Applicationsofthesetechniquesincludebuilding3Dmaps,creatingvirtualcharacters,organizing
photoandvideodatabases,humancomputerinteraction,videosurveillance,automaticvehiclenavigation,and
mobilecomputervision.Thisisaprojectbasedcourse,inwhichyouwillimplementseveralcomputervision
algorithmsthroughoutthesemester.
Assignments
Lectures
CS4786MachineLearningforDataScienceCornellUniversity
Anintroductorycourseinmachinelearning,withafocusondatamodelingandrelatedmethodsandlearning
algorithmsfordatasciences.Tentativetopiclist:
Dimensionalityreduction,suchasprincipalcomponentanalysis(PCA)andthesingularvalue
decomposition(SVD),canonicalcorrelationanalysis(CCA),independentcomponentanalysis(ICA),
compressedsensing,randomprojection,theinformationbottleneck.(Weexpecttocoversome,but
probablynotall,ofthesetopics).
Clustering,suchaskmeans,Gaussianmixturemodels,theexpectationmaximization(EM)algorithm,link
basedclustering.(Wedonotexpecttocoverhierarchicalorspectralclustering.).
Probabilisticmodelingtopicssuchasgraphicalmodels,latentvariablemodels,inference(e.g.,belief
propagation),parameterlearning.
Regressionwillbecoverediftimepermits.
Assignments
Lectures
CS4812QuantumInformationProcessingCornellUniversity
Hardwarethatexploitsquantumphenomenacandramaticallyalterthenatureofcomputation.Though
constructingaworkingquantumcomputerisaformidabletechnologicalchallenge,therehasbeenmuchrecent
experimentalprogress.Inaddition,thetheoryofquantumcomputationisofinterestinitself,offeringstrikingly
differentperspectivesonthenatureofcomputationandinformation,aswellasprovidingnovelinsightsintothe
conceptualpuzzlesposedbythequantumtheory.Thecourseisintendedbothforphysicists,unfamiliarwith
computationalcomplexitytheoryorcryptography,andalsoforcomputerscientistsandmathematicians,
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
18/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
unfamiliarwithquantummechanics.Theprerequisitesarefamiliarity(andcomfort)withfinitedimensionalvector
spacesoverthecomplexnumbers,somestandardgrouptheory,andabilitytocountinbinary.
Syllabus
Lectures
CS4860AppliedLogicCornellUniversity
Inadditiontobasicfirstorderlogic,whentaughtbyComputerSciencethiscourseinvolveselementsofFormal
MethodsandAutomatedReasoning.FormalMethodsisconcernedwithprovingpropertiesofalgorithms,
specifyingprogrammingtasksandsynthesizingprogramsfromproofs.Wewilluseformalmethodstoolssuch
asinteractiveproofassistants(seewww.nuprl.org).Wewillalsospendtwoweeksonconstructivetypetheory,
thelanguageusedbytheCoqandNuprlproofassistants.
Syllabus
Lectures
Assignments
CS5150SoftwareEngineeringCornellUniversity
Introductiontothepracticalproblemsofspecifying,designing,building,testing,anddeliveringreliablesoftware
systems
Lectures
Assignments
CS5220ApplicationsofParallelComputersCornellUniversity
Howdowesolvethelargescaleproblemsofsciencequicklyonmoderncomputers?Howdowemeasurethe
performanceofneworexistingsimulationcodes,andwhatthingscanwedotomakethemrunfaster?Howcan
webesttakeadvantageoffeatureslikemulticoreprocessors,vectorunits,andgraphicscoprocessors?These
arethetypesofquestionswewilladdressinCS5220,ApplicationsofParallelComputers.Topicsinclude:
Singleprocessorarchitecture,caches,andserialperformancetuning
Basicsofparallelmachineorganization
DistributedmemoryprogrammingwithMPI
SharedmemoryprogrammingwithOpenMP
Parallelpatterns:datapartitioning,synchronization,andloadbalancing
Examplesofparallelnumericalalgorithms
Applicationsfromscienceandengineering
Lectures
Assignments
CS5430SystemSecurityCornellUniversity
Thiscoursediscussessecurityforcomputersandnetworkedinformationsystems.Wefocusonabstractions,
principles,anddefensesforimplementingmilitaryaswellascommercialgradesecuresystems.
Syllabus
Lectures
Assignments
CS5540ComputationalTechniquesforAnalyzingClinicalDataCornellUniversity
CS5540isamasterslevelcoursethatcoversawiderangeofclinicalproblemsandtheirassociated
computationalchallenges.Thepracticeofmedicineisfilledwithdigitallyaccessibleinformationaboutpatients,
rangingfromEKGreadingstoMRIimagestoelectronichealthrecords.Thisposesahugeopportunityfor
computertoolsthatmakesenseoutofthisdata.Computationtoolscanbeusedtoanswerseemingly
straightforwardquestionsaboutasinglepatient'stestresults(Doesthispatienthaveanormalheartrhythm?),
ortoaddressvitalquestionsaboutlargepopulations(Isthereanyclinicalconditionthataffectstherisksof
Alzheimer).InCS5540wewilllookatmanyofthemostimportantsourcesofclinicaldataanddiscussthebasic
computationaltechniquesusedfortheiranalysis,ranginginsophisticationfromcurrentclinicalpracticetostate
oftheartresearchprojects.
Syllabus
Lectures
Assignments
CS5724EvolutionaryComputationCornellUniversity
Thiscoursewillcoveradvancedtopicsinevolutionaryalgorithmsandtheirapplicationtoopenended
computationaldesign.Thefieldofevolutionarycomputationtriestoaddresslargescaleoptimizationand
planningproblemsthroughstochasticpopulationbasedmethods.Itdrawsinspirationfromevolutionary
processesinnatureandinengineering,andalsoservesasabstractmodelsforthesephenomena.Evolutionary
processesaregenerallyweakmethodsthatrequirelittleinformationabouttheproblemdomainandhencecan
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
19/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
beappliedacrossawidevarietyofapplications.Theyareespeciallyusefulforopenendedproblemdomainsfor
whichlittleformalknowledgeexistsandthenumberofparametersisundefined,suchasforthegeneral
engineeringdesignprocess.Thiscoursewillprovideinsighttoavarietyofevolutionarycomputationparadigms,
suchasgeneticalgorithms,geneticprogramming,andevolutionarystrategies,aswellasgoverningdynamicsof
coevolution,armsracesandmediocrestablestates.Newmethodsinvolvingsymbiosismodelsandpattern
recognitionwillalsobepresented.Thematerialwillbeintertwinedwithdiscussionsofrepresentationsand
resultsfordesignproblemsinavarietyofproblemdomainsincludingsoftware,electronics,andmechanics.
Syllabus
Lectures
Assignments
CS6452EvolutionaryComputationCornellUniversity
CS6452focusesondatacenternetworksandservices.Theemergingdemandforwebservicesandcloud
computinghavecreatedneedforlargescaledatacenters.Thehardwareandsoftwareinfrastructurefor
datacenterscriticallydeterminesthefunctionality,performance,costandfailuretoleranceofapplications
runningonthatdatacenter.Thiscoursewillexaminedesignalternativesforboththehardware(networking)
infrastructure,andthesoftwareinfrastructurefordatacenters.
Syllabus
Lectures
CS6630RealisticImageSynthesisCornellUniversity
Thiscoursewillcoveradvancedtopicsinevolutionaryalgorithmsandtheirapplicationtoopenended
computationaldesign.Thefieldofevolutionarycomputationtriestoaddresslargescaleoptimizationand
planningproblemsthroughstochasticpopulationbasedmethods.Itdrawsinspirationfromevolutionary
processesinnatureandinengineering,andalsoservesasabstractmodelsforthesephenomena.Evolutionary
processesaregenerallyweakmethodsthatrequirelittleinformationabouttheproblemdomainandhencecan
beappliedacrossawidevarietyofapplications.Theyareespeciallyusefulforopenendedproblemdomainsfor
whichlittleformalknowledgeexistsandthenumberofparametersisundefined,suchasforthegeneral
engineeringdesignprocess.Thiscoursewillprovideinsighttoavarietyofevolutionarycomputationparadigms,
suchasgeneticalgorithms,geneticprogramming,andevolutionarystrategies,aswellasgoverningdynamicsof
coevolution,armsracesandmediocrestablestates.Newmethodsinvolvingsymbiosismodelsandpattern
recognitionwillalsobepresented.Thematerialwillbeintertwinedwithdiscussionsofrepresentationsand
resultsfordesignproblemsinavarietyofproblemdomainsincludingsoftware,electronics,andmechanics.
Syllabus
Lectures
Assignments
Readings
CS6640RealisticImageSynthesisCornellUniversity
Acourseontheemergingapplicationsofcomputationinphotography.Likelytopicsincludedigitalphotography,
unconventionalcamerasandoptics,lightfieldcameras,imageprocessingforphotography,techniquesfor
combiningmultipleimages,advancedimageeditingalgorithms,andprojectorcamera
systems.cornell.edu/courses/CS6630/2012sp/about.stm)
Lectures
Assignments
CS6650ComputationalMotionCornellUniversity
Coverscomputationalaspectsofmotion,broadlyconstrued.Topicsincludethecomputerrepresentation,
modeling,analysis,andsimulationofmotion,anditsrelationshiptovariousareas,includingcomputational
geometry,meshgeneration,physicalsimulation,computeranimation,robotics,biology,computervision,
acoustics,andspatiotemporaldatabases.Studentsimplementseveralofthealgorithmscoveredinthecourse
andcompleteafinalproject.Thisofferingwillalsoexplorethespecialroleofmotionprocessinginphysically
basedsoundrendering.
CS6670ComputerVisionCornellUniversity
Introductiontocomputervision.Topicsincludeedgedetection,imagesegmentation,stereopsis,motionand
opticalflow,imagemosaics,3Dshapereconstruction,andobjectrecognition.Studentsarerequiredto
implementseveralofthealgorithmscoveredinthecourseandcompleteafinalproject.
Syllabus
Lectures
Assignments
CS6700AdvancedArtificialIntelligenceCornellUniversity
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
20/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
Thedesignofsystemsthatareamongtop10performersintheworld(human,computer,orhybridhuman
computer).
Syllabus
Lectures
Readings
CS6840AlgorithmicGameTheoryCornellUniversity
AlgorithmicGameTheorycombinesalgorithmicthinkingwithgametheoretic,or,moregenerally,economic
concepts.Thecoursewillstudyarangeoftopicsatthisinterface
Syllabus
Lectures
Assignments
Readings
CSE154WebProgrammingUniversityofWashington
ThiscourseisanintroductiontoprogrammingfortheWorldWideWeb.CoversuseofHTML,CSS,PHP,
JavaScript,AJAX,andSQL.
Lectures
Assignments
EECS588Computer&NetworkSecurityUniversityofMichigan
TaughtbyJ.AlexHaldermanwhohasanalyzedthesecurityofElectronicVotingMachinesintheUSandover
seas.
Thisintensiveresearchseminarcoversfoundationalworkandcurrenttopicsincomputersystemssecurity.
Readings
ESM2964FGIS&SpatialAnalysisUCSantaBarbara
TaughtbyJamesFrew,BenBest,andLisaWedding
Focusesonspecificcomputationallanguages(e.g.,Python,R,shell)andtools(e.g.,GDAL/OGR,InVEST,
MGET,ModelBuilder)appliedtothespatialanalysisofenvironmentalproblems
GitHub(includeslecturematerialsandlabs)
ICS314SoftwareEngineeringUniversityofHawaii
TaughtbyPhilipJohnson
Introductiontosoftwareengineeringusingthe"AthleticSoftwareEngineering"pedagogy
Readings
Experiences
Assessments
IGME582HumanitarianFree&OpenSourceSoftwareDevelopmentRochesterInstituteofTechnology
Thiscourseprovidesstudentswithexposuretothedesign,creationandproductionofOpenSourceSoftware
projects.Studentswillbeintroducedtothehistoricintersectionsoftechnologyandintellectualpropertyrights
andwillbecomefamiliarwithOpenSourcedevelopmentprocesses,toolsandpractices.
I485/H400BiologicallyInspiredComputationIndianaUniversity
CoursetaughtbyLuisRochaaboutthemultidisciplinaryfieldalgorithmsinspiredbynaturallyoccurring
phenomenon.Thiscourseprovidesintroducesthefollowingareas:Lsystems,CellularAutomata,Emergence,
GeneticAlgorithms,SwarmIntelligenceandArtificialImmuneSystems.It'saimistocoverthefundamentalsand
enablereaderstobuildupaproficiencyinapplyingvariousalgorithmstorealworldproblems.
Lectures
Assignments
OpenSourcedElective:DatabaseandRailsIntrotoRubyonRailsUniversityofTexas
AnintroductorycourseinRubyonRailsopensourcedbyUniversityofTexas'CSAdjunctProfessor,Richard
Schneeman.
Lectures
Assignments
Videos
Info290AnalyzingBigDatawithTwitterUCBerkeleyschoolofinformation
Inthiscourse,UCBerkeleyprofessorsandTwitterengineersprovidelecturesonthemostcuttingedge
algorithmsandsoftwaretoolsfordataanalyticsasappliedtoTwitter'sdata.Topicsincludeappliednatural
languageprocessingalgorithmssuchassentimentanalysis,largescaleanomalydetection,realtimesearch,
informationdiffusionandoutbreakdetection,trenddetectioninsocialstreams,recommendationalgorithms,and
advancedframeworksfordistributedcomputing.
LectureVideos
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
21/22
8/28/2015
awesomecourses/README.mdatmasterprakhar1989/awesomecoursesGitHub
PreviousYearscoursepage
CS294CuttingedgeWebTechnologiesBerkeley
Wanttolearnwhatmakesfuturewebtechnologiestick?Joinusfortheclasswherewewilldiveintothe
internalsofmanyofthenewestwebtechnologies,analyzeanddissectthem.Wewillconductsurveylecturesto
providethebackgroundandoverviewoftheareaaswellasinviteguestlecturersfromvariousleadingprojects
topresenttheirtechnologies.
EECSE6893&EECSE6895BigDataAnalytics&AdvancedBigDataAnalyticsColumbiaUniversity
StudentswillgainknowledgeonanalyzingBigData.Itservesasanintroductorycourseforgraduatestudents
whoareexpectingtofaceBigDatastorage,processing,analysis,visualization,andapplicationissuesonboth
workplacesandresearchenvironments.
TaughtbyDr.ChingYungLin
CourseSite
AssignmentsAssignmentsarepresentintheCourseSlides
SCICOMPAnIntroductiontoEfficientScientificComputationUniversittBremen
ThisisagraduatecourseinscientificcomputingcreatedandtaughtbyOliverSerangin2014,whichcovers
topicsincomputerscienceandstatisticswithapplicationsfrombiology.Thecourseisdesignedtopdown,
startingwithaproblemandthenderivingavarietyofsolutionsfromscratch.
Topicsincludememoization,recurrenceclosedforms,stringmatching(sorting,hashtables,radixtries,and
suffixtries),dynamicprogramming(e.g.SmithWatermanandNeedlemanWunsch),Bayesianstatistics(e.g.
theenvelopeparadox),graphicalmodels(HMMs,Viterbi,junctiontree,beliefpropagation),FFT,andthe
probabilisticconvolutiontree.
LecturevideosonYoutubeandfordirectdownload
6.858ComputerSystemsSecurityMIT
Designandimplementationofsecurecomputersystems.Lecturescoverthreatmodels,attacksthat
compromisesecurity,andtechniquesforachievingsecurity,basedonrecentresearchpapers.Topicsinclude
operatingsystem(OS)security,capabilities,informationflowcontrol,languagesecurity,networkprotocols,
hardwaresecurity,andsecurityinwebapplications.
TaughtbyJamesMickensandNickolaiZeldovich
VideoLecturesandLabs
Quizzes
Readings
FinalProjects
14740FundamentalsofComputerNetworksCMU
ThisisanintroductorycourseonNetworkingforgraduatestudents.Itfollowsatopdownapproachtoteaching
ComputerNetworks,soitstartswiththeApplicationlayerwhichmostofthestudentsarefamiliarwithandas
thecourseunravelswelearnmoreabouttransport,networkandlinklayersoftheprotocolstack.
Asfarasprerequisitesareconcernedbasiccomputer,programmingandprobabilitytheorybackgroundis
required.
Thecoursesitecontainslinkstothelecturevideos,readingmaterialandassignments.
https://github.com/prakhar1989/awesomecourses/blob/master/README.md
22/22