The Vertically Integrated Project (VIP) on “Artificial Intelligence for Decision Making” is an opportunity for students who are interested in software engineering and the application of AI to real-life problems.
The project is led by me (Özgür Akgün) and supported by supervisors Ian Miguel, Ian Gent, Chris Jefferson, Joan Espasa Arxer, Nguyen Dang, Ruth Hoffmann, Andras Salamon and the remaining members of the CP research group, including PhD students and postdoctoral researchers.
The main thrust of this project is the implementation of a high-level modelling tool for constraint programming. This tool is implemented in Rust and is related to several research tools and publications. Keep reading to understand more about the project and feel free to get in touch with Oz for clarifying questions.
Let me take a quick detour and talk about the term “Artificial Intelligence” (AI) first. The term was coined by Shannon, Minsky, Rochester and McCarthy in 1955 in a research proposal. It has always been controversial; some people thought that “intelligence” sounded mystical and “artificial” sounded like fake/inferior/substitute. However, for better or worse, the term Artificial Intelligence caught on and continued to define a large body of related work.
Since these early days automated reasoning (with SAT solving as the earliest example) was seen as a crucial method to model intelligent reasoning. The most prominent research venues in the field (AIJ, JAIR, AAAI, IJCAI, ECAI) continue to reflect the breadth of work in AI.
At the risk of sounding defensive, I include this short discussion here because I want to make sure students applying for this project are aware of the kind of AI methods we will be working on. We are primarily interested in automated reasoning (e.g. constraint programming, SAT, SMT, MIP), with a particular focus on automated modelling and reformulation methods.
The focus is not the development of predictive or generative AI systems, though we sometimes use these in our work.
You do not need experience in a particular topic for us to consider you for this project. The most important thing is your interest in the topic and drive. We will provide you with a lot of support and give you the time to develop your skills in a collegiate environment. You need to be prepared to manage your time well, work independently, have stellar communication skills and need to be ready to work on improving these continuously.
In terms of technical preparation, interested students often want to know what they can do before they apply. Experience tells us there are mainly two topics you can work on to get the most out of this project: version control and the programming language Rust.
Git and GitHub. This is a good start, but do your additional research as well please. Being comfortable with Git and GitHub will significantly improve your experience (for this project and beyond).
Rust: read the Rust book and go through Rustlings. They are both very good resources. The more comfortable you are with Rust the better, so we can focus on more fun projects together. We will not explicitly teach Rust in the project.
In addition to the above, explore the existing repositories; they are all under the conjure-cp organisation. Look at the recent publications by the staff members listed above. Some of these will be difficult to read for undergraduate students; do not worry if you cannot follow them entirely. Try to get an overall feeling of the work. Look at the software projects Conjure, Savile Row, and Minion. You might want to look at CSPLib to get an idea of application domains. We have some demonstrator applications hosted at https://conjure-cp.github.io/demos. Also see the Jupyter notebooks showing simple models written in Essence, hosted at https://github.com/ozgurakgun/notebooks.
Also consider that most students remain in the VIP for multiple semesters; this way you get a chance to work on more advanced projects and get more value out of your time investment.
Use the official method of application as detailed on the University VIP web pages.
In addition, I strongly encourage interested students to get in touch and have a conversation. Bonus points if you solve the crystal maze puzzle and tell me about your experience in your email :)
Note that this VIP has a routine weekly meeting during semesters. Due to timetabling challenges, this meeting is on Wednesday afternoons.
We are primarily interested in recruiting CS students at the moment, but we will consider motivated non-CS students as well. Please get in touch and explain your background and interests.
The 2025/26 academic year will be the third year we run this VIP. We will shoot a new promo video with the current set of students, should be available very soon now.
The 2024/25 academic year was the second time we ran the VIP. Some of the existing VIP students and I recorded a video where we talked about the upsides and downsides of being involved in a project like this. Please watch this video if you are interested in applying.
Students: Anastasia Martinson, Arnav Bista, Devansh Chopra, Eworitse Wilbert, Felix Leitner-Mittersinker, Georgii Skorokhod, Henry Chandler, Leia Young, Lilian Contius, Liz Dempster, Nadine Martin, Nik Dewally, Owain Thorp, Shikhar Srivastava, Soph Morgulchik, Tudor Huica, Tyler Swan, Vincent Pickering, Yehor Boiar, Yi Xin Chong, Zayaan Ahmed
Less useful than the 2024 video, but: 2023 was the first year we ran the VIP. At the time I recorded a short video of myself explaining the project for interested students. Here it is, in case you want to check it out!
Students: Carla Biermann, Felix Leitner-Mittersinker, Georgii Skorokhod, Hannah Zeng, Kieran Fowlds, Nadine Martin, Nik Dewally, Pedro Gronda Garrigues, Samvit Nagpal, Stella Mortarotti