\documentclass[]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
\else % if luatex or xelatex
  \ifxetex
    \usepackage{mathspec}
  \else
    \usepackage{fontspec}
  \fi
  \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
\fi
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
% use microtype if available
\IfFileExists{microtype.sty}{%
\usepackage{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\usepackage[unicode=true]{hyperref}
\hypersetup{
            pdftitle={Engr 664: Theory of Concurrent Programming Course Development},
            pdfauthor={H. Conrad Cunningham, D.Sc. Department of Computer and Information Science The University of Mississippi},
            pdfborder={0 0 0},
            breaklinks=true}
\urlstyle{same}  % don't use monospace font for urls
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}
\setlength{\emergencystretch}{3em}  % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{0}
% Redefines (sub)paragraphs to behave more like sections
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
\usepackage{caption}
\DeclareCaptionLabelFormat{nolabel}{}
\captionsetup{labelformat=nolabel}

\title{Engr 664: Theory of Concurrent Programming\\
Course Development}
\author{\href{/~hcc/HOME_hcc.html}{H. Conrad Cunningham, D.Sc.}\\
\href{http://www.cs.olemiss.edu}{Department of Computer and Information
Science}\\
\href{http://www.olemiss.edu}{The University of Mississippi}}
\date{22 August 2016}

\begin{document}
\maketitle

\section{History}\label{history}

Prof.~Conrad Cunningham developed this course and taught it using Chandy
and Misra's UNITY framework during the fall 1990 and fall 1991
semesters.

For the spring 1993 offering, he developed an alternative version of the
course that used the Program Composition Notation (PCN) framework. The
spring 1994, 1995, and 1996 offerings of the course followed the PCN
design.

Because the no-longer-supported PCN software does not install properly
on available systems, Cunningham revised the course for the fall 1997
offering. For the first half the semester, the class looked at
concurrent programming from a mostly formal perspective using a textbook
by Andrews; for the second half of the semester, the class used a more
pragmatic approach focussing on semaphores and monitors in the context
of Java threads programming.

For the fall 1999 class Cunningham selected the new Magee and Kramer
textbook and its associated Finite State Processes model and tool set.
Java will be used for some programming exercises.

For the spring 2005 class Cunningham again adopted the Magee and Kramer
textbook.

For the fall 2009 and fall 2016 classes Cunningham adopted the second
edition of the Magee and Kramer textbook.

\end{document}
