Links to resources that will be helpful will appear here during the course of the semester. During this course students are expected to use many software
tools. Below is a list of those tools in the order that they will be
introduced in the course.
Software Tools Used in CS 453 in Order of Introduction
- Class web page at
http://www.cs.colostate.edu/~cs453. You are already here. The syllabus
states that students are responsible for checking the webpage each day.
Announcements will be on the main page.
- ssh will be used to log onto the CS linux machines remotely.
The list of available machines is at the Department
Facilities page, the Workstations link. If you do not have a CS department account, then you need to contact systems at sna@cs.colostate.edu
or by going to the south side of the fourth floor in the Computer Science building.
- Haskell. We will be learning Haskell this semester and writing the
MeggyJava compiler in Haskell. Haskell is a purely functional, lazy, and
strongly typed language with syntax that is quite different than what you
are probably used to. Because it is a different programming paradigm, you
will learn different ways to solve problems and you will learn about programming constructs that are just now starting to make their way into languages like C++ (think lambda functions).
Here are some resources to help you
learn Haskell.
- Canvas, Coming soon!
- The checkin utility will be used to submit all assignments. If it is a homework
assignment HW1-HW4, you can scan in a handwritten version of the assignment.
Submit a pdf for the homework assignments by typing the following on a CS linux machine (replace HW1 with PA1 or HW2, etc. as appropriate):
~cs453/bin/checkin HW1 HW1.pdf
For the programming assignments
you will be submitting a tar ball whose contents will be specified in
each assignment writeup.
- Makefiles will be used in many of the recitations and most of the
programming assignments. We will be providing the Makefiles for you, but
sometimes you will have to make edits to the Makefile. Read about the
basics at a Makefile tutorial.
- Subversion.
Some form of revision control is required in CS 453. If you can produce a
commit log, then it works. We will be teaching subversion in recitation.
- We use the AVR-G++
tool chain to assemble and link your generated AVR code with
the MeggyJrSimple library.
The CS linux machines have this whole tool chain installed.
By following the Meggy
build instructions, you should be able to do any compilation you
need on the command line. IF you want to download to your own device
and you are not on campus, then you will have to install this software
on your machine. We initially started from the
Arduino software environment
and pressed shift while the Arduino IDE was compiling and loading to
reverse engineer the commands to use on the command line.
Unfortunately this doesn't appear to work in the most 1.0.6
version of the Arduino environment. Check out the Makefile
we provide in the Meggy
build instructions to figure out how to use the
AVR-G++ toolchain.
- MJSIM.jar is a simulator
for the subset of AVR assembly code we are using in our projects. mjsim
was written specifically for this class, and we can update some issues
as you find them. We use mjsim to do command-line simulation of the AVR
programs your compiler generates for grading. mjsim also has a GUI
mode that has a MeggyJr emulator. mjsim is written in Java and
provided as a .jar file.
MeggyJava
The Meggy Jr Device
Other