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.
+



+My name is Haoran S. Diao, I'm a self taught electronics and programming +hobbyist. + +I have experience in: +
+-
+
- Electronics Software Drivers(kernel modules,microcontroller +code) +
- Electronics Hardware Design(Custom PCB design etc...) +
- Programming(C, C++, Golang, Java, HTML/Javascript/CSS, Python, Lua, +Bash +scripts) +
- Linux System Maintenance(I have written my own kernel module) + Web Design(I have built http://themandelbots.com and +http://hairydiode.xyz and this site from scratch) +
- Image Processing and Graphics(OpenCV and OpenGL) +
- Basic Computer Security(best practices, CTF challenges) +
- 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) +
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 +
-
+
- 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 +
-
+
-
+
-
+
-
+
-
+
-
+
-
+