Computer Science Department
Harvey Mudd College
Olin Science Center, B157
1250 North Dartmouth Avenue
Claremont, CA 91711-5980
United States of America
Telephone: (909) 607-9661
FAX: (909) 607-8364
I'm Melissa O'Neill, Professor of Computer Science in the CS department at Harvey Mudd College. Here you'll find some of the things I'm up to…
Research & Active Projects
I am particularly interested in topics in the systems area of computer science. Active research includes areas in making parallel and concurrent programming easier, and in memory management.
PCG Family of Random Number Generators
Did you know that the random number generator in your favorite programming language is probably flawed? Check out pcg-random.org for details on the PCG family of random number generators which provides a combination of features rarely seen on existing generators.Learn more at pcg-random.org…
Observationally Cooperative Multithreading
It's great if you have an embarrassingly parallel problem, but what the more awkward cases, like irregular parallelism and intrinsically concurrent work. Traditionally, you'd have to write programs with locks to manage the concurrency, but locks are well known to be error prone. OCM provides an alternative strategy highly suited to modern hardware transactional memory.
I'm a big believer in free and open source software.
Here are some papers you might find interesting:
- PCG: A Family of Simple Fast Space-Efficient Statistically Good Algorithms for Random Number Generation (submitted to ACM TOMS, 47 pages)
- Framing Classroom Climate for Student Learning and Retention in Computer Science, co-authored with Leicia Barker & Nida Kazim (PDF, SIGCSE 2014)
- The Genuine Sieve of Eratosthenes (PDF, JFP 2009)
- Functional Genetic Programming and Exhaustive Program Search with Combinator Expressions (PDF), co-authored with HMC undergraduate Forrest Briggs (KES Journal, 2008)
You can find more papers and more information about the ones above on my papers page.
The courses I teach include
- Data Structures & Program Development (CS 70)
- Programming Languages (CS 131)
- Operating Systems (CS 134)
You can find the webpages for these courses via the department's course pages.