This is a curated list of free courses from reputable universities like MIT, Stanford, and Princeton that satisfy the same requirements as an undergraduate Computer Science degree, minus general education.
Once of the most conceptually clear sets of lectures I have ever seen on linear algebra were created by Gilbert Strang. If you have some time watch the first 1 or 2 and maybe consider whether it would be a good reference for people studying linear algebra.
Almost all colleges in India and some other countries focus on C/C++ as the primary programming language. I myself am a student of one of such Institute which focuses on C++ and C as the primary language of choice for beginners. Can anyone contribute or prepare similar list for C++. This will be really helpful for a huge number of students. Thank you all in advance.
Due to recent events, Coursera no longer offers courses from or related to Russian universities. Thus, the mathematical thinking course is no longer available on the platform.
It'd be cool to see a semester/term schedule format showing a certain number of courses taken per term.
This example adheres to the pre-reqs presented on the original repo and includes an estimated time completion for the whole degree
Term Schedule Idea
Time Estimations: 78 weeks (~ 1.5 years).
This assumes that the user abides by each term and waits until the term is completed to assume the "cool off period" and does not continue onwards to the next semester.
This assumes max cool off period of 3 weeks is assumed by user in between terms.
In the 'Programming' table, the link to the course 'Programming Languages, Part A' no longer works and instead it redirects to the following link: https://github.com/ForrestKnight/open-source-cs/blob/master/imp.i384100.net/6b13oK.
hey I noticed, when I visited the second link in the readme (Mathematical Thinking in Computer Science) it said "We were not able to find the page you're looking for"
I recently finished HarvardX's Introduction to Computer Science (CS50), and after doing a handful of MOOCs it really is the best course I've done, it has a huge and helpful community and the materials are amazing, not to mention the online lectures.
Some people might think using C in an introductory course is just an awful idea (and I did), but in retrospect, it gave me a low-level understanding before python that's incredibly useful, and they sure make it way easier than normal C courses.
I can totally suggest it as a replacement for Intro to CS by UVA.
Hello people, I am seriously considering taking this path. But I want to discuss with like minded folks about it. Can you make a group or something so I can interact with you guys about how to go with it? Thanks
Once, all courses are passed, would it be possible for you to give us a recommendation in Linked In for successfully graduating or something like that?
In the Math portion of the Open-source computer degree, I would add Introduction to Discrete Mathematics from the University of San Diego. Since discrete math does not require any prereq. and it is very crucial for any computer scientist!
Both of these courses use applets which haven't been supported since java version 8 and apparently the code they provide is still buggy when you use version 8. It looks like the the next "Java Programming" course teaches much the same things as the Object Oriented Programming course but without the GUI. Maybe this course should be replaced with another Java course that implements GUI design.
Since the beginning of 2019 edX is no longer giving free access to most of their courses, but "audit" access will now expire after a certain amount of time (sometimes as little as 2 days), unless you upgrade to the "verified track", which is of course paid.
How does this affect your "open source" course list? If edX is no longer "open source", this list is significantly shrinked unfortunately. 😞
Assuming that a lot of people who look at this aren't doing a lot of programming and CS work yet, it's unlikely that they know how to use git and/or navigate github. For example, someone not familiar with github wouldn't necessary know to check the issues tab if they need some help. Maybe there could be some PDF or something they can read that can help them get started with those things?
The same could theoretically be said for texteditors/IDEs. The courses tend to explain how to set one up for the course, but there's a lot of conflict between courses on which ones to use. Again, I think it might be helpful for people to get more information on that.
Having links to different programming communities (like discord servers) would also be helpful for a lot of people in my opinion. If you disagree, please leave a reply and let's see if we can come to an agreement!
Washington and Wisconsin both have top tier public universities that abbreviate as "UW". The README should be updated to specify that it is referring to the University of Washington in Seattle. Both UWs are also highly ranked for Computer Science which furthers confusion.
Some of the courses in the list (e.g. MIT's Calculus 1A: Differentiation) offer a Certification at the end of them. Knowing which ones offer Certification might be useful to some.
I don't know which to start with and if I should go one by one or take multiple ones together. And in case taking multiple courses together then I am not sure which to take together either. Maybe if there is a program that orders the courses like a semester to make it clearer and easier for newbies to get started.
Link to the course "Build a Modern Computer from First Principles: From Nand to Tetris I" is a broken Git link.
Could be changed to the direct link on Coursera: https://www.coursera.org/learn/build-a-computer
I teach CS1 at the University of Illinois—which is top-ranked for CS in the US. We've recently published all of our CS1 material online here: https://www.learncs.online/. This is a free entirely browser-based course in either Java or Kotlin with some novel features compared with other sites—interactive live coding walkthroughs, code quality and correctness feedback, debugging exercises, a large community of instructors, and so on. There's an overview of our innovations here: https://www.learncs.online/best
Take a look and let me know what you think! I'd be excited if you chose to add this to your list.
When a project is open source, that means anybody can view, use, modify, and distribute your project for any purpose. These permissions are enforced through an open source license. https://opensource.guide/starting-a-project/
As there is currently no license associated with the project, it is not an "Open Science" anything. The term "open source" is being used as clickbait and nothing more. However, this is easy to fix. Open source the project by doing the following:
No matter which stage you decide to open source your project, every project should include the following documentation:
Open source license
README
Contributing guidelines
Code of conduct https://opensource.guide/starting-a-project/
Given the resemblance of the curriculum to college classes, there are textbooks that would go very well with each category of the curriculum. This would allow people the option to go more in depth into the topics. The foundation of computer science doesn't change much over time so the knowledge in the books will remain viable in the future. Another advantage is that it's generally easier to judge the quality of these books, many people already read and reviewed these books on sites like Amazon.
It will also give people alternatives to these classes. While these classes are great, the platforms that host them (edX, Coursera, etc.) might place more restrictions on free users in the future. This was evident when edX limited audit time and put exercises/problem sets for some classes behind a pay wall.
I watched your video, and I get that it's for classes that you need to take for the degree, but maybe you could add classes (like the networking and cybersecurity) but have an * for the section or class to show that it's optional. This would also benefit in those that need to take the pre-cal or algebra like someone else mentioned.
Also I saw that it was a Java based curriculum , maybe have branching sections added for different paths, such as python or c, etc. By having a description under the Section header that links to the path you would rather take.
I really like the idea of the open source degree, but I feel it lacks a bit of diversity in options for the people who want to branch off a bit. I'm not sure if I am looking at it from a different viewpoint or not
As I mentioned in my PR (#43) UBC's Software Engineering is no longer offered on EDX. However, Berkeley offers a two part course on Software as a Service and Agile Development. I'd be happy to place those classes in UBC's place if you would like. Here's a link to the first course if you'd like to look into it further: https://courses.edx.org/courses/course-v1:BerkeleyX+CS169.1X+2T2018/course/
Really awesome that you're doing this, let me know if there's anything I can do to help!
While this is an extremely useful resource (in my 7 years experience in learning to code, this is the best free resource I have encountered), you can only really peruse it through GitHub markdown in a slightly jarring, unresponsive table format. Putting this on a responsive, single page website with resources opening in a new tab might make it even better and accessible on any device. I have a React boilerplate, I can invest the time to do this. Thoughts?