Welcome to the Department of Computer Science


Are you an employer looking to recruit CS students?
Please submit your job postings to our Job Board.
To set up on-campus recruitment events, please vist the website of the CS Student Activities Committee.

Distinguished Lecture series at Uchicago CS and TTIC
Upcoming Distinguished Lectures (November 2014) at UChicago CS and at TTIC

Highlighted Events
The Chicago Center for the Theory of Computing and Allied Areas concluded a summer research program for undergraduates (June 23 -- Aug 29, 2014)

The Center, and alliance of the UChicago CS Department and TTIC, concluded a successful summer research program for undergraduates in the Theory of Computing and Machine Learning. Organized by Laszlo Babai and Stuart Kurtz, the program hosted 16 students, 8 of them from the University of Chicago and 8 from other universities, including 3 from overseas (China). Each student worked with a faculty mentor. The faculty mentors were John Lafferty and Laszlo Babai (UChicago) and Greg Shakhnarovich, Madhur Tulsiani, and Yury Makarychev (TTIC). The program included mini-courses given by faculty members Sasha Razborov, Greg Shakhnarovich, Madhur Tulsiani, and Yury Makarychev, and by Babai's former PhD student Sourav Chakraborty, visiting from the Chennai Mathematical Institute, India. Math and CS graduate students John Wilmes, Angela Wu, and Yuan Li also assisted in mentoring. TTIC provided administrative support and space for the program, including cubicles for each student.

Near the end of the program, most students gave presentations to the entire group about their research. Student papers resulting from the program are posted.

IMA summer school on modern applications of representation theory

The IMA summer school program was hosted at the University of Chicago this summer and was organized by Risi Kondor (Computer Science, The University of Chicago), Lek-Heng Lim (Statistics, The University of Chicago), and Jason Morton (Penn State). There were 43 student participants and 12 speakers. A list of speakers can be found here.

Videos of all of the lectures can be found here.


Shan Lu Joins CS Faculty

Shan Lu has an incredibly diverse background in teaching, research, volunteerism, mentorship and much more.

Shan will be leaving the Department of Computer Sciences at the University of Wisconsin, where she has been a faculty member since 2009, to join the Computer Science Department at the University of Chicago.

She has received many awards and honors for her research and education work, including an Alfred P. Sloan Research Fellowship, a Distinguished Alumni Educator Award from Computer Science Department of University of Illinois, and a National Science Foundation CAREER Award. She has published many refereed conference papers and journal articles, and has taught operating systems and distributed systems classes in University of Wisconsin, all of which you can read more about below.

Shan has tirelessly served the computer science research community by participating and serving conference program committees, professional societies, Ph.D. dissertation committees, community outreach through volunteerism and mentorships, and much more.

To learn more about Shan and her many accomplishments, click here to read her complete curriculum vitae.

Shan received her Ph.D. in Computer Science from the University of Illinois at Urbana-Champaign in Urbana, IL. She received her B.S. in Computer Science from University of Science & Technology of China.

Dr. Lu’s research focuses on improving the dependability and efficiency of software systems. Her past and current work aims to understand, detect, mitigate, and fix defects in large software systems through a combination of program analysis, software engineering, and system techniques. Her work has had a tangible impact in both industry and academia. Some of her work has been used by more than 70 academic and industrial research groups.  One of her papers was among the top cited papers in operating system, hardware/architecture, and software engineering conferences in the last few years

Ravi Chugh Joins CS Faculty

Ravi Chugh joins the University of Chicago with remarkable teaching experience over the past ten years, having taught at the University of California, San Diego in La Jolla, CA, and the University of Pennsylvania in Philadelphia, PA.

He has been an instructor, teaching assistant, and guest lecturer for various high school, undergraduate, and graduate courses, including Principles and Paradigms of Programming Languages, C# Programming, Hardware and Software Algorithms, Mathematical Foundations of Computer Science, Advanced Compilers, and Algorithmic Software Verification.

Ravi’s primary research interests in computer science are in Programming Languages, Verification, Program Analysis, and Compilers. He has pursued research in these areas at UC San Diego, Mozilla Research in San Francisco, CA, and Microsoft Research in Redmond, WA.

Earlier in his career, Ravi also worked at Microsoft Corporation in Redmond, WA as a Software Design Engineer Intern, working on Windows Live Local, as well as a Program Manager Intern on Internet Explorer.

Ravi received his Ph.D. in Computer Science from UC San Diego in 2013 and his M.S.E. and B.S.E. degrees in Computer Science from the University of Pennsylvania in 2007, where he graduated summa cum laude.

Ravi’s current work is rooted in developing techniques that will work with and improve modern scripting languages, and thus has the opportunity to make a timely impact in practice. In particular, these efforts will help give application designers expressive specification languages to declare their intended security policies, tools that help them design and implement software that satisfies these policies, dynamic monitoring techniques that are robust in the face of dynamically loaded code and data, and error reporting mechanisms that give clear feedback to developers and users. The result will be a better platform for developing large, reliable, and secure systems.

Ariel Feldman Joins CS


