CS140 -- Labs
- Lab Assignments
- Lab Submission Info
- Lab Grading
- How to Get Lab Help
- General Stuff
- Lab Attendance
- Late Labs
- Plagiarism Policy
- Commenting and Program Style
The dates in the following table are tentative. They could change depending
on the pace at which material gets presented in the course. Your lab score
will be determined as follows:
- Labs 0 and 0.5 are worth 50 points each.
- Labs 1-4 and 6-11 are worth 100 points each. Lab 5 is worth 200
- The total of these labs is 1200 points. Your lab score will be
lab percentage = lab score / 1200 * 100
You can see that in effect one lab is an extra credit lab. Alternatively,
if something comes up, such as an illness, something at work, the need
to attend a conference, multiple exams in one week, etc., you do not have
to submit a lab.
- Because I have built in a one lab cushion, please do not
ask for any extensions. The answer will be no.
| Lab 0
|| Due 11:59:59 PM, Tuesday, January 13
| Lab 0.5 - Gold.cpp: The warm-up lab
|| Due 11:59:59 PM, Friday, January 16
| Lab 1 - Checkerboard & Moonglow
|| Due 11:59:59 PM, Tuesday, January 20
| Lab 2 - Fun with PGM files
|| Due 11:59:59 PM, Tuesday, January 27
| Lab 3 - More fun with PGM files
|| Due 11:59:59 PM, Tuesday, February 3
| Lab 4 - Hash tables with open addressing
|| Due 11:59:59 PM, Tuesday, February 10
| Lab 5 - Bit Matrices
- All methods in Bitmatrix and BM_Hash: Due 11:59:59 PM, Tuesday, February 17, 2015
- Sum, Product, Sub_Matrix, and Inverse: Due 11:59:59 PM, Tuesday, February 24
| Lab 6 - Keno!
|| Due 11:59:59 PM, Tuesday, March 3
| Lab 7- A server to process codes
- Partial Submission: Due 11:59:59 PM, Friday, March 13, 11:59:59 PM.
See lab write-up for which methods are
due and which test cases must work
for the partial submission.
- Complete Lab: Due 11:59:59 PM, Tuesday, March 24
| Lab 8 - Linked Lists
|| Due 11:59:59 PM, Tuesday, March 31
| Lab 9 - Recursion (Shape Shifter!!)
|| Due 11:59:59 PM, Tuesday, April 7
| Lab 10 - Binary Search Trees
|| Due 11:59:59 PM, Tuesday, April 14
| Lab 11 - AVL Trees
|| Due 11:59:59 PM, Tuesday, April 21
Lab Submission Info
You will submit your code using the 140_submit script. You will
be shown in lab how to use this script.
Your lab grade will be determined as follows:
- Correctness (80%): The grading script will be used to compute your
- Commenting and Program Style (20%): Are the programs well-organized,
well commented (including meaningful variable names), and
do they solve the problem in the most straightforward,
efficient way possible? See the section Commenting
and Program Style for commenting and style guidlines.
How to Get Lab Help
There are three ways to get lab help:
- Visit me during my office hours (MK 312 Mondays from 2-4) or make
- Visit the TAs in the programming clinic during their office hours.
See the TA web page for their office hours.
- Post a question to Piazza. This is the best way to get help during
non-office hours, and during
the evening and the weekends. Please do not post code publicly to Piazza.
If you have a query about code, please make
it a private post to me and the TAs. When you make a private query about
code, please post all of your code, not just a code snippet. It is usually
impossible to debug a program from a code snippet since it is almost always
the case that the bug occurred somewhere else in the program and is only
manifesting itself in that snippet of code.
Please remember that both the TAs and I have obligations outside this
class, and do not expect immediate answers to your Piazza questions. We will
do our best to monitor Piazza and answer questions as expeditiously as
possible. On evenings and weekends you may well be on your own but everyone
in the class is strongly encouraged to answer Piazza questions.
When it comes time to adjust borderline grades, I will look favorably on those
of you who have actively answered questions on Piazza.
- Here are pointers to a couple useful documents:
- gdb--C++ debugger
- vi--text editor
- Always test your code on the hydra machines. The
TAs will test your code on these machines and will deduct points if your
code does not compile or crashes. Occasionally code that compiles and/or
executes on my Macintosh does not compile and/or execute on the hydra
machines, so it stands to reason that your code may suffer the
- Make sure that you keep up-to-date with class announcements on Piazza
as they will frequently address lab questions.
Lab attendance is
mandatory for the entire time of the lab. Each lab has either an
in-class lab or a number of top coder questions for you to complete.
If you complete the
top coder questions, then you should start on the current week's lab
assignment. If you have a time conflict
throughout the semester (e.g., a class conflict) that
does not allow you to
attend the entire lab period please get an excused absence from me.
You can submit your lab up until 3 days after the due date but 10 points per
day will be deducted from your final score. As I indicated earlier,
please do not ask for extensions.
If you plan your time well, you should have the lab pretty much complete
before the last day. If you put off the lab to the last minute and then
something comes up, such as an illness, then you will need to submit the
lab late. Also, please
give yourself several minutes before the midnight deadline to submit to
Blackboard. If you try to submit at 11:59pm and for some reason it does not
submit properly, you will lose 10 points for lateness.
You must write your labs alone.
Obviously, you may talk about your labs
with the TA's and with other students, but ultimately you
must write your own code.
Otherwise, it is plagiarism.
A few notes:
- It is fine, and encouraged, for you
to post questions to Piazza. As noted earlier, please do not post code there,
you make it a private post to me and the TAs.
- With the exception of Piazza, I consider it cheating to post any query
assignment to the internet.
If I discover that you have posted a query
about an assignment on the internet, you will receive an F in the class.
- Protect your directories so that no
one can read them. If you do all of your work in ~/cs140,
then right now, do:
UNIX> chmod 1700 ~/cs140
If someone cheats off of you, chances are we cannot determine that,
since file access times can be modified. In the past, when I have discovered
cheating, both parties (cheater and cheatee) get punished.
- Punishment for a cheating offense can range from a 0
on the assignment to an F in the course and my sending a letter to academic
misconduct. The punishment depends on how seriously I view your
Commenting and Program Style
In the real world your program will not be a one-and-done affair like
it is in this course. Instead other people may have to maintain it
after you have moved on to other projects. You therefore want to always
strive to make your code as readable and well-organized as possible.
Here are the thoughts of a number of people on writing clean code. I expect
you to read each of their opinions, especially mine! The grading of your
code will be based on a composite of these three pieces. Please note that
non-meaningful variable names, especially one letter names,
are a special pet peeve of mine and you will
lose points for using such names.
- Writing Nice Code by Prof. Ian Horswill, Northwestern University and Prof Lynne Parker, Univ. of Tennessee.
- Commenting Your Code by Prof. James Plank, University of Tennessee.
- Writing Clean Code by Prof. Brad Vander Zanden, University of Tennessee.