Wecolme to the lab section of CS393

This is the online text for this course. It contains background information about each lesson as well as homework assignments, links to external resources, and troubleshooting tips.

The format for this class is similar to a lab course. On Tuesdays, Jens will lecture on some of the fundamentals of computer networking, Internet protocols, and other relevant topics. On Thursdays, I'll run a 20-40 minute workshop at the start of class, introduce the lab assignment for the week, and then you'll have the rest of the class time to work on the lab - I'll be available to answer questions and help you troubleshoot your projects.


The slides that I use during lecture can be found on my profile.

Getting Help


If you have a quick question/issue, email is the best way to get in touch with me.

Office Hours

I will be holding office hours every Wednesday from 11am-12:30pm in the Bodine math lounge. If you're having issues while working on the labs outside of office hours or can't make it to that time, shoot me an email! If I'm online, I'll happily assist.


We'll be covering the following topics in this course:

  • HTML & CSS basics
  • HTTP basics
  • Git/GitHub
  • Semantic Versioning
  • Model-View-Controller design patterns
  • Ruby, Sinatra, and ActiveRecord/Rails
  • ERB and HAML templating languages
  • CSS Preprocessors
  • Client-side JavaScript

We will also take a look at Node.js and AngularJS, with opportunities for students who are interested in those subjects to explore them further.

About Me

I've been working as a professional web developer for 6 years now. You can see some of the projects I've worked on and the articles I've written at This class is my way of giving back to the Lewis & Clark CS community, and I appreciate Jens' help in making it happen.


All of the course assignments are already posted on the schedule, and details for each assignment are included in the introduction to that week's chapter. You will be turning in lab assignments via GitHub. There is no official penalty for late work – however, each lab builds off the previous week's code, which will make it hard to catch up if you fall behind. Finishing the labs on time will ensure that you get the most out of this class, and it will also ensure that I have time to give you feedback before the next week's assignment is due.

Site Details

If you're curious about the technology behind this website, check out the Appendix to see how it was built.