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-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.