If you have any questions or concerns about these course policies, please don't hesitate to ask in lecture, during office hours, on the course newsgroup, or by email.
- How to submit written homework
- How to schedule oral presentations
- Form: How to write (for written homeworks)
- Content: What to write
- Form: How to present
- Grading and regrading
- Academic integrity
How to Submit Written Homework
About 85 students are taking CS473UG this semester. We need your help to make sure homeworks are graded and returned quickly. The graders will be overworked as it is, so we want to streamline the process as much as possible!Logistics
- Where to submit your homework. Homeworks will be due on Fridays by 11.30am in Elaine Wilson's office (3229 Siebel Center).
- Turn in your homework on time. All homework must be received by the due date and time. Absolutely no late homeworks will be accepted without the instructor's written (or emailed) permission, which must be obtained at least 24 hours before the due date. To offset this somewhat draconian measure, we will drop the lowest grade of all the homeworks; this should take care of any unforeseen circumstances.
Format
Homeworks that do not follow these formatting requirements will automatically receive a grade of zero. This is not a joke.
- Use standard US Letter paper (8.5" × 11") or a close approximation. Most US notebook paper is close enough. Use both sides of the page whenever possible.
- Clearly print your name, your NetID, the homework number, the problem number and "473UG", at the top of every page. For example: "Erin Wolf Chambers (erinwolf) HW0 #5, 473UG". Without this information, the graders will have no idea who you are or what problem you're supposedly solving, so you'll get no credit for your work.
- Start each numbered homework problem on a new sheet of paper. In order to make the grading faster and more consistent, each homework problem will be graded by a single grader and returned as soon as it is graded.
- Staple your solution for each problem once in the upper left corner. Do not use paper clips, tape, glue, spit, or rubber bands. Do not try to keep pages together by folding or tearing. It is not necessary to staple single-page solutions. Do not staple your entire homework together.
- Never write your Social Security Number on anything! Social Security Numbers are extremely valuable personal information. Anyone who knows your SSN can steal your identity with very little effort. It should only be used for financial transactions that are reported to the IRS.
- Nicely typeset homework will be given a modicum of extra credit. The graders get to decide what "nicely" means. We strongly recommend using LaTeX, which is far and away the best system for typesetting mathematics (and you will be typsetting mathematics). Nothing else even comes close, especially the crappy equation editor that comes with Microsoft Word. If you're interested in graduate school, you'll have to learn to use LaTeX eventually; might as well start now. I recommend TeXShop for Mac OS X, teTeX for UNIX/Linux (already included in many distributions), and MiKTeX for all those poor victims of the Gates Virus.
How to schedule oral presentation homework
For oral homeworks, each group will schedule a presentation time with the TAs. Watch the course newsgroup for announcements regarding this process. Each member in a group will present at least one problem from a given homework set. The assignment of who presents what will be done randomly by the TA at the beginning of the presentation session.
Form: How to write
Please be nice to the graders! Make it easy for them to see what you're doing. If your answers are hard to read, the graders will be less sympathetic to your mistakes. All this goes for exam problems, too.
- Write concise, legible, and correct solutions. You will lose points for bad handwriting, spelling, grammar, arithmetic, algebra, logic, and so on. If we can't decipher what you wrote, you will get no credit. This is especially important for students whose first language is not English. If your handwriting is bad, it's time to learn LaTeX. (1337-5p33k = teh 5uxx0r!!)
- Use pseudocode or outline format to describe your algorithms. Do not turn in source code! Too much syntactic sugar distracts the reader (and the writer!) from what's the algorithm is really doing. On the other hand, raw English prose is also usually insufficient. See the textbooks and lecture notes for examples of the type of presentation we want. Ideally, your description should allow a competent programmer who has not taken this course to easily implement your algorithm in their favorite programming language.
- Make the punch line obvious. Emphasize your final answers by putting a box around them, or using a highlighter, or some similar trick.
- Omit irrelevant details. Don't turn in the piece of paper you used to figure out your answer; copy the relevant information onto a new empty page. If the same algorithm works equally fast whether the input is an array, a singly linked list, a doubly linked list, or a binary tree, try to describe it so that a competent programmer can easily use any of these abstract data types.
- Include relevant details. If a problem statement is ambiguous, explicitly state any additional assumptions that your solution requires. (Of course, you should also ask for clarification in class, in office hours, or on the course newsgroup.) For example, if the performance of your algorithm depends on how the input is represented, tell us exactly what representation you require. If your solution to a recurrence assumes a particular base case, tell us what base case you require.
- Don't regurgitate! If your answer is a simple modification of something we've seen in class, just say so and (carefully!) describe the changes. If the complete and correct answer is on page 263 of the recommended tetbook, the best solution you can submit is "See page 263 of the textbook." Period. Same with the lectures, the lecture notes, and previous exams or homeworks from the current semester. You will lose points for vomiting.
However, if you find a solution from any other source, such as a web page, a journal paper, a different algorithms textbook, an official homework solution from some earlier semester, or your mom, you must rewrite the solution in your own words, and you must properly cite your sources. Assume the graders have access to all the official course material, but nothing else. While we strongly encourge you to use any outside source at your disposal, please remember that the homework is supposed to demonstrate that you understand of the material, not just how to use Google and a printer.
- Don't babble! If you don't know the answer, don't do a brain dump, hoping to get partial credit for incuding a few key words. That will never work in this class. Part of what you're supposed to learn here is how to tell when you don't know the answer. Answering "I don't know" (and nothing else) to any homework or exam question is automatically worth 25% partial credit for that question. (We will also accept "WTF?") If you try to fake it, you'll get nothing. A course average of 50% or less is an automatic F.
Content: What to write
Convince the grader that you understand exactly what you're doing.
- Answer the right question. Duh. No matter how clear and polished your solution is, it's worth absolutely nothing if it doesn't answer the question we asked. Make sure you understand the question before you start thinking about how to answer it. If something is unclear, ask for clarification!
- Justify all your answers. Unless the problem specifically says otherwise, every homework and exam problem requires a proof. Without a proof, even a perfectly correct answer is worth nothing. In particular, the sentence "It's obvious!" is not a proof—many 'obvious' things are actually false!
- By default, if a homework or exam problem asks you to give/show/describe/develop an algorithm, you need to do several things to get full credit:
- If necessary, formally restate the problem in terms of combinatorial objects such as sets, lists, graphs, trees, etc. In other words, tell us what the problem is really asking for. This is often the hardest part of designing an algorithm!
- Describe the most efficient algorithm possible. The more efficient your algorithm, the more points you get. Brute force is usually not worth very much. We will not always tell you what time bound to shoot for; that's part of what you need to learn!
- Give a concise pseudocode description of your algorithm. But don't regurgitate! And don't turn in source code!
- Justify the correctness of your algorithm. You usually won't have to do this on exams.
- Analyze your algorithm's running time and space usage. This may be as simple as saying "There are two nested loops from 1 to n, so the running time is O(n2)." On the other hand, it may require setting up and solving a summation and/or a recurrence, in which case you'll also have to prove your answer is correct.
Some problems may deviate from these default requirements. For example, you may be asked for an algorithm that uses a parrticular approach, even though another approach may be more efficient. (See the first point in this section.) Exam problems will rarely ask for proofs of correctness.
- Don't make the reader extrapolate. It is never enough to explain what happens during the first one or two iterations of an algorithm, and then say "and so on". If we can't immediately tell just by looking what happens during the 17th, 42nd, or 31337th iteration, your description is incomplete. Algorithms or proofs that use phrases like "and so on", "etc.", "repeat this for all X", and "..." will get no credit. Those are perfect indications that your algorithm should have used a loop or recursion, or that your proof should have used induction, but didn't.
Form: How To Present
First, please read the two posted papers on giving presentations in CS. Neither is completely appropriate to the task at hand, and the Parberry article is dated, but both contain information that will serve you well not just for class presentations, but more importantly, in job talks, communications, presentations, etc.The audience here will be considered "experts", since the TAs should be familiar with the background material and the problem at hand. So you don't need to explain big O notation or any other background from the class, and you don't need to provide motivation. (After all, your motivation is probably that we assigned it!)
- Aim to present your solutions in 5 minutes. This is probably a bit ambitious, especially during the first weeks. However, the TAs will stop you after 10 minutes on one problem, so you should practice giving your solution quickly and accurately! Ideally, you will want to write out your solution, even if you don't need to turn it in. Very often you will only find a bug in the solution when trying to write it down, and even if it is correct, you will improve your presentation by first writing out the argument to clarify it in your own mind.
- The "I don't know" policy also works for oral homeworks. If you have no idea of a solution, then you might as well say "I don't know" and nothing else to the TAs, because they will give you a 0 if your solution is completely wrong.
- Don't dwell on the details! Assume that the listener, who is after all a TA for the class, is familiar with the topics from class. If the solution only differs from something presented it class by a small detail, say that! For example, if the problem is dealing with minimum spanning trees, saying "The algorithm is identical to Kruskal's MST algorithm, except after each edge is chosen, we insert an extra step in which the maximum weight edge between any pair of distinct components is removed from the graph entirely- thus - it can never be used as an edge again" is quite sufficient! (Assuming, of course, that this is the correct solution to the problem.)
- Don't forget the proof of correctness and runtime analysis. Highlight the main points of these arguments. Your job is simply to convince the TA that you understand the proof. So (for example) don't worry too much about base cases in an oral presentation, unless they are somehow unusual or especially important. While they are necessary in a formal writeup, they are usually unimportant in an oral presentation.
Interaction with TAs
The TA will random assign to each person in your group a problem to present. Those not presenting should for the most part remain quiet, unless either the TA or the person presenting requests help or clarification from another group member.During your presentation, the TA may interrupt, ask questions, provide or ask for clarifying comments, point out flaws or counterexamples, or any other similar behavior. (Don't worry, we won't usually throw anything to get your attention.) Usually this can be taken as an indication that either you haven't made things clear or there is an error. It might also be that you've assumed too much of your tired, stressed, and overworked TA. In any case, don't panic, because we're not out to get you; just answer the questions to the best of your ability.
Part of the value is that you can get immediate, real-time feedback on your solutions. However, at some point it is very likely that you will find out that something is incorrect or unclear in a problem you are presenting. Don't panic! You can still get partial credit for these problems, and may even be able to fix the solution. Part of the value of this experience is learning to think on your feet while communicating your solutions.
Within reason, the TA may allow you to react and modify your solutions. However, full points for content will only be awarded when initial solutions are correct. Yes, we realize that this gives oral presentation an advantage over written homework, since you are more likely to fix errors and get partial credit. Yes, we realize that even after we say it evens out, you will point out that because your group number is even (or odd), the luck of the draw made this unfair. To answer your objection, we simply do not care, because this interaction is very beneficial, and to simply move on and not help at all would impede your learning (and stifle our teaching). Keep in mind that homework is not worth much compared to exams, and that everyone will get this help on alternating weeks. Trust us, it's to your benefit to go along with this.
Grading and regrading
Graded homework problems can be retrieved from the mail slots outside the TA office. The homeworks will be sorted by last name; please don't rearrange them while you hunt for yours. Graded midterms will be kept inside the TA office; you can retrieve them during office hours (or whenever the TAs are around).Homeworks can be regraded by submitting them to any of the TAs; exams can be regraded by submitting them to the instructor. If the graders have made a simple arithmetic mistake, we will fix it immediately. Otherwise, you must also submit a brief written explanation why you think you were graded unfairly. (For example, "My answer to problem 2 is correct; see the posted solutions.") Don't revise or exaplin your answer; we can only grade what you submitted the first time.
If you submit a regrade request, your entire homework or exam will then be regraded from scratch. Yes, this means your grade can actually go down.
All regrade requests must be submitted at most two weeks after the homework or exam is returned. Except for arithmetic mistakes, late regrade requests will be ignored.
We will readily admit, apologize for, and correct our mistake if you have been graded unfairly. However, please remember that "unfairly" means your grade is blatantly incorrect, or that you were graded more harshly than other people in the class, not just that you think the grading standard is too harsh.
Finally, please remember that each homework point is only 0.1% of your grade. Frivolous regrade requests will be met with the scorn they deserve.
Academic integrity
This final section is unfortunately necessary, thanks to the actions of a very small minority of students.
Each student (or homework group) must write their own homework solutions, in their own words, and must properly credit all sources. We strongly encourage students to use any printed, online, or living resource at their disposal to help solve the homework problems, but you must cite your soruces. If you use something you found in a book, cite the book. If you use something you found on the web, cite the web page. If you get an idea from someone else, give them credit. This is the same standard of conduct that researchers are expected to follow for formal publications; start following it now. Citing your sources will not lower your homework grade.
Avoiding plagiarism is really very simple: Never present someone else's words or ideas as your own. Repeating ideas from other people, papers, or web pages without proper credit is plagiarism. Verbatim duplication of any source is plagiarism, including official homework solutions from previous semesters of 373/473, even if you properly cite your sources. Turning in a copy of someone else's work as your own, even with their permission, is plagiarism. Allowing other people to copy your work is also a violation of academic integrity. For more information, see the university's Policy on Academic Integrity, especially the section on plagiarism.
Violations of academic integrity will not be tolerated. The default penalty for a first offense is a grade of zero on the homework or exam, plus a 10% penalty on the final course average. The penalty for a second offense, or a particularly egregious first offense, is an F in the course. (These are the department's recomended penalties for cheating offenses.) All cheating cases are reported to the department. Multiple offenses can result in suspension or dismissal from the computer science program or from the university. More than one student has been expelled from the university (in part) because of cheating offenses in CS 473.
Regardless of whether it constitutes plagiarism, or whether you get caught, getting too much help on your homework will hurt your final grade. If you don't learn how to solve algorithmic problems on your own, you will fail the (closed-book, closed-notes) exams, which make up 70% of your final course average.