Each semester, CS 225 offers a one credit hour honors section that covers an advanced topic in CS related to data structures (offered as CS 296, Section 25). This is the honors component to receive James Scholar or HCLA credit for CS 225. However, it is not necessary to be part of an honors program to participate in CS 296 – anyone can join!

As an honors course, CS 296 will be much less structured than CS 225, require significant independent work and learning, and we expect you to go above and beyond what you would normally do as part of a regular course. Students in the past have learned a lot, had a lot of fun, and created amazing projects.

Topic Overview

This semester, CS 296 will focus on data structures from a functional programming language standpoint. The data structures in Clojure are said to be persistent, or more bluntly, immutable. Once you build a data structure, you may not modify it. We’ll talk about how you get anything done in a language like this, and why this turns out to be a good idea in many cases.

We’ll also go over Clojure itself. Clojure is a dialect of Lisp, and languages in the Lisp family have properties and abilities that are rare otherwise.

Initial Repository Setup

This process will be very similar to the one you used for CS 225.

Clone a copy of your repository

Follow the commands where NETID is your netid.

git clone https://github-dev.cs.illinois.edu/cs296-25-fa18/NETID.git cs296-25git

Finally, lets move inside your repository.

cd cs296-25git

Add the appropriate git remote repositories

git remote add release https://github-dev.cs.illinois.edu/cs296-25-fa18/_release.git

Lets grab the tools you will need into your repository

git fetch release
git merge release/Vagrantfile -m "Merging tools repository"
git push -u origin master

If you get an error about unrelated histories, use the following command instead.

git fetch release
git merge release/Vagrantfile --allow-unrelated-histories
git push -u origin master

Where to find the rest of the setup instructions

You can view the rest of the setup instructions at https://github-dev.cs.illinois.edu/cs296-25-fa18/NETID where NETID is your netid.