Policies for CSC 254

Tentative plans call for six programming assignments, in a variety of languages (probably some subset of Ada, C, C++, C#, Haskell, Java, ML, Perl, Python, Ruby, and Scheme).  Expect the workload to be heavy.  You will probably write at least as much code in this class as you did in 173, and what you write will be much more subtle.  Don’t procrastinate!  Also be sure to read all on-line documentation carefully. 

For most 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. 

Grading standards are documented on a separate web page.

Grades will be uploaded periodically to Blackboard, the University’s on-line course management system.  Please check your grades periodically to make sure that everything has been entered correctly. 

Extra Credit

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.  In Fall 2009 (the last time I taught the course), three students received higher grades than they otherwise would have, due to extra credit.  Three students also benefitted in 2008. 

Attendance and Class Participation

Class attendance is mandatory.  Please arrive on time.  I expect to start at 12:30 sharp, and late arrivals disturb the folks who are already there. 

In recent years, some students have complained that lectures followed the text too closely, and didn't provide enough “value added.”  I will therefore be trying something new this time around:  I will assume that everyone has already read the text, and we will discuss it as a class.  In other words, if all goes well, you will talk more—and I less— than in the typical lecture course. 

This means, of course, that  reading is mandatory, and must be completed before the corresponding lecture.  If no one has questions or suggested discussion topics, I will call on you—so be prepared!

As a general rule, if there’s something you don’t understand, make me stop and explain it.  There are probably a dozen people sitting around you who didn’t understand it either, but don’t have the nerve to say so.  Likewise, if I’m belaboring something that everyone understands, prod me to move on. 

My lecture notes are available on-line, but please note that they come with no guarantee.  In particular, 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. 

No Late Assignments

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 30% of the total points.  This can easily make 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. 

Academic Honesty

Student conduct in CSC 254 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 254. 

Exams and review questions in CSC 254 must be strictly individual work. 

Collaboration on programming assignments among team members is of course expected.  Collaboration on assignments across teams 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 you must leave any brainstorming sessions with no written notes

If you use the work of others (e.g., you download a function from the web at the last minute —or copy it from a friend—so that you can get the rest of your project working), then (1) either you must have the author’s explicit permission or the material must be publically available, and (2) you must label what you copied, clearly and prominently, when you hand it in.  You will get points only for the part you wrote yourself. 

To minimize the temptation 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. 


Last Change:  29 August 2011 / Michael Scott's email address