Teaching
I really love teaching CS! It’s fun to be the first one to introduce all the awesome parts of the field to students, and it’s extremely rewarding to see students enjoying coding, design, theory, or whatever.
Teaching CS is also a serious business, and I am always looking for ways to improve my pedagogy. My approach is usually a lecture plus interspersed active class exercises to practice skills and reinforce difficult points. For a summary of my teaching philosophy, feel free to check out my teaching statement (though it is a bit dry).
I generally solicit student feedback (both in terms of how well the liked the lesson and objective measures of understanding). You can see my thoughts on some of my recent teaching here:
- A Few Semaphore Based Programming Problems May 27, 2016 So here’s a bunch of small problems that use semaphores
- 1-credit course in GIT May 25, 2016 What I decided on was lectures, supplemented by a textbook, followed by weekly programming assignments were students had to write scripts that used git commands (and parsed the output). This was a course for moderately senior students who had used the basics of git and could pick up a new scripting language easily.
- Looking for CS Contract Work (for me and a team of Rose-Hulman CS majors) April 21, 2016 So this summer, I’m working on a interesting pilot project with the folks at Rose-Hulman Ventures (http://www.rhventures.org/). Basically, I’ll be acting as technical lead for a group of Rose-Hulman students working on programming contract work. So in the morning, I’ll be basically a professional programmer/mentor and in the afternoon I’ll be teaching a course for ...
- Good Open Source Projects for Programming/Refactoring Assignments May 21, 2015 So CSSE375 is a Rose-Hulman course focused on refactoring (course notes here). As a result, I like to have the students make changes to existing open source projects. This gives them a little experience with codebases of a realistic size, and it makes the assignments feel a little more authentic. I generally like Java ...
- Programming Assignments for Programming Language Paradigms May 20, 2015 This winter I taught a course called Programming Language Paradigms. This is a language-oriented course where students learn several interesting programming languages and discuss the various features of these languages. The goal is to learn the various paradigms of programming through actually using the languages to solve the kinds of problems that they ...
- My students are awesome: CSSE 376 Board Games May 20, 2013 So in my quality assurance course, I ask my students to form groups of 2-3 and build computerized versions of board games. I selected board games in particular because I knew board game logic was both understandable AND tricky enough that it could generally benefit from robust unit testing (which was what I was ...
- Reflection on Summer 2012 GHP Classes December 10, 2012 I’m a big believer in student feedback. Even though students often can’t articulate the source of problems, going through and reflecting is an essential part of figuring out what I want to try going forward. So even in an environment like GHP where I’m not asked to formally collect evaluations, I always do. ...
- Making Simple Fractals in R October 9, 2012 In my GHP Fractals class this summer, I opted to write my sample programs in R. I selected R because it has very nice graphing libraries and built-in complex numbers. Overall, I was pleased with R; it definitely let me built some incredibly straightforward fractal code. It’s not as fast or pretty ...
- May 11, 2012 So Duke Spring 2012 is finished, and grades are in; it’s time for me to become an ordinary graduate student again. But before I do that, I think it’s reasonable to reflect just a bit on how the semester went. All and all, I am happy but not ecstatic with how my first semester turned ...
- My students are awesome (part 2): cs100 December 20, 2011 CS100 is a your basic CS2 course, providing an introduction to data structures, big O, and of course plenty of practice coding tricky problems. This course is a great favorite of mine to teach, mostly because of the office hours. It’s just fun to work with students who are just starting to get ...
Want more? View all teaching posts