Ariel Feldman is an outstanding addition to our faculty, and we’re delighted to welcome him. His research lies at the intersection of computer security and distributed systems. He is presently focused on finding new ways to protect the security and privacy of users of “cloud hosted” services. He has also worked on other problems in computer security, such as securing electronic voting and disk encryption, and has a particular interest in the interaction between computer security and public policy.

Ari joins us from the CIS department at the University of Pennsylvania, where he has been a postdoctoral researcher working with Jonathan Smith and Andreas Haeberlen. He received his Ph.D. in Computer Science from Princeton University in 2012 under the supervision of Edward Felten. Along the way, he spent time at the US Federal Trade Commission’s Division of Privacy and Identity Protection, Microsoft Research Redmond, and Google NYC. He received an A.B. magna cum laude in Computer Science and in Ethics and Political Philosophy from Brown University.


Ari’s work enhances security and privacy by reducing the degree to which the participants in a system have to trust each other. Today, systems from “cloud hosted” document editors to voting machines largely rely on their participants’ promises not to misbehave and on non-technical enforcement such as laws and contracts. But the recent history of accidental disclosures, break-ins, misuse of users’ data, surreptitious censorship, and warrantless surveillance shows that a new approach is needed.

Ari’s goal is to redesign widely-used systems so that rather than having to trust each other, their participants receive precisely-defined guarantees that hold regardless of how other users behave. To do so, he aims to build systems that are designed for verifiability, enabling users to check a system’s correctness for themselves, and that protect privacy with end-to-end cryptography. Such systems not only provide greater security guarantees than were previously possible, they also have the potential to enable new applications. Users who may have been unable to adopt new technologies such as cloud deployment because of their risks might now be able to reap their benefits.

When designing these systems, Ari draws on a wide variety of techniques from applied cryptography, distributed systems, and theory. He strives to create systems that are not only secure, but also scalable, practical, and easy to use for users and developers alike. As a result, he believes in the importance of building and evaluating working systems. His work also often involves security analysis of existing systems and the development of demonstration attacks. This offensive research informs his system-building by shedding light on the many ways systems can fail and by guiding him toward new research problems with real-world relevance.

Matthew Wachs joins CS

Matthew Wachs is a lecturer in the Computer Science Department at the University of Chicago.

Matthew received his Ph.D. in Computer Science from Carnegie Mellon University, where he performed research on operating systems and storage systems. He received a Bachelor of Arts in Computer Science, and a Bachelor of Arts in Mathematics, from Cornell University.

Before joining the University of Chicago, Matthew has been involved in the teaching of courses on operating systems, computer architecture, programming languages, and theory. At Carnegie Mellon, he has mentored and served on the thesis committees of several Masters students.

Matthew has performed research on a variety of topics. His thesis focused on providing quality of service for storage workloads that share a storage system. He has worked on tracing parallel applications, developing a technique that allows inter-node dependencies to be determined automatically. He has explored the use of virtualization to allow file systems implemented in one operating system to be used by programs running in another. He has also developed algorithms to efficiently update the results of graph analyses as the graphs evolve over time, with applications in social network analysis.

Andrew Drucker joins CS faculty


Andrew Drucker is an outstanding addition to our faculty, and we’re delighted to welcome him. His research is in the theory of computing with powerful contributions to both classical and quantum complexity theory, where he has attacked central questions in both domains in highly original ways. Andrew joins us from the Institute for Advanced Study, where he was a member of Avi Wigderson’s group---one of the foremost postdoctoral programs in the theory of computing. He received his Ph.D. in Computer Science from Massachusetts Institute of Technology, advised by Scott Aaronson.


Andrew’s work is in computational complexity theory – the study of the intrinsic resource requirements of computational tasks. His work has addressed several broad and related themes, including the power of interactive and quantum proof systems; the inherent limitations of popular paradigms for algorithm design, such as kernelization; and the study of synergies that arise when multiple computations are performed jointly. This research sheds light on the inherent barriers algorithmic practitioners face, and helps guide the community toward attainable progress on real-world problems.

Aaron Elmore Joins CS Faculty


Aaron has a substantial background in research focusing on Database-as-a-Service, Multi-tenant Database Systems, and Self-Managed Elastic Systems. After receiving his BS in Electronic Commerce Technologies from DePaul University, graduating Magna Cum Laude, he continued on to get his Master’s Degree in Computer Science from the University of Chicago. He completed a PhD in Computer Science from the University of California in Santa Barbara. Aaron is currently a postdoctoral associate with the database group at MIT.

Aaron joins the University of Chicago with significant industry experience as well as teaching experience educating on topics such as Programming Methods, Database Systems, Advanced Topics in Distributed Systems, and Advanced Topics in Databases.

With a wide-ranging career in computer science, Aaron’s experience is noteworthy. Most recently, he held a Software Engineering internship at Trifacta in San Francisco, CA, focusing on tools for interactive data analytics resulting in two patents applications. At Amazon Web Services, he developed an internal, distributed, automated, deployment for monitoring service configurations. He was also a Research Intern at Microsoft Research, building on scale-out performance for a cloud computing programming mode.

