what is up guys fire saying today we're
gonna be talking about the open source
computer science ticker enough felt like
I spent like a thousand hours on this
thing for the past week or two I've been
curating this list figuring out what
requirements need to be fulfilled for an
undergraduate computer science degree I
took my own personal experience with my
degree program I looked at a bunch of
different you know higher up Ivy League
type school computer science degree
programs and this open source computer
science degree our courses that will
satisfy your computer science
undergraduate requirements all accept
general education because we don't
really care too much about art history
but when it comes to the actual computer
science aspect of things and what is
required for the actual computer science
degree this is what I came up with so
here we have the open source computer
science degree and I have a few
different categories within this I have
the computer science basics I've
programming I have math I have systems
I've theory I have applications and I've
UNIX I did take a bit of help from a few
sources I'll leave all the sources down
in the description below because when I
was doing some of my research I stumbled
across some of some other people or
companies if you will that did something
similar to this but this is my take on
him before we actually get into the
courses the list of courses let me
explain the layout of what of everything
and kind of how I found the courses so I
found the courses I used class central
so as you can see we have a lot of
different courses depending on what you
want to learn for us obviously the
computer science and that is 1118
courses that's a lot that was a lot for
me to go through and figure out what I
found to be best for what we needed for
the little degree that I put together
over here
but based on that requirement structure
that I just mentioned I used this to
search and basically you know intro to
CS or something about machine learning
and what have you and that this is the
tool I used oh and one other thing I'm
not sure if I mention this in the video
yet it's kind of crucial the reason this
is called the open source computer
science degree is because all of the
classes are open source notice I use
this tool
which is specifically labeled free
online courses or computer science so
all of these are free and what you'll
notice is that all of the courses that I
have chosen are available on edx.org
udacity.com
in coursera.org what you'll notice about
Coursera is that there are payment
options but what you're able to do is
some courses you're able to access for
free just flat out and then other
courses you're able to access via the
audit system so instead of buying a
whole entire program or structures
something that consists of four or five
six courses you can just ask for one
course audit the course and what
Coursera essentially wants you to do
once you audit is to buy that whole
entire certification or what have you
but instead you can just audit it for
free and that's what I would encourage
you to do considering this is all about
getting the knowledge of a computer
science degree for free all right so
let's talk about how I set up all of
this I realized into doing all this
research it would make much more sense
as a blog post and essentially what I
did is I Rita I created a readme Dian be
over here on github I push it up to my
github I did mess up on a few formatting
that I just noticed while recording like
I didn't include the schools right here
but I'll get that updated for you guys I
just want to explain essentially what I
have going on here so we have a few
different categories computer science
basics programming math systems theory
applications and UNIX and within each
category we have a table now this table
has a few different columns courses
which is self-explanatory just kind of
went over that school so although all of
these are available on the on Coursera
Udacity and EDX what you'll notice is
here this all the calculus courses are
offered by MIT Udacity although it
doesn't list it here this particular
course is offered by UVA and in Coursera
this particular course is offered by
Duke so these are essentially the
platforms that these universities use to
distribute these free courses and that's
what I labeled here so UVA UC San Diego
I try to stay consistent with the
programming aspect Duke
uw University of Washington so on and so
forth duration and effort are
essentially go together duration is how
long it should take you to complete each
course based on the effort put in so two
to five hours a week six weeks is how
long it should take you to do this and
then frequency now frequency is where it
gets a little bit weird so as you'll see
we're here we have self-paced which
self-paced is essentially the
informations out there there's no enroll
date you can just access it as you want
whenever you want but when it comes to
some of these other courses they have
once a month twice a month every week
and the reason I put it like that is
because over here on the tool that I
used when it comes to a class central
let's Google miss for example if we go
over to the start date I read it as all
of these are the actual start dates and
it looks like this is about twice a
month essentially every other every two
weeks however something that I did
notice so this is a machine learning by
Stanford let's go to this class over
here and as you can see the start date
is supposed to be 21st of January 2019
however today is January 18th Oh
nevermind looks like this one actually
does enroll and starts January 21st so
that's what I mean by doing it twice a
month or once a month in the frequency
category what I was trying to get at is
that some of these courses on Coursera I
feel like the enroll date is whatever
today's date is so some of these may be
self-paced they just don't say it they
just have enroll starts on January 18th
to get you to sign up today
that's my assumption as I was trying to
get at but obviously some of these do
have real enroll dates forget I said
anything about frequency frequency is
whenever the course is offered
self-paced all the time once a month
it's offered once a month and then we
have prerequisites so some of these
obviously the computer science basics
this is essentially intro to computer
science methods and computer science you
don't really have prerequisites but over
here I kind of structure especially
within the programming or within the
math and kind of give the prerequisite
for each one obviously
calculus 1a 1b 1c each one previous
iteration is going to be the
prerequisite to the next and then the
initial prerequisite will be an
assumption that you know precalculus and
then same goes for the programming
section this comes after this therefore
this is the prerequisite to that I think
it's time to actually get down to the
courses remember this will be available
on my github for you to click on all of
these courses some of these are
affiliate links like the Coursera ones
but you're not buying anything the only
reason I included the Coursera deal as
affiliate links is because if you do end
up buying something then that helps
support the channel but other than that
everything's free said that's a
disclaimer so let's start off with
computer science basics this is what you
would want to take at the very beginning
before you take anything else there are
some like this of course you could take
with it considering these aren't really
prerequisites to that however I would
recommend taking intro to computer
science I chose the UVA course there are
plenty of other courses available out
there that could replace this or that or
this or that or this if you think you've
you know a better course put it down in
the description below or fork this
repository on github
and then I'll see if I want to throw
that in here it's just this is what I
found that's also another disclaimer so
I would recommend taking an intro to
computer science course first to see if
you're actually interested in computer
science there's no point in trying to
set up a whole entire schedule for
yourself like alright I'm gonna take
this this this and that for my first
semester at school because I do
recommend taking this as a some like a
real college course and you wouldn't
want to go through all of that
scheduling if computer science isn't
really your thing so just take intro to
computer science you can also take
mathematical thinking and computer
science at the same time this is from
what I can tell a decently easy course
over there so that one you can take
alongside into your computer science
now onto programming so I have this set
up basically you start at course number
one and you go all the way through to
course number six Java programming build
a recommendation system and it's
essentially an order from one two three
four five six that will show over here
in the prerequisites structure and then
what we have below is programming
languages Part A B and C so the first
few that's all about Java programming
obviously all the courses are called
Java programming the reason I chose Java
one I really like Java so maybe I'm a
little bit biased but also I was stoked
to see that there are six courses all
offered by Duke available on Coursera
where you're able to essentially have
everything in chronological order all of
these go together perfectly flush Java
syntax is very similar to many other
languages that you will be using
throughout your computer science and
software engineering career and if you
were to start off with something like
Python although yes you will learn all
of the programming semantics everything
that has to go with the programming side
of things the syntax is a little bit
more difficult to convert over to
something like C++ or Swift or C sharp
for Java so that's why I chose Java for
all of those reasons and then down here
the programming languages this is
essentially principles of programming
so something that I took when I was in
computer science was a course called
principles of programming where I
learned three different computer
languages so I learned Prolog pas vrai
and SML and J SML and J you'll probably
never hear about and the other two are
used in very niche areas if at all I
don't know if any of them any people use
those professionally i I don't I've
never used it since that course the idea
of principles of programming is to learn
how to learn new languages so that's why
I touched on Java being able to
translate into other languages the
syntax that is that's what these three
courses all about you learn a new
language in each and essentially this
course is all about learning how to
learn new languages based on the
information you've learned from all of
this if that didn't make sense leave a
comment and I'll explain it better so
let's move on to math math is something
that a lot of people are scared of when
it comes to computer science but
something you have to remember is that
computer science is indeed a science and
what a science science is a lot of math
in computer science the way I like to
look at it is more of a math degree than
it is an engineering degree it's
essentially like a math degree and an
engineering degree had a baby inside a
computer then you had computer science
so the main math that you will learn
within computer science calculus linear
algebra probability and statistics
starting off with calculus we have three
courses here follow up courses all by
MIT so it's very continuous and these
three courses are gonna be MIT courses
so I would expect a bit of difficulty
when jumping into that linear algebra
foundations two frontiers linear algebra
is huge especially when you start to get
into other aspects of computer science
you're going to use a lot of linear
algebra and computer science you're
essentially going to take linear algebra
and apply it to computer science that's
a lot of what it is you're applying math
with code into the computer with linear
algebra some calculus a lot of data
structures discrete structures that type
of thing and then we have introductory
to probability and data and then intro
to statistics now I try to find
something that was more
consolidated I think in all honesty that
introduction to probability and data by
Duke would cover essentially what you
need but I also found insure just
statistics and that may work as well and
all on see I'm not sure although these
are from Duke and Stanford that these
are exactly what I wanted I just
couldn't find the exact like I took a
probability and statistics course all in
one and that was a requirement that was
like a two or three hundred level course
statistics category and that was
required for my CS degree and that's
essentially why I added these two in
there and then system systems where it
gets where it gets fun the beginning of
systems you may feel like I know all of
this you know especially if you build a
PC I remember I built a PC right before
my computer science degree and I'm like
I got this like the first few classes
we're going over some of the hardware
kind of how it's connected no there's
nothing like all this is gonna be easy
and then like the next week when I put
my guard down and just came full force
and it wasn't even like anything has to
do with all the hardware it's kind of
the intricacies of the hardware so build
a minor computer from first principles
from NAND Tetris one and two this from
the Hebrew school of Jerusalem and this
supposedly is very sought after course a
lot of people tend to like it had very
good reviews online that's why I
included it now this isn't something
that you would want to hop into your
first semester I would recommend taking
a your introduction into computer
science or especially this first
programming course and then hop into
this over here because then you have a
better understanding of basic
programming knowledge which is your
prerequisite and then introduction to
operating systems just think of this as
a more emphasized and advanced version
of what you're learning in here so it's
more so operating systems but once you
go through all that you understand and
then theory a big part of computer
science is theory I essentially just
incorporated a lot of algorithms theory
machines into this theory category all
three of which are from Princeton I know
it's not listed right here but all three
of these are from Princeton and it's not
necessarily supposed to be taken
in this order there is another course
that is supposed to be a prerequisite to
this or at least a first portion of it
I'm not sure how much it applies from
one to another but there's another
course that you're supposed to take
alongside this but it's not available
just yet but I think this one is a very
good start you make sure your
prerequisite is calculus one cut not 1a
but calculus one all of them so you want
to make sure you take 1a 1b and 1c
because it's algorithms now you're gonna
need to know math and calculus you're
gonna be working with a lot of different
type of math it's not necessarily that
you're gonna be using calculus in it but
it'll if you can understand calculus you
can understand this that's what I'm
trying to say and then you want to move
on algorithms part one and then
algorithms part two now into
applications so applications I'd like to
think of it as what's applicable so
software engineering introduction I had
to take essentially like intro to
software engineering it at least my
class taught you a bit about agile
development how to work with the team
and a lot has to do with the actual
software engineering aspect of things so
kind of like real world knowledge and
that's what we're trying to try to find
within this course and then same goes
for machine learning where it's more
applicable knowledge where before you're
learning a lot of theory a lot of basics
machine learning is very focused offered
by Stanford database management
essentials you're gonna work computer
science take a database course there are
some computer science degrees like mine
that didn't require a database course
but I took one anyway and I'm so glad I
did because you're gonna be working with
databases essentially no matter what
unless you're doing some if you're in
computer science you're going to be
working with databases new Kurtag rafi
so photography that's you know fun
little code decipher codes and stuff
like that but on a grander scale and
then unix unix is very basic work that's
why the prerequisites are none and these
are two that I found that I tend to like
and this is the only one that's not
offered by a university it's offered by
Udacity but it's only one week five
hours I believe Linux command line
basics you're going to be working with
all of this you should probably take
both of these if you want to learn Linux
UNIX that type of stuff
you will need to know in order to
navigate through all of your directories
and from one server to another and it's
essentially what you live on your your
console your Linux console so definitely
take those and that's the end of my open
source computer science degree like I
said if you have any recommendations on
what maybe someone should take instead
of this intro to computer science course
let me know to be honest with you I
don't know how many of y'all made it to
the end of this video I'm sure plenty of
y'all just went ahead in the description
and clicked on the get held link or the
medium link if I do decide to post this
on a medium blog post but if you did
stick around I appreciate it be sure to
like the video cuz this was probably the
most time I spent working on a video
beforehand like prepping for the video I
put all of this together and remember
all of the sources for everything
including class central and some of the
other sources that I use to help out
with this they're all linked down in the
description below as well be sure to
check those out give those some love and
I think that's all for me I'm gonna go
to bed and then some guys have a going
peace