CS 127: Data Structures, Fall 2004
Syllabus
Instructor Information
Student Assistants
- Prefector: Juliet Bernstein (bernstej)
- Grader: Erich Schnell (schnelle)
Textbook
- Objects, Abstraction, Data Structures, and Design Using Java
Version 5.0, Elliot B. Koffman and Paul A.T. Wolfgang, John
Wiley & Sons, 2005.
If you're getting this book from a
source other than the bookstore, note that there are two
versions. You want the Java Version 5.0 version with the greenish
cover, not the Java 1.4 version with the purple cover.
Important Dates
- Exam 1: Wednesday, October 12
- Exam 2: Wednesday, November 16
- Last project due: Monday, November 21, 5 pm
Your Grade
- Assignments (including final project): 40%
- Exam 1: 30%
- Exam 2: 30%
Working from Home
- We will be programming in Java, using Sun's JDK version
1.5.0. This will be set up for use in the Computer Science
labs. You should feel free to install Java on your home machine and
work from there if you wish. If you do so, you are responsible for
making sure that your programs work under the version of the
compiler that we have installed in the labs. I am glad to informally
provide whatever advice I can to help you get the software running
on your own machine, but home use is technically "unsupported."
Homework Policy
Each assignment will have a specific time for which it will be due, and
your electronic submissions are timestamped. An assignment turned in late
within one day of the due time will be docked 25%. An assignment turned
in later than one day of the due date but within two days will be docked
50%. An assignment turned in any time after this until the last day of
classes will be docked 75%. This policy is to protect the grader, but also
to encourage you to begin your work as early as possible.
Getting Help
- If you need help with a project, you can consult with other students,
talk to the prefector, ask a lab assistant, or come to me. I am happy to
answer your questions either in person or via email. If your question
relates to difficulties with your program, please bring a printout.
Working Together
- For all programming assignments, you will be
assigned a partner to work with. I'll shuffle up the partners a few
times throughout the term so that you get the experience of working
with a few different people.
- You and your partner should engage in the
pair programming model: both of you should be sitting at a
single machine, side by side. One of you is "driving," i.e. actually
using the keyboard and mouse. The other is actively engaged following
along, stopping bugs, and providing ideas. You should make sure that
over the course of an assignment that you spend roughly the same
amount of time each "driving." I will also ask you to turn in a form
rating the work that your partner does.
- If you really want to work alone, that's ok. Send me
an email and let me know that you want to work alone, and I won't
assign you a partner. I will expect, however, that you do work of the
same amount and quality as those students with partners. You can
change whether or not you work alone each "cycle" that I assign new
partners.
- I may also be assigning occasional "paper and pencil"
problems. You may collaborate with others in the class for ideas, but
all students should turn in individual assignments for these.
Collaboration, Cheating, and the Difference Between the Two
There are two different kinds of working together: collaborating and plagiarism.
Collaborating
- Collaborating is good.
- You are encouraged to collaborate on ideas and program design.
- Programming is often a social effort, and there is much you can learn
by talking out the ideas in this class with each other.
- If a piece of your program utilizes someone else's idea, i.e., someone other than the program author(s), you must give that person credit in program comments.
Plagiarism
- Plagiarism is bad. DON'T DO IT!
- Any programs that you turn in should be your work of the
author(s) only.
- Even if the program author(s) share ideas with others, the
program itself must be written by the author(s).
- If a piece of your program utilizes someone else's idea, you
must make sure to give that person credit in program comments.
The following are examples of plagiarism.
- Taking someone else's program, changing the variables and comments
around, putting your name at the top, and turning it in.
- Finding a similar program on the internet, changing the variables
and comments around, putting your name at the top, and turning it in.
- Finding a similar program in a book, changing the variables and comments
around, putting your name at the top, and turning it in.
I will be using software to discover plagiarism if it occurs, and I
am compelled by Carleton policy to notify the College if I find
evidence of plagiarism.