The UChicago χ-Projects are a collection of programming assignments developed at the University of Chicago's Department of Computer Science for majors-level CS undergraduate courses.

Learn more...

In chirc, students implement a subset of the IRC protocol and learn about socket programming, multithreaded servers, and implementation of network protocols.

Learn more...

In chidb, students implement a Relational Database Management System from scratch, from the file-based B-Trees all the way up to the SQL compiler.

Learn more...

In chiTCP, students implement a subset of the TCP protocol in userspace, instead of having to work with kernel code.

Learn more...

In chirouter, students implement an IP router capable of routing IP traffic between multiple networks, requiring them to implement parts of the ARP and ICMP protocols, as well as understand the structure of Ethernet frames and IP datagrams.

Learn more...

chistributed provides a framework for students to implement distributed algorithms without having to worry about low-level details, and allowing them to simulate message drops, delays, network partitions, and byzantine failures.

Learn more...

chisubmit is an assignment submission system where each student or team of students gets a GitHub or GitLab repository, and all submissions and grading are carried out through this git repository.

Learn more...