\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 Syllabus, Fall 2016},
            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\\
Syllabus, Fall 2016}
\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{Course Overview}\label{course-overview}

\subsection{Catalog Description}\label{catalog-description}

Engr 664: Theory of Concurrent Programming. Topics in the theory of
concurrent programming. Models of concurrency. Programming logics.
Emphasis on the formal specification and verification of concurrent
programs.

\subsection{Prerequisite}\label{prerequisite}

This class is intended for students admitted in full standing in the
graduate emphasis in Computer Science. Students are expected to have a
background in finite state machines, operating systems, algorithms, data
structures, programming languages, and discrete mathematics typical of
an undergraduate computer science program. Use of the the Java
programming language will likely be required in programming exercises.

Graduate students in other fields should discuss their backgrounds with
the instructor for this course.

\subsection{Position in Curricula}\label{position-in-curricula}

This is a graduate level course applicable to the MS and PhD emphases in
computer science.

\subsection{Course Goal}\label{course-goal}

The primary goal of this course is to develop the students' knowledge of
and experience with concurrent programming and use of formal methods.

\subsection{Course Student Outcomes}\label{course-student-outcomes}

Upon successful completion of the course, students will be able to:

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\item
  describe the fundamental concepts for concurrent programming (e.g.,
  processes, threads, interaction)
\item
  recognize the common problems that can arise in concurrent programs
  (e.g., interference, deadlock, starvation)
\item
  apply appropriate concurrent programming techniques (e.g., mutual
  exclusion, condition synchronization, message passing) to avoid the
  problems
\item
  describe the fundamental concepts of modeling concurrent systems using
  finite state machines (e.g., the Finite State Processes notation)
\item
  build appropriate finite state machine models for simple concurrent
  systems
\item
  formally express desirable and undesirable properties of concurrent
  systems (e.g., safety, liveness)
\item
  apply a model-checking tool (e.g., the Labelled Transition System
  Analysis tool) to evaluate whether the models have the desirable
  properties and do not have the undesirable ones
\item
  explain the concurrent programming features of the chosen programming
  language (e.g., Java)
\item
  develop finite state machine models as concurrent programs in the
  chosen programming language
\item
  analyze a concurrent programming problem to design an appropriate
  concurrent architecture
\item
  describe selected advanced techniques and architectures (e.g., dynamic
  systems, timed systems, filter pipelines).
\item
  relate the concepts and methods for concurrent programming to their
  previous programming knowledge and experiences
\item
  be more confident programming concurrent systems and using formal
  methods
\item
  appreciate the elegance and usefulness of formal methods for tackling
  difficult programming issues
\item
  study and learn new programming and analysis techniques
\end{enumerate}

\section{Fall 2016 Section Details}\label{fall-2016-section-details}

\subsection{Instructor}\label{instructor}

