Skip to content

Instantly share code, notes, and snippets.

@kylebarron
Created February 22, 2018 03:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kylebarron/b318e921543c58a82cd1a2834e955b19 to your computer and use it in GitHub Desktop.
Save kylebarron/b318e921543c58a82cd1a2834e955b19 to your computer and use it in GitHub Desktop.
Set up folder and download materials for teachyourselfcs.com
#! /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