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:
- 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.
-
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.
- 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.
-
Unix commands and file system. You should be comfortable with the basics, which you can find here:
listing
and
tutorial.
- 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.
- Java programming. You should be comfortable programming in Java by week 3. See
tutorial.
- Eclipse is not required. It can be useful for its debugging capabilities.
- 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.
- 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
- Building programs for
the Meggy Jr
- Meggy Jr Physical
Assembly Instructions
- Vendor Website
- Guide for
Programming with Arduino and MeggyJrSimple interface
- AVR 8-bit Instruction Set
Architecture (AVR Assembly Language)
- avr-gcc calling convention, also check out the GCC wiki page about it.