Created
February 22, 2018 03:52
-
-
Save kylebarron/b318e921543c58a82cd1a2834e955b19 to your computer and use it in GitHub Desktop.
Set up folder and download materials for teachyourselfcs.com
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #! /usr/bin/env bash | |
| mkdir teach-yourself-cs | |
| cd teach-yourself-cs | |
| # Create directory structure | |
| mkdir 1_programming | |
| mkdir 2_computer-architecture | |
| mkdir 3_algorithms-and-data | |
| mkdir 4_math-for-cs | |
| mkdir 5_operating-systems | |
| mkdir 6_computer-networking | |
| mkdir 7_databases | |
| mkdir 8_languages-and-compilers | |
| mkdir 9_distributed-systems | |
| # Make `book` and `lectures` folder in each of the above | |
| for dir in */; do mkdir -- "$dir"/{lectures,book,resources}; done | |
| cd 1_programming/lectures | |
| # Video pages: | |
| # 1 https://archive.org/details/ucberkeley_webcast_l28HAzKy0N8 | |
| # 2 https://archive.org/details/ucberkeley_webcast_TTK2lZoWbPQ | |
| # 3 https://archive.org/details/ucberkeley_webcast_ogIGxEzvnSE | |
| # 4 https://archive.org/details/ucberkeley_webcast_ZvH3wF2qg7Q | |
| # 5 https://archive.org/details/ucberkeley_webcast_dC4YGxzoAXk | |
| # 6 https://archive.org/details/ucberkeley_webcast_qxDGE1-S_LE | |
| # 7 https://archive.org/details/ucberkeley_webcast_32L5j10rrK0 | |
| # 8 https://archive.org/details/ucberkeley_webcast_0G3tNuBBO5I | |
| # 9 https://archive.org/details/ucberkeley_webcast_Oy36XpGVyjA | |
| # 10 https://archive.org/details/ucberkeley_webcast__qGeRWplPgc | |
| # 11 https://archive.org/details/ucberkeley_webcast_nzMPF59Ackg | |
| # 12 https://archive.org/details/ucberkeley_webcast_pSuEz5ZCVAg | |
| # 13 https://archive.org/details/ucberkeley_webcast_kbqJ3UGPgOc | |
| # 14 https://archive.org/details/ucberkeley_webcast_3FjDrWv00Hc | |
| # 16 https://archive.org/details/ucberkeley_webcast_rz_XpDhDtFI | |
| # 17 https://archive.org/details/ucberkeley_webcast_8HDIqZ2ZqKI | |
| # 18 https://archive.org/details/ucberkeley_webcast_jq1v8YUftxE | |
| # 19 https://archive.org/details/ucberkeley_webcast_S9mGKy3Dzqw | |
| # 20 https://archive.org/details/ucberkeley_webcast_AYoW8-L2dTQ | |
| # 21 https://archive.org/details/ucberkeley_webcast_crlcqL7lKME | |
| # 22 https://archive.org/details/ucberkeley_webcast_uxvRoOV9nOk | |
| # 23 https://archive.org/details/ucberkeley_webcast_jmDguUbxOns | |
| # 24 https://archive.org/details/ucberkeley_webcast_OCocDioUZOo | |
| # 25 https://archive.org/details/ucberkeley_webcast_YgUZP1YbHsM | |
| # 26 https://archive.org/details/ucberkeley_webcast_vV7gargdGxU | |
| # 30 https://archive.org/details/ucberkeley_webcast_Lr4zVJPpMrM | |
| # 31 https://archive.org/details/ucberkeley_webcast_tfTD0B8dX7I | |
| # 32 https://archive.org/details/ucberkeley_webcast_a_qhlzmXqAo | |
| # 33 https://archive.org/details/ucberkeley_webcast_LLl89UwSflo | |
| # 34 https://archive.org/details/ucberkeley_webcast_mtl0z0HgRTM | |
| # 35 https://archive.org/details/ucberkeley_webcast_nxX-aAvZbmM | |
| # 36 https://archive.org/details/ucberkeley_webcast_E8ZyYL1qWWY | |
| # 37 https://archive.org/details/ucberkeley_webcast_0SbpbHiyyEU | |
| # 38 https://archive.org/details/ucberkeley_webcast_OVbHFr6SG_8 | |
| # 39 https://archive.org/details/ucberkeley_webcast_tlABAGE-Tvc | |
| # 40 https://archive.org/details/ucberkeley_webcast_S9VoxtdsRyA | |
| # 41 https://archive.org/details/ucberkeley_webcast_WJsgTZsFE3M | |
| # 42 https://archive.org/details/ucberkeley_webcast_JIMS_mspmug | |
| # 43 https://archive.org/details/ucberkeley_webcast_i5XtLVwTcZY | |
| # 44 https://archive.org/details/ucberkeley_webcast_zWiQru4tn-o | |
| # Download mp4 files from those pages: | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_l28HAzKy0N8/Computer%20Science%2061A%20-%20Lecture%201%20-%20functional%20programming%201-l28HAzKy0N8.mp4 \ | |
| -O 1_functional_programming.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_TTK2lZoWbPQ/Computer%20Science%2061A%20-%20Lecture%202%20-%20functional%20programming%202-TTK2lZoWbPQ.mp4 \ | |
| -O 2_functional_programming.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_ogIGxEzvnSE/Computer%20Science%2061A%20-%20Lecture%203%20-%20higher-order%20procedures%201-ogIGxEzvnSE.mp4 \ | |
| -O 3_higher_order_procedures.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_ZvH3wF2qg7Q/Computer%20Science%2061A%20-%20Lecture%204%20-%20higher-order%20procedures%202-ZvH3wF2qg7Q.mp4 \ | |
| -O 4_higher_order_procedures.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_dC4YGxzoAXk/Computer%20Science%2061A%20-%20Lecture%205%20-%20user%20interface%20-Alan%20Kay--dC4YGxzoAXk.mp4 \ | |
| -O 5_user_interface.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_qxDGE1-S_LE/Computer%20Science%2061A%20-%20Lecture%206%20-%20%20user%20interface%20-Alan%20Kay--qxDGE1-S_LE.mp4 \ | |
| -O 6_user_interface.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_32L5j10rrK0/Computer%20Science%2061A%20-%20Lecture%207%20-%20orders%20of%20growth-32L5j10rrK0.mp4 \ | |
| -O 7_orders_of_growth.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_0G3tNuBBO5I/Computer%20Science%2061A%20-%20Lecture%208%20-%20recursion%20and%20iteration-0G3tNuBBO5I.mp4 \ | |
| -O 8_recursion.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_Oy36XpGVyjA/Computer%20Science%2061A%20-%20Lecture%209%20-%20data%20abstraction-Oy36XpGVyjA.mp4 \ | |
| -O 9_data_abstraction.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast__qGeRWplPgc/Computer%20Science%2061A%20-%20Lecture%2010%20-%20sequences-_qGeRWplPgc.mp4 \ | |
| -O 10_sequences.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_nzMPF59Ackg/Computer%20Science%2061A%20-%20Lecture%2011%20-%20Example%20-%20calculator-nzMPF59Ackg.mp4 \ | |
| -O 11_example_calculator.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_pSuEz5ZCVAg/Computer%20Science%2061A%20-%20Lecture%2012%20-%20hierarchical%20data-pSuEz5ZCVAg.mp4 \ | |
| -O 12_hierarchical_data.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_kbqJ3UGPgOc/Computer%20Science%2061A%20-%20Lecture%2013%20-%20hierarchical%20data-kbqJ3UGPgOc.mp4 \ | |
| -O 13_hierarchical_data.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_3FjDrWv00Hc/Computer%20Science%2061A%20-%20Lecture%2014%20-%20Example%20-%20Scheme-1%20interpr-3FjDrWv00Hc.mp4 \ | |
| -O 14_scheme_interpreter.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_rz_XpDhDtFI/Computer%20Science%2061A%20-%20Lecture%2016%20-%20generic%20operators-rz_XpDhDtFI.mp4 \ | |
| -O 16_generic_operators.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_8HDIqZ2ZqKI/Computer%20Science%2061A%20-%20Lecture%2017%20-%20generic%20operators-8HDIqZ2ZqKI.mp4 \ | |
| -O 17_generic_operators.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_jq1v8YUftxE/Computer%20Science%2061A%20-%20Lecture%2018%20-%20object-oriented%20programmi-jq1v8YUftxE.mp4 \ | |
| -O 18_oop.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_S9mGKy3Dzqw/Computer%20Science%2061A%20-%20Lecture%2019%20-%20object%20oriented%20%20programm-S9mGKy3Dzqw.mp4 \ | |
| -O 19_oop.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_AYoW8-L2dTQ/Computer%20Science%2061A%20-%20Lecture%2020%20-%20object-oriented%20programmi-AYoW8-L2dTQ.mp4 \ | |
| -O 20_oop.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_crlcqL7lKME/Computer%20Science%2061A%20-%20Lecture%2021%20-%20assignment%20and%20state-crlcqL7lKME.mp4 \ | |
| -O 21_assignment_and_state.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_uxvRoOV9nOk/Computer%20Science%2061A%20-%20Lecture%2022%20-%20environments-uxvRoOV9nOk.mp4 \ | |
| -O 22_environments.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_jmDguUbxOns/Computer%20Science%2061A%20-%20Lecture%2023%20-%20environments-jmDguUbxOns.mp4 \ | |
| -O 23_environments.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_OCocDioUZOo/Computer%20Science%2061A%20-%20Lecture%2024%20-%20mutable%20data-OCocDioUZOo.mp4 \ | |
| -O 24_mutable_data.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_YgUZP1YbHsM/Computer%20Science%2061A%20-%20Lecture%2025%20-%20mutable%20data-YgUZP1YbHsM.mp4 \ | |
| -O 25_mutable_data.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_vV7gargdGxU/Computer%20Science%2061A%20-%20Lecture%2026%20-%20vectors-vV7gargdGxU.mp4 \ | |
| -O 26_vectors.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_Lr4zVJPpMrM/Computer%20Science%2061A%20-%20Lecture%2030%20-%20client-server%20programming-Lr4zVJPpMrM.mp4 \ | |
| -O 30_client_server_programming.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_tfTD0B8dX7I/Computer%20Science%2061A%20-%20Lecture%2031%20-%20concurrency-tfTD0B8dX7I.mp4 \ | |
| -O 31_concurrency.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_a_qhlzmXqAo/Computer%20Science%2061A%20-%20Lecture%2032%20-%20concurrency-a_qhlzmXqAo.mp4 \ | |
| -O 32_concurrency.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_LLl89UwSflo/Computer%20Science%2061A%20-%20Lecture%2033%20-%20streams-LLl89UwSflo.mp4 \ | |
| -O 33_streams.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_mtl0z0HgRTM/Computer%20Science%2061A%20-%20Lecture%2034%20-%20streams-mtl0z0HgRTM.mp4 \ | |
| -O 34_streams.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_nxX-aAvZbmM/Computer%20Science%2061A%20-%20Lecture%2035%20-%20Therac-25-nxX-aAvZbmM.mp4 \ | |
| -O 35_therac_25.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_E8ZyYL1qWWY/Computer%20Science%2061A%20-%20Lecture%2036%20-%20metacircular%20evaluator%20--E8ZyYL1qWWY.mp4 \ | |
| -O 36_metacircular_evaluator.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_0SbpbHiyyEU/Computer%20Science%2061A%20-%20Lecture%2037%20-%20metacircular%20evaluator%20--0SbpbHiyyEU.mp4 \ | |
| -O 37_metacircular_evaluator.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_OVbHFr6SG_8/Computer%20Science%2061A%20-%20Lecture%2038%20-%20mapreduce-OVbHFr6SG_8.mp4 \ | |
| -O 38_mapreduce.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_tlABAGE-Tvc/Computer%20Science%2061A%20-%20Lecture%2039%20-%20mapreduce-tlABAGE-Tvc.mp4 \ | |
| -O 39_mapreduce.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_S9VoxtdsRyA/Computer%20Science%2061A%20-%20Lecture%2040%20-%20analyzing%20evaluator-S9VoxtdsRyA.mp4 \ | |
| -O 40_analyzing_evaluator.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_WJsgTZsFE3M/Computer%20Science%2061A%20-%20Lecture%2041%20-%20lazy%20evaluator-WJsgTZsFE3M.mp4 \ | |
| -O 41_lazy_evaluator.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_JIMS_mspmug/Computer%20Science%2061A%20-%20Lecture%2042%20-%20logic%20programming-JIMS_mspmug.mp4 \ | |
| -O 42_logic_programming.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_i5XtLVwTcZY/Computer%20Science%2061A%20-%20Lecture%2043%20-%20logic%20programming-i5XtLVwTcZY.mp4 \ | |
| -O 43_logic_programming.mp4 | |
| wget \ | |
| https://archive.org/download/ucberkeley_webcast_zWiQru4tn-o/Computer%20Science%2061A%20-%20Lecture%2044%20-%20Review-zWiQru4tn-o.mp4 \ | |
| -O 44_review.mp4 | |
| # Download textbook | |
| cd ../book | |
| wget https://mitpress.mit.edu/sites/default/files/6515.pdf -O sicp_orig.pdf | |
| wget https://github.com/sarabander/sicp-pdf/raw/master/sicp.pdf -O sicp_reformatted.pdf | |
| # Resources | |
| cd ../resources | |
| echo "http://www-inst.eecs.berkeley.edu/~cs61a/reader/" >> resources.txt | |
| echo "https://sequoia-tree.github.io/#Textbook" >> resources.txt | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment