Sei sulla pagina 1di 19

Home Online Learning About Apps

Online Learning: An Intensive Bachelor's Level


Computer Science Program Curriculum, Part II
Last month, we published a piece providing a basic template for a bachelors level
computer science curriculum composed entirely from college or university courses
that are freely available online. To date, this has been the most popular post on the
blog, and we received a ton of great feedback, both positive and negative, in the
comments and from around the web.

The original post was based on a learning plan that I had worked out for myself
after I jumped into the study of programming and computer science just over a year
ago on something of a whim. As Ive mentioned before, I do not have any formal
background in computer science beyond the handful of courses from this list that I
Popular Posts
have worked through myself. However, I do have years of experience in teaching
and in curriculum design for natural and foreign language acquisition at the college
Online Learning: A Bachelor's Level
level, and consulted the computer science curricula from a number of universities Computer Science Program
around the country when putting the plan together. Curriculum (Updated)

The idea was not to provide a Online Learning: An Intensive


Bachelor's Level Computer Science
substitute for an actual college or Program Curriculum, Part II
university education (that would
typically also require a large amount Hack Lab Part 2: Exploring Your
of alcohol at the very least, which, Home Computer Network with Kali
Linux
unfortunately, is not freely available
online), but rather to aggregate Online Learning: Teach Yourself
resources that have been made freely Python in Less Than 4 Months, Part
I
available online from disparate
institutions and organize them into the 50 Python Resources for Beginner
sort of logical structure one would and Intermediate Programmers
likely find in a general bachelors level
computer science program.
Subscribe
On the basis of the feedback from that
post, weve put together a new list of Posts
course offerings that covers a lot more ground. In the process, Ive also loosened up
Comments
a number of implicit strictures on resources for inclusion in the present listing. For
example, some of these courses require registration at a particular website and/or
may not yet be available in full (ex. Coursera), a couple others are actually compiled Search
from other resources freely available online (ex. Saylor). But all of them are still
free. Search

Whereas the first post was intended to provide a general overview of the field along
Techmeme
with a generic curriculum and necessary resources suitable for an absolute beginner
(containing 27 courses altogether), the present listing is much more extensive and
Profile of 31 year old Joshua
intensive in scope representing 72 courses from 30 different institutions. While we Kushner, founder of Thrive Capital
have added a number of new introductory level courses, there is a lot more that and brother of Jared Kushner; he
may be of interest to intermediate level folks and perhaps even some who are has told his investors he will strive
to stay out of politics (Katie
highly advanced and are considering a refresher course or two. Benner/New York Times)
Facebook says it will soon expand
The course listing is broken down into three major divisions: Introductory Courses, tools to fight fake news to
Core Courses and Intermediate/Advanced Courses. Individual courses are then Germany, will send flagged posts
to Berlin-based nonprofit news org
listed by category within each division.
Correctiv for fact-checking (Amar
Toor/The Verge)
Last but not least, thanks to everyone who provided feedback and offered Facebook confirms removal of the
suggestions on how to improve the original listing. Special thanks to Pablo Torre "edited" label on edited posts;
users can still view a post's edit
who provided a ton of links in the comments to the first post, many of which are history via the drop-down menu
included here. (Brett Williams/Mashable)
Users say AT&T's
DirecTV Now streaming service is
plagued with errors and nearly
Introductory Courses unusable (Jacob Kastrenakes/The
Verge)
Intro to Computer Science: Proposed Virginia Broadband
Deployment Act would favor
Introduction to Computer Science and Programming: MIT private ISPs by restricting
Intensive Introduction to Computer Science: Harvard municipal broadband deployment
(Jon Brodkin/Ars Technica)
Introduction to Computer Science and Programming Methodology:
Stanford
Programming Abstractions (Second Course in Unit): Stanford Tech News

Mathematics: Ars Technica


Mathematics for Computer Science: MIT CNET
Discrete Mathematics: ArsDigita engadget
Gizmodo
Programming:
Mac Rumors
Programming 1: University of Toronto PC Mag
Programming 2: University of Toronto Techmeme
Theory of Computation: The Next Web

Introduction to the Theory of Computation: Stonehill Torrent Freak


