Professor (on sabbatical)
Melissa O'Neill has been a member of the computer-science faculty at Mudd since July, 2001. She has broad interests in computer science, but she particularly cares about making programming easier and more reliable (the programming languages and systems area). Her current research is in exploring dark corners of garbage collection and making multithreaded programming easer for "mere mortals".
Melissa was born in England, growing up in the seaside resort town of Worthing in Sussex. Leaving school with four A levels instead of the more usual and customary three, she had her choice of universities to attend, but chose to pursue a B.Sc. in computing science at the University of East Anglia in Norwich. She picked UEA based on the opportunities it offered undergraduates and its relatively innovative pedagogy. It was, in many ways, quite unlike Mudd, yet it was closer in its attitude than most other British universities.
It was at UEA that Melissa became interested in functional programming, which became the field for her final-year project. After she graduated (with a first) in 1990, she continued at UEA as a research assistant, extending her undergraduate research, before heading for graduate study in computer science at Simon Fraser University in Vancouver, Canada, in 1991.
At SFU, Melissa began in the masters program, working in the functional programming arena under the supervision of F. Warren Burton. While experimenting with a new algorithm she had developed for unifying flexible record types, she happened to need a true functional analog of an imperative array, and whipped one up. This data structure proved to be sufficiently innovative that it, rather than her unification scheme, became the focus of her master's thesis, "A Data Structure for More Efficient Runtime Support of Truly Functional Arrays". She received her M.Sc. for this work in April, 1994.
While in the masters program, Melissa was accepted into SFU's Ph.D. program, and so there was really no break in her research program once she'd completed her masters degree. She refined her scheme for functional arrays and published it in the paper "A New Method for Functional Arrays" in the Journal of Functional Programming. While exploring the ramifications of her data structure (and other data structures for the same application), she first discovered notable weaknesses in current garbage-collection schemes, a topic that continues to interest her greatly today.
As she worked on further improvements to her functional-array scheme for her Ph.D dissertation, she discovered that many of her underlying techniques could be used for determinacy checking in parallel programs. Expanding her research into this area meant stepping outside of the familiar community of functional programming and into the world of parallel computing, but the results made the risk worthwhile. Ultimately, her dissertation addressed audiences in both the functional- and parallel-programming communities, although the title of her dissertation, "Version Stamps for Functional Arrays and Determinacy Checking: Two Applications of Ordered Lists for Advanced Programming Languages", was a bit of a mouthful. She defended her dissertation in November, 2000 (and received her degree in 2001).
During her time as a masters student at SFU, Melissa worked as a teaching assistant, which included managing recitations, covering lab hours, and being the sole point of contact for distance-education classes. She quickly discovered a passion for teaching, and desired more. With her masters degree, she was able to apply for open positions as a sessional instructor (a semesterly lecturing position), and she embraced those opportunities, although this path was highly unusual for a Ph.D. student. She taught five different courses (Intro CS, Data Structures, Programming Languages, UI Design, and Operating Systems) spending a total of seven semesters teaching classes.
Once Melissa had defended her Ph.D., she knew she wanted to find a job that valued teaching and research in the same ways that she did. Harvey Mudd College quickly rose to the top of her shortlist of desirable institutions, and she was delighted to be offered a position here.
At Mudd, Melissa's research has focused on both garbage collection and parallel computing, but she has also published papers in other areas, including computer-science education topics (e.g., her paper "The Genuine Sieve of Eratosthenes"), and on genetic programming. Melissa's teaching interests include core CS, such as Mudd's CS 70, "Data Structures and Program Development", a data-structures class that melds theory and practice, from low-level C++ details to detailed complexity analysis; CS 131, "Programming Languages"; CS 134, "Operating Systems", and, in the more distant past, CS 124, "User Interface Design". Someday, she hopes to offer an elective on advanced functional programming.
Melissa served on the NSF/CSIE Advisory Committee from 2006 to 2010, including its subcommittee on Broadening Participation. She is currently co-PI on two NSF grants, and has been a co-PI or otherwise instrumental in two previous grants. She also strives to be an advocate for underrepresented, minority, and oppressed groups. She is a scientist, a skeptic, a hypnotist, and a hacker in the classic sense of the word. She gets a thrill out of applying her computer science and programming skills to handle mundane and tedious work.
She lives in Upland, with her partner Claire Connelly. She has no plans for world domination.