ossu/computer-science: Path to a free self-taught ... - GitHub
文章推薦指數: 80 %
This course will introduce you to the world of computer science. Students who have been introduced to programming, either from the courses above or through ...
Skiptocontent
{{message}}
ossu
/
computer-science
Public
Notifications
Fork
15.9k
Star
117k
🎓Pathtoafreeself-taughteducationinComputerScience!
License
MITlicense
117k
stars
15.9k
forks
Star
Notifications
Code
Issues
9
Pullrequests
3
Actions
Projects
0
Wiki
Security
Insights
More
Code
Issues
Pullrequests
Actions
Projects
Wiki
Security
Insights
ossu/computer-science
Thiscommitdoesnotbelongtoanybranchonthisrepository,andmaybelongtoaforkoutsideoftherepository.
master
Branches
Tags
Couldnotloadbranches
Nothingtoshow
{{refName}}
default
Couldnotloadtags
Nothingtoshow
{{refName}}
default
3
branches
5
tags
Code
Latestcommit
waciumawanjohi
AddDSATextbooktoExtras
…
ee63ae2
Jun11,2022
AddDSATextbooktoExtras
Thankyouto@hamzakat
Closes#994
ee63ae2
Gitstats
934
commits
Files
Permalink
Failedtoloadlatestcommitinformation.
Type
Name
Latestcommitmessage
Committime
.github/ISSUE_TEMPLATE
Updateissuetemplates
Feb17,2021
extras
AddDSATextbooktoExtras
Jun11,2022
.gitignore
Update.gitignore
Aug16,2020
CHANGELOG.md
Makenotemoreprominent
May8,2020
CONTRIBUTING.md
Updatelinktocurricularguidelines
May18,2020
CURRICULAR_GUIDELINES.md
ClarifythatCS2013isthecurricularguidanceforOSSU
May3,2020
FAQ.md
AddlinktogoodreadsinFAQ
Feb3,2022
HELP.md
UseDiscordWidget
Sep16,2020
LICENSE
UpdateLicensefilecopyrightyear
Jan29,2020
PROJECTS.md
RemovedProjectwithDeadLink
Jul21,2021
README.md
MathforCS2010,2015/2019solutions
Jun11,2022
Viewcode
OpenSourceSocietyUniversity
Contents
Summary
Community
Curriculum
Prerequisites
IntroCS
IntroductiontoProgramming
IntroductiontoComputerScience
CoreCS
Coreprogramming
Coremath
CSTools
Coresystems
Coretheory
Coresecurity
Coreapplications
Coreethics
AdvancedCS
Advancedprogramming
Advancedsystems
Advancedtheory
Advancedmath
Finalproject
Evaluation
Cooperativework
WhichprogramminglanguagesshouldIuse?
Congratulations
Codeofconduct
Howtoshowyourprogress
Team
README.md
OpenSourceSocietyUniversity
Pathtoafreeself-taughteducationinComputerScience!
Contents
Summary
Community
Curriculum
Codeofconduct
Team
Summary
TheOSSUcurriculumisacompleteeducationincomputerscienceusingonlinematerials.
It'snotmerelyforcareertrainingorprofessionaldevelopment.
It'sforthosewhowantaproper,well-roundedgroundinginconceptsfundamentaltoallcomputingdisciplines,
andforthosewhohavethediscipline,will,and(mostimportantly!)goodhabitstoobtainthiseducationlargelyontheirown,
butwithsupportfromaworldwidecommunityoffellowlearners.
Itisdesignedaccordingtothedegreerequirementsofundergraduatecomputersciencemajors,minusgeneraleducation(non-CS)requirements,
asitisassumedmostofthepeoplefollowingthiscurriculumarealreadyeducatedoutsidethefieldofCS.
Thecoursesthemselvesareamongtheverybestintheworld,oftencomingfromHarvard,Princeton,MIT,etc.,
butspecificallychosentomeetthefollowingcriteria.
Coursesmust:
Beopenforenrollment
Runregularly(ideallyinself-pacedformat,otherwiserunningmultipletimesperyear)
Beofgenerallyhighqualityinteachingmaterialsandpedagogicalprinciples
MatchthecurricularstandardsoftheCS2013:CurriculumGuidelinesforUndergraduateDegreeProgramsinComputerScience
Whennocoursemeetstheabovecriteria,thecourseworkissupplementedwithabook.
Whentherearecoursesorbooksthatdon'tfitintothecurriculumbutareotherwiseofhighquality,
theybelonginextras/coursesorextras/readings.
Organization.Thecurriculumisdesignedasfollows:
IntroCS:forstudentstotryoutCSandseeifit'srightforthem
CoreCS:correspondsroughlytothefirstthreeyearsofacomputersciencecurriculum,takingclassesthatallmajorswouldberequiredtotake
AdvancedCS:correspondsroughlytothefinalyearofacomputersciencecurriculum,takingelectivesaccordingtothestudent'sinterests
FinalProject:aprojectforstudentstovalidate,consolidate,anddisplaytheirknowledge,tobeevaluatedbytheirpeersworldwide
Duration.Itispossibletofinishwithinabout2yearsifyouplancarefullyanddevoteroughly20hours/weektoyourstudies.Learnerscanusethisspread
toestimatetheirenddate.MakeacopyandinputyourstartdateandexpectedhoursperweekintheTimelinesheet.AsyouworkthroughcoursesyoucanenteryouractualcoursecompletiondatesintheCurriculumDatasheetandgetupdatedcompletionestimates.
Cost.Allornearlyallcoursematerialisavailableforfree.However,somecoursesmaychargemoneyforassignments/tests/projectstobegraded.
NotethatbothCourseraandedXofferfinancialaid.
Decidehowmuchorhowlittletospendbasedonyourowntimeandbudget;
justrememberthatyoucan'tpurchasesuccess!
Process.Studentscanworkthroughthecurriculumaloneoringroups,inorderoroutoforder.
WerecommenddoingallcoursesinCoreCS,onlyskippingacoursewhenyouarecertainthatyou'vealreadylearnedthematerialpreviously.
Forsimplicity,werecommendworkingthroughcourses(especiallyCoreCS)inorderfromtoptobottom,astheyhavealreadybeentopologicallysortedbytheirprerequisites.
CoursesinAdvancedCSareelectives.Chooseonesubject(e.g.Advancedprogramming)youwanttobecomeanexpertinandtakeallthecoursesunderthatheading.Youcanalsocreateyourowncustomsubject,butwerecommendgettingvalidationfromthecommunityonthesubjectyouchoose.
Contentpolicy.Ifyouplanonshowingoffsomeofyourcourseworkpublicly,youmustshareonlyfilesthatyouareallowedto.
DoNOTdisrespectthecodeofconductthatyousignedinthebeginningofeachcourse!
Howtocontribute
Gettinghelp(DetailsaboutourFAQandchatroom)
Community
Wehaveadiscordserver!ThisshouldbeyourfirststoptotalkwithotherOSSUstudents.Whydon'tyouintroduceyourselfrightnow?JointheOSSUDiscord
YoucanalsointeractthroughGitHubissues.Ifthereisaproblemwithacourse,orachangeneedstobemadetothecurriculum,thisistheplacetostarttheconversation.Readmorehere.
Subscribetoournewsletter.
AddOpenSourceSocietyUniversitytoyourLinkedinprofile!
Note:ThereisanunmaintainedanddeprecatedfirebaseappthatyoumightfindwhensearchingOSSU.Youcansafelyignoreit.ReadmoreintheFAQ.
Curriculum
Curriculumversion:8.0.0(seeCHANGELOG)
Prerequisites
IntroCS
IntroductiontoProgramming
IntroductiontoComputerScience
CoreCS
Coreprogramming
Coremath
CSTools
Coresystems
Coretheory
Coresecurity
Coreapplications
Coreethics
AdvancedCS
Advancedprogramming
Advancedsystems
Advancedtheory
Advancedmath
Finalproject
Prerequisites
CoreCSassumesthestudenthasalreadytakenhighschoolmath,includingalgebra,geometry,andpre-calculus.
AdvancedCSassumesthestudenthasalreadytakentheentiretyofCoreCS
andisknowledgeableenoughnowtodecidewhichelectivestotake.
NotethatAdvancedsystemsassumesthestudenthastakenabasicphysicscourse(e.g.APPhysicsinhighschool).
IntroCS
IntroductiontoProgramming
Ifyou'veneverwrittenafor-loop,ordon'tknowwhatastringisinprogramming,starthere.Thiscourseisself-paced,allowingyoutoadjustthenumberofhoursyouspendperweektomeetyourneeds.
Topicscovered:
simpleprograms
simpledatastructures
Courses
Duration
Effort
Prerequisites
Discussion
PythonforEverybody
10weeks
10hours/week
none
chat
IntroductiontoComputerScience
Thiscoursewillintroduceyoutotheworldofcomputerscience.Studentswhohavebeenintroducedtoprogramming,eitherfromthecoursesaboveorthroughstudyelsewhere,shouldtakethiscourseforaflavorofthematerialtocome.Ifyoufinishthecoursewantingmore,ComputerScienceislikelyforyou!
Topicscovered:
computation
imperativeprogramming
basicdatastructuresandalgorithms
andmore
Courses
Duration
Effort
Prerequisites
Discussion
IntroductiontoComputerScienceandProgrammingusingPython(alt)
9weeks
15hours/week
highschoolalgebra
chat
CoreCS
AllcourseworkunderCoreCSisrequired,unlessotherwiseindicated.
Coreprogramming
Topicscovered:
functionalprogramming
designfortesting
programrequirements
commondesignpatterns
unittesting
object-orienteddesign
statictyping
dynamictyping
ML-familylanguages(viaStandardML)
Lisp-familylanguages(viaRacket)
Ruby
andmore
TheHowtoCodecoursesarebasedonthetextbookHowtoDesignPrograms.TheFirstEditionisavailableforfreeonlineandincludesproblemsetsandsolutions.Studentsareencouragedtodotheseassignments.
Courses
Duration
Effort
Prerequisites
Discussion
HowtoCode-SimpleData
7weeks
8-10hours/week
none
chat
HowtoCode-ComplexData
6weeks
8-10hours/week
HowtoCode:SimpleData
chat
ProgrammingLanguages,PartA
5weeks
4-8hours/week
HowtoCode(Hearinstructor)
chat
ProgrammingLanguages,PartB
3weeks
4-8hours/week
ProgrammingLanguages,PartA
chat
ProgrammingLanguages,PartC
3weeks
4-8hours/week
ProgrammingLanguages,PartB
chat
Object-OrientedDesign
4weeks
4hours/week
BasicJava
DesignPatterns
4weeks
4hours/week
Object-OrientedDesign
SoftwareArchitecture
4weeks
2-5hours/week
DesignPatterns
Coremath
Discretemath(MathforCS)isaprerequisiteandcloselyrelatedtothestudyofalgorithmsanddatastructures.Calculusbothpreparesstudentsfordiscretemathandhelpsstudentsdevelopmathematicalmaturity.
Topicscovered:
discretemathematics
mathematicalproofs
basicstatistics
O-notation
discreteprobability
andmore
Courses
Duration
Effort
Notes
Prerequisites
Discussion
Calculus1A:Differentiation(alt)
13weeks
6-10hours/week
Thealternatecoversthisandthefollowing2courses
highschoolmath
chat
Calculus1B:Integration
13weeks
5-10hours/week
-
Calculus1A
chat
Calculus1C:CoordinateSystems&InfiniteSeries
6weeks
5-10hours/week
-
Calculus1B
chat
MathematicsforComputerScience(alt)
13weeks
5hours/week
2015/2019solutions2010solutions2005solutions.
Calculus1C
chat
CSTools
Understandingtheoryisimportant,butyouwillalsobeexpectedtocreateprograms.Thereareanumberoftoolsthatarewidelyusedtomakethatprocesseasier.Learnthemnowtoeaseyourfutureworkwritingprograms.
Topicscovered:
terminalsandshellscripting
vim
commandlineenvironments
versioncontrol
andmore
Courses
Duration
Effort
Prerequisites
Discussion
TheMissingSemesterofYourCSEducation
2weeks
12hours/week
-
chat
Coresystems
Topicscovered:
proceduralprogramming
manualmemorymanagement
booleanalgebra
gatelogic
memory
computerarchitecture
assembly
machinelanguage
virtualmachines
high-levellanguages
compilers
operatingsystems
networkprotocols
andmore
Courses
Duration
Effort
AdditionalText/Assignments
Prerequisites
Discussion
BuildaModernComputerfromFirstPrinciples:FromNandtoTetris(alt)
6weeks
7-13hours/week
-
C-likeprogramminglanguage
chat
BuildaModernComputerfromFirstPrinciples:NandtoTetrisPartII
6weeks
12-18hours/week
-
oneoftheseprogramminglanguages,FromNandtoTetrisPartI
chat
OperatingSystems:ThreeEasyPieces
10-12weeks
6-10hours/week
-
algorithms,familiaritywithCisuseful
chat
ComputerNetworking:aTop-DownApproach
8weeks
4–12hours/week
WiresharkLabs
algebra,probability,basicCS
chat
Coretheory
Topicscovered:
divideandconquer
sortingandsearching
randomizedalgorithms
graphsearch
shortestpaths
datastructures
greedyalgorithms
minimumspanningtrees
dynamicprogramming
NP-completeness
andmore
Courses
Duration
Effort
Prerequisites
Discussion
DivideandConquer,SortingandSearching,andRandomizedAlgorithms
4weeks
4-8hours/week
anyprogramminglanguage,MathematicsforComputerScience
chat
GraphSearch,ShortestPaths,andDataStructures
4weeks
4-8hours/week
DivideandConquer,SortingandSearching,andRandomizedAlgorithms
chat
GreedyAlgorithms,MinimumSpanningTrees,andDynamicProgramming
4weeks
4-8hours/week
GraphSearch,ShortestPaths,andDataStructures
chat
ShortestPathsRevisited,NP-CompleteProblemsandWhatToDoAboutThem
4weeks
4-8hours/week
GreedyAlgorithms,MinimumSpanningTrees,andDynamicProgramming
chat
Coresecurity
Topicscovered
Confidentiality,Integrity,Availability
SecureDesign
DefensiveProgramming
ThreatsandAttacks
NetworkSecurity
Cryptography
andmore
Courses
Duration
Effort
Prerequisites
Discussion
InformationSecurity:ContextandIntroduction
5weeks
3hours/week
-
chat
PrinciplesofSecureCoding
4weeks
4hours/week
-
chat
IdentifyingSecurityVulnerabilities
4weeks
4hours/week
-
chat
Chooseoneofthefollowing:
Courses
Duration
Effort
Prerequisites
Discussion
IdentifyingSecurityVulnerabilitiesinC/C++Programming
4weeks
5hours/week
-
chat
ExploitingandSecuringVulnerabilitiesinJavaApplications
4weeks
5hours/week
-
chat
Coreapplications
Topicscovered:
Agilemethodology
REST
softwarespecifications
refactoring
relationaldatabases
transactionprocessing
datamodeling
neuralnetworks
supervisedlearning
unsupervisedlearning
OpenGL
raytracing
andmore
Courses
Duration
Effort
Prerequisites
Discussion
Databases:ModelingandTheory
2weeks
10hours/week
coreprogramming
chat
Databases:RelationalDatabasesandSQL
2weeks
10hours/week
coreprogramming
chat
Databases:SemistructuredData
2weeks
10hours/week
coreprogramming
chat
MachineLearning
11weeks
4-6hours/week
linearalgebra
chat
ComputerGraphics
6weeks
12hours/week
C++orJava,linearalgebra
chat
SoftwareEngineering:Introduction
6weeks
8-10hours/week
CoreProgramming,andasizableproject
chat
Coreethics
Topicscovered:
SocialContext
AnalyticalTools
ProfessionalEthics
IntellectualProperty
PrivacyandCivilLiberties
andmore
Courses
Duration
Effort
Prerequisites
Discussion
Ethics,TechnologyandEngineering
9weeks
2hours/week
none
chat
IntroductiontoIntellectualProperty
4weeks
2hours/week
none
chat
DataPrivacyFundamentals
3weeks
3hours/week
none
chat
AdvancedCS
AftercompletingeveryrequiredcourseinCoreCS,studentsshouldchooseasubsetofcoursesfromAdvancedCSbasedoninterest.
Noteverycoursefromasubcategoryneedstobetaken.
Butstudentsshouldtakeeverycoursethatisrelevanttothefieldtheyintendtogointo.
Advancedprogramming
Topicscovered:
debuggingtheoryandpractice
goal-orientedprogramming
parallelcomputing
object-orientedanalysisanddesign
UML
large-scalesoftwarearchitectureanddesign
andmore
Courses
Duration
Effort
Prerequisites
ParallelProgramming
4weeks
6-8hours/week
Scalaprogramming
Compilers
9weeks
6-8hours/week
none
IntroductiontoHaskell
14weeks
-
-
LearnPrologNow!(alt)*
12weeks
-
-
SoftwareDebugging
8weeks
6hours/week
Python,object-orientedprogramming
SoftwareTesting
4weeks
6hours/week
Python,programmingexperience
(*)bookbyBlackburn,Bos,Striegnitz(compiledfromsource,redistributedunderCClicense)
Advancedsystems
Topicscovered:
digitalsignaling
combinationallogic
CMOStechnologies
sequentiallogic
finitestatemachines
processorinstructionsets
caches
pipelining
virtualization
parallelprocessing
virtualmemory
synchronizationprimitives
systemcallinterface
andmore
Courses
Duration
Effort
Prerequisites
ComputationStructures1:DigitalCircuits
10weeks
6hours/week
Nand2TetrisII
ComputationStructures2:ComputerArchitecture
10weeks
6hours/week
ComputationStructures1
ComputationStructures3:ComputerOrganization
10weeks
6hours/week
ComputationStructures2
Advancedtheory
Topicscovered:
formallanguages
Turingmachines
computability
event-drivenconcurrency
automata
distributedsharedmemory
consensusalgorithms
statemachinereplication
computationalgeometrytheory
propositionallogic
relationallogic
Herbrandlogic
gametrees
andmore
Courses
Duration
Effort
Prerequisites
TheoryofComputation(Lectures)
8weeks
10hours/week
discretemathematics,logic,algorithms
ComputationalGeometry
16weeks
8hours/week
algorithms,C++
GameTheory
8weeks
3hours/week
mathematicalthinking,probability,calculus
Advancedmath
Courses
Duration
Effort
Prerequisites
Discussion
EssenceofLinearAlgebra
-
-
highschoolmath
chat
LinearAlgebra
14weeks
12hours/week
corequisite:EssenceofLinearAlgebra
chat
IntroductiontoNumericalMethods
14weeks
12hours/week
LinearAlgebra
chat
IntroductiontoLogic
10weeks
4-8hours/week
settheory
chat
Probability
24weeks
12hours/week
DifferentiationandIntegration
chat
Finalproject
OSSUniversityisproject-focused.
Theassignmentsandexamsforeachcoursearetoprepareyoutouseyourknowledgetosolvereal-worldproblems.
Afteryou'vegottenthroughallofCoreCSandthepartsofAdvancedCSrelevanttoyou,youshouldthinkaboutaproblemthatyoucansolveusingtheknowledgeyou'veacquired.
Notonlydoesrealprojectworklookgreatonaresume,buttheprojectwillalsovalidateandconsolidateyourknowledge.
Youcancreatesomethingentirelynew,oryoucanfindanexistingprojectthatneedshelpviawebsiteslike
CodeTriage
or
FirstTimersOnly.
Studentswhowouldlikemoreguidanceincreatingaprojectmaychoosetouseaseriesofprojectorientedcourses.Hereisasampleofoptions(manymoreareavailable,atthispointyoushouldbecapableofidentifyingaseriesthatisinterestingandrelevanttoyou):
Courses
Duration
Effort
Prerequisites
FullstackOpen
12weeks
15hours/week
programming
ModernRobotics(Specialization)
26weeks
2-5hours/week
freshman-levelphysics,linearalgebra,calculus,linearordinarydifferentialequations
DataMining(Specialization)
30weeks
2-5hours/week
machinelearning
BigData(Specialization)
30weeks
3-5hours/week
none
InternetofThings(Specialization)
30weeks
1-5hours/week
strongprogramming
CloudComputing(Specialization)
30weeks
2-6hours/week
C++programming
DataScience(Specialization)
43weeks
1-6hours/week
none
FunctionalProgramminginScala(Specialization)
29weeks
4-5hours/week
Oneyearprogrammingexperience
GameDesignandDevelopmentwithUnity2020(Specialization)
6months
5hours/week
programming,interactivedesign
Evaluation
Uponcompletingyourfinalproject:
Submityourproject'sinformationtoPROJECTSviaapullrequest.
PuttheOSSU-CSbadgeintheREADMEofyourrepository!
Markdown:[![OpenSourceSocietyUniversity-ComputerScience](https://img.shields.io/badge/OSSU-computer--science-blue.svg)](https://github.com/ossu/computer-science)
HTML:
延伸文章資訊
- 110 Best Computer Science Courses to Take in 2022
- 2Search | MIT OpenCourseWare | Free Online Course Materials
MIT OpenCourseWare is a web-based publication of virtually all MIT course content. OCW is open an...
- 38 Best Computer Science Courses for Beginners to Learn Online in 2022
- 4Search | MIT OpenCourseWare | Free Online Course Materials
MIT OpenCourseWare is a web-based publication of virtually all MIT course content. OCW is open an...
- 5What are the best open course sites for Computer Science ...
1. Introduction to Programming · 2. Data Structures · 3. Design & Analysis of Algorithms · 4. Dat...