CS 70

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 also solved many of this year's Advent of Code puzzles in the language BASIC for a ZX Spectrum, a 1982 computer. 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

Helping guide you in your journey of discovery is perhaps the best thing about teaching CS 70. For most students, things that were previously mysterious will be demystified, and you'll make connections you hadn't made before. It's fantastic to see students gain experience and confidence in solving computational problems. It won't always be easy, but being there to help you when you stumble and to help you see new perspectives is really awesome.

There's one more thing I'm both excited and nervous about, but to tell you about it needs a bit of backstory… The Claremont Colleges decided that it would be good to begin to move away from the Sakai learning management system, and suggested we use Canvas instead. But Canvas didn't have the features we needed to make flipped-classroom content like this, and both Sakai and Canvas often felt clunky and awkward to use, both for students using the site and instructors trying to edit the content. But I'm a computer scientist who loves to create things with code, so this felt like an opportunity to create something that better met CS 70's needs. So that's what I did this summer! Although we still rely on Sakai for some things, like the Gradebook and Roster, this new site does pretty much everything else that Sakai did. It's always cool to look at something and think “I made that!” and I'm excited to see how it works for you all.

What I'm Most Nervous About This Semester

In testing, the new site seems to be working well, but you're the first real student users putting it to the test, so I'm a little nervous about whether it might all crash and burn somehow. Homefully not. 😅 And, if it does, we'll figure out how to fix it.

And, beyond the website, this class has a lot of moving parts, and there's lots of juggling required to make everything work as it should, so I'm always worried I'll somehow forget something important!

I've also always been a little bit germ-phobic, so the pandemic heightens those feelings. I don't want to roll the dice and find out just what kind of outcome I'd have if I caught COVID-19, as I know people who caught recent variants after being vaccinated and still had a pretty bad time with it. I know some people are fed up with COVID-19 prevention measures and are only too pleased to see them stepped back, but it doesn't make me feel good when that viewpoint puts increasing pressure on everyone to stop taking sensible precautions, precautions that are very likely to significantly reduce the number of people who have to deal with very negative health outcomes.

(When logged in, completion status appears here.)