Milwaukee School of Engineering


I joined the faculty of Milwaukee School of Engineering in August 2019. I'm in the Humanities, Social Sciences, and Communication Department which houses the B.S. in User Experience. 

Courses I'm teaching include:

  • SE 3830: Human Computer Interaction

  • UX 253: Global UX

  • UX 361: UX Research

  • UX 241H: Easy By Design

If you are an MSOE student or are considering MSOE and are curious about our program or coursework, you can reach out to me. You may receive a delayed response if we're in the busy part of the year as my current students take precedence. 

Teaching Experience

Over the course of the past 12 years, I've had the opportunity to be the TA or Instructor in 12 classrooms and interacted with many more students outside the classroom. I've worked with students from kindergarten through graduate school, in subjects from basic counting through complex ethical dilemmas, like net neutrality.


The different classes, in some ways dictated my interaction with students. The classes at Berea College were all run like labs and I spent significant time helping students troubleshoot programming. Other classes, like CSCI 5115, I spent most of my contact with students meeting with project groups and helping guide them through the course. But perhaps more than anything, I love working with students in the introductory computer science courses. Many of these students were taking the course because it met a quantitative reasoning requirement. It got them out of taking calculus. These students often entered the classroom scared, but left confident in new skills and expanded opportunities.


Course I've Co-instructed:

UMN CSCI 1001: Overview of Computer Science (52 students)

SyllabusLabs & Assignments


Courses I've TAed include:

UMN SENG 5115: Graphical User Interface Design and Evaluation (41 students)

UMN CSCI 5115: UI Design, Implementation, & Evaluation (~50 students)

UMN CSCI 1001: Overview of Computer Science (~60 students)

UMN CSCI 1902: Structure of Computer Programming II (93 students)

Berea CSC 320: Algorithms, Objects & Data Abstractions (7 students)

Berea CSC 205: Introduction to Computer Science (~20, ~20 students)

Berea MAT 225: Calculus II (~30 students)

As part of the Preparing Future Faculty program at UMN, I designed a course to be taught during a one-month interim semester. The goal was to co-teach the course with a history professor at Berea College.


Course I designed:

Ada Lives: The (Female) History of Computational Thought

Syllabus (PDF)Assignment (PDF)


Teaching Philosophy

Throughout the fourteen years I've been involved in higher education, the classes that I've been in have formed me and my ideas about teaching. I've sat in discussions with only three other students as well as lecture halls with over 100 classmates. This, combined with my experience in front of the classroom, has formed many of my thoughts and opinions about teaching and learning. Below I've focused on some of the elements that I believe are most crucial in a computer science classroom: individualized attention, good communication, coverage of computer science essentials, and diversity. I've also included student evaluations to show how I've applied these in my past teaching. As I continue through my career, I expect that these will shift and change as I gain experience, informed by my time in, and out, of the classroom. But for now, this is my teaching philosophy.


I believe in treating students as the individuals they are. By getting to know my students, I can ensure that there are points in labs or homework that everyone can reach, but that there are also additional ideas and questions following so that motivated students can be challenged. In the classroom, I find that if I know my students well I can also realize when concepts aren't being understood (even before the first hand pops up). Once I start seeing looks of confusion, I can change tactics and try explaining something in a different way that may be more easily understood. For example, theoretical explanations of how an algorithm work may not resonate with many students, but walking through the algorithm will give students a much firmer understanding of what is happening.


She gives examples that are easy to follow as well as connect to other things that are easier to understand. - Student in CSCI 1001


She was always willing to go out of her way to help me when I did not understand something. She also made a point to get to know us well. She was also very understanding when problems arose. - Student in CSCI 1001

While I prefer teaching interactively, when I do lecture, I try to break the material into small segments, inviting discussion and small group breakouts throughout to keep students engaged in the material. Small class size definitely helps students become more comfortable in discussions and form bonds within the classroom which often helps the students form a cohort, a support group for their degree program. By working with students closely, I can also provide them with input early and often, helping ensure that students aren't heading down the wrong path and helping to build their confidence. While this additional guidance isn't always necessary, I find that often students can benefit from this advice.

That said, some students don't always follow the right path. Multiple times during my time at UMN as a TA or instructor, I discovered students cheating. I also had students skip classes, fail exams, and sit in my lectures wearing headphones. Everything got resolved. Sometimes I could save the student from failing the class or dropping out, but other times I could not. All of it involved talking with the student and better trying to understand them as individuals, not just as a face in the crowd.


I feel that as an educator there is no upper limit to my communication skills and no point at which I can rest easy. I strive to provide all my students with timely, actionable feedback. This attention to communication means that I invest a significant portion of my time in reading, reviewing, and responding to assignments, projects, and emails. While it is often frustrating to realize that students aren't comprehending something or that they're starting the two week long assignment the day before the deadline, I try to also use that as a reminder that I need to be paying more attention or striving harder to drive points home.

Katie put a lot of effort and thought into reviewing our work and providing feedback. Was very quick to respond and willing to help with any questions. - Student in SENG 5115


She communicated very well and was very willing to explain things clearly and made sure that I understood the concepts. - Student in CSCI 1902

I have also learned that sometimes the tried and true methods don't work. The textbook examples fall flat on their face in the classroom and blank stares follow me around the room. This is something that I try to look at as an opportunity. Sometimes I have to come up with better examples, ideas that resonate with my students, not just any student. 

Much of what I've written about above is applicable regardless of the subject matter. However I do have strong opinions on what people graduating with degrees in computer science should learn based on my understanding of the discipline and experience in industry. Obviously programming, algorithms, data structures, and other typical courses should be taught, but I also believe that students should have a basic understanding of statistics and web design as well as the fundamentals of usability, the history of computing, and computing ethics. While it wouldn't be practical to add five courses to the degree program, many of these skills can, and should, be taught in context. Introductory courses are a great time to hook students with the history of computing and start discussions around ethics in the field. I've incorporated web design, usability, history of computing, and computing ethics into my introductory classes in the past and look forward to continuing that in the future.

In addition to these computer science skills, I believe that students should also have communication skills, the ability to work well in a team, and the skill to work with whatever materials and resources are provided to them. I believe that my work in the private sector has helped me understand what skills will help students succeed in the industry. 

As I teach, I will try to improve based on student evaluations, both updating the classes and changing my teaching methods to try and meet the students' needs. I will also continue my participation in the Special Interest Group for Computer Science Education (SIGCSE) and will keep myself abreast of new technologies and ideas by remaining active in my research fields and organizations. I believe that collaboration is an important part of learning and seeing it in action is useful for students. I would welcome the opportunity to assist with undergraduate research projects.

Teaching is important to me because, while I believe many things can be learned independently, they are often able to be mastered in a much shorter time frame and to a greater level of mastery with a good teacher. I believe that a liberal arts community is conducive to student success and I would be honored to be a part of that.