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