CSS 342: Mathematical Principles of Computing - Assignments
Eclipse
Eclipse and its corresponding cmpiler are used for laboratory
work and homework grading. Although you may use any operating
systems when working on your homework assignments, your final programs
must compile and run on Eclipse and its
corresponding compiler, (i.e., MinGW on
Windows, Xcode
on Mac OS, or g++ on Linux ).
Please first install the compiler corresponding to your platform,
(i.e., operating system): MinGW
on Windows or Xcode
on Mac OS. Note that Linux has already installed g++. Also note
that, if you install MinGW, you must choose at least g++ and
make as your installation option. Thereafter, download Eclipse on your laptop or
notebook computer, and bring it to the classroom whenever the class
has a post-lecture laboratory session. There, you will be given a
simple programming problem that would help you start working on the
following homework assignment.
CSS Linux Laboratories
CSS Linux Laboratory at
UW1-320 is available to all CSS students. You should be able to
enter those two laboratories with your student ID card. If not, please
visit the CSS main office for activating your ID card. To use any of
these machines, please login with your UWnetID and the
corresponding password. If you cannot login, please contact UWB Information Technology. At
present, I am asking the Information Technology to install Eclipse on
these machines. For time being, you would like to install Eclipse on
your own home directory if you work on campus. (Note again that Linux
machines have installed g++.) If you want to compile and run your
program without Eclipse, just simply type as follows from the Linux
command line in the directory where your programs are stored:
g++ *.cpp
./a.out
You can also remotely login any of UW1-320 Linux machines. Use
ssh and establish a connection to
uw1-320-lab.uwb.edu. You will automatically get one of the lab
machines and see your home directory immediately.
To transfer files to the LAB320 file server, use sftp and
establish a connection to uw1-320-lab.uwb.edu, or use
scp at a LAB machine, so that files are copied from the outside
to the LAB320 machine. The following example copies a file "file.cpp"
from dante to a LAB machine.
scp mfukuda@dante.u.washington.edu:file.java .
Assignments
- Program 1 exercises C++ operator
overloading.
- Program 2 conducts empirical
analysis on the execution complexity of algorithms such as Sieve of
Eratosthenes, Euclid's Algorithm, and Integer Factorization.
- Program 3 draws a fractal figure
using recursion.
- Program 4 digests the key ideas
of merge/quick sort algorithms through making some improvements on
them.
- Program 5 improves
list-traversing algorithm with move-to-front, transpose heuristics,
and skip lists.
- Program 6 uses a stack to
implement an interpreter for an arithmetic expression.
- Program 7 implements a very long
integer class using Deque.
Submissions
- Hardcopy must include a one-page program specification and
explanation followed by the program listing and complete execution
outputs. In addition, some assignments request performance evaluation
including empirical results and your consideration. Note that you do
not have to repeat writing all the assignment specification. Use a
typewriter font (e.g. courier new) for your source code and execution
output.
- Softcopy must be a zipped file that includes
only your C++ source code. Your code should compile and run properly
using Eclipse since the professor and his grader test them only
using Eclipse. Follow the softcopy submission procedure shown below:
-
From the Eclipse menu, choose File, Export, and
thereafter Archive File. Choose only source files to be
exported to an archive file. Your archived file must be named
UWnetID.zip (in your Desktop). For instance, since the professor's
UneteID is "mfukuda", his archived file must be "mfukuda.zip". The
archive option must be
Save in zip format (which is actually the menu's default.)
Finally, click Finish.
-
To submit your archived file "mfukuda.zip" including your homework
assignment 1, visit our Catalyst
CollectIt (for Programming Assignment) website and follow the web
instructions.
Don't email your softcopy to me. You may repeat submitting a newer
copy as many times as you hope.
- Assignments are due at the beginning of lecture for both
your hardcopy and softcopy on the specified date. No late programs
will be accepted unless you provide me with a proof showing that you
have been under an emergency circumstance. No matter the
circumstances, it is always best to turn in something.
- !!! Important NOTE !!! The following shows typical mistakes
in CollectIt:
- A zip file's name is not your "UWnetId.zip". Don't give your file
an ambiguous name such as "program1.zip" and "homeowrk1.zip" that
can't identify your work once the professor and his grader download it
from CollectIt for grading.
- A zipped file is empty, which is caused by specifying no files to be
exported to an archive file. Click the generated zip file to peek its
contents and to verify if your zipped file includes all necessary source
programs.
Grading
Grading is based on the grading guide of each programming assignment
that you can locate at the bottom of each assignment's web site. In
general, grading covers documentation, code correctness, and code
organization:
| Criteria |
Percentage |
| Documentation of your report including explanations,
illustrations, results, and output consideration |
20% |
| Correctness of your program (Tar extraction
errors and compilation errors will receive no points for this
criterion. Run-time errors and/or incorrect answers will result in a
significant number of points being deduced from your grade). Also
reassure that you have used the algorithm as specified in each
assignment. |
60% |
|
Organization of your program (modularization, coding style, and
an appropriate amount of comments). |
20% |
Important Note
Once again, follow "what to turn in" and "grading guide" in each
assignment's web site. If you still don't know what to turn in,
email me at <mfukuda@u.washington.edu>
before each due date.
No execuse such as "I didn't know what I was supposed to turn
in"