Project Ideas


A strong ML-for-systems project starts with an important systems or networking problem, not simply a desire to apply a fashionable model. It asks a focused, testable question about whether “learning” can improve how a system or network is designed, configured, diagnosed, or operated — and and under what conditions it fails.

For this course, “learning” broadly includes predictive and generative methods, online and sequential decision-making methods, data-driven or learning-augmented optimization, and hybrid methods that combine ML with heuristics.

On this page, we include some AI-generated project ideas as starting points. You are welcome to use AI to refine these ideas or brainstorm new ones that fit the scope of the course.

Potential research directions

The following research directions were suggested by GPT-5.6 Sol:

  1. Learn a systems decision or control policy. Explore scheduling, placement, caching, prefetching, autoscaling, congestion control, traffic engineering, or video bitrate adaptation. Ask whether the learned policy improves end-to-end performance over strong heuristics after accounting for inference and retraining costs.
  2. Predict a condition so the system can act proactively. Predict workload demand, job duration, stragglers, failures, resource usage, query cost, or network performance. Evaluate whether prediction errors still lead to a useful operational decision; predictive accuracy alone is usually not enough.
  3. Diagnose or explain system behavior. Use logs, metrics, traces, configurations, or execution histories for anomaly detection, root-cause analysis, performance debugging, or failure localization. Include realistic class imbalance, noisy data, and the operational cost of false alarms and missed incidents.
  4. Build a generative or agentic operations tool. Investigate configuration generation, troubleshooting, documentation retrieval, or incident response. Focus on grounding, tool use, verification, and safe fallback behavior — not just prompt engineering. Projects that depend on a proprietary API or large model must identify an access plan and a viable fallback.
  5. Study robustness, generalization, or safety. Stress-test an existing learned system under workload shifts, topology changes, failures, adversarial inputs, delayed feedback, or bad predictions. Develop a detector, guardrail, uncertainty estimate, or fallback mechanism and quantify when it helps.
  6. Create a measurement study, dataset, or benchmark. Characterize an important ML-for-systems problem, expose a weakness in current evaluation practice, or make competing approaches easier to compare. The artifact should support a substantive research conclusion; data collection alone is not enough.
  7. Reproduce and meaningfully extend prior work. Reproduce a central result from a course paper or another relevant publication, then add a new baseline, workload, system environment, failure mode, or design improvement. Reproduction alone is valuable practice but is not sufficient novelty for the final project.

The project should connect ML to a real systems or networking problem and be scoped around a claim that an experiment could prove or disprove. For example:

A convincing evaluation typically includes strong non-ML and ML baselines, end-to-end system metrics, measurements of the learned component’s overhead, and an analysis of behavior beyond the training distribution.

Where to look for a concrete idea

Read beyond paper titles and abstracts. Useful project ideas often emerge from an untested assumption, missing baseline, workload shift, failure case, or missing artifact.

Check feasibility before committing

A project does not need a large model or many GPUs to be ambitious. Classical models, compact neural models, trace-driven simulation, emulation, and carefully designed measurement can also support strong research. Before committing to an idea, make sure your team can answer the following: