University of Chicago Masters Program in Computer Science faculty are leaders in tech and among the foremost authorities in their respective fields. In addition to teaching and applying tech solutions to solve challenging problems, our faculty also run successful businesses, work for Fortune 500 companies and dedicate themselves to advancing the field of Computer Science, each day. MPCS faculty supply their students with the applied skills and real-world projects they need to problem-solve, create, and build successful careers with top employers around the world. Learn from the experiences and expertise of our distinguished MPCS faculty, get an insider’s look into their classrooms and discover how a CS education can prepare you for a cutting-edge career in technology.
Lamont Samuels, MPCS Assistant Clinical Professor, teaches Python Programming, Parallel Programming, and Functional Programming courses in the Masters Program in Computer Science. In this profile, he describes how he got his start in computer science, why core foundations are so important, and why students should consider the impact of the technology they create.
How did you get your start in computer science?
I have always enjoyed working and playing on computers. I don't remember the brand or type of my first computer, but I do remember that it was the size of our coffee table (it was enormous!). Although it was slow and mainly had business applications, I was in complete awe of it. I would spend hours exploring the various DOS screens in search of something new. I think that was my first indication that I wanted to do more with computers later in life.
I started learning about computer science when I was in high school. I went to magnet high school where students majored in various disciplines. I majored in computer science. Initially, programming didn’t come easily to me. I struggled during my first two years… but one day it just clicked. From that point on, I knew that I wanted to continue to major in computer science in college and potentially have a future career in it.
What does a great day at the MPCS look like for you?
I love when I can present a topic, and the students become so engaged with it that it leads to a highly interactive discussion between them and myself. I feel a good lecture is one where students not only connect with the material but also leave class compelled to dive deeper.
What do you enjoy most about teaching computer science?
One of the best things about teaching is when I help a student have that "Ah-ha" moment where they figure out a hard coding problem. Initially, many students find computer science challenging because it forces them to think about solving problems in a new way. The solutions to problems are not always obvious and sometimes require a good amount of practice and experience before becoming better at solving them.
As a computer science teacher, I enjoy providing students with different ways to approach problems. As well as allowing them to pose their solutions in class, which offers everyone (even myself) new ways to solve problems.
Why teach at the MPCS?
Before I became a clinical faculty member, I was teaching courses in the program as a part-time lecturer. As a lecturer, I had the chance to interact with and learn more about the students in MPCS. They all come with various skill sets and backgrounds that genuinely create a unique and fun learning environment.
Not only are the students learning from me but I am always learning new things from them. I knew that if I were ever to teach full time that the MPCS would be the best place for me because of the great students we have in the program.
Describe your teaching philosophy.
Computer science is a fascinating field. It is continuously changing with new and innovative technologies that are improving our lives each day.
As a teacher, I aim to challenge and inspire growth in my students. I want them to make positive contributions to continue impacting our field. It is exhilarating to help guide students towards developing and articulating these new ideas and solutions. My philosophy is to provide the core foundations and context needed for students to continue to advance not only themselves but also take our field to new heights.
What is your favorite concept or topic to teach? Why?
Functional programming is my favorite course to teach. One great benefit of the paradigm is that it provides students with the opportunity to see different approaches to solving common problems they have already seen.
Former students have come back to tell me that the techniques they learned in that class have helped them solve difficult problems at their jobs.
If there were just three bits of knowledge you would like each student to walk away with, what would they be?
1. Always try to have a comprehensive understanding of the core foundations within your area/domain. Our field is evolving so quickly that "hot" areas or even languages could be not as trendy in the future. What hardly ever changes are the core foundations that will make you a better computer scientist in the long run.
2. Be ambitious and passionate about your work. Many people see the significant financial gains one can accomplish in our field and work toward achieving those goals. That's not a negative motivation, but be cautious about fixating on it: I have seen quite a few people burn themselves out trying to achieve those goals. Instead, if you are proud and passionate about your work, then career advancement and financial success will come eventually.
3. Be mindful of the effects you are having on the world. We tend to forget that sometimes the technologies we build can have not only a positive impact but also a negative impact on our communities. From many evolving domains/fields (e.g., social media, politics, security, etc.), it's essential for you to ask yourself: Is the impact your technology is making one that you actually want to be causing?
What about the future of the computer science industry most excites you?
The unknown impact that computer science will continue to have on our lives for years to come. It is incredible how much computers are changing our world. Wow, it's an exciting time to be a computer scientist!
What is a piece of advice you’d give someone considering applying to UChicago’s Masters Program in Computer Science?
Not to sound cliche, but if you genuinely want to make a meaningful impact in some way on the world, then I think learning about computer science is a great way to accomplish that goal.
MPCS is an excellent program that has exceptional faculty and bright and driven students to help push you forward as an individual. If you are up for the challenge, then MPCS will be a great fit for you.