A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | For questions and suggestions, please, email cc.rafaz@zafar.cc (especially if you know any good links for the last page) | ||||||||||||||||
2 | New version of the list is here | ||||||||||||||||
3 | “Getting B.S. in CS” without Getting B.S. in CS | ||||||||||||||||
4 | Alias | Level | Discipline | Offered by | Course Title | Credits | Link | ||||||||||
5 | Trimester I | ||||||||||||||||
6 | MATH 101 | Introductory | Math | ArsDigita | Discrete Mathematics | Full | https://www.youtube.com/watch?v=h_9WjWENWV8&feature=share&list=PLTdIp1DywMlUpLHEg3ADhE6rrxhW_T5Rx | ||||||||||
7 | MATH 001 | ↘︎ | MIT 6.042J | Mathematics for Computer Science | ↘︎ | http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/ | |||||||||||
8 | PROG 101 | Introductory | Programming | Stanford CS 106B | Programming Abstractions | Full | https://www.youtube.com/view_play_list?p=FE6E58F856038C69 | ||||||||||
9 | PROG 001A | ↘︎ | Stanford CS 106A | Introduction to computer science | Programming methodology | ↘︎ | https://see.stanford.edu/Course/CS106A | |||||||||||
10 | PROG 001B | ↘︎ | MIT 6.00SC | Introduction to Computer Science and Programming | ↘︎ | http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/ | |||||||||||
11 | PROG 001C | ↘︎ | Harvard CS50(x) | Intensive Introduction to Computer Science | ↘︎ | http://www.extension.harvard.edu/open-learning-initiative/intensive-introduction-computer-science https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#.VST3yxPF_7c | |||||||||||
12 | PROG 102 | Introductory | Programming | Coursera | Learn to Program: Crafting Quality Code | Half | https://www.coursera.org/course/programming2 | ||||||||||
13 | PROG 001D | ↘︎ | Coursera | Learn to Program: The Fundamentals | ↘︎ | https://www.coursera.org/course/programming1 | |||||||||||
14 | AD 101A | Introductory | Algorithms and Data Structures | UNSW CS?? | Introduction to Data Structures and Algorithms | Full | https://www.youtube.com/watch?v=RpRRUQFbePU&list=PLE621E25B3BF8B9D1 | ||||||||||
15 | AD 101B | → | Algorithms and Data Structures | MIT 6.006 | Introduction to Algorithms | → | http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/ | ||||||||||
16 | TC 101A | Introductory | Theory of Computation | Stonehill (by Coderisland) | Introduction to the Theory of Computation | Full | https://www.youtube.com/playlist?list=PL601FC994BDD963E4 | ||||||||||
17 | TC 101B | → | Theory of Computation | Coursera (Rice) | Principles of Computing (Part 1) | → | https://www.coursera.org/course/principlescomputing1 | ||||||||||
18 | Trimester II | ||||||||||||||||
19 | TC 201A | Core | Theory of Computation | UNSW | Theory of Computation | Full | https://www.youtube.com/playlist?list=PLslgisHe5tBM8UTCt1f66oMkpmjCblzkt | ||||||||||
20 | TC 201B | → | Theory of Computation | IIT Kanpur | What is theory of computation | → | https://www.youtube.com/watch?v=al4AK6ruRek&list=PLbMVogVj5nJSd25WnSU144ZyGmsqjuKr3 | ||||||||||
21 | PROG 201 | Core | Programming | Stanford CS 107 | Programming Paradigms | Full | https://www.youtube.com/playlist?list=PL9D558D49CA734A02 | ||||||||||
22 | MATH 201 | Core | Math | Coursera (Brown) | Coding the Matrix: Linear Algebra through Computer Science Applications | Half | https://www.coursera.org/course/matrix | ||||||||||
23 | MATH 202 | Core | Math | Berkeley CS 70 | Discrete Math and Probability Theory (CS70) | Half | https://www.youtube.com/watch?v=2gfXZSA1oMg&index=2&list=PL-XXv-cvA_iDze6fOp3qofgyjJVUioedA | ||||||||||
24 | OS 101 | Core | OS | Coursera | Introduction to Linux | Half | https://www.edx.org/course/v2/introduction-linux-linuxfoundationx-lfs101x-2 | ||||||||||
25 | Trimester III | ||||||||||||||||
26 | PROG 202A | Core | Programming | MIT 6.01 | Object-Oriented Programming | Full | http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction-to-electrical-engineering-and-computer-science-i-spring-2011/unit-1-software-engineering/object-oriented-programming/ | ||||||||||
27 | PROG 202B | → | Programming | ITU | OO Programming in C++ | Full | https://www.youtube.com/playlist?list=PLMMZ6bhZ4H68r2YVCy111_uIxytu3_HNi | ||||||||||
28 | OS 102 | Core | OS | Berkeley CS 162 | Operating Systems and System Programming | Half | https://www.youtube.com/watch?v=XgQo4JkN4Bw&list=PL62A66DDD3B3CC0B7 | ||||||||||
29 | AD 201A | Core | Algorithms and Data Structures | Berkeley CS 170 | Efficient Algorithms and Intractable Problems | Full | https://www.youtube.com/playlist?list=PL-XXv-cvA_iBapEvcNwRuTJVt6BPpcMaJ | ||||||||||
30 | AD 201B | →↘︎ | Algorithms and Data Structures | Berkeley CS 61B | Data Structures | →↘︎ | https://www.youtube.com/watch?v=frxF7Vs96YU&index=2&list=PL-XXv-cvA_iCZphAM_CG499wyMaJh_6dW | ||||||||||
31 | CA 201A | Core | Computer Architecture | Coursera (Princeton) | Computer Architecture | Half | https://www.coursera.org/course/comparch | ||||||||||
32 | CA 201B | → | Computer Architecture | CMU 740 | Computer Architecture | → | https://www.youtube.com/playlist?list=PL5PHm2jkkXmgDN1PLwOY_tGtUlynnyV6D | ||||||||||
33 | Trimester IV | ||||||||||||||||
34 | SE 201A | Core | Software Engineering | MIT 6.005 | Elements of Software Construction | Full | http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-005-elements-of-software-construction-fall-2011/index.htm | ||||||||||
35 | SE 201B | → | Software Engineering | Berkeley CS 169 | Software Engineering | → | https://www.youtube.com/watch?v=YCg2cbyjpTE&list=PL24AE36691A6EF62F | ||||||||||
36 | DM 201A | Core | Data Management | Coursera (Stanford) | Introduction to Databases | Half | https://www.coursera.org/course/db | ||||||||||
37 | DM 201B | → | Data Management | Saylor CS 403 | Introduction to Modern Database Systems | → | http://www.saylor.org/courses/cs403/ | ||||||||||
38 | MATH 203 | ↘︎ | Saylor CS 202 | Discrete Structures | ↘︎ | http://www.saylor.org/courses/cs202/ | |||||||||||
39 | SC 201A | Core | Security and Crypto | Ruhr | Introduction to Cryptography | Full | https://www.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg/feed | ||||||||||
40 | SC 201B | → | Security and Crypto | Thammasat ITS 335 | Introduction to Security | → | https://www.youtube.com/watch?v=bx5CPmNbblI&list=PLvifRcqOOwF89bqRiJEWyu5k7qJaTNMRj | ||||||||||
41 | AI 201 | Core | AI | Berkeley CS 188 | Introduction to Artificial Intelligence | Half | https://www.youtube.com/watch?v=-IDTdDm2DHo&list=PLF1A9D9034225FC92 | ||||||||||
42 | NET 201A | Core | Networking | Thammasat ITS 323 | Introduction to Data Communications | Half | https://www.youtube.com/playlist?list=PLvifRcqOOwF8u4iC7hFTMVC_WD6SEpnkx | ||||||||||
43 | NET 201B | → | Networking | CUNY | Fundamentals of Computer Networking | → | https://www.youtube.com/channel/UCb1OiccPJ0wbMZMOleCvhWQ | ||||||||||
44 | Trimester V-VI (Elective Intermediate/Advanced/Graduate Courses) | ||||||||||||||||
45 | AD 501 | Algorithms and Data Structures | MIT 6.851 | Advanced Data Structures | http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012/ | ||||||||||||
46 | MATH 401 | Algorithms and Data Structures | Coursera (Princeton) | Analytic Combinatorics | https://www.coursera.org/course/ac | ||||||||||||
47 | SYS 301 | Systems | MIT 6.033 | Computer System Engineering | http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-033-computer-system-engineering-spring-2009/ | ||||||||||||
48 | SYS 302 | Systems | Coursera (U. of Washington) | The Hardware/Software Interface | https://www.coursera.org/course/hwswinterface | ||||||||||||
49 | PROG 301 | Programming | UNSW CS3 | Design in Computing | https://www.youtube.com/playlist?list=PL0C5D85DBA20E685C | ||||||||||||
50 | PROG 302 | Programming | IIT Delhi | Programming Languages | http://freevideolectures.com/Course/2249/Principles-of-Programming-Languages/1# | ||||||||||||
51 | PROG 303 | Programming | Coursera (UC Santa Cruz) | C++ For C Programmers | https://www.coursera.org/course/cplusplus4c | ||||||||||||
52 | PROG 401 | Programming | Coursera (Illinois) | Heterogeneous Parallel Programming | https://www.coursera.org/course/hetero | ||||||||||||
53 | PROG 402 | Programming | Coursera (Stanford) | Compilers | https://www.coursera.org/course/compilers | ||||||||||||
54 | SE 401 | Software Engineering | Berkeley CS 294 | Software Engineering for Scientific Computing | https://www.youtube.com/watch?v=zu3F-lB_MDo&list=PL-XXv-cvA_iB8Arh4Szxk275Cu4uRxVt4&index=2 http://www.eecs.berkeley.edu/~colella/CS294Fall2013/index.html | ||||||||||||
55 | SE 402 | Software Engineering | Harvard CS 164 | Mobile Software Engineering | https://www.youtube.com/watch?v=17qB5-YHRcY&feature=share&list=PLkHsKoi6eZnwX9vYPzr42CsiVF1jyl25w https://canvas.harvard.edu/courses/300 | ||||||||||||
56 | MOB 201 | Mobile App Development | Harvard CS 76 | Building Mobile Applications | https://www.youtube.com/watch?v=Lz7U66RLC1E&list=PLifX7FLW45Ncn-YnaBPSsVz2HYsW8mfAX&index=32 | ||||||||||||
57 | MOB 202 | Mobile App Development | ITU | iPhone Application Development | https://www.youtube.com/playlist?list=PL1D5B07DD840FB46D | ||||||||||||
58 | MOB 203 | Mobile App Development | ITU | Android Application Development | https://www.youtube.com/playlist?list=PL1E8E7D2B6EB11301 | ||||||||||||
59 | WEB 201 | Web Development | Harvard CS (E-/S-)75 | Building Dynamic Websites | http://cs75.tv/2012/summer/ | ||||||||||||
60 | DM 301 | Databases and Data Management | KU Leuven | Introduction to Database Management Systems | https://www.youtube.com/playlist?list=PLrebOOrMEaFlX8QLFiQnQ3lqh0IF5WCFv | ||||||||||||
61 | DM 302 | Databases and Data Management | ArsDigita | Database Management Systems | http://www.aduni.org/courses/databases/index.php?view=cw | ||||||||||||
62 | DM 303 | Databases and Data Management | Saylor CS 410 | Advanced Databases | http://www.saylor.org/courses/cs410/ | ||||||||||||
63 | SC 301 | Security | Thammasat CSS 322 | Security and Cryptography | https://www.youtube.com/playlist?list=PLvifRcqOOwF-b74gWV5TpyMFFs2dVlqTt | ||||||||||||
64 | SC 302 | Security | Coursera (U. of Washington) | Information Security and Risk Management in Context | https://www.coursera.org/course/inforiskman | ||||||||||||
65 | SC 401 | Security | Coursera (U. of Washington) | Designing and Executing Information Security Strategies | https://www.coursera.org/course/infosec | ||||||||||||
66 | SC 303 | Cryptography | BIU | 3rd BIU Winter School on Cryptography 2013 | https://www.youtube.com/playlist?list=PLXF_IJaFk-9C4p3b2tK7H9a9axOm3EtjA&feature=mh_lolz | ||||||||||||
67 | SC 304 | Cryptography | Coursera (Stanford) | Cryptography I | https://www.coursera.org/course/crypto | ||||||||||||
68 | SC 402 | Cryptography | Coursera (Stanford) | Cryptography II | https://www.coursera.org/course/crypto2 | ||||||||||||
69 | AI 301 | AI and Machine Learning | HRW | Artificial Intelligence | https://www.youtube.com/watch?v=katiy95_mxo&list=PL39B5D3AFC249556A | ||||||||||||
70 | AI 302 | AI and Machine Learning | Berkeley CS 188 | Artificial Intelligence | https://www.youtube.com/watch?v=qZ23-HrWyUE&index=10&list=PLF1A9D9034225FC92 | ||||||||||||
71 | AI 303 | AI and Machine Learning | Coursera (Stanford) | Machine Learning | https://www.coursera.org/course/ml | ||||||||||||
72 | LANG 301 | Natural Language Processing | Coursera (Columbia) | Natural Language Processing | https://www.coursera.org/course/nlangp | ||||||||||||
73 | LANG 302 | Natural Language Processing | Coursera (Stanford) | Natural Language Processing | https://class.coursera.org/nlp/lecture | ||||||||||||
74 | MED 401 | Digital Media | Purdue ECE 637 | Digital Image Processing | https://www.youtube.com/playlist?list=PL3ZrjaBngMS15UhKHUnNqW5wLBA4vlQeB | ||||||||||||
75 | MED 402 | Digital Media | Berkeley CS 184 | Computer Graphics | http://inst.eecs.berkeley.edu/~cs184/fa12/onlinelectures.html | ||||||||||||
76 | MED 403 | Digital Media | ITU | Computer Graphics | https://www.youtube.com/playlist?list=PL9C949E9F19381E61 | ||||||||||||
77 | NET 301 | Networking and Communication | U. of Washington | Computer Networks | https://www.youtube.com/watch?v=d4_7dUFl4v0&list=PLkHsKoi6eZnzJl1qTzmvBwTxrSJW4D2Jj | ||||||||||||
78 | NET 302 | Networking and Communication | Thammasat ITS 413 | Internet Technologies and Applications | https://www.youtube.com/playlist?list=PLvifRcqOOwF9cfLMTE-42fiBsWvBsOEkS | ||||||||||||
79 | NET 303 | Networking and Communication | Coursera (Princeton) | Software Defined Networking | https://www.coursera.org/course/sdn1 | ||||||||||||
80 | MATH 204 | Statistics, Probability, and Data Analysis | Harvard Stat 110 | Statistics 110: Probability | https://www.youtube.com/playlist?list=PL2SOU6wwxB0uwwH80KTQ6ht66KWxbzTIo | ||||||||||||
81 | MATH 301 | Statistics, Probability, and Data Analysis | MIT 6.041 / 6.431 | Probabilistic Systems Analysis and Applied Probability | http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041-probabilistic-systems-analysis-and-applied-probability-fall-2010/index.htm | ||||||||||||
82 | MATH 402 | Statistics, Probability, and Data Analysis | Coursera (JHU) | Statistical Inference | https://www.coursera.org/course/statinference | ||||||||||||
83 | MATH 205 | Statistics, Probability, and Data Analysis | Coursera (Duke) | Data Analysis and Statistical Inference | https://www.coursera.org/course/statistics | ||||||||||||
84 |
A | B | C | D | E | F | G | H | |
---|---|---|---|---|---|---|---|---|
1 | ||||||||
2 | Once the core classes are taken, choose a track; These are just suggested, you can change them as you wish | |||||||
3 | Artificial Intelligence | Computer Engineering | Computer Graphics | Cryptography | Data Management | Networking | OS | |
4 | MATH 204/301 | MATH 204/302 | MATH 204/301 | MATH 204/301 | MATH 204/301 | MATH 204/301 | MATH 204/301 | |
5 | MATH 205/402 | SYS 301 | MATH 401 | MATH 401 | SE 401 | MATH 205/402 | AD 501 | |
6 | PROG 401 | SYS 302 | AD 501 | SE 401 | WEB 201 | SE 401 or 402 | SYS 302 | |
7 | SE 401 | PROG 301 | PROG 401 | SC 301 | DM 301 | WEB 201 | PROG 302 | |
8 | AI 301 | PROG 303 | MED 401 | SC 302 | DM 302 | PROG 301 OR 302 | PROG 303 | |
9 | AI 302 | PROG 401 | MED 402 | SC 303 | DM 303 | SC 302 | PROG 401 | |
10 | AI 303 | (Any digital hardware class) | MED 403 | SC 304 | NET 301 | SC 401 | PROG 402 | |
11 | (Any electrical eng. class) | SC 401 | NET 301 | SC 304 | ||||
12 | SC 402 | NET 302 | (any OS class) | |||||
13 | NET 303 | |||||||
14 | ||||||||
15 | ||||||||
16 | ||||||||
17 | ||||||||
18 | ||||||||
19 | ||||||||
20 | ||||||||
21 |
A | B | |
---|---|---|
1 | ||
2 | Introductory Courses - can skip if you are sure :) | |
3 | Prerequisite to introductory courses | |
4 | Core Courses | |
5 | Prerequisite to core courses | |
6 | Intermediate courses - good to have, elective, 1-3 prerequisites | |
7 | Advanced courses - focus only on those you are interested in, no need to take all - elective, several prerequisites, some are graduate level | |
8 | Graduate courses - focus only on those you are interested in, no need to take all - elective, several multidisciplinary prerequisites | |
9 | ||
10 | ↘︎ Prerequisite | |
11 | →(Half/Full) Equivalent course, () shows if the workload is different | |
12 | →↘︎ Courses are similar and could be used interchangeably | |
13 | ||
14 | Full Credit is ~4-5 months long | |
15 | Half Credit is ~2-3 months long | |
16 | ||
17 | The original course list is here: http://blog.agupieware.com/2014/06/online-learning-intensive-bachelors.html | |
18 | Notes: * Don’t take more than 3-4 full credit courses in 4 months span * Some courses are redundant with respect to others - taylor them :) * Intermediate and Graduate courses have a lot of prerequisites, don’t take them if you didn’t take the core classes * Note that the complexity is relative, and something hard for me might be easy for you - so coloring system is BS * Make your own schedule for the Intermediate courses - not all of them are required, focus on 2-3 disciplines * Please, report any broken links to cc.rafaz@zafar.cc - I will fix them | |
19 | ||
20 | ||
21 | ||
22 | I use aliases to keep track the shortened schedule in my calendar, otherwise there is no need for it Alias deciphering for a course AAAA xyz(A/B/…) : AAAA - course discipline (MATH for math, PROG for programming, MOB for mobile, etc.) x - shows the approximate level, yz - course number (A/B/…) show the alternatives | |
23 | Zafar says HI :) Bitcoins appreciated: 16KpqnbgeauP8FFXS28Ar7KY9pwFUJNd4X |
A | B | C | |
---|---|---|---|
1 | |||
2 | Here's a list of 73 free online programming/CS courses (MOOCs) with feedback(i.e. exams/homeworks/assignments) that you can start this month (June 2014) | http://www.reddit.com/r/learnprogramming/comments/27amfy/heres_a_list_of_73_free_online_programmingcs/ | |
3 | Beyond Codecademy, how do I teach myself the coding skills I would need to build a great website? | http://www.reddit.com/r/startups/comments/28slzw/beyond_codecademy_how_do_i_teach_myself_the/ | |
4 | If you can solve ~90% of the problems given here, you don’t need a B.S. in computer science | https://www.hackerrank.com/ | |
5 | Do these problems | http://www.spoj.com/ | |
6 | Do these problems | http://www.topcoder.com/ | |
7 | |||
8 | Challenge yourself (thanks Jeff C.) | http://pwnable.kr/ | |
9 | Challenge yourself (thanks Jeff C.) | http://io.smashthestack.org/ | |
10 | |||
11 | The new version of this list is here | http://zafar.cc/getting-bs-in-cs-2-dot-0/ | |
12 | Started a blog collecting some questions for CS | http://blogs.bu.edu/zafar/ |
A | B | |
---|---|---|
1 | Name | Contribution |
2 | Anna N. | For pointing out 2 broken links |
3 | Tyler M. | For providing another great resource (NET 303) |
4 | Jeff C. | For helping with the list and providing links to awesome links |