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).
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
Substantial programming experience in languages that expose machine characteristics and low-level data representation (C and C++).
Last taught: Spring 2021
Computer organization – examines key computational abstraction levels below modern high-level languages.
Last taught: Autumn 2020
Introduces the implementation of digital logic and its specification and simulation via SystemVerilog and FPGAs.
Last taught: Autumn 2020
Provides a theoretical background in, and practical experience with, tools and techniques for modeling complex digital systems in SystemVerilog.
Last taught: Winter 2021
Structure and components of hardware and software systems – computer organization and some operating systems.
Last taught: Winter 2017
Help improve the overall teaching effectiveness in CSE courses, cover useful teaching techniques and scenarios, and build community amongst our wonderful TAs!
Last taught: Summer 2021
An introduction to the beauty and joy of computing. The history, social implications, great principles, and future of computing.
Last taught: Spring 2016
The internal organization and operation of digital computers, including architectural design decisions and elements of computer logic design.
Last taught: Summer 2016
Fundamental circuit concepts and analysis techniques in the context of digital electronic circuits.
Last taught: Fall 2012
Analysis and synthesis of linear feedback control systems in transform and time domains with applications to electro-mechanical systems.
Last taught: Fall 2009
(web), Software Engineer, ExtraHop
BS/MS Thesis: CS Principles Experience Report
Travis McGaha, Lecturer, University of Pennsylvania
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:
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.
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.
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.
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:
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].
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 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.
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.
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.
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.
I've got a sizeable collection.
I've done choir and a cappella.
I'm basically retired, but I used to play a LOT.