Course Resources
Racket
Software
-
Download Racket.
It contains everything you need to program in the course, including the Racket compiler, the Dr. Racket IDE, and a suite of command-line tools. It runs on all major platforms and is a snap to install. - Racket is also installed on the machines in the department labs: CEEE 016A, CEEE 010, and the laptop cart in CEEE 115.
Racket Documentation
All Racket Documentation, is available online, including:
- The Racket Guide, with tutorial information organized for people who know another programming language
- DrRacket: The Racket Programming Environment, with information on the IDE that we will use in the course
Local Racket Documentation
These links are to documentation for using Racket in this course:
- a Racket quick reference — a single Racket file that includes examples of many of the language's basic data types and operators
- hints for using Dr. Racket — send me any questions or suggestions you have
-
the
sdrawpackage — for drawing box-and-pointer diagrams (beginning in Session 4) - Frequently Asked Questions about Racket, Scheme, and the tools we use
Language References
Racket is a fork of the smaller language, Scheme, and retains its basic mindset. There are a number of Scheme books and references available on-line for free:
- R6RS, the latest Scheme standard — jump right to the table of contents to look up specific topics
- The Scheme Programming Language, by Kent Dybvig — a thorough introduction with some tutorial material and few cool examples
- Teach Yourself Scheme in Fixnum Days — a tutorial for experienced programmers
The creators of Racket have also written How to Design Programs, a CS1 textbook that uses Racket to teach program design.
Language Interpreters
Here are some other free Scheme interpreters:
- Gambit, a portable and efficient interpreter
- Bigloo, which supports system-level programming
- JScheme, which runs on the JVM and interoperates with Java
- Chez Scheme, a professional-quality interpreter
- others: https://www.schemers.org/ maintains a list of most known implementations
Language Goodies
-
on recursive programming
-
The Little Schemer,
by Daniel Friedman and
Matthias Felleisen
The Little Schemer uses an unusual question-and-answer format to help you to think and program in a new style. It's well worth a few dollars. Some people really like this format. If you are one of them, then take a look at The Seasoned Schemer, also by Friedman and Felleisen.
-
The Little Schemer,
by Daniel Friedman and
Matthias Felleisen
-
on programming languages
- Computer Languages Timeline — with many, many language links
-
on Scheme
- Schemers.org — for all sorts of Scheme Goodies
-
on Lisp
- The History of Lisp — all kinds of good stuff about the history of Lisp
- on functional programming — TBA
- on other functional programming languages — TBA
-
Racket and functional programming in the "real world"
- Chromosonia, an installation piece at Ars Electronica — with a short video
Academic Support
-
The Learning Center
The Learning Center at Rod Library provides free tutoring for a variety of different areas (i.e., writing, math, science, business, Spanish, college reading and learning strategies). The Learning Center at Rod Library is open for walk-in assistance Monday-Thursday 10am-10pm and is free of charge for all UNI students.
If you are unavailable during normal tutoring hours, online tutoring is also available through TutorMe. To request access, go to https://tlc.uni.edu/online.
For more information, go to https://tlc.uni.edu, email TheLearningCenter@uni.edu, call 319-273-6023, or visit the TLC desk located on the main floor of Rod Library.