This course will have several major programming assignments (6 currently planned). Most will be written in C, but several will require a knowledge of assembly language as well. All will be done under Linux. Expect the workload to be heavy.
For most of the assignments you will have the option of working in pairs. You can also work alone if you prefer. In most cases the partners in a pair will receive the same grade, but I reserve the right to assign different grades if I have reason to believe that partners did significantly different amounts of work. Team membership will be self-selected, and can vary from assignment to assignment.
Most programming assignments will have two due dates. The first will be a trivial “pre-assignment” whose purpose is to force you to start thinking about things. The second will be the main due date. The pre-assignments will count for 10% of your final grade. There will also be a midterm exam and a final.
Numeric course grades will be calculated approximately as follows:
Letter grades will be assigned by subjectively identifying brackets in the numeric scores. There is no pre-determined curve. In particular, I have no objection to giving all high grades (or all low grades) if it seems appropriate. If you’re curious you can look at the grade distribution from the last few times I taught the course.
Grading criteria will be described separately for each assignment. In general, you should aim for
All assignments will be handed in electronically; details will again be given separately for each assignment. Be sure to watch the discussion board for any late-breaking announcements.
We will strive to return assignments within one week of the due
date. Grades will be posted in BlackBoard.
If you have any questions about your project grades, see the TA; for exam grades, see the professor.
There will be opportunities for extra credit on most of the assignments
and exams. Extra credit will be considered after making the
first cut at letter grades for the course. If you’re near
the top of your grade bracket, or the amount of extra work you’ve
done is particularly large, you can expect it to push you up a
grade (again, see the past
distribution).
Please participate in class! Ask questions. If
there’s something you don’t understand, make me stop and
explain it again. There are probably a dozen people sitting
around you who didn’t understand it either, but don’t have
the guts to say so. Likewise, if I’m belaboring something that
everyone understands, prod me to move on.
In other classes you may have seen instructors experiment with
tricks (e.g., pop quizzes) to make you come to class.
I don’t want to do that.
If you want to skip class, feel free, but
note that (a) if my lectures aren’t providing any value added then
you ought to complain to the Dean, or (b) if you don’t care about
the value added then you could save a lot of money by taking a
correspondence course from home.
Do note, however, that I reserve the right on exams to ask about
anything I’ve covered in class, even if it isn’t in the book
or lecture notes. I also reserve the right to ask about anything
in the assigned reading, even if it isn’t in the lecture notes and
I haven’t mentioned it in class. I will be posting my lecture notes on-line, but I will not be putting
any effort into polishing them for public consumption. Their
principal purpose is to remind me of what I want to talk about.
If you find them helpful, great. If not, sorry.
One final note: please be sure to come to class on time. I
expect to start at 11:05 sharp, and late arrivals disturb the folks who
are already there. (I also start class with announcements, which
you probably don’t want to miss.)
It is my strict policy not to accept late assignments. Exceptions
will be made only under the most dire of circumstances. Note,
however, that I am extremely generous with partial credit, so
turn in what you have.
Every semester I have students who let a due date pass. When I
ask them what happened they say “Oh, I didn’t finish, so I
didn’t turn anything in.” Then I have to give them a
zero. If they had turned in even some reasonable preliminary
thoughts on how they might have done the assignment — without a
single line of code — they often could have received as much as a
third of the total points. This can easily mean the difference
between letter grades at the end of the semester.
So if it looks like you aren’t going to make a due date,
don’t keep debugging down to the wire. Stop an hour early
and take the time to organize what you have and put together a write-up
that presents it in the best possible light. Your transcript will
love you for it.
Student conduct in CSC 252 is governed by the College
Academic Honesty Policy, the
Undergraduate Laboratory Policies
of the Computer Science Department, and the
ResNet Acceptable Use Policy.
I helped to write two of these policies personally. I believe in
them strongly, and will enforce them aggressively.
The following are additional details specific to CSC 252.
Exams in CSC 252 must be strictly individual work.
Collaboration on assignments among team members is of course
expected. Collaboration on assignments across teams (or
among individuals on non-team-based assignments) is encouraged at the
level of ideas. Feel free to ask each other questions,
brainstorm on algorithms, or work together at a whiteboard. You
may not claim work as your own, however, unless you transform the ideas
into substance by yourself. Among other things, this means that
means you must leave any brainstorming sessions with no written
notes.
Similarly, you are welcome to read anything you find on the web, but you
must close all web pages before beginning to write your code.
You are not permitted to repeatedly consult a source.
You can read it, understand it, put it away, and write your own similar
code, but you must not copy anything.
Both electronic copy-and-paste and copying through short-term memory are
expressly forbidden.
If you have any questions about this policy, ask.
To minimize opportunities to steal code, all students are expected to
protect the directories in which they do their work.
For purposes of this class, academic dishonesty is defined as
I work under the assumption that students are honest. I will not
go looking for exceptions. If I discover one, however, I will
come down on it very hard.
Extra Credit
Attendance, Reading, and Class Participation
No Late Assignments
Academic Honesty