I'm originally from east Tennessee (Johnson City to be precise). I attended college at the University of Tennessee, Knoxville, where I double majored in Computer Science and Mathematics. Settling on Computer Science as my preferred career, I went to Washington University in Saint Louis for graduate school. I earned both my M.S. and Ph.D. in Computer Science, with my doctoral dissertation entitled "Abstractions and Algorithms for Control of Extensible and Heterogeneous Virtualized Network Infrastructures". Phew!
Teaching and Research Interests:
Both my teaching and research interests revolve around the area of "systems" which includes operating systems, networks, and embedded devices. There are two main aspects of systems that I focus on: administration and low level interfaces. Specifically, I teach many courses on systems and network administration covering all operating systems, scripting, and network protocols. I also teach programming courses including systems programming which is low-level C/C++ programming that sits just above the operating system. More broadly I spend time thinking about the guts of networks and systems: kernel hacking, scheduling, virtualization, infrastructure building, router and switch development, etc.
I'm an amateur musician (trombone and piano). I spend a fair whack of time reading books from traditional nerdy genres: sci-fi, fantasy, history, popular science, mythology, and so on. I'm also an avid gamer of all types: board games, card games, video games, and rpgs.
In Spring 2012 I'll be teaching COMP218 (Networks, Services, and the WWW) and COMP315 (UNIX Systems Administration). A brief list of my current and past courses:
- COMP128 (Computer Science I): Introductory computer programming, currently taught using C++. I assume students have never done any programming before entering this course. Students who do have experience programming often end up working on individual projects throughout the semester.
- COMP218 (Networks, Services, and the WWW): This is a sweeping introduction to the Internet and the protocols that make it function. If you've ever wondered what really happens when you type a website into your web browser, this class is for you. We also cover very basic web programming with HTML, basic network device configuration, and cabling.
- COMP315 (UNIX Systems Administration): A first course in actually managing and maintaining a Linux system. Every student installs Linux on a Virtual Machine on their laptop and spends the semester learning the ins and outs of a modern UNIX operating system. This includes shell scripting, services, package management, and many of the most common tasks found in a sysadmin's daily life.
- COMP563 (Network Administration): A second course in administration, this course essentially picks up where COMP315 and COMP425 (Switching and Routing) leave off to complete the picture of being a network admin. We use Windows Server as a basis to set up and configure DHCP, DNS, AD DS, routing (IPv4 and IPv6), firewalls, NATs, VPNS, etc. Students will learn both how to configure these types of services and devices and how the protocols themselves work so that it is possible to trace packets throughout a network in order to understand how to fix something when it breaks.
- COMP406 (Systems Programming): Intended for Computer Science seniors, Systems Programming takes the concepts from Operating Systems and applies them by having students rewrite fundamental parts of the core Linux user environment. Specifically, students will use C/C++ to write their own versions of utilities such as zip and unzip, tar, chmod, malloc(), and their own shell.
- COMP665 (Advanced Systems Administration): Intended for Computer Networking juniors and seniors, this course focuses on automating common tasks via scripting (bash, Perl, Python) as well as detailed low-level configuration on Linux systems. For example, students will set up and configure DHCP, DNS, NFS, networking booting via PXE, account systems, etc, in a command line and configuration file driven environment.
- I wear bow ties most Fridays.
- I have two cats named Andromeda (Andie) and Magellan (Mage).
- My high school marching band marched in both the Macy's Parade and the Rose Parade.