This class was funded and organized by the Center for Undergraduate Research & Scholarship at Augusta University, and allowed Peter Browning and myself to work on the following project for 5 weeks.
Find below the syllabus and a brief presentation of the outcomes of this class.
The three most important outcomes of this class were:
Many of today’s computers’ benefits are enabled by connecting them to networks, where they exchange data (messages, emails, requests, …) and programs (through updates). But allowing distributed computation requires to handle concurrent phenomenon: how to make sure that no error arise when multiple clients try to book the same ticket, or when conflicting updates are pushed at the same time? By mathematically abstracting concurrent behaviors, Computer Science made considerable progress in preventing conflicts or inconsistencies that could arise in such situations.
But new techniques and paradigms of computation emerge constantly and require to revisit established results continuously. Reversibility is one of those new paradigms: the possibility of undoing any action performed by a computer makes the promise of more secure and energy-efficient computers where bugs become easier to find and address. The field of reversible computing—that includes quantum computing—will shape an exciting future, and as such is the target of consequent effort and among NSF’s 2026 Idea Machine .
However, no definitive mathematical model of reversible and concurrent computation exists, and the existing attempts have not been implemented in computers: we offer to design a novel model surpassing the shortcomings of the first models, and to implement it so that it can become an experimental tools for researcher in our community.
Process algebras (π-calculus, CCS, Ambiant calculus, etc.) are an abstraction of concurrent systems useful to study, specify and verify distributed behaviors. Implementing process calculi serves three overlapping goals:
The CCS language undergoes two different efforts making it amenable to represent computation that can move backward and forward: Reversible CCS (RCCS)  and CCS with keys (CCSK)  were both developed with the goal of becoming the extension to CCS providing a better understanding of the mechanisms underlying reversible concurrent computation—they actually turned out to be the two faces of the same coin . Reversible computation in general has received a lot of attention from different communities , and the study of reversible process calculi has made important progresses in the recent years [13, Sect. 6]. However, aside from SimCCSK —which is not publicly available and not maintained since 2008—no implementation of concurrent, reversible CCS exists.
The main educational goal of the project is to give to Peter the taste of a scholarly culture, of high-quality code production, and to stress the relevance and importance of undergraduate research. More precisely, our goals are to:
Peter will work toward an implementation of either CCSK, RCCS, or a declension of them , possibly taking inspiration of existing implementation of forward-only CCS (among wich this project or this web-interface ) or of intermediate languages such as HOcore . A great care will be required toward good software engineering practices, the development of good examples, the possible certification of some results using machine-checked proof, and / or the implementation of an efficient mechanism to distribute the generation of keys and identifiers.
Our main goals, aside from the educational goals detailed above, are to produce a research document and a computer program, documented and with examples, that will be shared with experts in the field through self-archiving on the arXiv.org and github repositories, and a poster for the Symposium that will get re-used in other venues and will be self-archived as well. All the material produced will be released under Creative Commons licenses (or similar open-source licence), to ease distribution and re-use by the community.
A regularly updated document and journal will help in completing those milestones, and will constitute a way of assessing of the progresses of the project as well as of the clarity of our understanding of the project’s developments.
Our goal is to have three tangible traces of our investigation by the end of the program:
Will be involved in this project (in alphabetical order):
Peter Browning already made his debuts in research in Computer Science, and starts to have some familiarity with how to conduct research in this field. For this project, his roles will include:
For this project, his roles will include:
More generally, Dr. Aubert will always make sure that his expectations are clearly communicated and understood, and convey through regular meetings and email exchanges his intuitions, solutions, and suggestions to support the project’s progress and our educational goals.
The program will start on May 23 (week 1) and ends on June 24 (week 5).
|1||Review of existing literature and implementations of forward-only CCS|
|2||Write the specification of the implementation, in terms of functionalities and features|
|3||Set-up the overall program following the architecture agreed upon|
|4||Implement, implement, implement|
|5||Document, beta-test and write examples|
A regularly updated to-do list will support and clarify the steps needed to achieve those overall goals. The poster is due on July 18th.
Peter will attend the orientation, training, workshop luncheons, and symposium as follows:
|Wed. May 18||15:00 – 16:30||Student orientation|
|Wed. May 25||12:00 – 12:45||Lunch-n-learn: Collaborations|
|Wed. June 1||12:00 – 13:30||Lunch-n-learn: Ethics|
|Wed. June 8||12:00 – 12:50||Lunch-n-learn: Presenting 101|
|Wed. June 15||12:00 – 13:30||Lunch-n-learn: Professional Communications|
|Wed. June 22||12:00 - 13:30||Lunch-n-learn: Data visualization|
|Wed. June 29||12:00 - 13:30||Lunch-n-learn: Build your research pitch|
|Wed. July 13||12:00 - 13:30||Lunch-n-learn: Research in your Resume, Publications Opportunities|
|Thur. July 21||16:00 – 18:00||SSP Symposium|
He will be excused from the workshop after June 24 if he wishes.
It is recommended that Peter works at least 2 hours / working day for the duration of the program, and spend at least 5 minutes after each work session documenting what he achieved.
Will be used during this program, among other resources:
Something that already started, since Peter had a chance to review the funded proposal and this syllabus.↩︎