Wired
Principles of Computing: Rice
Data Structures and Algorithms:
Archive
Introduction to Data Structures and Algorithms: UNSW
Introduction to Algorithms: MIT 2016 (142)
2015 (231)
Core Courses 2014 (409)
December (32)
Theory: November (40)
Theory of Computation: UC Davis October (49)
Theory of Computation: IIT Kanpur September (42)
Algorithms and Data Structures: August (45)
Efficient Algorithms and Intractable Problems: Berkeley July (46)
Data Structures: Berkeley June (44)
Mathematics: Telepresence: The Good Kind Of
Mind Control
Linear Algebra through Computer Science Applications: Brown
Space Station Sunday: Fresh
Discrete Math and Probability Theory: Berkeley Coffee, New Hairdos, ...
Operating Systems: E-Eats: Play Gourmet To Perfect
Real-Life Cooking...
Operating Systems and Systems Programming: Berkeley
No Pizza Blitzkrieg Yet: Delivery
Introduction to Linux: edX Drones Deemed I...
Computer Programming: "'The Truth At Any Cost' Lowers
All Other Costs": ...
Programming Paradigms: Stanford
Object Oriented Programming: MIT Greenhouse Powerhouse:
Cleaner, Stronger Batterie...
Object Oriented Programming in C++: ITU
Your Phone Is Your Own:
Software Engineering: Supreme Court Forbids War...

Software Engineering: Berkeley Monkey In The Middle (Of My


Parking Space): New P...
Elements of Software Construction: MIT
After The Automatons: Could A
Computer Architecture: Robot Take Your Job...
Computer Architecture: Carnegie Mellon No Cash For Spy Stash: The NSA
Loses Government F...
Computer Architecture: Princeton
Assault On The Salt: New
Data Management: "Fertigation" System Des...
Introduction to Databases: Stanford 3-D Me: Mechanically-Printed
Introduction to Modern Database Systems: Saylor Organs And You

Networking and Data Communications: Space Station Sunday: Awards


Season!
Fundamentals of Computer Networking: Manhattan College
Online Learning: An Intensive
Introduction to Data Communications: Thammasat University Bachelor's Level Com...
Cryptography and Security: Helo, I Love You: Mini-
Helicopters To Solve City ...
Introduction to Cryptography: Ruhr University
Drone Dread Au Poivre: Pepper-
Introduction to IT Security: Thammasat University Spray Paintballs Fr...
Artificial Intelligence: The Suit Makes The (Space)Man:
NASA's New Designs...
Introduction to Artificial Intelligence: Berkeley
"External Communications" And
Infernal Revelations...
Intermediate and Advanced Courses Baxter, The Future: Industrial
Robot Learns Like ...
Algorithms and Data Structures: Government To Local Police:
Shhh About The Survei...
Advanced Data Structures: MIT
Analytic Combinatorics: Princeton Seas Of Change: Ocean Power
As Sustainable Energy...
Systems: Space Station Sunday: Soccer
Computer System Engineering: MIT Style!

The Hardware/Software Interface: University of Washington Congressman Rogers: Google


Being Unpatriotic For H...
Programming:
SpaceshipTwo Cool: Virgin
Design in Computing: UNSW Galactic's Offplanet To...
Principles of Programming Languages: IIT Drone Sweet Drone: FAA
Approves First Commercial ...
C++ for C Programmers: UC Santa Cruz
Aerodynamics: From Spaceships
Heterogeneous Parallel Programming: University of Illinois
To Soccer, NASA Exa...
Compilers: Stanford
Ad Astra Per Asparagus?
Software Engineering: Meteorite-Based Farming T...

Mobile Software Engineering: Harvard Bots Making Shots: World Cup To


Be Kicked Off By ...
Software Engineering for Scientific Computing: Berkeley
Simulating Space Undersea:
Mobile App Development: NASA Braves The Waves

Building Mobile Applications: Harvard Dropping The Ball On Watching


Us All: NSA's "Comp...
iPhone Application Development: ITU
Block It Like It's Hot: Tetris Still
Android Application Development: ITU Entertains A...
Web Development: 3D-Printed Rock Gear Rolls Out
For UK Band Klaxons...
Building Dynamic Websites: Harvard
Computer Program Passes Turing
Databases and Data Management: Test; Judged As Pla...
Introduction to Database Management Systems: KU Leuven University Fired Up: Renewable Energy
Database Management Systems: Ars Digita Sources Produce 20% Of ...

Advanced Databases: Saylor NASA Budget Bill Passes House


GOP With Surprising ...
Security:
Surprise, Surprise: Vodafone
Security and Cryptography: Thammasat University Reveals Secret Govern...

Designing and Executing Information Security Strategies: University of Download Cat Videos In The
Washington Middle Of Nowhere, Than...

Information Security and Risk Management in Context: University of Reprinted On The Red Planet:
Could We "Grow" Huma...
Washington
New Blood-Alcohol Content
Cryptography: Breathalyzer App Wants T...
Cryptography 1: Stanford Hemp-Composite Cars Could Roll
Cryptography 2: Stanford In Eco-Friendly Tra...

Bilinear Pairings in Cryptography: BIU Secret Service Using Totally Cool


Sarcasm Detector...
Artificial Intelligence and Machine Learning:
Oxymoronic GOP Science
Artificial Intelligence: HRW Committee Claims Global
War...
Artificial Intelligence: Berkeley
NASA Plans To Test Heavy-
Machine Learning: Stanford Payload Martian Parachute...
Natural Language Processing: June 5th: Reset the Net

Natural Language Processing: Columbia May (19)


Natural Language Processing: Stanford April (23)
Digital Media: March (21)
Digital Image Processing: Purdue February (23)
Computer Graphics: Berkeley January (25)
Computer Graphics: ITU
2013 (288)
Networking and Communications:
2012 (10)
Computer Networks: University of Washington
Internet Technologies and Applications: Thammasat University
Statistics and Probability:
Statistics and Probability: Harvard
Probabilistic Systems Analysis and Applied Probability: MIT
Statistical Inference: Johns Hopkins
Data Analysis and Statistical Inference: Duke
Leave any suggestions for improvements or additions in the comments!

Posted by Madmin on 6/19/2014


+70 Recommend this on Google

Labels: computer science, online learning

95 comments:

Omar Hashem June 20, 2014 at 3:58 PM


This comment has been removed by the author.
Reply

Omar Hashem June 20, 2014 at 4:01 PM


Thank you so much! That's SUPER! ... you must have exerted tremendous efforts
on compiling all these courses in one place :) ... Can't thank you enough :)

However, I have a question, is it possible that these courses help me cover one of
the job requirements "a degree in computer science"?

Actually I'm a medical student but interested in the IT field, but neither I have the
time nor the money to have a degree in computer science.

Thank you again :)


Reply

Replies

Jon Jonathan June 25, 2014 at 7:44 AM


There are many people in the CS field without formal degrees. Will you be
having a degree in medicine? If so, that and the required skills should be
more than enough

Henrique Alencastro Puls December 26, 2015 at 10:20 AM


Have you done the moocs? I'm in the same position as you were when you
made this comment. I'm a last year med student with interest in CS (I
think due to government regulations this will bring way more innovations,
than biology), but with no money or time to get a degree in CS.

Reply
Madmin June 20, 2014 at 5:45 PM
Hi Omar, thanks for your comment. As for your question, I would have to say, I'm
not sure. If the job requirement is "having a degree of a specific level in a specific
field from a specific institution", then the answer would probably have to be no. If,
on the other hand, the job requirement is "having the knowledge and skill set
common to this particular discipline", then the answer could very well be yes. Many
job listings that I've seen, for example, say, "degree in discipline or equivalent
experience".

In my opinion, there are a fair number of people who can excel in school, get a
degree and still not have much of a clue about their field. On the other hand, there
are also many people who are completely self-taught who are leaders in their
fields. It is a very difficult question to answer in the abstract. Personally, I've had a
great time working through a number of these courses, and have been able to use
the knowledge I've gained in my everyday life for work and just for fun.
Reply

anthony Okpoabasi June 21, 2014 at 10:53 AM


Well done, u have done so well in compiling all this. Thank you very much
Reply

Charles Fannin June 22, 2014 at 5:27 AM


If we are to seek a B.S. equivalent using this as a guide, could you suggest a
course guide for the topics like you did in the original post? e.g. ("choose 2
courses") Or do you recommend we just go through each course?
Reply

Madmin June 22, 2014 at 11:51 AM


Hi Charles. Since there are so many courses here, and since many of them are
quite advanced, I was no longer confident that I would be able to make those kinds
of decisions regarding how to pick and choose for an individualized curriculum. I
think if anyone just did most of the intro and core courses and maybe one or two of
the intermediate/advanced, they wold be pretty close to covering a the cs
curriculum from a general program (at least from among the ones I've looked at).
You might want to take a look at NYU's curriculum guide, it's one of the clearest out
there, and breaks things up into helpful logical chunks and study tracks:
http://engineering.nyu.edu/academics/programs/computer-science-bs/curriculum
Reply

Replies

Rahul Tripathi December 18, 2014 at 7:03 AM


Is tat Intermediate/Advanced Course is equivalent to d major in computer
science(curriculam)?

Reply

Tu Hoang Do June 25, 2014 at 5:36 AM


This comment has been removed by the author.
Reply

Anonymous June 25, 2014 at 5:46 AM


I have a question, what maths do I need if I want to take this courses? I come from
a very poor base at math and after reading the courses descriptions, I'm not sure
its start assuming previous knowledge or you can jump in without knowing
anything.

If it does assume knowledge, is there any place or recommended courses I can


take to improve my math knowledge?
Reply

Replies

Madmin June 25, 2014 at 6:55 PM


The Introduction to Computer Science courses on this list are not really
math-intensive. Actually, in the first lecture of the Stanford Programming
Abstractions course (listed in the Introductory section), the professor
addresses your question explicitly, and argues that you should be able to
jump right into the course without any advanced mathematics. Worst case
scenario for the intro courses is that you might have to look some things
up here and there, but even just basic wikipedia-based refreshers should
bring you up to speed if necessary.

Reply

Jon Jonathan June 25, 2014 at 7:42 AM


There are about five other algorithm courses on Coursera by Tim Roughgarden and
Robert Sedgewick that should definitely be on this list.
Reply

PanaAli June 26, 2014 at 4:52 PM


This is Great !
I think may be we need a wiki for this !
there are lots of people plan for online study and they don't know where to start
and what to read.
I think curriculum like this is essential
Reply

Replies

Madmin June 29, 2014 at 10:34 PM


Thanks! A wiki would be pretty cool. There have to be some out there
already. Here's one on reddit:
http://www.reddit.com/r/programming/wiki/faq

Reply

jim July 5, 2014 at 2:35 AM


This comment has been removed by a blog administrator.
Reply

Jomit July 24, 2014 at 7:06 PM


Excellent Post. I think this should be added on github in the awesome-
awesomeness list...
Reply

Replies

Madmin July 26, 2014 at 6:21 PM


Thanks Jomit, I was not aware of the awesome-awesomeness list. Great
resource.

Reply

pRmdk July 27, 2014 at 12:52 PM


Hi thanks for the great list!. I would like to make one correction though.
Its IIT Kanpur, not ITT Kanpur.
Reply

Replies

Madmin July 27, 2014 at 2:54 PM


Hello, thanks! Will update the post with the correction.

Reply

Michael Thomas September 29, 2014 at 6:48 AM


This is really great, thank you so much for this.
Reply

Anonymous November 2, 2014 at 9:15 AM


In the first post there were choices between courses of the same nature. Is there a
reason for not including that info in this post?

Thanks a lot by the way, I've been looking for something like this for weeks.
Reply

Lucas Gabriel November 9, 2014 at 8:51 AM


this is amazing! thank you so much! :)
Reply

Anonymous November 10, 2014 at 12:56 PM


i am currently pursuing bachelor in engineering in electronics & communication but
have interest in software field.After learning many courses from the above
mentioned,is applying for software company help me like in google,facebook etc
Reply

Replies

Anonymous November 19, 2014 at 10:38 AM


It depends on what job you want. I work for Google and have absolutely
no computer science education.

Reply

Anonymous November 19, 2014 at 12:21 PM


Khan Academy has also just put up a great course on Algorithms go go with their
already great courses on Cryptography and Information theory.
Reply

Jason Sandeman November 22, 2014 at 3:16 PM


A couple of questions... is this for the person to get their feet wet and decide
whether to persue a career in computers? If I follow through with these courses,
will I then need to go to university? Will this set of links give me the skills I need to
get started?
Reply

Replies

Madmin November 27, 2014 at 9:44 PM


Hey Jason, that's a hard question to answer. There is much more on this
list than would be required for any specific college level computer science
curriculum. If you want to jump in and see if you like it, you might try just
working through one of the introductory courses and see if you are
interested enough to keep going after that.

Reply

Anonymous November 27, 2014 at 1:52 PM


Madmin, you rock!
Reply

Replies

Madmin November 27, 2014 at 9:45 PM


Thanks Anon!

Reply

Jose Leal November 30, 2014 at 8:23 AM


This comment has been removed by the author.
Reply

Replies

Jose Leal November 30, 2014 at 8:36 AM


This comment has been removed by the author.

Madmin November 30, 2014 at 12:51 PM


Hi Jose, that is quite ambitious! I've completed about 5 courses in just
over a year and a half, plus countless one-off tutorials. You might also
want to check out a previous post we had on how to create a simple
learning time-table for absolute beginners:
http://blog.agupieware.com/2013/12/online-learning-teach-yourself-
python.html

Jose Leal December 3, 2014 at 6:47 PM


This comment has been removed by the author.

Reply

Anonymous November 30, 2014 at 11:51 PM


I love the article, but part of me wonders how well this might compare to a
programming instruction book. My background is in engineering but I've always
found programming fascinating. However, when learning, I always felt like I needed
my hand held, so I wonder if a programming python, etc, for dummies book would
work better for me. Alternatively, I am aware of a paid learning sites that asks for a
monthly fee, but they sequentially guide you through web development and some
programming. I suppose I just feel overwhelmed even starting back up with the
free college courses. There's a LOT of lectures, notes, and quizzes to go through, so
I'm wondering if there's a faster way since I do have a basic background in
programming.
Reply

Replies

Madmin December 1, 2014 at 3:03 PM


There are a ton of great, free, intro Python tutorials out there. See:
http://blog.agupieware.com/2014/01/50-python-resources-for-beginner-
and.html
You might also be interested in checking out a previous post of ours that
lays out a learning time table for an intro programming course from MIT
that uses Python as its language of choice:
http://blog.agupieware.com/2013/12/online-learning-teach-yourself-
python.html

Reply

Anonymous December 3, 2014 at 2:37 PM


Hello Admin!
Thanks for this great list.
Well the link to Theory of Computation: IIT Kanpur is broken.
Youtube videos are not available.
I believe this link will work fine: http://nptel.ac.in/courses/106104028/
Reply

Anonymous December 6, 2014 at 6:32 PM


Question for you Madmin. First off thanks for your hard work on compiling all these
courses. I have a bachelors in a unrelated field to computer science and recently
have become very interested in computer programming. In your opinion, would
completing your curriculum suffice on a resume when applying for IT jobs, or would
one have to go back to college for a "formal" bachelors in CS to get hired?
Reply

Replies

Madmin December 8, 2014 at 10:00 PM


hmmm, that's hard for me to say. But from job listings I've looked at, you
will often find employers who are looking for people with a bachelor's in
computer science or equivalent experience. In my own experience, after
working through only about 2 of the courses on this list I was already able
to do things that made me much more competitive in my own field (which
is not directly tech or computer science related).

Reply

Anonymous December 18, 2014 at 9:37 PM


Hey Madmin,
Thanks for all the work you did compiling these.
I was just wondering, after completing these courses will I actually have a
bachelor's level knowledge of computer science? I'm only 13, and I'm a fanatic
programmer.
Reply

Replies

Madmin December 18, 2014 at 11:34 PM


Hey anon, good on you! I would argue that, since pretty much all of these
courses are bachelors' level courses from accredited universities and
colleges, you would be pretty darn close. I'm tempted to argue that
someone studying on their own might end up with more
knowledge/experience than someone who studied it formally in school just
because they had to major in something to get a degree.

However, the thing you can't get from doing these courses online is the
face-to-face academic community (including professors, fellow students,
teachers' assistants, advisers and so on) you would have on an actual
campus. That kind of interaction provides vital feedback in the learning
process.

But, at the same time, this can also be compensated for somewhat by
participating in local meetups, talks, lectures and so on, participating in
forums where such people congregate online, contributing to open source
projects and other things of that nature.

Reply

Anonymous December 18, 2014 at 10:55 PM


Thanks for this; this is really goo.
Reply

Jacky January 26, 2015 at 5:39 AM


Good courses
Reply

Zunichi February 3, 2015 at 2:54 PM


I've always wanted to get into software development and your compilation just
gave me the means & motivation to do it. So thank you!

Quick question though, I can see that for some categories there seem to be similar
courses (ex. Intro to Computer Science has 3 seemingly similar courses but from
different institutions). Should I do all of them or just pick one?
Reply

Replies

Madmin February 12, 2015 at 12:42 AM


I'd say watch the first lecture of each of them, and then decide from there
which one you want to do. The first lecture in a given course almost
always provides a really good overview. You might find you like one
professor more than another, or have more interest in one of the
languages they use in one rather than than another, or more interest in
topics they'll focus on in one rather than another. Conceptually, the intro
courses cover much the same material: the basics! Personally, I did the
MIT intro course first because I was interested in Python. It was fun and I
learned a ton.

Reply

SilverWolf9000 February 24, 2015 at 11:27 PM


Thank you so very much for compiling this wonderful list!

I have only one question really. Would it be okay to go through every course you
have provided from top to bottom? By this I mean to ask would it be a good idea to
go through MIT, then Harvard, then Stanford, back to MIT, etc? I feel that learning
from multiple universities (also experiencing multiple languages) would give me a
wide array to work with. Would it be better to try to stick to one source per
category/topic or just go through all of them? I thank you in advance for your
answer; I simply feel as though I might head the wrong way with going through all
of the courses, but it could also be beneficial. Please respond whenever you can!
Thanks!
Reply

Replies

Madmin February 27, 2015 at 4:42 PM


I'd say take it one at a time. There is A LOT OF MATERIAL! It would take
years to go through all these courses. My own recommendation is to
watch the first lecture from each of the intro courses you are thinking
about, and then decide which one appeals to you the most, and then do it.
After that, you'll have a better idea what you'd like to do next. I started
with the MIT Intro course, then did a data structures course, then
algorithms, web dev, and programming paradigms, as well as a
networking and crypto course.
Reply

Supachai Abusali March 18, 2015 at 11:37 AM


This comment has been removed by the author.
Reply

Supachai Abusali March 18, 2015 at 11:43 AM


Hello,
I want to know for the Intro course of MIT, how many lectures are there?
Reply

Replies

Madmin March 20, 2015 at 2:28 PM


You are in luck, as we have previously published a post detailing a time
table for the completion of that precise course:
http://blog.agupieware.com/2013/12/online-learning-teach-yourself-
python.html

Reply

Anonymous March 18, 2015 at 4:32 PM


Fantastic post my friend. I am quite ecstatic to have found this extremely valuable
Info.
Reply

Anonymous March 20, 2015 at 5:44 PM


Great post. Is there a similar curriculum available for learning computer
engineering? Thanks.
Reply

Jony March 25, 2015 at 2:21 PM


Thanks
Reply

University courses March 26, 2015 at 2:49 AM


Now a days online learning has been very popular to the people because it's very
much easy to learn anything on any topic. So I think day by day it will increase a
lot and more people will come to learn more online courses for sure. Thanks a lot!
Reply

Anonymous March 30, 2015 at 12:14 AM


This is awesome! Thank you!
Reply

Anonymous April 29, 2015 at 5:48 AM


This is awesome! Thank you so much!
Reply

Israel Taiwo May 22, 2015 at 9:40 AM


I already have a Post Graduate Diploma in Computer Science, I wish to know if
there are certifying bodies willing to access my knowledge in computer science, and
thereafter give me a Bachelors degree.
Reply

Anonymous December 5, 2015 at 12:22 PM


9999999999999999999999999999999999999*9999999999999999999999999999
99999999=thanks
Reply

Anonymous December 7, 2015 at 4:33 AM


Note on the classes on Statistics & Probability:

I have taken both Johns Hopkins "Statistical Inference" and Duke's "Data Analysis
and Statistical Inference" course.

I have to say, Johns Hopkins' course has terrible reviews, and I partially agree.
That is mostly because JHU's course is more about breadth and depth. It throws in
a lot of information about statistical inference, and it really is information overflow
(in a good way) if you're willing to consult external resources to complement the
learning. It also assumes you're already familiar with programming in R since the
course is a part of a 9-course series in Data Science specialization, which
exclusively uses R - but it's okay if you're a beginner in statistical mathematics.

Duke's "Data Analysis and Statistical Inference", on the other hand, is geared much
more towards beginners. It assumes no prior knowledge about statistics and
probability. It doesn't cover a wide range of topics but it sure does dive deep into a
basic foundational concepts of statistics and probability. The labs also teach how to
program in R if you're a total beginner.

If I haven't taken Duke's course before JHU's, I know I would've been beyond lost.
There tends to be a lot of jargon in Johns Hopkins' "Statistical Inference" course,
which is compensated by prior knowledge and desire to consult external resources.

I'd say take Duke's "Data Analysis and Statistical Inference" before Johns Hopkins'
"Statistical Inference", that's for sure. The foundational knowledge in Statistics and
the introduction to programming in R gets you up to speed for JHU's "Statistical
Inference". In retrospect, with prior knowledge, Johns Hopkins' course really isn't
all that bad.
Reply

Anonymous December 29, 2015 at 1:07 AM


Cant thank you enough
Reply

Koo Ping Shung January 4, 2016 at 7:06 AM


Thanks for keeping track! Would there be an update on this list? :)
Reply

Sahil Masand February 2, 2016 at 12:54 AM


I would recommend this book to those following this course:

http://www.amazon.com/Code-Language-Computer-Hardware-
Software/dp/0735611319/ref=pd_sim_14_8?
ie=UTF8&dpID=310WZuKyEUL&dpSrc=sims&preST=_AC_UL160_SR108%2C160_&
refRID=1ERHSGXSN4S6117NSQY5

It works from the bottom (transistor level) up, making a strong foundation to your
CS knowledge.
Reply

Joyce Liu February 28, 2016 at 8:13 PM


This is a really awesome post! Georgia Tech also offers many of its graduate level
comp sci courses for free on Udacity: https://www.udacity.com/courses/georgia-
tech-masters-in-cs
Udacity also has a ton of free courses, some of which are are university level
computer science courses that could be added to this list, and some of which are
courses for specific practical skills/technologies for career advancement.
Reply

mohamed dafalla March 4, 2016 at 10:12 PM


This comment has been removed by the author.
Reply

OutsideMatrix March 21, 2016 at 12:55 PM


Hello Madmin,

Can we please add "pick two of three:" or "pick two of two:" etc in course schedule
and also mention what is optional?

Thanks
Sal
Reply

Dreams March 31, 2016 at 12:16 AM


Hello Madmin,
I wanted to know if we are supposed to take the original course first and then do
this or do this course instead of the previous one.
Reply

Replies

Madmin May 24, 2016 at 11:39 AM


That is really up to you. There is overlap between both. This one contains
more courses at an intermediate and an advanced level.

Reply

Anonymous April 16, 2016 at 8:48 AM


Are there curriculums like this for every subject?
Reply

Replies

Madmin May 24, 2016 at 11:40 AM


I wish! That is actually something I've been considering though, putting
together a similar list for a different subject.

Reply

Anonymous April 21, 2016 at 12:49 AM


This list is pretty good but I think that level 0 needs to be addressed if you are
learning yourself.

I have tried without too much success to set up an IDE like Eclipse. Python is very
difficult (for me at least) to get working. I'm a windows person, Unix doesn't have a
lot of apps I need everyday.

I tried to work with Eclipse for Python and it came back with a lot of Java stuff like
ant build or other things.
Git, some other things, would be nice to know about to start programming. I
actually am finding Python not that easy to use since you don't get pyc files to
actually run. The easiest one I found is Spyder which seems to be the easiest and
most integrated for a starter.

There are a lot of different IDEs but without an easy one for a lot of common
languages it is a little hard to actually do anything productive.
Reply

Replies

Anonymous May 24, 2016 at 1:04 AM


IDLE doesn't make it to learn what is on the curriculum.

Madmin May 24, 2016 at 11:51 AM


Yes, I actually just saw a conference talk by an educator who brought up
the issue that just getting a development environment up and running,
and developing good work-flow habits, can be a significant hurdle for
people. For some info on that, you might find some good tips in our list of
Python resources for beginner and intermediate programmers:

http://blog.agupieware.com/2014/01/50-python-resources-for-beginner-
and.html

In terms of IDEs, Jetbrains' PyCharm Community Edition is my favorite to


work with. It is free, has tons of functionality, and has good supporting
documentation for when you get stuck on something. I've worked with it a
fair amount on a Windows machine, and it is fairly painless to set up and
begin working with. Definitely worth checking out, imo:
https://www.jetbrains.com/pycharm/download/

Anonymous June 6, 2016 at 11:40 PM


After another month or two I really have not made progress. Python's
libraries seem vastly superior to any other language right now but the fact
that Python is interpreted and you must have the interpreter running is a
very big negative along with the need for an IDE for practical purposes.
PyPy seems to have been discontinued.

What I feel the need for is a self contained shell or VM to develop and run
programs in that won't harm my computer as I learn. I don't get that from
Unix. Maybe I am being unrealistic but this is the same issue I have had
before. I took a C++ course at a community college years ago. The IDE
was fine and it resulted in program I could run on any windows computer
with compiled object code.

To run a Python program you need the interpreter and a program which is
a serious drawback.

Madmin June 14, 2016 at 6:49 PM


What are you doing that you fear your Python programs might harm your
computer? Do you mean doing weird things with the os or sys modules?
Or do you mean your Python system files themselves? If the latter, you
might consider checking out virtualenv to create project-specific Python
interpreters. If the former, you could set up a Linux VM inside something
like VirtualBox to completely separate it from your system, and run code
you think might be harmful there. We have a post on how to set up a
virtual machine inside VirtualBox here:
http://blog.agupieware.com/2014/10/hack-lab-part-1-installing-kali-
linux.html

Anonymous June 15, 2016 at 12:49 AM


Well I am not trying to do weird things but I'd like to be able to do things
with files and directories I forget what the package is called shutil? Linux
is not what I am interested in at all, it has a learning curve I don't want to
get into while I try to learn Python. Yes life would be a lot easier if I
already knew what I wanted to learn and didn't have to do it. I'm using all
Windows PCs.

If I ever do finish the course then Operating Systems is probably the next
thing I'd like to try.

Madmin June 15, 2016 at 2:10 AM


Ah, yes, it would indeed be possible to inadvertently/mistakenly remove
the wrong directory tree with shutil if you weren't being careful. If you
have a disc or copy of the Windows OS you could install that on a virtual
machine and go to town.

But if you don't want to bother with virtualization, another potential


solution for you might be to create a separate user account on your
current Windows machine, and restrict that user's privileges so that it
can't do things like delete important directories from your main/admin
account, and then only play around with those python modules under that
user.

If you're interested in operating systems and doing things with files and
directories, you should definitely check out the os module, tons of
interesting and helpful stuff in there.

Reply

Anonymous April 25, 2016 at 10:47 AM


excellent thanks a lot .........
Reply

surfbrooklyn May 16, 2016 at 9:29 AM


Hi Madmin,

I completed MIT 6.00sc and am not sure what to try next. Your original post on this
suggested taking 2 intro classes but this updated post doesn't. Do you still
recommend that? If not, what is a good followup class to take? I tried to start MIT
6.006 Alogrithms but I looked at the first problem set and realized I was probably
in over my head. Thanks!
Reply

Replies

Madmin May 24, 2016 at 12:00 PM


haha, I know exactly what you are talking about! The same thing
happened to me with the algorithms course, I returned to it about a year
later, and still haven't completed it!

I found the "Introduction to Data Structures and Algorithms: UNSW" much


more easy to digest. And here are two other algorithms courses that I
found easier to jump into (the first one is much more theoretically
oriented, while the second is a bit more practical, and I think both are
from UC Davis):

https://www.youtube.com/watch?v=kqt-mfcm-
FM&list=PL6EF0274BD849A7D5

https://www.youtube.com/watch?v=gwlevtaC-
u0&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm

As an alternative to algorithms, you might also check out the Stanford


"Programming Paradigms" class, I learned a lot from that one.

Hope that helps! Let us know how it goes!

Reply
Anonymous July 12, 2016 at 4:03 AM
we are doing cources from many univercities will the programing languages,etc
collide or not
and we have to do all the cources and how much time will it take.
why we didn't add harvard cs50
Reply

Anonymous July 12, 2016 at 4:20 AM


we can also add mitx 6.00.2x
i have question what can i do if i donot know the calculus,probablity,or othe
mathematics used in computer science
plz reply
Reply

mafernando September 1, 2016 at 9:36 AM


Hi. Thanks for this - this is such a great resource. Any update on your progress so
far (issues, tips, advice)?

I would also recommend this site


https://metacademy.org/roadmaps/rgrosse/learn_on_your_own

and this one for metacognition ('learning how to learn'): https://www.class-


central.com/report/coursera-learning-how-to-learn/

Also, for a great intro to low-level hardware, systems and low-level languages,
many people recommend the well known "Nand2Tetris" Course (available here
http://nand2tetris.org and on Coursera).
Reply

Larissa Varjo September 2, 2016 at 8:02 AM


Hi! I'm from Brazil and I want to thank you VERY MUCH for this. That's EXACTLY
what I need! Thank you very much!!! Hope the best for you!
Reply

Ryan Bailey September 9, 2016 at 2:20 PM


are we suppossed to do every class from every category or pick one class in each
category?
Reply

Replies

Madmin November 11, 2016 at 6:58 PM


There is no set path. Pick and choose what interests you most, starting
from the beginning.

Reply

for IT the October 11, 2016 at 12:30 AM


I have read your blog its very attractive and impressive. I like it your blog.

Java Online Training Java EE Online Training Java EE Online Training Java 8 online
training Core Java 8 online training

Java Online Training from India Java Online Training from India Core Java Training
Online Core Java Training Online Java Training InstitutesJava Training Institutes
Reply
for IT the October 11, 2016 at 12:30 AM
Interesting Article

Angularjs Online Training | Backbone.JS Online Training | Bootstrap Online Training


| Node.js Online Training | Typescript Online Training
Reply

ArcticBlazer November 3, 2016 at 3:50 PM


Hey Madmin,
I want to start of saying that I really respect what you have done heere. Thanks a
lot for it.

I wanted to ask, say I loved a course(eg CS50 - The introductory course at


Harvard) so should I find similar courses on Harvard or rather just stick to the ones
listed here?
Reply

Replies

Madmin November 11, 2016 at 6:58 PM


I would recommend picking out a few different courses that interest you,
then watching the introductory lecture for each one. The intro lectures
provide good overviews of the course materials, and topics. Then after
watching the intro lectures, dive in to the one you found most interesting.
The listings are really only a guide, aimed at demonstrating the wealth of
options available to you online.

Reply

Alimu Jallow November 10, 2016 at 11:32 PM


Hey Madmin,
I am a nursing student. However, I love gadgets and anything that has to do with
Computers.

i would love to try your "course syllabus" but i have concerns because i dont know
where to begin. i have no background in any CS related course. no solid maths
background either.

i want some advice from you on which courses should i start with? should i start
with maths? on intro.to CS?

Please help!
Reply

Alimu Jallow November 10, 2016 at 11:32 PM


Hey Madmin,
I am a nursing student. However, I love gadgets and anything that has to do with
Computers.

i would love to try your "course syllabus" but i have concerns because i dont know
where to begin. i have no background in any CS related course. no solid maths
background either.

i want some advice from you on which courses should i start with? should i start
with maths? on intro.to CS?

Please help!
Reply

Replies

Madmin November 11, 2016 at 6:55 PM


I would recommend starting with the MIT intro to computer science
course. It is not math intensive (a lot of people think you have to know a
lot of intensive math to do basic programming, but that is just not true). I
started with the MIT programming course, coming from a language
pedagogy background, and it was great! We have a couple other posts
with tips on working through that course in particular as well. See:

http://blog.agupieware.com/2013/12/online-learning-teach-yourself-
python.html
http://blog.agupieware.com/2014/01/benchmarks-teach-yourself-python-
in.html
http://blog.agupieware.com/2014/01/50-python-resources-for-beginner-
and.html

Reply

Ralphes Bushman December 19, 2016 at 7:27 AM


You can obtain some useful information in this blog.
Reply

Marlene Saffan January 3, 2017 at 9:17 AM


Using this spying app you can be sure your friends and children are fine. Just go to
how to block adult content on android mobile for Android for more info!
Reply

tonyy January 5, 2017 at 12:15 PM


From the level of education to the level of systematic educational values Baytown
University hold all the symptoms which gain the best result
Reply

Enter your comment...

Comment as: Google Account

Publish Preview

Newer Post Home Older Post


Subscribe to: Post Comments (Atom)

Powered by Blogger.

Potrebbero piacerti anche