\textbf{Dr.~H. Conrad Cunningham}, Professor, Computer and Information
Science\\
Office: 211 Weir Hall\\
Telephone: (662) 915-5358\\
Email:
\href{mailto:hcc@cs.olemiss.edu}{\nolinkurl{hcc@cs.olemiss.edu}}\\
Web: \href{http://www.cs.olemiss.edu/~hcc}{Professor Cunningham's
Homepage} (\url{http://www.cs.olemiss.edu/~hcc})\\
Office hours: 10:15 - 11:30 a.m. MWF (or by arrangement)

\subsection{Teaching Assistant}\label{teaching-assistant}

There is no teaching assistant assigned to this class.

\subsection{Communication Policy}\label{communication-policy}

Students may contact the instructor by telephone or email or meet him
during his office hours. He will attempt to respond to email and
telephone messages within 24 hours during the work week. Emails or
telephone calls arriving outside the 8:00 a.m. to 5:00 p.m.,
Monday-Friday workday may be deferred until the next workday.

\subsection{Methods of Instruction}\label{methods-of-instruction}

The instructional methods used in this course include readings from the
textbook and other course materials, classroom lectures and discussions,
assignments (programming projects, written exercises, and quizzes), and
in-class exams.

\subsection{Course Materials}\label{course-materials}

The \href{http://www.cs.olemiss.edu/~hcc/engr664/}{Engr 664 course
website} is at \url{http://www.cs.olemiss.edu/~hcc/engr/}.

\begin{description}
\tightlist
\item[Textbook (required):]
Jeff Magee and Jeff Kramer. \emph{Concurrency: State Models and Java
Programs, Second Edition}, Wiley, 2006. ISBN-13: 978-0-470-09356-6.
\end{description}

\subsection{Hardware}\label{hardware}

The course does not require any special hardware. Students may use the
Department's Adler lab facilities, servers, or their own desktop or
laptop systems to complete the programming assignments.

\subsection{Software}\label{software}

To complete the course, students need the following software available
on the computer at which they will do their work:

\begin{itemize}
\item
  Labelled Transition System Analysis (LTSA) toolset from the textbook's
  \href{http://www.doc.ic.ac.uk/~jnm/book/}{companion website}
\item
  Java 8 and other programming languages required by assignments.
\end{itemize}

\subsection{Technical Support}\label{technical-support}

Contact the instructor concerning any issues related to installation and
use of the oftware or if access is needed to Department of Computer and
Information Science computing facilities.

\subsection{Course Topics}\label{course-topics}

Basic concepts:

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  Concurrency concepts
\item
  Processes and threads
\item
  Concurrent execution
\item
  Shared objects and mutual exclusion
\item
  Monitors and condition synchronization
\item
  Deadlock
\item
  Safety and liveness properties
\item
  Model-based design
\end{enumerate}

Advanced concepts (selected from the following):

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\setcounter{enumi}{8}
\tightlist
\item
  Dynamic systems
\item
  Message passing
\item
  Concurrent architectures
\item
  Timed systems
\item
  Program verification
\item
  Logical properties
\item
  Other topics of interest to students and instructor
\end{enumerate}

\subsection{Course Expectations and Attendance
Policy}\label{course-expectations-and-attendance-policy}

The instructor expects each student to attend class and participate
during each scheduled class period and to complete the required
out-of-class assignments by the stated deadlines.

\subsection{Assignments}\label{assignments}

\begin{itemize}
\item
  All students are expected to study the relevant portions of the
  textbook and and other course materials in conjunction with our class
  discussions (i.e., before coming to class). Explicit reading
  assignments will not always be given. If in doubt on what you need to
  read, please ask the instructor.
\item
  Each student is expected to complete all required assignments.
\item
  Several programming assignments will be assigned during the semester.
  We will likely use Java for these assignments. There may also be
  written assignments or short quizzes. (The instructor anticipates
  approximately five major assignments, but may add smaller assignments
  to replace or augment the major assignments as appropriate.)
\item
  Unless otherwise stated in the assignment description, an assignment
  is to be carried out by each individual student without inappropriate
  collaboration with others. See the section on Acasdemic Integrity.
\item
  Most (but possibly not all) assignments will be submitted
  electronically using the Blackboard system.
\item
  In preparing and submitting homework assignments make sure that:

  \begin{itemize}
  \item
    your name, the course number or name, the assignment identifier, and
    individual exercises are clearly indicated in the content of the
    file or on the paper. (If it is a group assignment, give the group
    identifier and the names of all members.)
  \item
    for any handwritten portions, you write legibly on only one side of
    the paper in a black or blue pen or dark pencil. Do NOT use red or
    green ink!
  \item
    for any assignments submitted on paper, your pages are stapled
    together in the upper left corner when viewed from the front.
  \end{itemize}
\item
  All students are expected to complete their homework assignments by
  their due dates. If an assignment is submitted late, a penalty of 10
  percent of that assignment's grade will be assessed for each class day
  it is late. A homework paper will not be accepted after graded papers
  have been returned, after a solution has been distributed, or after
  the final examination.
\item
  If an assignment is marked ``optional'', it can replace an earlier
  assignment. However, all students are encouraged to work on these
  assignments; these optional activities can help the student master the
  concepts and skills and prepare for the proctored exams.
\end{itemize}

\subsection{Examinations}\label{examinations}

\begin{itemize}
\item
  There will be three examinations -- two mid-term exams and a final
  exam.
\item
  The lowest grade of the three will be dropped and each of the other
  two grades will contribute 30 percent toward the course grade.
\item
  The mid-term examinations will be given in late September and
  mid-November. The final examination will be given during the final
  examination period published by the Registar's office (Monday, 6
  December, 4:00 p.m.).
\item
  Please do not ask to take the final examination earlier than the time
  set for the entire class.
\item
  Each exam will cover all topics studied to that point. The final exam
  is comprehensive over all material covered during the semester.
\item
  Each exam may consist of a combination of in-class and take-home
  components.
\item
  If you cannot take an examination at the scheduled time because of an
  illness or other special circumstances, please notify the instructor
  in advance. Without advance notification, it may not be possible to
  give a make-up examination.
\end{itemize}

\subsection{Optional Activities}\label{optional-activities}

The instructor may suggest various optional resources and activities.
These activities are not graded, but they can help a student broaden and
deepen his or her understanding of the programming language concepts.

\subsection{Grading}\label{grading}

\begin{itemize}
\item
  We will attempt to grade submitted assignments within approximately
  one week.
\item
  60\% of the final grade comes from the grades on the examinations. The
  remaining 40\% comes from grades on the assignments (programming
  project, written exercises, and quizzes).
\item
  The ranges for the letter grades are 90-100\% for A, 80-89\% for B,
  70-79\% for C, 60-69\% for D, and below 60\% for F.
\item
  +/- grades will be used near the boundaries at the discretion of the
  instructor. The actual assignment of +/- grades depends upon the
  overall distribution of grades for the class.
\end{itemize}

\section{University of Mississippi
Policies}\label{university-of-mississippi-policies}

\subsection{Students with
Disabilities}\label{students-with-disabilities}

University policy provides for reasonable accommodations to be made for
students with verified disabilities on an individualized and flexible
basis as specified under Section 504 of the Rehabilitation Act of 1973
and the Americans with Disabilities Act of 1990 (ADA).

Students with disabilities who believe they may benefit from classroom
or other accommodations should contact the
\href{http://sds.olemiss.edu/}{\emph{Office of Student Disability
Services}} for information at 234 Martindale, 662-915-7128 (Phone),
662-915-7907 (TTY Phone), or
\href{mailto:sds@olemiss.edu}{\nolinkurl{sds@olemiss.edu}} (Email).

Any student requiring accommodation under this policy should present the
instructor with the required documentation early in the semester and
make arrangements in advance with the instructor.

\subsection{Copyrighted Materials}\label{copyrighted-materials}

Materials used in connection with this course may be subject to
copyright protection under Title 17 of the United States Code. Under
certain Fair Use circumstances specified by law, copies may be made for
private study, scholarship, or research.

Students should not share electronic copies of copyrighted materials
with unauthorized users. Violations of copyright laws could subject
individuals to federal and state civil penalties and criminal liability
as well as disciplinary action under University policies.

\subsection{Appropriate Use of Information
Technology}\label{appropriate-use-of-information-technology}

The Information Technology (IT)
\href{https://secure4.olemiss.edu/umpolicyopen/ShowDetails.jsp?istatPara=1\&policyObjidPara=10642998}{Appropriate
Use Policy} sets forth the privileges of and restrictions on students,
faculty, staff, and other users with respect to the computing and
telecommunications systems offered by the University of Mississippi
(UM). This policy is designed to protect the University community from
illegal or damaging actions by individuals, either knowingly or
unknowingly. Inappropriate use exposes the University to risks,
including virus attacks, compromise of network systems and services, and
legal issues. This policy directly addresses copyright issues related to
illegal downloads and peer-to-peer file sharing.

For questions about the Appropriate Use Policy, send an email to
\href{mailto:aup@olemiss.edu}{\nolinkurl{aup@olemiss.edu}}.

\subsection{Academic Integrity}\label{academic-integrity}

The University of Mississippi is dedicated to supporting and sustaining
a safe and scholarly community of learning dedicated to nurturing
excellence inside and outside of the classroom. Each student has a duty
to become familiar with University values and standards reflected in
University policies, and each student has a duty to honor University
values and standards reflected in University policies. These policies
are outlined in the
\href{http://conflictresolution.olemiss.edu/wp-content/uploads/sites/2/2014/09/MBook14.pdf}{\emph{M
Book}}. For a complete listing of policies, please visit the University
Policy Directory.

As a student in Engr 664, you are expected to conduct yourself in a
professional and ethical manner according to the policies, procedures,
and expectations of the Department of Computer and Information Science,
School of Engineering, Graduate School, University of Mississippi, and
discipline of computer science.

The University's academic discipline procedure will be followed in this
course. Violations of academic integrity may result in anything from
failure on an assignment to expulsion from the course, depending on the
severity of the violation.

\subsection{Verification of Student
Attendance}\label{verification-of-student-attendance}

The University must abide by Federal guidelines to verify the
participation of students. For all course types, including thesis,
internships, labs, online courses, etc., the instructor must verify your
participation based on some type of participation. In this course, the
instructor will verify the physical attendance of each student and
report it during the first two weeks and otherwise as required.

\subsection{Student Privacy Policy}\label{student-privacy-policy}

The University of Mississippi protects the privacy of all students,
including online and distance learning students, through adherence to
the Family Educational Rights and Privacy Act of 1974 (FERPA) through
compliance with other institutional policies and procedures governing
the management and security of protected information of faculty, staff,
and students, and by outlining the expectations of privacy for the
university community as regards to electronic information. See the
\emph{\href{https://secure4.olemiss.edu/umpolicyopen/ShowDetails.jsp?istatPara=1\&policyObjidPara=11873531}{Student
Information and Privacy Policy}} for more information.

\end{document}
