Peter-Michael Osera

MAP Opportunities
(Last updated: March 25, 2024)
Are you interested in: If one, more, or all of these things strike your fancy, then you should consider getting involved with my research group!

Characteristics of Successful Students

There are several key traits of students that are successful in my group that you should be aware of:
Appropriate Preparation

Virtually all of my work involves functional programming in some way, not just as an implementation language but also the language of study. Therefore, comfort with a functional programing language is useful. Most of my work also slants heavily towards logic and deductive reasoning so comfort with fundamental discrete mathematics is also useful. Finally, much of the hacking we do requires knowledge of basic data structures and algorithms.

While CSC 151, 208, and 207, respectively, cover these knowledge areas, these classes are not prerequisites for getting involved. Feel free to get in touch with me and share your experience, so that we can determine if my research group is a good fit for you!

Hacker's Mindset

Regardless of the project you work on, you'll frequently be tasked to work with many different development tools with varying degrees of usability. You will frequently need to work in the terminal. Wwhen things go wrong, you'll need to be comfortable with searching for random error messages and doing something seluthing to debug issues. With a hacker's mindset, you should feel comfortable working in such environments and have the gumption to tackle these sorts of problems without getting discouraged quickly.

Love of the Grind

In my research group, you will be working on hard problems from the beginning, whether they are theoretical or practical in nature. The capability to "persevere productively"—see hard problems through to completion via steady, incremental progress—is essential for the work you will do.

MAP Opportunities

The primary way to get involved with my research is through Grinnell's Mentored Advanced Program which supports students in doing research with faculty for credit. You can learn more about my current research projects on my homepage. This year, I am focusing my efforts on my work in program synthesis from both the systems-building and humanistic perspectives.

I currently run MAPs during the academic year, i.e., during the fall and the spring semesters. Students are expected to commit to a two-semester sequence:

You are free to enroll in either 2- or 4-credit versions of the MAP each semester to fit your schedule as needed. While I will scale the workload as much as possible depending on the credits you enroll for, be aware that research is, by its nature, open-ended. I expect the work that you put in will likely exceed the standard load for either a 2-credit or 4-credit course

How to Apply

Please do the following by Friday, April 5, 2024:
  1. Install the Coq Proof Assistant and read through the first two chapters of Software Foundations (Basics and Induction). From these chapters, complete the exercises:
    • [Basics] Exercise: 1 star, standard (identity_fn_applied_twice)
    • [Induction] Exercise: 2 stars, standard, especially useful (basic_induction)
    Feel free to complete additional exercises and work through additional chapters if you find the material interesting!
  2. Email your completed exercises from Software Foundations to me. From there, I will schedule a time to meet during the week of April 8, so that we can discuss your work and interests.

I hope to extend offers to students during the week of April 8. This will allow you to incorporate the MAP course into your fall plans although you will not be able to register for the course until we submit a proposal for the project shortly thereafter.

If you have any questions, I'm happy to answer them via email; just let me know!