Logistics
Last updated: Wed, 23 Sep 2020 11:18:04 -0400
This page lists the websites and tools we’ll use in the course.
Blackboard
Here is the Blackboard page for this course.
For security, the Zoom link for this course is only available via Blackboard.
Other course materials may also be published to Blackboard sporadically.
Piazza
Here is the Piazza page for this course.
We will primarily use Piazza for discussions outside of lecture.
Zoom
Lectures and office hours will use Zoom.
For security reasons, the University requires accessing Zoom rooms via Blackboard.
Gradescope
Here is the Gradescope page for this course.
Homework is submitted and graded via Gradescope.
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
Google Apps
I’ll occasionally use UMB’s Google Apps Suite to administer surveys and quizzes.
These may be accessed by entering your umb.edu credentials into the Google login box.
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 homework submission must include a Makefile. Homework 0 will explain what goes into the file. Subsequent assignments may also have additional requirements.
XML
This course will occasionally use XML, a common "data interchange format" used by many applications, to communicate with your programs.
Here is the full XML spec, but we’ll only use a small subset of the language, in particular an automaton element.
The automaton Element
An automaton element consists of transition and state 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>
Homework 0 will explain more details.
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.
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.
Pair Programming
To pair program, two students sit at one computer, or share a screen remotely. One does the typing (the driver), and the other guides (the navigator). Both contribute equally to the program. Then switch roles after 30 minutes or so.
Here are some articles with more details, if anyone is interested: