Courses Taught

The links below will take you to the course webpage for the most recent iteration that I taught.

UC Berkeley student evaluations can be found at the HKN Database.

UW ratings can be found by searching for 'Hsia' in the Course Evaluation Catalog (UW login required).

  CSE 110: Computer Science Principles

Introduces fundamental concepts of computer science and computational thinking. Basics of programming and a survey of some "big ideas" in CS.

Last taught:   Winter 2019

  CSE 333: Systems Programming

Substantial programming experience in languages that expose machine characteristics and low-level data representation (C and C++).

Last taught:   Winter 2023

  CSE 351: The Hardware/Software Interface

Computer organization – examines key computational abstraction levels below modern high-level languages.

Last taught:   Autumn 2022

  CSE 369: Introduction to Digital Design

Introduces the implementation of digital logic and its specification and simulation via SystemVerilog and FPGAs.

Last taught:   Spring 2023

  CSE 371: Design of Digital Circuits and Systems

Provides a theoretical background in, and practical experience with, tools and techniques for modeling complex digital systems in SystemVerilog.

Last taught:   Spring 2023

  CSE 410: Computer Systems

Structure and components of hardware and software systems – computer organization and some operating systems.

Last taught:   Winter 2017

  CSE General TA Training

Help improve the overall teaching effectiveness in CSE courses, cover useful teaching techniques and scenarios, and build community amongst our wonderful TAs!

Last taught:   Spring 2023

  CS 10: The Beauty and Joy of Computing

An introduction to the beauty and joy of computing. The history, social implications, great principles, and future of computing.

Last taught:   Spring 2016

  CS 61C: Great Ideas in Computer Architecture

The internal organization and operation of digital computers, including architectural design decisions and elements of computer logic design.

Last taught:   Summer 2016

  EE 40: Introduction to Microelectronic Circuits [TA]

Fundamental circuit concepts and analysis techniques in the context of digital electronic circuits.

Last taught:   Fall 2012

  EE 128: Feedback Control [TA]

Analysis and synthesis of linear feedback control systems in transform and time domains with applications to electro-mechanical systems.

Last taught:   Fall 2009

Former Teaching Mentees

Sam Wolfson (web), Software Engineer, ExtraHop
BS/MS Thesis: CS Principles Experience Report

Travis McGaha (web), Lecturer, University of Pennsylvania

Student Groups

Teaching Assistant Application

I typically run a separate TA interview process for my larger lecture-based courses. This is independent of the school-wide TA application process. This process may seem intimidating at first, but it's meant to be a learning experience and a chance to get some feedback about your teaching. Some notes:

The General Process

  1. Fill out my class-specific TA Application (Google Form), which is usually released in Week 3 or 4 of the previous quarter:
    1. 371 Sp24: Selection finished.
    2. 369 Sp24: Selection finished.
  2. A subset of the applicants will be invited to sign up for a 30-minute interview slot, depending on my scheduling constraints at that point in the quarter. This filtering is primarily done via application responses and other (limited) data available to me.
  3. Students who sign up will come in for an interview with me and possibly a few other TAs to give you an audience. The interview varies by course, but typically includes:
    1. A prepared teaching demonstration.
    2. A discussion of your demo and preparation.
    3. Additional questions about your teaching background and thought processes.
  4. After ALL interviews are completed, I will respond via email to ALL interviewees with a decision and feedback from the interview.

What I Am Looking For

Letter of Recommendation

This section applies if you need a 1- to 2-page letter of recommendation to apply for a Ph.D. program, M.S. program, transfer application, etc. For other types of recommendations, please see the sections further below.

Should You Be Asking Me?

Letters of recommendation are A BIG DEAL. They are often heavily weighted in application decisions and also require a lot of time and effort to write. I won't know how "strong" of a letter I will write for you until I'm done writing it, so it is your responsibility to decide if I make the most sense to be one of your letter writers. Doing well in one of my courses is NOT sufficient — programs want to know what sets you apart (e.g., personality, work ethic, motivation, communication, intellect). Do you think I will have things to say along these lines about you based on our interactions? I'd be happy to discuss/brainstorm this with you in person (time-permitting), but make sure that you consider this question carefully before approaching me for a letter of recommendation.

What I Will Need From You

