The following is a list of technologies with which I expect you to familiarize yourself and be prepared to use as a part of participating in our class.

Course Homepage

I constructed our course homepage as a Jekyll site built with Github Pages. You should directly submit corrections and improvements as pull requests. Every page on this website has a direct links to its .md file in this repository.

If you are unfamiliar with making pull requests, you can find plenty of documentation both from your terminal and on the web

Racket

Download and install Racket and the DrRacket integrated development environment. You should make sure you have the most up-to-date version of DrRacket for this course, we should all be on the same version. To begin with, I will use DrRacket in front of the classroom to demonstrate Racket and miniKanren programming, and I want you all to follow along and to practice during designated practice periods.

DSLS2

In this class we will use the DSSL2 data structures teaching language for our programming assignments. This language is a close analogue of python, and will help you become familiar with some of the vagaries of python as well as the data structures you will be implementing.

Github

As a computer scientist, you will be expected to know and be familiar with version control systems (VCS) like git. To that end I will use github as a means of distributing materials in different portions of this class. It will be your job to know how to navigate a source repository and to access information. Keeping track of your work in a VCS is also a good idea. I will ask that you keep these repositories private, for the benefit of current and future classmates.

Blackboard

In that same spirit, I will use blackboard to distribute some materials, and may use it to accept assignments.

Please do not use Blackboard messages/comments to communicate with me; I will not check them and anyway they are very easy to miss.