Overview
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-25gitFinally, lets move inside your repository.
cd cs296-25gitAdd the appropriate git remote repositories
git remote add release https://github-dev.cs.illinois.edu/cs296-25-fa18/_release.gitLets grab the tools you will need into your repository
git fetch release
git merge release/Vagrantfile -m "Merging tools repository"
git push -u origin masterIf 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 masterWhere 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.