I am an Assistant Teaching Professor in the Software and Societal Systems Department at Carnegie Mellon University. Prior to joining CMU, I finished my Ph.D. in Computer Science and Engineering at the University of Michigan, where I was advised by Westley Weimer. My areas of research interest broadly span software engineering and cognition.

In Fall’24, I am teaching 17-681: Java for Application Programmers and 17-683: Data Structures for Application Programmers.

In Spring’25, I am teaching 17-214/514: Principles of Software Construction, 17-681: Java for Application Programmers, and 17-683: Data Structures for Application Programmers.

In my spare time, I love playing soccer and ping pong. I also enjoy photography, and am always looking for excuses to take my camera out of the storage closet.

If you’d like to chat with me (school-related or otherwise), feel free to email me (hammada@andrew.cmu.edu) or drop by my office (TCS 341).


If you are curious, this is how my name is pronounced: [ɦəmaːd əɦməd].