On this page:
Blackboard
Piazza
Zoom
Gradescope
Linux
Google Apps
make and Makefiles
XML
JFLAP
La  Te  X
Pair Programming

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.

Fortunately, there are many options available so this should be straightforward:
  • 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.

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: