Logistics
Last updated: Sat, 30 Jan 2021 18:35:34 -0500
This page lists the websites and tools we’ll use in the course.
1 Blackboard
Here is the Blackboard page for this course.
For security, the Zoom link(s) for this course is only available via Blackboard.
Other course materials may also be published to Blackboard sporadically.
2 Discussion Board
We will primarily use Blackboard Discussions Piazza to communicate outside of lecture.
(I will still occasionally check the Blackboard Forums).
On Discord, there is a student-run server and a #cs420 channel on the UMB Server.
3 Gradescope
Here is the Gradescope page for this course.
Homework and quizzes are submitted and graded via Gradescope.
4 Zoom
Lectures and office hours will use Zoom.
For security reasons, the University requires accessing Zoom rooms via Blackboard.
5 Google Apps
I’ll occasionally use UMB’s Google Apps Suite to administer surveys.
These may be accessed by entering your umb.edu credentials into the Google login box.
6 Linux
For programming problems, you may develop on any platform.
The Gradescope grader, however, runs in a Linux environment (specifically Docker containers running Ubuntu 18.04).
Thus, you should test run all your solutions in Linux before submitting.
There are many free Linux VMs available on all platforms, e.g., VirtualBox, or Docker.
All students have access to users.cs.umb.edu. Use your CS UMB account credentials.
You won’t be able to do system-wide global installations, but you should be able to download and install things locally.
- Some computers in the UNIX lab should also be available for student use (these may not be available yet):
pclab40.cs.umb.edu
pclab41.cs.umb.edu
pclab42.cs.umb.edu
pclab43.cs.umb.edu
pclab44.cs.umb.edu
7 make and Makefiles
A Makefile is a script used by the make tool to automate compilation and other tasks.
It’s one of the most widely used developer tools. We’ll use it to run and grade homeworks.
Therefore, each (programming) hw submission must include a Makefile. Homework 0 will explain more details. Subsequent assignments may also have additional requirements.
8 XML
This course uses XML, a popular "data interchange format", both in hw programs and as a running example to compare and contrast the various computation models we’ll learn.
Here is the full XML spec, but we’re mainly interested in a small subset of the language, in particular an automaton element.
8.1 The automaton Element
Homework 0 explains more details but in summary, an automaton element in this course mainly consists of state and transition elements.
- A state element:
must have id and name attributes,
and its content may include empty initial or final elements
- A transition element must include from, to, and read elements:
the content of a from or to element is a state id (not the name),
and the read element is an alphanumeric character, or empty.
Here is an example:
"automaton XML Example"
<automaton>
<!--The list of states.-->
<state id="0" name="q1"><initial/></state>
<state id="1" name="q2"><final/></state>
<state id="2" name="q3"></state>
<!--The list of transitions.-->
<transition>
<from>0</from>
<to>0</to>
<read>0</read>
</transition>
<transition>
<from>1</from>
<to>1</to>
<read>1</read>
</transition>
<transition>
<from>0</from>
<to>1</to>
<read>1</read>
</transition>
<transition>
<from>2</from>
<to>1</to>
<read>0</read>
</transition>
<transition>
<from>1</from>
<to>2</to>
<read>0</read>
</transition>
<transition>
<from>2</from>
<to>1</to>
<read>1</read>
</transition>
</automaton>
9 JFLAP
JFLAP is an application for experimenting with FSMs and other models of computation.
It’s not required for the course, but you may find it useful (use version 7.x).
The course staff may occasionally use it to generate XML representations for homeworks, but each assignment will explain details when necessary.
10 LaTeX
LaTeX is typesetting software that is particularly useful for writing that includes math.
It’s not required but you may find it useful when submitting non-programming homework.