CS 134

Meet Prof. Melissa!

  • Email: oneill@cs.hmc.edu

What to Call Me

Students often want to know “the right way” to address their professors. You can call me either “Prof. Melissa” or “Professor O'Neill”—personally. I enjoy “Prof. Melissa” a little bit more, as it sounds a bit more informal, and that helps break down barriers. But you can use either. (On the other hand, “Professor Melissa” sounds a bit weird when you say it, too many “s” sounds together!)

My Path to Claremont

I grew up in England, but after going to University, I went to graduate school in Canada, before heading to the USA to come to Mudd. You might notice that I have an accent that still sounds a little bit English.

My Computer-Science Interests

I have broad CS interests, but I'm generally considered to be in the “systems” area of computer science, which covers all the mechanisms that support computation, including the design of programming languages, the machinery that implements them, and all the support infrastructure needed for programs to actually run. A few years ago, mostly as a side project, I developed a new random-number generation scheme called PCG, which some people like.

My Hobbies and Things I Do for Fun

I actually love noodling around with computers enough that I do various computer related things for fun. For example, for the last three years I've participated in the “Advent of Code” challenge, which presented a new coding puzzle to solve every day for 25 days starting on December 1. I wasn't the fastest person to solve the problems, but I did get each one solved and it was a ton of fun.

Here's an example of my solution to day 24, with an animation in the terminal showing the best path through a dangerous blizzard. (In the second part of puzzle, you have to go back to fetch a forgotten item, which is why it draws three paths.)

I'm also very interested in retro computing, which is about preserving and recreating computing history, and I have particular interest in the 8-bit microcomputers of the 1980s. These machines were much more limited than today's computers, with memories of just a few thousand bytes (about a million times less than current machines) and much simpler and slower processors (about 50,000 times slower than one core of a current machine), but, with those limitations in mind, it is quite amazing what these machines were capable of. I think in many ways, these old machines were more approachable because of their simplicity.

For a fun challenge, I enjoy solving Advent of Code puzzles in the language BASIC for a ZX Spectrum, a 1982 computer (with a mere 48 kB of RAM, that's 49152 bytes, 14% of which hold the contents of the screen!). Although I could show you the solution to day 24, insead I'll showcase day 22, where the puzzle involved being given a 2D unfolded cube, and then needing to put it together and then perform a number of moves on its surface:

Relatedly, I also enjoy connecting computing, philosophy and psychology. Both theoretical and practical computer science shed light on various philosophical questions, including consciousness and free will. Many arguments about philosophical questions would be different if people doing the arguing had a clearer sense of some of the ideas computer-science has to tell us, for example about what it means to consider something predictable. I'm also very interested in how people think and make decisions.

Although I enjoy computer games, these days I don't play many games that involve lots of time investment or commitment, so I've never played a lot of the games that have big followings. Right now I seem to be into word-puzzle games, before that it was Sudoku, and before that 2048. Older games I used to play include Techno Kitten Adventure, written by Mudd alum, Nick Kinkade.

I also enjoy hiking, although I'm more on the casual side of things, enjoying hikes of a couple of hours, not multi-day adventures—if you need a backpack, it's probably more serious than I'm into.

I also enjoy cooking, but again I'm at the more casual end of the spectrum; I love it when you can make something totally delicious out simple ingredients without much work. For example, an omelette is quick and delicious, and a wide variety of things can be used as a filling to make a main meal. Similarly, a baguette or roll can be turned into a flavorful sandwich with a modest number of ingredients (one of which might be a good British-style chutney!). At the height of the pandemic I bought a Panini press (which with different plates is also a waffle maker!), and Paninis have become a lunch favorite of mine.

Let's end with my go-to “fun fact” about myself when people are asking for something interesting about me. When I was in high school, my interest in psychology lead me to learn about hypnosis, and I used to hypnotize some of my friends. Although I don't tend to do much in the way of hypnotizing other people these days, it gave me some a great perspectives I've held onto. So anyhow, even though I don't use my skills that often, I can say “I'm a hypnotist” as a fun fact.

What I'm Most Excited About This Semester

This is my first chance in a long time to teach an elective, and this is a favorite topic of mine to teach.

What I'm Most Nervous About This Semester

OS/161 is pretty cool, but it's also pretty complex. That makes teaching with a a little nerve-wracking, but I'm excited to see how it goes.

(When logged in, completion status appears here.)