Opportunities for Student Research Projects

Info about research projects with me during Spring or Summer 2025

Nik Sultana, Department of Computer Science, Illinois Institute of Technology
Last updated: March 26, 2025.

To participate in the projects described on this page, you must be enrolled as a student in any program at Illinois Institute of Technology.
If you're not a student at IIT then you can still do a research project with me by enrolling for a research module (as an undergrad or grad) and transferring the credit to your home university.

Why work on research as a student?

Because it benefits both the research and the student. The research gains from students' input and energy; and the student gains skills and insight that can far exceed what's covered in coursework or an internship. Depending on how much you engage with the research, it's possible to obtain lasting outcomes — including a poster, a demo of the research artefact, or a code release.

This research experience can be pivotal for deciding what to do after finishing your current degree program. It can help you decide what roles to apply for in industry based on the technical skills you develop.

If you're thinking of doing a PhD — or if you want to consider that option — then doing research as a student can give you a big boost. Research requires a completely different mindset from coursework. In addition to acquiring this mindset, doing research as a student can help you prepare for PhD research by assessing which research area you want to work in, understanding some of the state of the art, and learning relevant techniques. Both undergraduate and MS students can participate in research.

If you're considering enrolling for a PhD in Computer Science related to my research, then do read about funding opportunities.

If you're considering writing an MS thesis in Computer Science, then do read the departmental guidelines.

Are there prereqs?

There aren't any formal prereqs, and the needed skills depend on the project. Taking a course with me helps me match you to ongoing work, and help you develop skills needed for the project. Also, attending Networked-Systems Tech Talks will help introduce you to ongoing research or deployment themes, and introduce you to researchers and practitioners.

What could you work on?

Currently I'm offering these student projects to both undergrad and grad students. Contact me if you have the necessary skills and wish to find out more:

  • Developing analysis and visualizations of Patchwork data. This requires familiarity with FABRIC and strong programming, data analysis, and visualization skills.
  • Developing extensions of CREASE and Patchwork systems. This requires familiarity with FABRIC and strong programming skills. There are several ideas for the kinds of extensions to build.
  • Developing examples of Patchwork integrated with other FABRIC experiments. This is requires familiarity with FABRIC and strong programming skills.
  • Extending the Caper tool. This requires strong OCaml skills and some knowledge of networking.
    You can try Caper online through the BPF exam site. For more information about how it works, read the paper about Caper or visit the Caper site.
  • Building online learning environments. The goal is to build high-visible, usable, and enjoyable interactive learning features on the Caper site, so you wouldn't be starting from scratch.
  • Security-oriented packet processing based on PERA. This requires strong C++ skills. For a more recent development see the demo of a Network Research Experiment that Hyunsuk gave at the Supercomputing conference in 2024.
  • Network testbed extensibility. This requires knowledge of computer networking. It involves developing extensions in a programmable network testbed at IIT and/or on FABRIC. My research group has several ongoing projects related to this.
  • Armour R&D. Engineering students (e.g., ECE) are welcome to contact me to discuss Armour R&D proposals related to hardware and network engineering.

How to participate?

Formally you can participate in two ways: for academic credit (through CS497 or CS597) or through a paid RA (Research Assistant) appointment.

It can take time to get results, so it's best to engage for at least one semester. The pace of the project depends on your technical preparation at the start of the project and the time spent on research each week.

Regardless of the project, it's important to finalize plans before the semester starts.

Recent and ongoing work

Examples of recent CS497/CS597 projects include:

The posters below describe recent and ongoing research projects that involve undergraduate and graduate students I work with.

Examples of other work

Here are some other examples of outputs produced by other students I worked with, to give you an idea of what's possible in terms of outputs, scope and research area.

Demonstration of Dataplane Disaggregation

Heena built the front-end and the demo from scratch in C#. Rakesh improved the emulator that generated packet traces that were visualised using Heena's front-end. This mostly involved Python and Bash.

See demo

Flexible Topology and Configuration Generation as a Resource for Networking Research

Aishwarya wrote generation scripts in Python for different network topologies.

See poster

DoSarray: An extensible evaluation system for DoS research

Shilpi helped me build and test various features in DoSarray. This development involved running many tests on a cluster of computers. The development was mostly done in Bash, with a little Python.

See repo

Debugging strongly-compartmentalized distributed systems

Henry built two prototypes in the C language and interfaced with a distributed-systems library that we built together.

See paper

What's next?

If you'd like to discuss project ideas or have any questions about research then contact me.