Even though this will be my first real term as a full-time lecturer at UMBC, I'm actually an old hand here. I have been teaching part-time at UMBC for 4 years, during which I've taken turns at teaching CMSC 104, 202, and 331, in various forms, including developing and teaching CMSC 202H, the new honors section of that course. I've had extensive industry experience in many subfields of Computer Science, including operating systems, real-time control systems, artificial intelligence/machine learning, digital imaging and graphics, and bioinformatics. I'm now eager to apply that experience to a much broader range of courses in the department, combining sound theory with practical considerations and applications. This coming fall, however, I'm easing into the new job by starting with CMSC 104 and 201.
A thumbnail autobiography: I received an A.B. in Biochemistry from Harvard University, with every intention of going on to medical school. However, I got completely sidetracked by an accidental introduction to computers late in college–back in the early days when most computers still had dozens of toggle switches on the front panel. Medical school was postponed.
Since then, I've been on an extended professional and academic arc, which has included working at a variety of software and hardware companies, universities, research firms, and startups, including my own. Along the way, I helped develop a fault-tolerant parallel computer, a next-generation MRI scanner, one of the earliest autonomous land vehicles, and drugs that may one day help you breathe easier. I was also a PhD candidate in the Biomedical Informatics program at Stanford Medical School, but left ABD ("all but dissertation") to start up a bioinformatics company with some colleagues.
Most recently, I've been doing research at UM College Park, but that project was coming to an end, and I was ready to try something different. I decided to teach, for three reasons: First, in my part-time teaching here, I found that I was becoming quite attached to the fate of my students, despite my very limited involvement in the program. Now, I’d like to do it more seriously: get more involved with the students, the department, and the university. Second, I want to leverage my years of practical experience in building software systems to help mold the next generation of computer scientists and software engineers. Third, and most important, I'm annoyed that my cellphone, my TV, and even my blender, keep crashing, Although I could hack it myself, I'm too lazy to. So, I want to train more good programmers, so that my stuff will just work, and I won't have to.