8 ms·
List of University Courses for Learning Computer Science
- norswap 12y agoI wish people would stop using the word "awesome" as punctuation. Otherwise it's a nice list, kudos for the effort.
- krat0sprakhar 12y agoHaha! The "awesome" here is tongue-in-cheek and is in reference to the rising fashion of curated lists being prefixed with "awesome" on Github. https://github.com/search?utf8=%E2%9C%93&q=awesome https://github.com/search?utf8=%E2%9C%93&q=awesome
- x1a0 12y agoThis is an awesome link!
- krat0sprakhar 12y agoPrevious discussion - https://news.ycombinator.com/item?id=8806910 https://news.ycombinator.com/item?id=8806910
- deleted 12y ago[deleted]
- bruceb 12y agohttp://coursebuffet.com/sub/computer-science http://coursebuffet.com/sub/computer-science Gives basic idea of computer science courses and level they might be at a US university
- ashhimself 12y agoSo much knowledge.. so little time in the day.
- krat0sprakhar 12y agoHi All, I'm the author of this list. My main motivation with this was to list down a few university courses that make their material available online for free. In contrast to MOOCs, I've found these university courses to be quite valuable especially if you're looking to dive deeper (lecture notes & readings) and/or like working at your own pace. Most of these courses have really interesting assignments which you can work on when you are between side-projects. Thanks to the contributors, the list has become quite huge and I'm open to any ideas that might help users navigate this better. There was a recommendation[0] made to add emojis and I'm looking for feedback on how it could be done better. If any of you have suggestions, I'm all ears! Thanks! [0] - https://github.com/prakhar1989/awesome-courses/issues/29 https://github.com/prakhar1989/awesome-courses/issues/29
- lecss 12y agoHow about presenting all these in a web interface? Would make it easier to search and spot interesting courses. Could start an actual platform for this purpose.
- Zaheer 12y agoCtrl + F?
- louhike 12y agoIs it opened to non-american courses? It would be nice.
- krat0sprakhar 12y agoIf you're referring to non-american universities, the list does contain a couple of courses offered by European universities. However, the list does not contain any non-English courses but if you do know of any, do send in a PR and I'll gladly add it to the list.
- mathias_awkward 12y agoCould be good to have classes about (relational/noSQL) databases too I think :)
- henrik_w 12y agoI can recommend the Stanford "Introduction to Databases" course https://www.coursera.org/course/db https://www.coursera.org/course/db I took it when it was first offered online in 2011, and really liked it. My review of it is here: http://henrikwarne.com/2011/12/18/introduction-to-databases-on-line-learning-done-well/ http://henrikwarne.com/2011/12/18/introduction-to-databases-...
- krat0sprakhar 12y agoI second Henrik's recommendation. Apart from the one he listed, there is no other database course available online that I'm aware of.
- Ar-Curunir 12y agoUC Berkeley has CS 186, but it approaches databases from a theoretical perspective rather than about how to use them. https://sites.google.com/site/cs186fall2013/ https://sites.google.com/site/cs186fall2013/
- krat0sprakhar 12y agoWow! This is a gold mine. Lecture notes, project code (SimpleDB) and assignments are all available. I'll add this to the list! Thanks :)
- joshAg 12y agoPretty much any UC Berkeley course is like this; check out the archives for the intro CS class, cs61a: http://inst.eecs.berkeley.edu/~cs61a/archives.html http://inst.eecs.berkeley.edu/~cs61a/archives.html Here's a listing of all the different classes and their archives: http://inst.eecs.berkeley.edu/classes-eecs.html http://inst.eecs.berkeley.edu/classes-eecs.html
- amirmc 12y agoFor anyone looking for courses using OCaml, there's a list at http://ocaml.org/learn/teaching-ocaml.html http://ocaml.org/learn/teaching-ocaml.html -- Prev HN discussion at: https://news.ycombinator.com/item?id=8603202 https://news.ycombinator.com/item?id=8603202 To be honest, I'm somewhat confused by the purpose of general lists like these. When they're small and focused, I can see them being useful (as the OP mentions here) but eventually they tend towards being a directory. At that stage I'd just use Google (edit: though it'd be hugely ironic if a Google search led me to an 'awesome-style' list - hasn't happened yet)
- frumpy 12y agoGenuine question, How does one make use of these courses if living outside US. Just the available online material?
- Ar-Curunir 12y agoSometimes you can find accompanying audio or video recordings from that semester or from a different sem (UC Berkeley does this), and personally following along with a lecture sequence makes studying advanced topics much easier. I think this is just a list of resources that make self-studying easier by providing different resources for each topic.
- tim333 12y agoIt probably varies from course to course and I've only done Udacity stuff. There you get lectures and can do online exercises for free. If you pay $199 you get "Projects with reviews by a Coach - Stuck? Get 1:1 help from Coaches - Verified Certificate"
- SippinLean 12y agoI'm a self-taught front-end developer (more of a hack) that doesn't have a CS degree, and I want to go back and learn the fundamentals. Anyone been through a similar thing that can recommend a good free online CS program?
- CSMastermind 12y agoI believe the course materials on Udacity are free. They're a very good place to start.
- tim333 12y agoI did https://www.udacity.com/course/cs101 https://www.udacity.com/course/cs101 Intro to Compsci and cs253 Web Dev. cs253 in particular is good, taught by Steve Huffman who built Reddit. They are fairly easy and probably at a simpler level than MIT/Stanford type stuff. Huffman's is more of a practical guide to building scalable sites rather then academic stuff.
- muraiki 12y agoI strongly recommend CS253. The course has just the right level of depth. Unless it's changed, it uses Google App Engine, but don't worry about that because it teaches you all the concepts about web development that you need to know to move on. This course was one of the biggest things that led to me becoming a professional developer (the other was http://www.ccs.neu.edu/home/matthias/HtDP2e/ http://www.ccs.neu.edu/home/matthias/HtDP2e/ although I didn't finish it completely)
- conjecTech 12y agoHere's something to get you started: Lectures: https://www.youtube.com/watch?v=QMV45tHCYNI&list=PLD4CAE0D1D2EEF760 https://www.youtube.com/watch?v=QMV45tHCYNI&list=PLD4CAE0D1D... Course website: http://www.cs.berkeley.edu/~jrs/61b/ http://www.cs.berkeley.edu/~jrs/61b/ This isn't proctored and you wont have a proper instructor if that's what you're looking for, but I've found these lectures to be exceptionally good. They go throuh some basics on OOP, classes, data structures and basic algorithms. I found it very easy to follow through these lectures and complete some of the assignments. I went through these while I was a student at Georgia Tech when I was transitioning from Electrical and Industrial Engineering to CS, and I learned the material well enough to exempt their intro to OOP class and be bored to tears for the first 80% of the data structures class. I think it would be a great starter before you jump into anything else.
- phkahler 12y agoI find the number of places not requiring Linear Algebra in CS curriculum disturbing. Graphics, PageRank, Super Computing, and other areas are all very heavy on the matrix math. I know there's only so many course you can fit in 4 years, but this still seems like an oversight to me. Numerical integration methods (for ODE solvers) and constraint solvers should probably be covered better too, these are the basis for all engineering and scientific simulations.
- BFay 12y agoDo you have any recommendations for a good linear algebra course/book? I've studied some DSP coming from a pretty limited math background (High School + 2 years college calculus) Linear algebra is one of many topics that's kept me from digging into advanced material.
- muraiki 12y agoLearn linear algebra while writing a linear algebra library using the latest techniques (starts at the end of this month): https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-02x https://www.edx.org/course/linear-algebra-foundations-fronti... I think there's also a non-mooc version at http://www.ulaff.net/ http://www.ulaff.net/ Unfortunately, I had to give up on the course last year because my math background is even more limited than yours (you'll need to know how to construct proofs). So time for me to learn calc, I guess. :)
- rifung 12y agoI don't believe Calculus is a prerequisite to Linear Algebra. Constructing proofs is something that's used in all branches of math as far as I know. If proofs are the only thing stopping you then I'd recommend just trying your hand at a few to get the hang of them. I can't imagine they'd be taught in a Calculus course either.
- muraiki 12y agoOh, I realize Calculus isn't a necessary prereq to linear algebra. But my impression is that people normally learn proofs alongside Calc than learn proofs alongside Linear Algebra. To be honest, I was writing more out of a desire to be humorous than accurate; sorry! Anyways, I've picked up "The Haskell Road to Logic, Maths, and Programming," so hopefully I can learn proofs alongside programming and logic, which is probably the best route for me at this time.
- dguido 12y agoIf you're interested in security, you may want to look at the CTF Field Guide which is based on an older course at NYU-Poly, CS6573: Penetration Testing and Vulnerability Analysis. https://trailofbits.github.io/ctf/ https://trailofbits.github.io/ctf/
- deleted 12y ago[deleted]
- tericho 12y agoWow, so TIL MIT has a course dedicated to mastering Google, Facebook & Apple interview questions. Thanks for the list.
- baldajan 12y agoInteresting how it lists Real-Time programming from uWaterloo. It's likely the toughest class taught at the university, requiring at least 40h of work a week.
- krat0sprakhar 12y agoAll thanks to the contributors!
- eric_bullington 12y agoIt's amazing the amount of high-quality material there is out there. However, as a programmer who is currently going back and attempting to master the fundamentals of an undergraduate CS curriculum through self study, what is lacking is: 1. A comprehensive list of the topics covered in the fundamental CS classes (that is, the topics covered in data structures, algorithms, etc. as well as the required math), ideally with links to related online material. Actually, ACM's Joint Task Force on Computing Curricula publishes a report that is an excellent resource (starting on page 59)[1] for this kind of thing. This resource just need to be distilled down into a list of general topics, each with an associated list of the best online education materials for that particular topic. 2. A nice flashcard program to accompany each topic, ideally with SRS, that could help students learn the terms and other concrete facts related to those topics. 3. A way to systematically evaluate and analyze a learner's mastery of these topics. That is, tests. I'm sure there's a lot of great test material out there that could be auto-graded, but it's scattered about. 4. Oh yeah, and a pony. Does anyone know of a resource like this? I've actually thought about building it, and have started on very minor parts of this vision [2]. But it's a big task, and I'm not sure if there's any demand for this kind of thing. 1. http://www.acm.org/education/CS2013-final-report.pdf http://www.acm.org/education/CS2013-final-report.pdf 2. https://github.com/esbullington/canonicalcards https://github.com/esbullington/canonicalcards
- bcbrown 12y agoOne approach to getting a list of topics is to look at the degree requirements for a couple of universities. I'm wrapping up a similar project, and here's what I included, along with some resources I used: * Algorithms (CLRS, Skiena) * Databases (db-class.org, any text by C.J. Date) * Probability, Statistics, and Combinatorics * Programming Languages (I liked Grossman's course on Coursera) * Linear Algebra (http://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/Syllabus/ http://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebr...) * Natural Language Processing (Coursera has several courses) * Machine Learning/Information Retrieval/Data Mining (I used a couple books, Mining Massive Datasets and Data-Intensive Text Processing with MapReduce being the two I'd recommend) * Networking (Coursera has a good course) * Operating Systems (https://www.youtube.com/watch?v=XgQo4JkN4Bw&list=PL62A66DDD3B3CC0B7 https://www.youtube.com/watch?v=XgQo4JkN4Bw&list=PL62A66DDD3...) * Distributed Systems (I read Tanenbaum's book) * Computability
- angrave 12y agoThe link to the systems course @ UIUC and probably other UIUC courses is not useful because the UIUC has just changed all of the the web pages in preparation for next semester. If you're interested in C, thread synchronization, pipes and other system level programming concepts, then you might find the following freely-available and re-usable resources we created for UIUC's CS241 useful: http://angrave.github.io/sys/# http://angrave.github.io/sys/# Includes: 1. 7 minute intro videos on C and POSIX calls 2. linux-in-the-browser programming+shell playground that runs in your laptop's browser My course staff will be releasing a new version of this VM in the next semester with additional features and bug fixes (including embedded man-page and autocomplete) We also built a crowd-sourced book that mirrors most of the lecture content https://github.com/angrave/SystemProgramming/wiki https://github.com/angrave/SystemProgramming/wiki Together, these items comprise a significant amount of the systems course CS241.
- krat0sprakhar 12y ago> The link to the systems course @ UIUC and probably other UIUC courses is not useful because the UIUC has just changed all of the the web pages in preparation for next semester. So that's why the existing links were showing a blank page. I think it makes sense to link to the 2014 course page for now and later update it to 2015 when the material is up. > Together, these items comprise a significant amount of the systems course CS241. I'll update the README with the above links. Thanks a lot Prof Angrave for make this available for free!
- fnayr 12y agoI'd be very interested in a list of PAID courses you can get a grade from. It would be helpful to demonstrate my ability to get a masters in cs. I have a bachelors in math. I've taken a data structures and algo course at a local university. I'm currently taking software engineering grad class on udacity through Georgia Tech. Any other paid online cs courses from universities? Some of the other Georgie Tech classes require too much since they're grad classes. I'm looking for BS level paid online classes.
- trentmb 12y agoUIUC offers a MCS online: https://cs.illinois.edu/current-students/graduate-students/professional-masters-mcs https://cs.illinois.edu/current-students/graduate-students/p...
- packetslave 12y agoand UIS (also in the U of Illinois system) offers a BSCS online: http://csc.uis.edu/information/onugadmissions.html http://csc.uis.edu/information/onugadmissions.html