When it comes to computers, it's almost required that you teach yourself
+everything there is to know. This autodidacticism might work for some, but
+becomes frustrating for preteens not used to it. On the other hand, in person
+educational programs offered by schools are often aimed towards the lowest
+common
+denominator, oversimplifying things to the point where your child loses interest
+in them.
+
The Urban Computing and Electronics Summer Program aims to provide a
+balance between this, offering practical and challenging course material, but
+also providing in person tutoring for those who have little prior experience.
+This two week program is tailored to your child's skill level and offers
+topics ranging from High Level Programming, Low Level Programming,
+Electronics, Web Design, Cyber Security, and UNIX system maintenance.
+
+
+
+
+
+
+About Me
+
+My name is Haoran S. Diao, I'm a self taught electronics and programming
+hobbyist.
+
+I have experience in:
+
Robotics (Head programmer at the Urbana Mandelbots FTC team)
+
+
+I have been:
+
+
+
Head Programmer at the Urbana Mandelbots Robotics Team
+
Former Vice Present at a student run non-profit(Resigned)
+
+Course Details
+---Required Course Materials
+
A dedicated laptop that Linux will be installed on, this can be any
+obsolete laptop made after 2010. This does not have to be a very fast computer
+at all. In most cases, previous data and OS will be wiped on installation of new
+OS, but dualbooting(keeping both systems) can be done for certain computers. If
+you can no provide a dedicated laptop then you can purchase a Raspberry Pi kit
+for ~80 from me or online.
+
+
Optional Course Materials:
+
+
-2 USB drives 8GB minimum, this is to help with file
+transfer and
+ OS installation.
+
+
-USB wifi dongle, same as above.
+
+
These will only be required for certain projects, you are not required
+to bring these if we do not end up exploring that topic.
+
+
3.b - An Arduino kit or PIC microcontroller w/
+programmer.
+
+
4.b Ti-8* series calculator
+
+
7.c - USB wifi dongle
+
+---Course Outline:
+
+
1)Linux System Maintenance:
+
+
a - Using the Terminal
+
b - Drive Partitioning and Installing a System from
+Scratch
+
c - Shell Scripting
+
d - Compiling Custom Kernels
+
+
+
2)High Level Programming(farther away from hardware):
+
+
a - Image Recognition Algorithms in Python with the OpenCV
+library.
+
c - Making Games with Pygame in Python.
+
d - Making Minecraft Mods with Java.
+
+
3)Low Level Programming(closer to hardware):
+
+
a - Linux Kernel Modules using C
+
b - Microcontroller Code using C
+
c - Making Games with C++ using the OpenGL and SDL
+Libraries.
+
+
4)Just For Fun Programming:
+
+
a - Coding in Minecraft with Lua
+
b - Coding on a Ti-8* Calculator with TiBasic
+
+
5)Electronnics Design and CAD:
+
+
a - Designing Circuits and PCBs in Kicad or EagleCad
+
b - Mechanical Drawing with LibreCAD
+
+
6)Hands On Electronics
+
+
a - Building Circuits with 74xx Series Logic ICs(Integrated
+Ciruits)
+
b - Building Custom Keyboards
+
+
7)Basic Cybersecurity and Penetration Testing
+
+
a - Personal Security Best Practices (Operational Security,
+Network Secruity)
+
a - PGP, SSL and Other Uses for Encruption.
+
b - Applying Security Patches to Your System.
+
c - Wireless Network Pentesting
+
+
8) Static Web Design
+
+
a - HTML/CSS
+
b - Javascript
+
c - Hosting your own website with github.io
+
+
diff --git a/gen.sh b/gen.sh
new file mode 100755
index 0000000..82d8763
--- /dev/null
+++ b/gen.sh
@@ -0,0 +1,43 @@
+pages=$(ls -S -t cont/| grep html | grep -v index.html) #lists the actual content
+#-S -t so that the files are roughly in time order
+#index is excluded and appended at the end to make sure it gets processed last
+pages="$pages index.html"
+#clears the index
+rm index
+for page in $pages; do
+ #clears page and page.tmp
+ rm $page $page.tmp
+ #adds the header
+ cat src/header.html >> $page.tmp
+
+ #finds the [SETTITLE], but ignores \[SETTITLE], then filters out the [SETTITLE] part
+ #the head is to make it use the last one
+ title=$(cat cont/$page | grep '\[SETTITLE\]'| sed '/\\\[SETTITLE\]/d; s/\[SETTITLE\]//' | tail -n 1)
+ #does the same for the date
+ date=$(cat cont/$page | grep '\[SETDATE\]'| sed '/\\\[SETDATE\]/d; s/\[SETDATE\]//' | tail -n 1)
+
+
+ #replaces \[SETTITLE] with [SETTITLE], and removes lines with legitimate [SETTITLE]s in a temporary file
+ cat cont/$page | sed '/\\\[SETTITLE\]/bx; /\[SETTITLE\].*/d;:x s/\\\[SETTITLE\]/\[SETTITLE\]/' >> $page.tmp
+ #same for the date
+ cat $page.tmp | sed '/\\\[SETDATE\]/bx; /\[SETDATE\].*/d;:x s/\\\[SETDATE\]/\[SETDATE\]/' >> $page
+
+ #adds the index if its the homepage
+ if [ "$page" == "index.html" ]; then
+ cat index >> $page
+ rm index
+ fi
+ #adds the footer
+ cat src/footer.html >> $page
+
+ #replaces \[TITLE] with [TITLE] and [TITLE] with $title, "" is used so the $ still applies
+
+ #however that means "\\\\" becomes "\\" when passed to sed from bash, and finally interpreted as a literal \ by sed
+ cat $page | sed "/\\\\\[TITLE\]/bx; s/\[TITLE\]/$title/; :x s/\\\\\[TITLE\]/\[TITLE\]/" > $page.tmp
+ #same with date
+ cat $page.tmp | sed "/\\\\\[DATE\]/bx; s/\[DATE\]/$date/; :x s/\\\\\[DATE\]/\[DATE\]/" > $page
+
+ rm $page.tmp
+ #adds to the index
+ echo "[$title] $date" >> index
+done
diff --git a/img/banner.png b/img/banner.png
new file mode 100644
index 0000000..1cc0b4d
Binary files /dev/null and b/img/banner.png differ
diff --git a/img/c.png b/img/c.png
new file mode 100644
index 0000000..b523215
Binary files /dev/null and b/img/c.png differ
diff --git a/img/elec.png b/img/elec.png
new file mode 100644
index 0000000..e5dbd7c
Binary files /dev/null and b/img/elec.png differ
diff --git a/img/mech.png b/img/mech.png
new file mode 100644
index 0000000..7a2deae
Binary files /dev/null and b/img/mech.png differ
diff --git a/img/webandterm.png b/img/webandterm.png
new file mode 100644
index 0000000..2d338d2
Binary files /dev/null and b/img/webandterm.png differ
diff --git a/index b/index
new file mode 100644
index 0000000..bd0574c
--- /dev/null
+++ b/index
@@ -0,0 +1 @@
+[]
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..8c4441e
--- /dev/null
+++ b/index.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+Urbana Electronics & Programming Summer Program
+
When it comes to computers, it's almost required that you teach yourself
+everything there is to know. This autodidacticism might work for some, but
+becomes frustrating for preteens not used to it. On the other hand, in person
+educational programs offered by schools are often aimed towards the lowest
+common
+denominator, oversimplifying things to the point where your child loses interest
+in them.
+
The Urban Computing and Electronics Summer Program aims to provide a
+balance between this, offering practical and challenging course material, but
+also providing in person tutoring for those who have little prior experience.
+This two week program is tailored to your child's skill level and offers
+topics ranging from High Level Programming, Low Level Programming,
+Electronics, Web Design, Cyber Security, and UNIX system maintenance.
+
+
+
+
+
+
+About Me
+
+My name is Haoran S. Diao, I'm a self taught electronics and programming
+hobbyist.
+
+I have experience in:
+
Robotics (Head programmer at the Urbana Mandelbots FTC team)
+
+
+I have been:
+
+
+
Head Programmer at the Urbana Mandelbots Robotics Team
+
Former Vice Present at a student run non-profit(Resigned)
+
+Course Details
+---Required Course Materials
+
A dedicated laptop that Linux will be installed on, this can be any
+obsolete laptop made after 2010. This does not have to be a very fast computer
+at all. In most cases, previous data and OS will be wiped on installation of new
+OS, but dualbooting(keeping both systems) can be done for certain computers. If
+you can no provide a dedicated laptop then you can purchase a Raspberry Pi kit
+for ~80 from me or online.
+
+
Optional Course Materials:
+
+
-2 USB drives 8GB minimum, this is to help with file
+transfer and
+ OS installation.
+
+
-USB wifi dongle, same as above.
+
+
These will only be required for certain projects, you are not required
+to bring these if we do not end up exploring that topic.
+
+
3.b - An Arduino kit or PIC microcontroller w/
+programmer.
+
+
4.b Ti-8* series calculator
+
+
7.c - USB wifi dongle
+
+---Course Outline:
+
+
1)Linux System Maintenance:
+
+
a - Using the Terminal
+
b - Drive Partitioning and Installing a System from
+Scratch
+
c - Shell Scripting
+
d - Compiling Custom Kernels
+
+
+
2)High Level Programming(farther away from hardware):
+
+
a - Image Recognition Algorithms in Python with the OpenCV
+library.
+
c - Making Games with Pygame in Python.
+
d - Making Minecraft Mods with Java.
+
+
3)Low Level Programming(closer to hardware):
+
+
a - Linux Kernel Modules using C
+
b - Microcontroller Code using C
+
c - Making Games with C++ using the OpenGL and SDL
+Libraries.
+
+
4)Just For Fun Programming:
+
+
a - Coding in Minecraft with Lua
+
b - Coding on a Ti-8* Calculator with TiBasic
+
+
5)Electronnics Design and CAD:
+
+
a - Designing Circuits and PCBs in Kicad or EagleCad
+
b - Mechanical Drawing with LibreCAD
+
+
6)Hands On Electronics
+
+
a - Building Circuits with 74xx Series Logic ICs(Integrated
+Ciruits)
+
b - Building Custom Keyboards
+
+
7)Basic Cybersecurity and Penetration Testing
+
+
a - Personal Security Best Practices (Operational Security,
+Network Secruity)