This page is a listing of all the course websites and materials I have put together since 2007, provided for students to peruse and other instructors to use if/as they see fit.
The following are individual websites for courses I have taught. They include all course material covered, assignments given, and copies of quizzes & exams. All sample solutions are disabled after a course is completed, however.
Computer Science is no more about computers than astronomy is about telescopes.-- Edsger W. Dijkstra
- 2010 - Summer Camp in Computer Science (Beginner Section)
- This was a 2-week Summer Camp in Computer Science that UC hosted for High School students. I had 16 students for 2 hours a day and covered bsaic Java programming to some rather advanced projects.
- 2009 - Summer Camp in Computer Science (Beginner Section)
- Same as above, only during the Summer of 2009 where I had 11 students.
- 2008 - Intro. to Computer Science I
- I taught this class in the Summer of 2008 with 15 students. Covered introductory computer science and programming using C++. I received the Engineering Professor of the Quarter award for teaching this class (as a graduate student!)
- 2007 - Intro. to Computer Science I
- Same as above, only during the Summer of 2007.
- Recursive Descent Parsing
- A thorough example of designing and constructing a recursive descent parser for propositional logic. Very nice for first-year CS/Programming students faced with such a project.
- Computing Perfect Numbers
- A brief overview of what perfect numbers are, and some of the challenges in computing them (one of my old-time favorites for discussing algorithms/complexity since they get really difficult, really quick). I only present the problem here, and use a brute-force solution (using openssl) to compute most of the known ones. Real solutions are for course work and abusing students.
The Rest is Forthcoming.
History of my Teaching Experience
In 2007 I had the great opportunity of teaching while a graduate student, and quickly learned that I love teaching. Frankly, I think CS is just plain cool and love convincing others of this. I was able to teach again in 2008 and even won the College of Engineering's Professor of the Quarter (as a graduate student!) I hope to continue teaching computer science in some capacity throughout my career.
I've also had the opportunity to teach two Summer Camps in Computer Science for local area high school students, where in two weeks I taught them introductory Java programming with an emphasis on building 2D games. During both camps, the majority of students were able to go from no prior programming experience to building rather large, complex 2D games. Many of these high school students have since attended UC, citing the summer camp (and my Java class) as a direct reason for their choice of schools.
Part of the reason I love teaching Computer Science is the generality of the field. Computer Science really is about problem solving above all, and can be used as a course to teach so much more (I always loving slipping in a little mathematics and physics, which is easy with games).
Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better.-- Donald E. Knuth