What is the best place to find free Computer Science courses online?
This topic is important for software architects because… it is important for true architects to maintain a solid grounding in Computer Science fundamentals to be effective over the long term and to maintain the respect of senior technical staff.
I love Computer Science and enjoy studying it as much as I can, but it is ideal to be able to watch CS lectures while I am working, at the gym, or doing chores at home. There is a lot of good online content, but nothing else that comes close to NPTEL. Honestly, if you love CS, you’ll have a hard time believing how good the NPTEL program is.
The NPTEL Program
“Knowledge is Free”. This is the simply motto of NPTEL and it is just that simple. If you look at the introductory image above, it is not an exaggeration at all. They really do have over 1000 courses and over 20,000 hours of video – they are adding more video content faster than you could watch it.
What is NPTEL? NPTEL stands for “National Program on Technology Extended Learning”. It is funded by the Indian government and sponsored by the Indian Institute of Technology (IIT) in Madras. It is the only comprehensive video repository of relevant academic STEM (Science, Technology, Engineering, and Mathematics) in the world. It is so comprehensive that if you have enough free time, you can acquire graduate-level knowledge in almost any STEM discipline from Aerospace Engineering to Textiles.
What is IIT? IIT is one of the finest technical universities in the world. IIT has 23 campuses and admits over 10,000 new students yearly. It is India’s premier institution of higher learning for STEM disciplines.
Outstanding uniform quality. All of the content is obviously created specifically for online consumption, professionally done, and moving along at a brisk pace. The online materials include not only video, but syllabuses, transcripts, lecture slides, and course outlines. It is all very consistent.
Other universities just not this good. There is a lot of good material from other universities that you can find with YouTube or iTunesU. You might think that material from MIT, Stanford, Harvard, or Oxford is better. I suppose there are some materials that are, but every other university has only bits and pieces available and the formats are very informal and inconsistent. With NPTEL, you really feel that you are auditing a first-rate college course that you are paying for.
Accessing the Content
To access the content, go to https://nptel.ac.in/noc/noccourse.php?panel=completed. To access just the Computer Science content, you can select “Computer Science and Engineering” from the “Discipline” dropdown and click the search button.
YouTube. Some of the content is available on YouTube at https://www.youtube.com/user/nptelhrd, but not all of it. There are good samples there, but if you want comprehensive content, you need to go to the NPTEL web site. You also don’t get the course outlines, syllabuses, and transcripts on YouTube.
If you just want to see the CS content on YouTube, then it is available at https://www.youtube.com/channel/UCxJp9aEteKmOeobEsHXwxAw
The Computer Science Courses
There are an amazing 173 academically rigorous CS courses available on the site as of 1/7/2019.
Some Repetition. Some of the more important courses have several different semesters and instructors on the site. In such cases you obviously do not need to watch more than one semester of the content. In such cases, I have listed just one instance of the subject below.
What are the best for architects? The site does have all the mathematically-oriented courses, fundamental courses, hardware courses, and specialized courses that you would expect to be taught in a CS curriculum. Many of those courses are good for developers or senior developers, but not for architects.
I picked 15 out of the 173. I have listed 15 courses below in order of importance to architects. I have watched many of them on NPTEL or YouTube. In cases where I haven’t watched the NPTEL version, I have done graduate-level work in the subject except for blockchain, so I know that the subject is important.
Ranking Criteria. My ranking criteria for the 15 subjects below is based on my personal experience with each subject over 26 years of professional development experience. I have used every one of those topics in my day-to-day responsibilities.
Avoiding the buzzwords. Some may think that 2019 “buzzwords” would be near the top of the list, but simply knowing a lot about computers really should take precedence over topics that are fun and trendy. If this site were aimed towards developers, then I would make fun and trendy recommendations. Instead, I am recommending the topics that are of long-term importance to architects.
The 15 Subjects in Order of Importance
- Programming and Data Structures
- Design and Analysis of Algorithms
- Object-Oriented Analysis and Design
- Distributed Systems
- Introduction to Probability in Computing
- Operating Systems
- Computer Architecture
- Information Security
- Data Science for Engineers
- Machine Learning
- Algorithms for Big Data
- Artificial Intelligence