
List of Computer Science courses with video lectures - turingbook
https://github.com/Developer-Y/cs-video-courses/blob/master/README.md
======
lnternet
Previous discussion:
[https://news.ycombinator.com/item?id=13000158](https://news.ycombinator.com/item?id=13000158)

~~~
turingbook
Sorry for the replication. It seems that HN should have a better duplicates
removal algorithm.

~~~
pkd
You posted the link to the README, which is different from the link to the
repo itself. Since these two aren't really duplicates, I don't think it's a
fault of HN's algorithm.

~~~
xapata
Since the root page of a repo renders the README, the two URLs are not very
different. A sophisticated duplication detection algorithm could recognize
that.

~~~
wuliwong
The algorithm would have to examine the HTML returned by the URLs to determine
they are duplicate pages. There is no way to determine they are duplicate
pages by just analyzing the URLs. It is not impossible to have two different
posts to HN that are legitimately different content that have the same domain
and even partially matching paths. In order to work in a dependable way, the
algorithm would have to examine the HTML returned by the URLs to determine
they are duplicate pages. In this case, that wouldn't even work because they
aren't actually duplicate pages. In order to mark these two URLs as duplicate
I think you might need to use some machine learning and then it would only
yield some level of confidence that these were indeed duplicate pages as a
result.

~~~
xapata
Or they could just special-case GitHub repos and their readme files. But what
is duplicate detection if not machine learning? One can't be sure the same URL
is the same document if submitted at different times.

------
visarga
That's more lectures than a student could see. Now we need a full concept
chart dependency tree and an adaptive content suggestion system to guide
students through this sea of lectures.

I'd like to have a system where you take tests to rate your understanding
level and decide where to start.

~~~
qntty
It depends a lot on what you want to specialize in. There are a few entry
level classes that are good at preparing you for one of many paths you can
take. For the very basics, I've heard good things about harvard's cs50. For an
intro to systems, I'm currently going through CMU's 15-213 which I think
should be a class in all CS departments.

~~~
garysieling
Thanks, that is good insight. It's hard to know what to refer someone to when
there are so many "intro to CS" classes listed.

------
rebootthesystem
One of my biggest complaints about a lot of the stuff found in YouTube is the
lack of preparation.

Those without teaching experience think it is enough to fire-up the screen
recorder and go for it. Sure, that can work, but it often results in a bad or
mediocre product.

The most egregious of issues being when they destroy your concentration
because they are making mistakes live as you follow along. "No! Wait! That was
a period. No a slash. No, I forgot to define the class. Oh, yeah, the import
was wrong. Wait, a database table is missing." ... and more.

Some could argue that this can be interesting because you see errors. Point
taken. This is the wrong way to teach about errors. It destroys the student's
train of thought and detracts from learning.

The right way to teach about errors it to explicitly teach them. In other
words, you do it correctly and then say "let's see what happens if we delete
this column in the database". You can then expose the issues and how to deal
with them. To unexpectedly run into issues during a tutorial due to lack of
preparation only confuses students. Imagine a Calculus professor fumbling as
he/she explains course material, it would be maddening.

If you want to teach, please take the time to prepare the material and the
script. Have at least a second monitor on your machine so you can view the
script as you record your lesson on the main monitor. Never take students down
a path you have to reverse from, it can be very confusing.

EDIT: By "script" I don't mean "code" but rather what you are going to say and
do and when. Yes, you need to have your code visible on a separate monitor as
well just to make sure you don't make mistakes.

------
mylesm
I highly recommend MIT's 6.006 for a good intro to data structures and
algorithms. My college's course wasn't great, but watching the MIT lectures
and working through CLRS helped me gain a really solid intuitive understanding
of complexity and approaches to different classes of problems. At the very
least it helped a lot with interviews!

~~~
truth_sentinell
Can you an example of a real world problem you'd use that as a programmer
besides surprising your interviewer?

~~~
Feuilles_Mortes
I made an Elasticsearch querying tool that lets you construct multiple
dependent queries.

If I hadn't taken an Algorithms class, I wouldn't have thought to use a
directed acyclic graph, and to topologically sort the different queries so
that they are resolved in order.

That was actually the first time I'd used something from a theory class on the
job! It was pretty exciting, though probably mundane for most engineers :).

------
TXV
Excellent resource. I'm almost at the end of Andrew Ng's ML course on Coursera
and was looking to learn more about convex optimization. I will definitely try
out some of the links there (Machine Learning > misc machine learning topics)

------
seaborn63
Thanks for posting this. As a bootcamp grad, I just bought a Intro to CS
textbook to start learning the basics, but I can't wait to look at some of
these too

------
wuliwong
This is cool. I think "visual learners" or whatever it's called are a bit on
the fringe in CS but we do exist. When starting something new, I learn much
more easily by video or discussion with people. As I become more comfortable
with a subject, technical documentation becomes progressively more useful.

~~~
mylesm
I'm the same way, I find a good series of lectures to be the best way for me
to wrap my head around something. I think it's a combination of "visual" and
"global" learning styles. A global learning style means you work your way from
the big picture down to the details as opposed to "sequential" style where you
are better off diving into a detailed problem and building your knowledge
outward from there [0].

[0]
[http://www4.ncsu.edu/unity/lockers/users/f/felder/public/ILS...](http://www4.ncsu.edu/unity/lockers/users/f/felder/public/ILSdir/styles.htm)

------
surrey-fringe
I'm glad Onur Mutlu's stuff is listed here. Best lecturer I've ever had.

~~~
mylesm
Yes! I've been watching his lectures as a supplement to my own comp
architecture class.

~~~
0xFFC
Can I ask you how much difficult or advanced find you those lectures ? are
those graduate level ? upper ungraduated/first year graduate ? Or material is
only bachelor level ?

~~~
mylesm
I'd say it's bachelor level. It definitely requires some prior knowledge of
digital logic and general computer systems concepts. Here's a link to the
course page where you can find the prerequisites and a syllabus and some other
info:

[http://www.ece.cmu.edu/~ece447/s14/](http://www.ece.cmu.edu/~ece447/s14/)

------
goffley3
I'm excited to go through this. I plan on completing a degree in a few years
but I'm always hungry for information. Thanks for posting.

------
xapata
I guess this shows how much of a commodity video lectures are. It's difficult
to know the quality in advance of watching a video.

Teaching is a market for lemons. Worse, the student who buys a lemon will
often not realize it, nor the employer who hires the lemon-trained student.

Most of the videos listed here are from reputable institutions. I guess we're
lucky that the lemon-sellers are trying to profit from their videos.

------
chaghalibaghali
I'd love a list like this with reviews/some sort of curation alongside.

