This course will be ideal for someone wanting to build a strong foundation in the theory and practice of algorithms for processing Big-Data. We will discuss advanced data structures and algorithms going beyond the deterministic setting and emphasize the role of randomness in getting significant, often exponential, improvements in computation and memory.
Fall 2026 Project Addendum: Students will form teams to build an end-to-end agentic product using open-source large language models, with the goal of launching it for a clearly defined real-world task. Each team must substantiate its claim of being the most efficient agent for that task through a reproducible evaluator and strong, relevant baselines that measure task quality, latency, resource use, and reliability. The first half of the course will emphasize building and evaluation; the second half will focus on user validation, product refinement, and attempting to launch and sell the product. The instructional team will assist with team formation and, where appropriate, help promising teams pursue resources or funding.
This is an AI-native course: you may use AI to brainstorm, code, debug, profile, and test, while remaining responsible for validating and explaining everything you submit. AI output is the starting point, not the finish line. Some assessments will begin with a strong AI-generated baseline and reward work that measurably improves beyond it through sound analysis, experimentation, and systems judgment. Supporting evidence may include design rationales, ablations, prompt traces, reproducibility notes, or brief oral checks. The goal is simple: you + AI should outperform AI alone.
This approach is described in the blog post “Bring Your Best AI: Building an AI-Resilient CS Course at Rice” and the accompanying paper, “Toward AI-Resilient Assessment in Computer Science Courses in an AI-Native World.”
COMP 182 or equivalent required. COMP 382 is useful but not required. Basic knowledge of probability and programming is required. The capability to manipulate primitive data structures such as arrays, lists, etc. will be needed for assignments.
Most of the materials needed will be posted on this website. Some of the materials are fairly new and a textbook is yet to be written.
A nice book to have is Probability and Computing: Randomized Algorithms and Probabilistic Analysis by Michael Mitzenmacher and Eli Upfal. However, this course follow very applied style. Most randomized algorithms courses are very theoritical, this one is more application oriented and focus is on real world challenges that can be solved with randomized algorithms.
Calendar note: This schedule follows the Rice University Fall Semester 2026 academic calendar. Classes begin Monday, August 24; our first Tuesday/Thursday meeting is August 25. Labor Day is Monday, September 7 and does not affect this class. Midterm Recess is October 12-13, so there is no class Tuesday, October 13. Thanksgiving Recess is November 25-27, so there is no class Thursday, November 26. Our final class meeting is Thursday, December 3; the university's last day of classes is Friday, December 4, and undergraduate final examinations run December 9-15.
If you have a documented disability that may affect academic performance, you should: 1) make sure this documentation is on file with Disability Support Services (Allen Center, Room 111 / adarice@rice.edu / x5841) to determine the accommodations you need; and 2) meet with me to discuss your accommodation needs.