Skip to content
Snippets Groups Projects
Commit 9da9091d authored by W. Spencer Smith's avatar W. Spencer Smith
Browse files

Updates to A3 description

parent 9c888bf3
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -3,6 +3,7 @@
\usepackage{graphicx}
\usepackage{paralist}
\usepackage{amsfonts}
\usepackage{listings}
\oddsidemargin 0mm
\evensidemargin 0mm
......@@ -79,16 +80,18 @@ declaring them as private.
\section *{Step \refstepcounter{stepnum} \thestepnum}
Complete the specification by addressing the comments given in the specification
file \texttt{spec.tex}.
file \texttt{spec.tex}. To help you interpret the specification, some examples
are shown in the Appendix to this assignment.
\section *{Step \refstepcounter{stepnum} \thestepnum}
Write a critique of the interface for the modules in this project. Is there
anything missing? Is there anything you would consider changing? Why?
anything missing? Is there anything you would consider changing? Why? You
critique should appear as the last section of \texttt{spec.tex}.
\section *{Step \refstepcounter{stepnum} \thestepnum}
Push your spec, which will include the critique, (\texttt{spec.tex} and
Push your spec, which will include the critique, in (\texttt{spec.tex} and
\texttt{spec.pdf}) to your GitLab project repo. The report, including the
specifications, should be written in LaTeX. This step should be completed by
the deadline for Part 1 of the assignment.
......@@ -102,13 +105,18 @@ the deadline for Part 1 of the assignment.
After the report has been submitted, you will be provided with a complete
specification for all of the modules. Implement the modules in C++. The names
of the modules that need to be implemented are as follows: {\tt a}. You will be
provided with a correct version of the Exceptions in the file \texttt{Exceptions.h}.
of the header files (in the \texttt{include} folder) are as follows:
\texttt{LanduseMap.h}, \texttt{LineT.h}, \texttt{MapTypes.h}, \texttt{PathT.h},
\texttt{PointT.h} and \texttt{Seq2D.h}. You will be provided with a correct
version of the Exceptions header file in \texttt{Exceptions.h}. The source
files you should create are as follows: \texttt{LineT.cpp}, \texttt{PathT.cpp},
\texttt{PointT.cpp} and \texttt{Seq2D.cpp}.
\section *{Step \refstepcounter{stepnum} \thestepnum}
Experiment with the implementation. Test the supplied \texttt{Makefile} rule
for {\tt experiment}. Details to be provided.
for {\tt experiment}. The purpose of this rule is to provide a means for
``playing'' with the code as you develop it.
\section *{Step \refstepcounter{stepnum} \thestepnum}
......@@ -119,13 +127,14 @@ initial repo. You should not change these files.
\section *{Step \refstepcounter{stepnum} \thestepnum}
Write another module, named {\tt Test?.cpp} that tests the implemented routines
of the x module. This module should use \texttt{catch} for testing. You can test
other routines as well, but you are only required to test the ? routines. Each
procedure should have at least one test case. For this assignment you are not
required to submit a lab report, but you should still carefully think about your
rationale for test case selection. Please make an effort to test normal cases,
boundary cases, and exception cases.
In the \texttt{test} folder you should have a corresponding test file for each
module: \texttt{testLineT.cpp}, \texttt{testPathT.cpp}, \texttt{testPointT.cpp}
and \texttt{testDEM.cpp}. The testing framework being used is called catch, as
discussed in the tutorials. The header file you need will already be pushed to
your repo. Each procedure should have at least one test case. For this
assignment you are not required to submit a lab report, but you should still
carefully think about your rationale for test case selection. Please make an
effort to test normal cases, boundary cases, and exception cases.
The supplied makefile (named {\tt Makefile}) will have a rule named {\tt
test}. This rule should run all of your test cases.
......@@ -135,8 +144,8 @@ The supplied makefile (named {\tt Makefile}) will have a rule named {\tt
Push all of your code files to your GitLab project repo. This step should be
completed by the deadline for Part 2 of the assignment.
Although not graded, you should tag your final submission of Part 2 of the
assignment with the label \texttt{A3Part2}.
% Although not graded, you should tag your final submission of Part 2 of the
% assignment with the label \texttt{A3Part2}.
\subsubsection*{Notes}
......@@ -144,8 +153,26 @@ assignment with the label \texttt{A3Part2}.
\item Please put your name and macid at the top of each of your source
files
\item Your program must work in the ITB labs on mills when compiled with its
versions of g++, cppunit, LaTeX, doxygen and make.
\item Standard for exceptions?
versions of g++ (Version 7), LaTeX, doxygen and make.
\item So that you will have the correct version of g++, please add the
following:
\texttt{. /opt/rh/devtoolset-7/enable}
to the bottom of your \texttt{.bashrc} file on mills. (An earlier version of
g++ has to concurrently exist on mills; this allows you to switch to the
version we are using.)
\item Many choices are available for containers to store your 2D sequence. So
that unit testing will work between submissions, we need to make a standard
decision. Therefore, please use a vector for your C++ implementation for the
constructor for Seq2D:
\begin{lstlisting}
template <class T>
Seq2D<T>::Seq2D(vector<vector<T>> s, double scale)
{
//details
}
\end{lstlisting}
\item \textbf{Your grade will be based to a significant extent on the ability of
your code to compile and its correctness. If your code does not compile,
then your grade will be significantly reduced.}
......@@ -154,4 +181,14 @@ assignment with the label \texttt{A3Part2}.
monitor all pushes to the course git repo.}
\end{enumerate}
\newpage
\section{Appendix}
\begin{center}
\includegraphics[scale=0.7]{Examples.jpeg}
\end{center}
%\caption{Examples for Points, Lines and Paths, flips, rotate and appends} \label{Fig_Examples}
\end {document}
Assignments/A3/Examples.jpeg

764 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment