Links to resources that will be helpful will appear here throughout the semester. During this course, students are expected to learn 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 CISC 471/672 in order of use:

  1. Class web page, Piazza Q&A site, and Sakai course management site. To keep current and avoid any important missed information, it is your responsibility to check the calendar at the course web page and set your settings for piazza and sakai to receive notifications when questions/answers are posted on piazza and announcements made on sakai. Students are expected to actively participate in the Q&A site, upload homeworks (not programming assignments) and check their grades on sakai for accuracy, reporting any perceived discrepancies. You may type or scan in a handwritten version of the homeworks to submit electronically through sakai.

  2. github . For the programming assignments, you will create a private repository on github that is shared with the TA/instructor and your team only. You will create clearly marked folders for each project, PA1, PA2, ..., PA6 which will contain your code and documentation and test suites as required. For submitting the assignment, you will a tarball of the necessary files in that repository, which the TA/instructor will access for grading. The github will be monitored as part of team participation grading of each assignment. Github provides the necessary revision controal and commit log.

  3. JLex and JavaCUP are lexer and parser generator tools. We will be introducing these tools in class. These are command line tools and they will be provided as .jar files. You can review your regular expression knowledge here.

  4. Unix commands and file system. You should be comfortable with the basics, which you can find here: listing and tutorial.

  5. Make and Makefiles will be used in 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.

  6. Java programming. You should be comfortable programming in Java by week 3. See tutorial.

  7. Eclipse is not required. It can be useful for its debugging capabilities.

  8. Arduino software environment. We use the AVR-G++ tool chain. These are non-trivial to install, so it might be easier to install the Arduino environment and then press shift while the Arduino IDE is compiling and loading the program onto the Meggy Jr. You will need to do some compilation of C++ programs that use the Meggy Jr Simple library for PA1.

  9. MJSIM.jar is a simulator for the subset of AVR assembly code we are using in our projects. mjsim was written specifically for this project. 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 and AVR Assembly Code

The Meggy Jr Device

Other

Credits: Much of this page was originally created by Michelle Strout while she was teaching CS 453 at Colorado State University.