CSE BS/MS Program Recommendation

The BS/MS program only requires a reference for its application, not a full-blown letter, so I can comfortably handle a higher volume of these requests on a shorter timeline. Still, you should be aware that I require that students have a 15-minute face-to-face meeting with me before the application deadline. This is to encourage you to start early and to help you consider what your goals are and whether you are a good fit for the program.


  1. Warning: Failure to follow these steps will result in an automatic "Not Recommended" reference.
  2. Contact me via email well before the application deadline in Spring (ideally 2+ weeks ahead of time). Let me know that you'd like to list me as a reference on your BS/MS application and your availability for a short meeting in the near future.
  3. Once we are able to schedule a 15-minute meeting, come prepared to discuss what your career goals are and why you think the BS/MS program is a good fit for you.
  4. After the meeting, take some time to think about your reasons for applying and your personal statement. Let me know in a reply to your original email if you decide to proceed.
  5. In your application, you must waive your right to read the recommendation.

Other Recommendation

For other recommendations, such as Study Abroad or the Animation Capstone, it is usually easiest to just send me an email to set up a meeting or drop by my office hours to discuss. Please take the time to research the following information for me:

  1. What is required of me (e.g., length of recommendation, questionnaire, email correspondence)?
  2. What specific qualities or traits is the program looking for?

Research Projects

Currently not doing research as I am focusing on my career as a teaching faculty member.
However, I do expect to dabble in bio- and education-related projects in the future.
Hover over the following images to see more details [best in non-mobile browser].

Synthetic Mutualism

Synthetic Mutualism [2015-2016]

Macroscopic organisms are composed of cells, usually from a common genetic parent, differentiated through environmentally sensitive genetic programs. At its most fundamental level, multicellularity arises when cells come together and find means to couple their internal states in such a way that the connections result in emergent behavior – generally with improved fitness for a set of problems – that arises from the collective of cells. Our goal is to design a system that depends on the presence of two separate populations for survival. Possible applications include the programmed death of one species in the absence of the other (i.e. bio-security) or the reduced susceptibility to invading cells or mutation.

Lateral Inhibition

Laterial Inhibition and Contact-Dependent Inhibition

Lateral inhibition is a mechanism where cell-to-cell signaling induces neighboring cells to compete and diverge into sharply contrasting fates, enabling developmental processes such as segmentation or boundary formation. A synthetic lateral inhibition system for pattern formation has not yet been demonstrated. We have developed a graph theoretic approach to analyzing potentially large contact networks for the existence and stability of "fine-grained" patterns. In place of an actual contact-based system, we propose a synthetic circuit we call a "compartmental lateral inhibition" system that used diffusible molecules to demonstrate these types of patterns.

Turing Patterning

Diffusion-driven Instability [2009-2015]

One mechanism for pattern formation is diffusion-driven instability, originally proposed by Alan Turing in 1952, where a homogeneous steady state is destabilized in the presence of diffusion. Our goal is to create a robust, tunable system which can break symmetry and spontaneously generate predictable gene expression patterns (spatiotemporal inhomogeneities) as in the Turing mechanism. Our investigations have led to a new a class of networks that we call "quenched oscillator" systems, which consist of a primary feedback loop that serves as an oscillator and a secondary feedback loop that quenches the oscillations and incorporates a diffusible molecule. Diffusion releases the quenching effect in higher spatial frequencies, thus generating patterns.

Flagellum Motion

Modeling of Single Flagellum Bacterial Motion [2007]

Research project for the class "Control and Optimization of Distributed Systems and Partial Differential Equations" in the Spring of 2007. Worked under the graduate student Edgar Lobaton to help model and simulate bacterial motion in environments with low Reynolds number. Framed as an adjoint optimization problem over the elasticities of the spring connecting the particles that made up the model of the flagellum. Continued work on this project through the Summer of 2007. Acknowledged in the resulting paper.


All publications are linked below.









Trying to be the best partner and father I can be.



Chasing some plastic with my team.



Fitness and exploration - what more do you need?



The PacNW is beautiful! Enjoying the outdoors.



Mostly logic puzzles, but jigsaw is fun, too.

Board Games

Board Games

I've got a sizeable collection.


I've done choir and a cappella.



I'm basically retired, but I used to play a LOT.