During his doctorate he worked on research for the National Center for Ecological Analysis and Synthesis (NCEAS) and Distributed Systems Lab, UCSB, both in Santa Barbara, CA.

Aaron has also worked at the Computation Institute, Customore, and 1SYNC/GS1US in Chicago, IL.

Throughout his career, Aaron has received numerous grants including the SIGMOD Student Travel Grant, a UCSB Senate Travel Grant, and an Amazon Research Grant.

He has also received awards and honors including Outstanding Computer Science Graduate Student at UCSB, Outstanding Teaching Assistant at UCSB, the Computer Science Merit Fellowship, and Top of the Class honors at DePaul University.


Aaron’s research focused on the development of self-managed and elasticity primitives to enable the transformation of traditional and main-memory databases into a scalable data platform. While recent research and industrial efforts have examined making scalable databases through restricting use cases, these solutions do not fully address the needs of systems hosting many dynamic and relational database applications without gross over-provisioning of resources.

The primitives he developed addressed the efficient management of dynamic database applications without static provisioning or manual administration. This includes methods for providing live database migration for load-balancing, modeling workloads and the impact of colocation for database placement, and enabling live reconfiguration of partitioned databases for fine grained re-partitioning to alleviate hotspots.

Aaron’s approach focused on building lightweight solutions that maintain system guarantees, leveraging machine learning techniques to build scalable empirical models, and verifying solutions through real-world evaluations.

CS Alumni take first place in Social New Venture Challenge

Joe Flesh (AB'12) and Declan Frye (AB'10), both CS majors, won the Social New Venture Challenge with their startup Purple Binder. Joe and Declan are the CEO and CTO, respectively, of Purple Binder, and they participated in the SNVC in a team with three current SSA students. More details here.

Pete Vilter (Class of 2015), a current CS undergrad who is on the team that placed second in the Social New Venture Challenge.

Haryadi Gunawi works to usher in a new age of computation

Published in the Physical Science Division's Inquiry Fall/Winter 2012 issue

Whether you realize it or not, you’re proba- bly already a consumer of cloud computing, points out Haryadi Gunawi, the Neubauer Family assistant professor of computer sci- ence. Search engines, webmail, and social- networking sites all store information and computing power in the cloud, the hard- ware and software systems users access over a network. Even so, Gunawi argues, the potential of the cloud has yet to be fully tapped—and he intends to help tap it.

The dominant paradigm in the late 20th century was the personal computer; every- thing a user needed was on his or her PC. As the importance of networking grew, us- ers accessed information and programs run- ning on remote computers. More and more computing functions were transferred off the personal computer and into the cloud. Today the personal computer is in decline as the rise of smartphones, tablets, and other Internet-enabled devices rely on the cloud. Now even slow and inexpensive de- vices can draw on enormous data storage and processing power.

The cloud will democratize computing, says Gunawi. “In the old days, if you wanted to build big software systems, you needed lots of infrastructure to begin with,” he says. “You needed lots of people and lots of machines.” Today a small software firm can rent as much storage or computing power as it needs, on demand, from services like Amazon. “You can become successful without taking on too much risk in the beginning.”

Not everyone is sold on the cloud yet. Data security is a real issue because, in the cloud, so many users share the same com- puters; banks in particular are hesitant to trust their records to anyone else. System reliability is another challenge. As Gunawi points out, the software must run on hun- dreds of thousands of machines—personal com- puters, laptops, smartphones, tablets—each with its own quirks and possible failure points. “Not to mention that as the complexity of the soft- ware goes up, you’re going to have more bugs.”

The reliability of a cloud-based system can make or break its owners. The online bookmark- ing service Mag.nolia permanently lost its users’ data in 2009 and was forced to shut down a year later. Recurring data outages by Research in Mo- tion, which makes the BlackBerry smartphone, have battered the company’s sales.

Gunawi is addressing shortcoming with an initiative called UCARE (University of Chicago Systems Research on Availability, Reliability, and Elasticity). In the past, he says, it was enough to test software on a few different machines to verify its reliability. The proliferation of comput- ing devices has created more opportunities for failure. UCARE aims to analyze today’s systems and point the way forward to a safer, more reli- able cloud.

One aspect of UCARE is writing drill-capa- ble software, which tests itself by deliberately introducing errors into its system. The goal is to identify weaknesses and known failure points, he says, so operators know how to respond to an actual failure without losing users’ data. Gu- nawi also goes a step further than most testers: “Whatever you do with offline testing,” he says, “it’s not enough.” He’s developing ways to put real failures in actual data in live systems. “If you don’t test your systems online that often, then suddenly you get into a panic situation because you’ve never been there before.”

The future is sooner than you think: Gunawi estimates that cloud computing will become the norm within five years, as storage technology and software become more reliable. Humans are “thirsty for data,” he says, and he’s interested to see how their demands evolve. As he puts it, “This is an exciting new era for computing.”

Wasserman wins Illinois Technology Association’s 2011 Fall Challenge prize.

Check out the University's web story on Louis Wasserman and innovation in programming at https://www.uchicago.edu/features/20120528_wasserman/.