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: November 4, 2024.

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 to improve the match with what I work on. 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:

  • 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.
  • Extending Hangar. This requires strong system skills. Because of the subject matter, having taken a course with me, particularly CS543, improves preparation for this project.
  • Security-oriented packet processing based on PERA. This requires strong C++ skills. Knowledge of computer networking is a plus. Because of the subject matter, having taken a course with me, particularly CS543 or CS595, improves preparation for this project.
  • Network testbed extensibility. This requires knowledge of computer networking. Because of the subject matter, having taken a course with me improves preparation for this project.
  • Developing programmable network applications. This requires strong systems programming skills. Knowledge of networking is a plus. Depending on student background, the project could involve targeting physical hardware.
  • 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.