diff --git a/gen/missing_semester_2020/.gitignore b/gen/missing_semester_2020/.gitignore
new file mode 100644
index 0000000..3917bca
--- /dev/null
+++ b/gen/missing_semester_2020/.gitignore
@@ -0,0 +1,107 @@
+# Created by https://www.toptal.com/developers/gitignore/api/vim,emacs,osx
+# Edit at https://www.toptal.com/developers/gitignore?templates=vim,emacs,osx
+
+*.html
+*.css
+*.css.map
+
+### Emacs ###
+# -*- mode: gitignore; -*-
+*~
+\#*\#
+/.emacs.desktop
+/.emacs.desktop.lock
+*.elc
+auto-save-list
+tramp
+.\#*
+
+# Org-mode
+.org-id-locations
+*_archive
+
+# flymake-mode
+*_flymake.*
+
+# eshell files
+/eshell/history
+/eshell/lastdir
+
+# elpa packages
+/elpa/
+
+# reftex files
+*.rel
+
+# AUCTeX auto folder
+/auto/
+
+# cask packages
+.cask/
+dist/
+
+# Flycheck
+flycheck_*.el
+
+# server auth directory
+/server/
+
+# projectiles files
+.projectile
+
+# directory configuration
+.dir-locals.el
+
+# network security
+/network-security.data
+
+
+### OSX ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### Vim ###
+# Swap
+[._]*.s[a-v][a-z]
+!*.svg # comment out if you don't need vector files
+[._]*.sw[a-p]
+[._]s[a-rt-v][a-z]
+[._]ss[a-gi-z]
+[._]sw[a-p]
+
+# Session
+Session.vim
+Sessionx.vim
+
+# Temporary
+.netrwhist
+# Auto-generated tag files
+tags
+# Persistent undo
+[._]*.un~
+
+# End of https://www.toptal.com/developers/gitignore/api/vim,emacs,osx
diff --git a/gen/missing_semester_2020/.gitmodules b/gen/missing_semester_2020/.gitmodules
new file mode 100644
index 0000000..86216b7
--- /dev/null
+++ b/gen/missing_semester_2020/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "_share/media/sass/org-media-sass"]
+ path = _share/media/sass/org-media-sass
+ url = git@bitbucket.org:ronnyabraham/org-media-sass.git
diff --git a/gen/missing_semester_2020/_share/media/fonts b/gen/missing_semester_2020/_share/media/fonts
new file mode 120000
index 0000000..6f076aa
--- /dev/null
+++ b/gen/missing_semester_2020/_share/media/fonts
@@ -0,0 +1 @@
+/Users/ronny/notes/_share/media/fonts
\ No newline at end of file
diff --git a/gen/missing_semester_2020/_share/media/img/lecture01/ex01.png b/gen/missing_semester_2020/_share/media/img/lecture01/ex01.png
new file mode 100644
index 0000000..26cdbcf
Binary files /dev/null and b/gen/missing_semester_2020/_share/media/img/lecture01/ex01.png differ
diff --git a/gen/missing_semester_2020/_share/media/js/collapsible.js b/gen/missing_semester_2020/_share/media/js/collapsible.js
new file mode 120000
index 0000000..c7c8b09
--- /dev/null
+++ b/gen/missing_semester_2020/_share/media/js/collapsible.js
@@ -0,0 +1 @@
+/Users/ronny/notes/_share/media/js/collapsible.js
\ No newline at end of file
diff --git a/gen/missing_semester_2020/_share/media/sass/missing-semester.sass b/gen/missing_semester_2020/_share/media/sass/missing-semester.sass
new file mode 100644
index 0000000..fc4fd80
--- /dev/null
+++ b/gen/missing_semester_2020/_share/media/sass/missing-semester.sass
@@ -0,0 +1,93 @@
+@use "sass:map"
+@use "sass:color"
+
+@use 'org-media-sass/default-org-mode'
+
+@use 'org-media-sass/themes/desert-oasis' as *
+@use 'org-media-sass/fonts' as fonts
+@use 'org-media-sass/mixins' as mixins-basic
+
+@include mixins-basic.set-header-sizes($default-header-sizes)
+@include mixins-basic.set-header-colors($default-header-colors)
+@include mixins-basic.set-header-margins-sides($default-header-margins-sides)
+@include mixins-basic.set-header-margins-vertical($default-header-margins-vertical)
+
+
+/* Base Styles */
+body
+ font-family: $primary-font
+ color: $text-color
+ background-color: $background-color
+
+/* Link Styles */
+a
+ color: $anchor-color
+
+ &:hover
+ color: $anchor-hover-color
+
+// Lists
+ul, ol
+ padding-left: $list-padding-left
+
+// Blockquotes
+blockquote
+ border-color: $secondary-color
+ color: color.adjust($text-color, $lightness: 10%)
+ font-family: $secondary-font
+
+// Tables
+table
+ color: $text-color
+
+th, td
+ border-color: $table-border-color
+
+th
+ background-color: $table-header-bg
+ color: $text-color
+
+tr:nth-child(even)
+ background-color: color.adjust($background-color, $lightness: 5%)
+
+/* Code Block Styles */
+pre, code
+ background-color: $code-background-color
+ color: $code-text-color
+
+ font-family: $secondary-font
+
+/* Header Styles */
+h1, h2, h3, h4, h5, h6
+ font-family: $secondary-font
+
+h4[id="timestamp"]
+ text-transform: uppercase
+ color: color.adjust(map.get($default-header-colors, 'h3'), $lightness: 10%)
+
+h4[id="playlist"]
+ color: color.adjust(map.get($default-header-colors, 'h3'), $lightness: -10%)
+h3
+ a
+ color: color.adjust($anchor-color, $lightness: -12%)
+ &:hover
+ color: color.adjust($anchor-hover-color, $lightness: -12%)
+
+// Notes
+.note
+ background-color: $note-background-color
+ border-color: $note-border-color
+ color: $text-color
+
+div#postamble
+ border-color: $note-border-color
+ color: color.adjust($note-border-color, $lightness: 20%)
+
+/* Table of Contents Link */
+.toc
+ color: $primary-color
+
+div#table-of-contents ul li a
+ color: $toc-anchor-color
+ &:hover
+ color: $toc-anchor-hover-color
diff --git a/gen/missing_semester_2020/_subsections/lesson-01.org b/gen/missing_semester_2020/_subsections/lesson-01.org
new file mode 100644
index 0000000..4640115
--- /dev/null
+++ b/gen/missing_semester_2020/_subsections/lesson-01.org
@@ -0,0 +1,133 @@
+#+title: Lesson 01 | Course Overview + Shell
+#+HTML_HEAD:
+#+HTML_HEAD:
+#+HTML_HEAD:
+
+* Links
+#+attr_html: :class links
+- [[../toc.org][TOC | Missing Semester]]
+- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][Playlist: Missing Semester]]
+
+*** timestamps
+:PROPERTIES:
+:CUSTOM_ID: timestamp
+:END:
+
+#+attr_html: :class playlist
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=20s][00:20 why we're doing this class]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=251s][04:11 the shell]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=338s][05:38 install a terminal and a shell]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=364s][06:05 the shell prompt]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=411s][06:51 shell prompt]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=522s][08:42 how does the shell know what these programs are]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=672s][11:12 paths]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=738s][12:18 absolute path]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=759s][12:39 relative paths]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1034s][17:14 tilde character]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1336s][22:16 directories]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1376s][22:56 execute on directories]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1514s][25:14 cp command]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1547s][25:47 rm]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1590s][26:30 create a new directory]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1912s][31:52 pipe character]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2044s][34:04 grep]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2145s][35:45 the root user]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2239s][37:19 kernel paramters]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2612s][43:32 scroll lock led]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2706s][45:06 open a file]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2829s][47:09 lecture notes]]
+- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2875s][office hours]]
+
+* Notes
+** why
+- there are many tools that make life easier for programmers
+- lecture notes and recordings are available online
+
+** the shell
+- programs are meant to be integrates with each other through the shell
+- most common shell is Bourne Again Shell (bash)
+
+** shell prompt
+- typical shell prompt:
+ #+attr_html: :width 300px
+ file:../_share/media/img/lecture01/ex01.png
+
+- shells can be customized extensibly
+- arguments are seperated by whitespace
+- multiple words can be passed as a single argument via:
+ - quotes
+ #+begin_src bash
+ echo "Hello world"
+ #+end_src
+
+ - escapes
+ #+begin_src bash
+ echo Hello\ world
+ #+end_src
+
+** how does the shell know where programs are
+- via environment variable
+ - things that are set whenever you start your shell
+ - where is your home directory
+ - what is your username
+ - what are the PATHs to your programs
+- shells, and bash in particular, are programming languages
+
+** paths
+*** PATH environment variable
+
+- a list seperated by colons (:)
+- when bash is asked to run a program bash will search through the directories in path until it finds the program
+
+*** absolute vs relative path
+
+- pwd: print working directory
+- all relative paths are relative to your current working directory
+- absolute path starts with '/'
+
+*** special directories
+- '.' current directory
+- '..' parent directory
+
+*** tilde (~)
+- always expands to your home directory
+
+*** dash (-)
+- toggles to the previous directory you were at
+
+ #+begin_src bash
+ cd /home/ronny/programs/notes/courses
+ cd ../../
+ cd -
+ pwd
+ #+end_src
+
+the output will be
+=/home/ronny/programs/notes/courses=
+
+** permissions
+*** groups of three
+- read
+- write
+- execute
+
+*** directories
+- read: are you allowed to see the files
+- write: can you rename the files in the directory
+- execute: "search" are you allowed to enter this directory
+ - to access a file in a directory, you need execute permissions on all directories in the path
+
+** piping
+- every program has two streams
+ - input stream
+ - output stream
+- shell allows you to change streams
+ - angle brackets
+ - left angle < : rewire input
+ - right angle > : rewire output
+
+- example
+ #+begin_src bash
+ echo hello > hello.txt
+ cat < hello.txt
+ #+end_src
diff --git a/gen/missing_semester_2020/_subsections/lesson-02.org b/gen/missing_semester_2020/_subsections/lesson-02.org
new file mode 100644
index 0000000..7c48d92
--- /dev/null
+++ b/gen/missing_semester_2020/_subsections/lesson-02.org
@@ -0,0 +1,288 @@
+#+title: lesson 02 | course overview + the shell
+#+HTML_HEAD:
+#+HTML_HEAD:
+#+HTML_HEAD:
+
+* Links
+#+attr_html: :class links
+- [[../toc.org][TOC | Missing Semester]]
+- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][Playlist: Missing Semester]]
+
+- Curr: https://youtu.be/kgII-YWo3Zw?si=Wm8KLT1ggOGG8W-g&t=1692
+
+
+*** timestamps
+:PROPERTIES:
+:CUSTOM_ID: timestamp
+:END:
+
+#+attr_html: :class playlist
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=54s][00:54 - control flow functions]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=227s][03:47 - sequential execution]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=425s][07:05 - standard input]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=444s][07:24 - error code]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=517s][08:37 - logical operators]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=603s][10:03 - concatenate commands]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=645s][10:45 - common substitution]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=675s][11:15 - process substitution]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=935s][15:35 - comparison operator]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=1173s][19:33 - curly braces]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=1359s][22:39 - python script]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=1707s][28:27 - man command]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=2175s][31:26 - finding files]] *current*
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=2190s][36:30 - grep]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=2573s][42:53 - fuzzy finder]]
++ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=2649s][44:09 - history substring search]]
+
+* Notes
+
+** bash
+*** spaces are critical with bash
+ - this works:
+ #+begin_src bash
+ foo=bar
+ echo $foo
+ #+end_src
+
+ - this doesn't:
+ #+begin_src bash
+ foo = bar
+ echo $foo
+ #+end_src
+
+ - the output of that will be
+ =zsh: command not found: foo=
+
+ - what happens in the above example is that we are effectively calling the "foo" program with the arguments: "=" and "bar"
+
+*** quotes
+- you can use double or single quotes to print a value
+ #+begin_src bash
+ echo "Hello"
+ #+end_src
+ #+begin_src bash
+ echo 'Hello'
+ #+end_src
+
+- double quotes can interpolate variables
+ #+begin_src bash
+ echo "Value is $foo"
+ #+end_src
+
+ will return: =Value is bar=
+
+- single quotes can NOT interpoloate variables
+ #+begin_src bash
+ echo 'Value is $foo'
+ #+end_src
+
+ will return: =Value is $foo=
+
+** sequential execution
+
+*** bash functions
+- mcd.sh
+#+begin_src bash
+mcd() {
+ mkdir -p "$1"
+ cd "$1"
+ }
+#+end_src bash
+
+- creates a function that can be executed after loading
+ - $1 is a global variable referring to the first parameter
+
+*** source
+- using source mcd.sh
+ =source mcd.sh=
+
+- then carry out the function
+ =mcd testdir=
+
+- this will create a new directory and cd into it as per the definied functioned
+
+** error codes
+*** commands to access codes or values
+- $0 -- name of the script we are currently in
+ - if you run this in the shell it will display 'bash'
+- $1->$9 -- the first through ninth argument given to a script
+- $? -- the last error message
+- $_ --- last argument of the previous call
+
+- !! -- recreates the last call with it's arguments
+ - use with sudo if you found your call needed a sudo and you don't feel like retyping it again
+
+ #+begin_src bash
+ ls -lah
+ sudo !!
+ #+end_src
+
+*** code values
+- boolean
+ - true returns an error code of 0
+ - false returns an error code of 1
+
+** using $@ and $*
+- represents all the arguments passed to a script or a function as separate, individual strings. It preserves each argument as a distinct item, even if the argument contains spaces.
+
+*** key points about $@
+1. All Arguments: It refers to all the command-line arguments passed to the script.
+2. Preserves Spaces: If an argument contains spaces, it is treated as a single argument.
+3. Usage: It is commonly used in a loop to iterate over each argument.
+
+*** example
+#+begin_src bash
+./myscript.sh file1.txt "file with spaces.txt" file3.txt
+#+end_src
+
+then $@ will be
+=file1.txt "file with spaces.txt" file3.txt=
+
+*** differences between $*
+- *$@* treats each argument as a sepearte item
+- *$** treats all arguments as a single, combined string
+
+
+** logical operators
+- you can use the error return value in conditionals
+*** example using the OR conditional
+ #+begin_src bash
+ false || echo "Oops fail"
+ "Oops fail"
+ #+end_src
+
+*** example using the AND conditional
+ #+begin_src bash
+ true && echo "this will print"
+ "this will print"
+ #+end_src
+
+** concatenate commands
+- you caoncatinate commands using the semicolon: *;*
+
+ #+begin_src bash
+ false; echo "this prints always"
+ "this prints always"
+ #+end_src
+
+** common substitution
+- take the output of a command and put it in a variable
+ #+begin_src bash
+ foo=$(pwd)
+ echo $foo
+ "/Users/ronny/..."
+ #+end_src
+
+- this can also be done by placing that format in a string and it will expand the string
+ #+begin_src bash
+ echo "the pwd output is: $(pwd)"
+ "the pwd output is: /Users/ronny/..."
+ #+end_src
+
+** process substitution
+*** description
+Bash process substitution is a feature that allows you to use the output of a command or a process as if it were a file. It enables you to redirect input or output between processes in a flexible way without needing intermediate temporary files.
+
+*** Syntax
+- creates a temporary file descriptor for the output of the command, which can be used as an input file in another command.
+ #+begin_src bash
+ <(command)
+ #+end_src
+- creates a temporary file descriptor for writing to the command, which can be used as an output file in another command.
+ #+begin_src bash
+ >(command)
+ #+end_src
+
+*** examples
+- this will take b, a, d, c and sort it so the result is 'a, b, c, d'
+ #+begin_src bash
+ sort <(echo -e "b\na") <(echo -e "d\nc")
+ #+end_src
+
+- this will list the files, send the list to *tee* which will split a portion off to the screen and the rest to grep, followed by text_files.txt
+
+ #+begin_src bash
+ ls | tee >(grep "txt" > text_files.txt)
+ #+end_src
+
+#+begin_src bash
+echo "Starting program at $(date)" # Date will be substituted
+echo "Running program $0 with $# arguments with pid $$"
+
+for file in "$@"; do
+ grep foobar "$file" > /dev/null 2> /dev/null
+
+ # when pattern is not found, grep has exit status 1
+ # we redirect STDOUT and STDERR to a null register since we do not care about them
+
+ if [[ "$?" - ne 0 ]]; then
+ echo "File $file does not have any foober adding one"
+ echo "# foobar" >> "$file"
+ fi
+done
+#+end_src
+
+- *$$* pid given for program
+- *$#* number of arguments
+- *$@* expands to all the arguments
+ - can be used in a for loop
+- *2>* refers to STDERR
+- *>* refers to STDOUT
+
+** test utility
+
+test is a bash utility that you can use to test the condition of a file. look at the man page for more info
+
+** curly braces
+curly braces are used as a form of program command expansion.
+
+the braces contain a number of arguments seperated by commans that will expand into arguments for the program
+
+*** example
+#+begin_src bash
+touch foo{,1,2,10}
+touch foo foo1 foo2 foo10
+
+cp foo{,.old}
+cp foo foo.old
+#+end_src
+
+*** ranges
+this takes the format {1..20}
+
+#+begin_src bash
+touch directory{1..4}/foo{a..z}.txt
+#+end_src
+
+** python scripts
+*** making them bash executable
+- reference the python compiler at the top of the file
+ - do it directly:
+ #+begin_src bash
+ #!/usr/local/bin/python
+ #+end_src
+ - use the env program to do so
+ #+begin_src bash
+ #!/usr/bin/env python
+ #+end_src
+
+*** args can be found through sys.argv[1:]
+ #+begin_src python
+import sys
+for arg in reversed(sys.argv[1:]):
+ print(arg)
+ #+end_src
+
+** checking for problems in bash scripts using 'shellcheck'
+#+begin_src bash
+shellcheck some_bash_script.sh
+#+end_src
+
+- will tell you problems
+- and warnings
+
+** man command
+- works with both os, and installed tools
+- 'tldr' is easier to read
+
+** find
diff --git a/gen/missing_semester_2020/_subsections/lesson-03.org b/gen/missing_semester_2020/_subsections/lesson-03.org
new file mode 100644
index 0000000..062c8a1
--- /dev/null
+++ b/gen/missing_semester_2020/_subsections/lesson-03.org
@@ -0,0 +1,38 @@
+#+title: Lesson 02 | shell tools and scripting
+#+HTML_HEAD:
+#+HTML_HEAD:
+#+HTML_HEAD:
+
+* Links
+#+attr_html: :class links
+- [[../toc.org][TOC | Missing Semester]]
+- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][Playlist: Missing Semester]]
+
+* Notes
+
+
+*** Playlist
+
+#+attr_html: :class playlist
+1. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=20s][why we're doing this class]]
+2. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=251s][the shell]]
+3. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=338s][install a terminal and a shell]]
+4. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=411s][shell prompt]]
+5. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=522s][how does the shell know what these programs are]]
+6. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=672s][paths]]
+7. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=738s][absolute path]]
+8. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=759s][relative paths]]
+9. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1034s][tilde character]]
+10. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1336s][directories]]
+11. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1376s][execute on directories]]
+12. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1514s][cp command]]
+13. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1547s][rm]]
+14. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1590s][create a new directory]]
+15. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1912s][pipe character]]
+16. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2044s][grep]]
+17. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2145s][the root user]]
+18. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2239s][kernel paramters]]
+19. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2612s][scroll lock led]]
+20. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2706s][open a file]]
+21. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2829s][lecture notes]]
+22. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2875s][office hours]]
diff --git a/gen/missing_semester_2020/toc.org b/gen/missing_semester_2020/toc.org
new file mode 100644
index 0000000..6001773
--- /dev/null
+++ b/gen/missing_semester_2020/toc.org
@@ -0,0 +1,34 @@
+#+title: Missing Semester IAP 2020
+#+HTML_HEAD:
+#+HTML_HEAD:
+#+HTML_HEAD:
+#+HTML_HEAD:
+
+* Links
+#+attr_html: :class links
+- [[../../../course-listings.org][Courses Listing]]
+- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][YouTube Playlist: Missing Semester]]
+
+*** playlist
+:PROPERTIES:
+:CUSTOM_ID: playlist
+:END:
+
+#+attr_html: :class playlist
+1. [[https://youtu.be/Z56Jmr9Z34Q?si=XHgfjMWOSx0lSUV8][Lecture 1: Course Overview + The Shell]]
+2. [[https://youtu.be/kgII-YWo3Zw?si=yOa5im_cHzisLeZn][Lecture 2: Shell Tools and Scripting]]
+3. [[https://youtu.be/a6Q8Na575qc?si=7cgWLJfBgtzVvUUC][Lecture 3: Editors]]
+4. [[https://youtu.be/sz_dsktIjt4?si=l9M6_yIDqV1drxNS][Lecture 4: Data Wrangling]]
+5. [[https://youtu.be/e8BO_dYxk5c?si=a6aWoJSVS13rQO1I][Lecture 5: Command-line Environment]]
+6. [[https://youtu.be/2sjqTHE0zok?si=ArLpMvXhrtAsQnLH][Lecture 6: Version Control (git)]]
+7. [[https://youtu.be/l812pUnKxME?si=BDElINPHWLHQzBcD][Lecture 7: Debugging and Profiling]]
+8. [[https://youtu.be/_Ms1Z4xfqv4?si=tMk44R213bG70pCq][Lecture 8: Metaprogramming]]
+9. [[https://youtu.be/tjwobAmnKTo?si=QnIhfVK8mJHCV6PU][Lecture 9: Security and Cryptography]]
+10. [[https://youtu.be/JZDt-PRq0uo?si=7oCytjjvVaGSTDHr][Lecture 10: Potpourri]]
+11. [[https://youtu.be/Wz50FvGG6xU?si=Gmp-YJZm0sR65GAa][Lecture 11: Q&A]]
+
+* Contents Overview
+#+attr_html: :class contents-overview
+- [[./_subsections/lesson-01.org][Lesson 01 | Course Overview + The Shell]]
+- [[./_subsections/lesson-02.org][Lesson 02 | Shell Tools and Scripting]]
+