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.
In chirc, students implement a subset of the IRC protocol and learn about socket programming, multithreaded servers, and implementation of network protocols.
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.
In chiTCP, students implement a subset of the TCP protocol in userspace, instead of having to work with kernel code.
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.
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.
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.