Meet the Faculty - Joy Upton Azzam
Tell us about your journey to the University of Minnesota.
I have degrees in mathematics from Michigan Technological University in the Upper Peninsula, so my work is primarily in computation and applied mathematics. As a mathematician, I do a lot of work with discrete and applied mathematics, solving various engineering type problems. My first job after getting a PhD was in a combined math and computer science department. In that position, some people retired and left the university, so I was one of a few people who was able and willing to teach all of the programming and computer science courses there. So that is how I ended up in the field of computer science.
My partner is also a professor, they are in sociology at St. Catherine University. We were looking for a new place to live and work. They did their PhD at the University of Minnesota, so we wanted to try to move back to the Twin Cities. With the type of work that I do, the people I typically work with are in engineering fields - like a physicist who computes things about particles or an engineer who computes things about building structures. When I was applying to different universities, the Department of Computer Science & Engineering stuck out because there are so many different application areas within this group of faculty and the college, so I thought it was a good fit when I saw the position.
What do you like about computer science?
I enjoy figuring things out and solving problems. I like applying my math knowledge to different scientific disciplines, and I have found that computer science functions in a very similar way. It’s a science where we use computational tools to solve many different applied problems. For example, the many different places we see machine learning and artificial intelligence (AI) showing up demonstrates that the tool of computer science can be applied to so many things. That is what I find so fascinating about computer science.
What do you enjoy most about teaching? What are your teaching interests?
I enjoy working things out and then explaining it to my students. I also enjoy reading old algorithm textbooks and showing students the history behind these innovations and how our collective understanding has evolved over time. I like digging into that background so students get a full understanding of a topic and its context in the world. I enjoy working with students who also enjoy learning those kinds of things, and who really want to dig in and take things apart and put them back together to understand how they work.
In computer science, I enjoy teaching data structures and algorithms. I think these topics are really fundamental to all computer programming - how we arrange our data and the algorithms that manipulate and analyze it. I also have a passion for information theory, like data compression or cryptography or error correcting codes. I did work in that area for my master’s degree, studying error-correcting codes and combinatorial designs.
Which courses are you teaching this spring? What can students expect to get out of that class?
This spring and next spring I am teaching CSCI 4041 - Algorithms and Data Structures. We are learning about algorithmic design and algorithmic analysis. We are also working on implementing our algorithms and trying to observe that they match the design and perform like our analysis shows. My students are currently working on a project where they are building balanced tree implementations in groups of four, and then they will write a report, much like they would on a software engineering team at a company or research lab. I really want to make sure students get the whole picture of how we design tools, analyze how we think they should work, then actually go and build the tools and test to see if it works how it’s supposed to.
This fall I’m teaching CSCI 5304 - Computational Aspects of Matrix Theory. This course is an extension in some sense of the topics in CSCI 2033 - Computational Linear Algebra, which I was teaching this fall. In matrix theory, we will take a deep dive into some of the more challenging numerical algorithms which are used for machine learning or training AI algorithms. The course is mostly a mathematical topic, but this is exactly the sort of mathematics one needs when designing and implementing data science, machine learning, and AI algorithms. These sorts of algorithms are also used by engineers (such as my experience at Michigan Tech), as well as many other applied fields.
What do you do outside of the classroom for fun?
I like playing old video games, like Sega Genesis, Nintendo, or Game Boy. I also do coding for fun, such as the online game Code Golf. My partner and I enjoy getting outside when we have time away from work. We also have a dog and cat, and enjoy spending time with each other and our pets.
Is there anything else you would like students to know about you?
This week I gave a talk on an AI-generated content detector that I have been researching and developing. I have strong views on the ethical concerns around the usage of AI, how it is affecting education, how it affects society, and how it affects individuals (such as people who have personal relationships with AI or a dependency on social media apps or LLM tools). My AI-generated content detector can analyze if a given text was written by a human or generated by a large language model, like ChatGPT, Co-Pilot, Gemini, or Claude AI. I believe this is an ethical issue when a person passes off the output of an algorithm (they did not write or even understand how it works) as their own.