Office hours (September 23 through December 1), in 204 Sudikoff.
Additionally, any time my door is open and I'm not talking to anyone, feel free to knock and come in. I try very hard to be available to students. I am often around on campus during evenings and weekends; call or Blitz to verify that I'm around.
CS 5 fulfills the TLA distributive requirement, so you get both your Technology or Applied Science (TAS) credit and your lab credit. Pretty sweet!
Some day you will be a leader, a decision maker. As computer technology becomes more prevalent and pervasive in society, decision makers increasingly need to understand not just how to use the technology, but also the principles behind it. In this course, you will begin to learn about the principles behind computer technology. You'll start to understand why computers do the things they do.
More broadly, in CS 5 you'll learn to think about problems the way a computer scientist thinks. This skill is valuable in any field—yes, even in the humanities.
If you still are reluctant to ask a question in lecture, even after all the encouragement in the last paragraph, feel free to write it down and ask me, a TA, or a section leader after class, by blitz, in office hours, or in lab hours. We want to help you!!
Occasionally, I might elect to answer a question later or after lecture. That will usually be because the answer to the question is tangential to the material we're covering, or simply because I am pressed for time. But please feel free to ask; I'll let you know nicely if I cannot answer the question then and there.
You need to download the Section Time Availability Form, fill it out, and email to me by 3:30 pm on Friday, September 25. If you say you are available during a one-hour slot, I expect you to honor this commitment. Please take this expectation into account as you make other commitments on and off campus this term.
We recognize that occasionally (which means "not on a regular basis"), you might not be able to attend the recitation section to which you have been assigned. In that event, please find another section to attend that week. Make sure that your regular section leader knows that you'll be attending another section, and make sure you get permission in advance from the section leader whose section you'll be visiting.
003 and 005 Sudikoff are locked at all times, but if you're registered for CS 5, you should be able to get in with your Dartmouth ID. Likewise, Sudikoff is locked after 6:00 pm, but if you're registered for CS 5, you should be able to get in with your Dartmouth ID. The second floor of Sudikoff also requires card access after 6:00 pm, and again, your Dartmouth ID should get you in, if you're registered for CS 5.
Note that there are several restrictions that come with access to 003 and 005 Sudikoff. Among them are that you are not to lend your Dartmouth ID to anyone else in order to allow them into the building or labs. Also, you must not bring food into the lab. There are tables in the hallway outside the lab for you to eat at. Food in the labs can make the keyboards darned unpleasant to use, and it can even render machines unusable. Did you know that it was a Coke spilled on a computer that caused the Chernobyl meltdown?
There will be course staff members in the labs to help you during the following hours:
You may find it useful to do some of the assignments right in the lab. Many of the problems that will stump you and waste your time if you are working alone can be cleared up in moments by the course staff. Then again, you might not find it useful to work in the lab, depending on how many of your fellow students are competing with you for machines. Of course, you can bring your own laptop with you, and then you're competing only for seats.
In addition, whenever a short assignment is due on Friday, we will post a course staff member during the hours
Later in this page, we refer to some homework assignments as "lab assignments." You may work on lab assignments wherever you like. You need not work on them in the labs.
By the way, that part about the Chernobyl meltdown—I made that up. But really, no food in the labs, puh-lease.
Please note that we are using the sixth edition of the Lewis and Loftus text. If someone offers to sell you a Lewis and Loftus book that is a previous edition—even at a deep discount—you should decline their kind offer.
Both Wheelock Books and the Dartmouth Bookstore carry the book. I have asked to have one copy placed on 4-hour reserve in Baker.
I have put all examples from the text on our own web site (and there's a link on the top-level page of the CS 5 web site).
The course schedule page will tell you the reading for each lecture. Some of the assignments will remind you what to read, but the ultimate authority on what to read for each lecture is the syllabus page.
The Lewis and Loftus text is recommended, rather than required. That's because in past course evaluations, several students commented that they found the lecture notes I publish on-line to be wholly sufficient and that they wished they had not purchased the textbook. The text contains material that we do not cover in lecture, but that you should know. That's why I recommend purchasing the textbook.
Unfortunately for Windows users (and, yes, we know that many Dartmouth students have opted for Windows), the Mac will be the "primary" machine supported. The CS undergraduate lab for this course contains only iMacs. I use a MacBook Pro. Some of the course staff have experience with Windows, however, so you may find it a good idea to ask them your Windows-specific questions. Because I don't run Windows, I will be unable to help you with Windows-specific problems. Indeed, one great asset of our TAs and some of our section leaders is that they can help you with Windows issues.
Note that you can always Blitz your program to yourself. So even if you normally run Windows but you want to work on an iMac in the lab, you'll be able to work on your own code.
I will assume that when I send out a Blitz to the class, you will read it.
If you visit me or any of the course staff for help with a program that you are writing, make sure that you can get to an electronic copy of your program. That way, we can try to compile and run it. It's nice to have a listing, but we cannot compile and run a listing.
When you Blitz a program to one of us, you just need to add your program as an enclosure to your Blitz, along with additional information as to what problems you have observed. Make sure you send your program as an enclosure; do not copy and paste your program into the message.
The Tutor Clearinghouse is another source of help. They will have private, one-on-one tutors available for this class. The tutors are recruited on the basis that they have done well in the subject, and they are trained by the Academic Skills Center. If you are on financial aid, the College will pay for three hours a week of tutoring. To get a tutor, go to 301 Collis and fill out an application.
Note that although we refer to the longer assignments as "lab assignments," you may work on them wherever you like. You need not work on them in the labs.
Because CS 5 contains substantial lab assignments, it satisfies the laboratory distributive requirement (i.e., it's a TLA).
For each assignment, you must place your hardcopy materials in a large envelope (8.5 x 11 inches), with your name and your section leader's name appearing conspicously on the outside of the envelope. (You can omit your section leader's name for Short Assignment 1, since you won't know who your section leader is at the time you hand it in.) Your name should appear as well on each program listing, output, and any other written material that you submit. If you cannot get a large envelope, see Professor Cormen or a TA, and we will get you one. But do so in advance. We do not bring envelopes to class.
The short assignments are to be turned in at the next class time (see the lateness policy below) with whatever materials are needed to show that you can, and have, done the assignments. This will be a bit more informal since the exercises will be much shorter. Normally, you will turn in hard copy of program listings and runs, or a separate sheet of paper on which you have given written responses to questions posed. All such materials should be placed in a large envelope and turned in at class time on the due date. You must turn them in on time so that your section leader can check them and arrange for help in cases where you need it. If you do not get full credit on a short assignment, you may resubmit it one time, provided that you resubmit an assignment within two days of when you got it back (or if you get it back on a Friday, you must resubmit by the next Monday.) You may resubmit up to six short assignments of your choosing.
When you resubmit a short assignment, we ask that you do a couple of things as a courtesy to your grader. First, please make it clear that it is a resubmission. Second, please include your original submission along with the resubmission, so that your grader can see your progress.
We will ask you to be more formal when submitting your work on the lab assignments. When you turn in your lab assignments, you should include hardcopy listings, output, and any other required written materials. All such materials should be placed in a large envelope and turned in at class time on the due date. Place your lab assignments, packaged as noted, in the CS 5 HW HAND IN boxes.
For the lab assignments, you will also turn in the programs electronically. Each lab assignment will tell you how to submit your programs electronically. Your section leader will run your programs, if necessary, as she or he reads your printed listings and runs.
Please note that you will submit electronically only the lab assignments. You will hand in only hardcopy for your short assignments.
Short assignments are due at the start of class on the day they are due. (They will be collected a few minutes after the class starts.) We will not accept short assignments handed in late. If you do not hand in a short assignment on time, you will get a score of 0 for that assignment and you may not resubmit. Solutions to short assignments will be posted on on the web right after the class in which they are due. Yes, you may refer to the posted solution when preparing a resubmission.
Each of the five lab assignments is scored on a basis of 40 points. The electronic version and the envelope with your hardcopy will be due at the start of class on the due date. Solutions will be posted on the web at 5:00 pm the next day.
By the start of class, we mean 1:45 pm sharp. If your assignment is submitted after 1:45 pm (i.e., 1:46 pm or later) on the due date but by 5:00 pm the next day, there is an automatic 16-point deduction. That is, we will determine what your score would have been had you submitted your assignment on time and then subtract 16. (If the resulting score turns out to be negative, we will just score it as a 0.) If your assignment is not sent by 5:00 pm the next day, you will get a 0.
It might happen that you submit your program electronically on time but cannot get the printout ready by the start of class. If this happens and you hand in the printout by 5:00 pm on the day that the assignment is due, we will deduct only 1 point. If you hand it in by 5:00 pm the next day (still having submitted the electronic version on time), the deduction is 2 points. If you don't hand in the printout at all, the deduction is 5 points. To hand in the printout of your lab assignment late, you must submit it to me, to a TA, or to your section leader. If you submit the electronic version late, we will not take a further deduction for a late or missing printout.
There are two ways that you can get an exemption from this lateness policy. First, if something happens beyond your control that prevents you from doing your assignment on time, then we can excuse a late assignment. Second, you may be able to arrange in advance to submit your assignment late. You will need a Darned Good Reason to do so. Note that you need to ask in advance. The day the assignment is due does not count as "in advance." Only Professor Cormen is authorized to excuse late assignments.
Yes, this lateness policy is harsh. Why? Because in the past, those who have fallen behind have had a devil of a time catching up. So we are trying to prevent you falling behind. Yes, 40% off for a lab assignment handed in at 1:46 pm is inflexible. In the past, students have complained that they could have handed in something substandard on time and gotten more points than if they had handed in something really good a little late. Unfortunately, the Real World works this way as well. Imagine showing the World's Best Software...a week after the trade show. It is up to you to plan your time carefully and get your work in on time!
The above lateness policy is the standard lateness policy that I've employed in CS 5 for several years. This year, however, we face the threat of the H1N1 flu virus causing massive disruptions. You might come down with the flu, your section leader might come down with it, or I might. We'll do the best we can to deal with situations as they arise. But, please, if you have flu-like symptoms, do not come to class. The worst thing you can do is to put others in danger of falling ill. I'd rather go over missed material with you when you're better than have you come to class when you're ill.
Short assignments and lab assignments will be returned after grading to the boxes labeled CS 5 HW RETURNED.
Prior to each exam, I will post a web page to help you review. There will also be review sessions during the x-hours the days of the first two exams. We will also hold a review session during reading period, time and location TBA.
Your final grade will be based on the percentage of all available points that you receive. To give you an idea of how percentages might translate into letter grades, here is the correspondence from the Fall 2007 term. I do not claim that the grade cutoffs for this term will be the same. These cutoffs are merely to give you an idea of how I have graded in the past. (Really. Do not use the cutoffs below as this term's cutoffs.)
One corollary of the way in which we count extra credit is that if you get a 30 on a lab assignment and also 5 points of extra credit, that is not the same as getting a 35 with no extra credit. The latter is better.
Students with disabilities enrolled in this course and who may need disability-related classroom accommodations are encouraged to make an appointment to see me before the end of the second week of the term. All discussions will remain confidential, although the Student Accessibility Services office may be consulted to discuss appropriate implementation of any accommodation requested.
You should attribute the proper source in any code that you submit that you did not write yourself. This includes code that you take from outside references—for example a book other than the course text. And it even includes code that you take from class examples, the course text, or the assignments. (I agree that may be tedious to attribute the source in code that we have given you, but we want you to be in the habit of attributing your sources.)
If you resubmit a short assignment and use code from the published solution, you should attribute that. Note also that proper respect for copyright laws as it applies to printed and software products is part of the Computing Code of Ethics.
Whenever we ask you to turn in sample runs of your program, the runs you turn in must be the result of actually running your program. It is a violation of the Academic Honor Principle to falsely represent a printout as being output from your program. If you change your program, make sure to generate output from the version of the program that you hand in. It's amazing how a seemingly minor change to the code can cause a big change to the output of a program. Also, make sure that when you are running a program, that it is your program; it is easier than you might think on a public Mac to run a program that someone else had left on the machine.
In the past, we have had a few incidents in which students turned in output that did not come from the program handed in. In each case, it turned out that the student had made a foolish mistake (in not rerunning the program or handing in an old version of the program or the output) and had not intended to misrepresent the work. Yet it caused many an uncomfortable moment for the student and also for the student's section leader and for me as well. So please—pretty please with sugar on top—endeavor to verify that you're handing in output that comes from the very program you're handing in.
It is not easy to come up with good homework problems that help you learn a concept, are interesting, and require an appropriate amount of work. Over the years we have developed and refined a number of homework problems, and I plan to reuse some of them for this class. You should not look at any solutions to homeworks assigned in previous terms, including sample solutions, or solutions written by other students.
We have had some uncomfortable situations occur in the past, and I want to make it clear what the policy is. Two students, Alice and Ralph, discuss an assignment and design their code together. That is fine. But then they decide that since their programs would be so similar, they might as well have Alice type in the code, have Ralph make his own copy of the file containing the code, and then have Ralph make his own minor changes. This is a violation of the Academic Honor Principle. Although you may discuss and design with others, the code you hand in must be entirely your own.
Here's another situation that occurred. Trixie and Ed start working independently on a program. Trixie finishes and has a working version. Ed has trouble with his. Trixie helps Ed debug. That is fine. But then Trixie realizes that Ed has a section of code that is all wrong and the program she wrote has just the right code for that section. She shows Ed her program. Or worse, she gives Ed an electronic copy of her program so that he can just paste in the correct code. Either action is a violation of the Academic Honor Principle.
I realize that it can be hard to decide when you might be violating
the Academic Honor Principle when we let you collaborate to a limited
extent. Here is a good rule of thumb. If you are talking in normal
English (or Chinese or German or some other natural language) you are
probably OK. If you find yourself talking in Java code, you have
crossed the line. So saying, "Your program runs forever because you
have the wrong condition in the while loop" is OK. But saying,
"Change the while (x == 0) to while (x !=
0)" is not.
If you have any question about whether what you're doing is within the Academic Honor Principle, do not hesitate to check with me. If it's late and you can't find me, you're better off erring on the side of caution.
Most violations of the Academic Honor Principle come down to failure to cite work that is not yours. If you copy any portion of your program from your friend Elvira and represent it as your work, then you either intended to deceive or were careless about citing. Either case is a violation of the Academic Honor Principle. If you copy your entire program from Elvira but include on the printout, "This code was copied in its entirety from Elvira," then you cited properly, though you didn't actually do the work. In this latter case, I would not report a violation of the Academic Honor Principle, though your grade on the assignment would look a lot like a Krispy Kreme doughnut. (I'm talking about the original glazed doughnuts, not the creme-filled ones. In other words, your grade would be 0.) But that would be far preferable to a COS hearing.
The same goes for code that you find in some other book or on the Internet. You are in violation of the Academic Honor Principle if you fail to attribute your sources.
You don't need to cite if you wrote the code yourself. You don't need
to cite just because you're using a construct you saw elsewhere. For
example, you need not cite for using
System.out.println(something), even though it was in the
class examples. That would be like citing "printing press" in an
essay! Nor do you have to cite just because you use a for-loop, even
though you saw a for-loop in a class example. It's when you lift
several lines of code from elsewhere that you need to cite.
To cite, include in a comment—near the top of your file is fine—stating where you got the code from:
Please do not cheat. Cheaters—whether or not they are caught—bring dishonor upon themselves and upon everyone else at Dartmouth. To do that, for just a few lousy points in a course, is [insert your favorite strong adjective meaning "stupid" here]. Furthermore, if you cannot solve the short assignments and lab assignments on your own, then you will be nailed on the quizzes and exams.
I have served on the COS, and I have seen what happens to students who are caught cheating: they are sent on the "Parkhurst FSP." I have brought several Academic Honor Principle cases to the COS, and I deeply dislike having to do so. Please don't make me.
Why do we tell you to do this? Because if you leave your code on a computer, and someone else can see it, then they can copy it and hand it in. If that happens, then we have a bad situation involving you (the copy-ee) and the other person (the copy-er), and it's difficult—if not impossible—to tell who was the copy-ee and who was the copy-er. By removing your code from the computer when you're done, you can avoid getting yourself into that situation.
To remove your code, you'll want to delete it from the Eclipse workspace. And you'll also want to move any other copies on the computer to the Trash (or the Recycling Bin) and empty it.
At the same time, do not be afraid to get help. The purpose of this course is not to waste your time. If you are spinning and not making progress on a problem, please see me, a TA, or a section leader. We can point you in the right direction without giving away the store.
The material in CS 5 builds on itself, and the pace is fast. As a result, it's easy to fall behind in this course, and if you do it's very difficult to recover.