Course Staff
|
There is a course conference, CS249-S07, for general announcements and for Q&A.
Textbook and Course Materials
While we will not be following any particular text, we will make extensive use of Marc Rochkind's Advanced Unix Programming, Second Edition. In addition, I will make lecture notes and some supplementary readings available either in handouts or on the web site, and I have reserved some C and Unix references in the Science Center Library. We will also establish a convenient course bookshelf. You will be expected to make extensive use of the web, online documentation, and software source code. The reference section of the course web site has quite a few useful links, and I welcome any suggestions.Collaboration Policy
The Wellesley honor code applies to this course. This means that, unless specifically stated otherwise, each assignment must be your work alone. However, I encourage open discussion of ideas among students: You may discuss problems, difficulties, and solutions in general terms with each other (and on the course conference). But unless you are working in a team, each solution must be coded/written up separately. For example, having someone sitting next to you at the computer type or dictate a solution is not allowed. Posting detailed code on the course conference is also discouraged (the names of system calls are ok). If you receive substantial help from someone, then academic honesty and the honor code dictate that you give credit in your write up or the comments of your code. Similarly, if you find out about an algorithm or technique from a text or the web, you should cite the source.In cases where teams are working together, the work must represent a thorough collaboration: Each team member must contribute to the solution of every problem. It is not acceptable for team members to divide up the tasks of a problem set. Coding should be done together.
Grading
The course will have two midterm exams (at least one of which will be a take-home exam), regular homework assignments, and a final thing. The final thing will be either a project done over the last 5 weeks, or a self-scheduled final exam. It will depend on what we cover and on class interests. The various elements will determine your final grade according to the following proportions:
Homework | 40% |
Exam 1 | 15% |
Exam 2 | 15% |
Final | 25% |
Participation | 5% |
Homework
There will be approximately 8 assignments in this class. Due dates will be posted on the course syllabus. The assignments will include lots of programming, so get started early! This will be easy because the assignment will be so much fun!While we want a free, mutually supportive, and collegial atmosphere in the class, you must abide by the course collaboration policy.
Late Homework
Unless specifically noted, assignments are due by midnight of the due date. If an assignment is due on Friday the 13th, then you have all day Friday to work on it. Each of you gets 5 late days to use during the term: you can turn in 5 assignments 1 day late, or you can turn in one assignment 5 days late. This will allow for inevitable conflicts while ensuring that no one falls too far behind.
How to submit homework
Most assignments will require only online submission. When
hardcopy is required, it is to be given to me or slipped under my
office door. To submit materials on line, you will copy files into a
course drop directory using the drop
program:
% drop systems files.tar
copies files.tar
from your current directory to your course
drop directory. Each assignment will state what files you need to
submit.
In general, you will submit source code and a script file that
shows you testing your program (some test cases may be provided, but
you should also be able to make your own). There are a couple ways
to create a script file. I recommend that you run a shell inside
emacs (via M-x shell) and then save the result. There is also a
script
program, but it produces output designed for the
lp
command, so it's not as easy to peruse online..
In general, everything you submit should have your name, the course,
the assignment, and the date at the beginning, even script files.
(The #
character introduces comments in the Unix shell.)
Homework grading
Assignments will be graded on both functionality and quality. Producing a function that works as specified is worth 80%. The remaining 20% will be based on:- Clarity of code.
- Modularity of your solution.
- Documentation.
- Efficiency (though not at the expense of the above criteria).
You all have written quite a bit of code by now, and you each have
your own style. In this course, we will adopt a standard style:
pointless idiosyncrasy is obfuscatory! Your code must follow this
standard.
Last Modified: 23 Jan 2008