CSCI 255 Fall 2013
Introduction to Algorithms and Discrete Structures
Archived Class
Charles Cusack
Computer Science
Hope College
Main
Schedule
Grading
Gradebook
Homework

Policies
College
    Policies
Advice

Notes
Programs
Tutorials

CSCI 112
CSCI 125
Others

Admin

Course Policies and Expectations

(Updated August 2013)
  • Your Responsibilities
    • Refrain from the use of any technology (e.g. cell phones, iPods, tablets, laptops, etc.) while in the classroom unless it is specifically permitted.
    • Check your e-mail at least once a day and preferably several times a day. "I didn't read my e-mail" is never a valid excuse for not knowing something that I mentioned in an e-mail.
    • Look at the Schedule before every class to ensure you are doing everything you are supposed to do.
      • Complete assignments listed in the Events column.
      • Read the section from the textbook listed in the Resources column before class.
      • Other handouts listed in the Resources column do not have to be read before class unless specifically mentioned.
    • Take all tests and quizzes when assigned.
    • Submit all assignments by the specified deadlines.
    • Arrive to class on time.
    • Pay attention during class.
  • Getting Help
    • Me (in order of preference)
      • Come to my office hours. There is no appointment necessary—just show up.
      • Schedule an appointment using Google Calendar (24 hours in advance if possible)
      • Stop by my office and hope I am in and not busy.
      • Send me an e-mail
      • Call me on the phone
    • Course web page
    • Textbook(s)
    • Links listed on the course web page
    • The Computer Science Help Center (for lower-level courses)
    • Reference books (A Java or C++ book, for instance)
    • A tutor through the ASC
  • Grading
    • See the Grading page for a chart that gives the percentage breakdown for the course.
    • All assignments in a given category are equally weighted regardless of how many points they are out of. Thus, a homework assignment worth 10 points is weighted the same as one with 100 points. I use the percentage score on each assignment, not the total number of points.
    • Final grades will be based on the scale in the table below—round your final percentage down at .49 and up at .50 (e.g. 83.49 rounds to 83 and is a B-).
      Percent 94-100 90-93 87-89 84-86 80-83 77-79 74-76 70-73 67-69 64-66 60-63 0-59
      Grade A A- B+ B B- C+ C C- D+ D D- F
  • Attendance
    • You must attend every class.
    • If you miss a class, you are responsible to talk to a classmate to find out any details you missed.
    • You should inform me ahead of time (when possible) if you are going to miss class.
    • In class activities (e.g. worksheets, quizzes, exams, etc.) cannot be made up regardless of the reason for your absence. There are two exceptions:
      • If a worksheet is available ahead of time, you may complete and submit it before the missed class.
      • Major exams can be made up if you miss class due to a serious illness and you inform me as soon as you are able.
    • Assignments handed in before the missed class will be accepted, but assignments will not be accepted if you attempt to hand them in after the missed class (e.g. if you sleep in and miss class).
  • Homework
    • Unless otherwise specified, assignments are due at the beginning of class on the due date.
    • A 20% deduction per day, for a maximum of 3 days, will be applied to late assignments. Some assignments may have a firm deadline, so make sure you check/ask if a particular assignment or type of assignment can be submitted late.
    • Assignments cannot be turned in after the last day of class.
    • Homework assignments should be clear, concise, and organized.
    • You must show all of your work for each problem on a homework assignment, even if a problem does not specifically say so. In other words, do not just write down your final answer. Include all of the steps you performed to get the answer.
    • Problems should be in the order they appeared on the assignment, and your assignment must be stapled together, preferably with your name appearing on each page of the assignment.
    • You should use full English sentences where appropriate.
    • Charts/diagrams/drawings should be neatly drawn and clearly labeled.
    • Algorithms should be clearly written, documented and labeled.
    • Mathematical proofs should be properly and neatly written.
    • Algebra ≠ Proof. Algebra+context=Proof.
    • I will deduct points from any papers which are disorganized, illegible, or contain extraneous material.
    • Homework Assistance
      You must indicate any assistance/collaboration you had on an assignment by writing "(with X)" either after the relevant problem(s) or at the top if it applies to the majority of an assignment. There are two different types of assistance, and you must specify both types whenever you utilize them.
      1. People. This includes
        • The Computer Science Help Center
        • Other students in the class (when allowed—make sure you check that this is O.K. first!)
        • Me
        • Teaching assistant or grader
        • Any other person (as above, make sure this is permitted)
      2. External Sources such as websites or books other than your textbooks.
        • It is O.K. to use other sources to learn the material from courses.
        • Unless otherwise specified, it is not O.K. to look for solutions from external sources. In other words, it is not O.K. to do a search based on the details of a homework problem unless the Grading page for your course specifically mentions this.
        • If a course does allow you to do more specific searching,
          1. You must
            1. Put the solution in your own words.
            2. Provide enough explanation to demonstrate that you fully understand the solution.
            3. Provide the URL (for websites) or title/author (for books/papers, etc.).
          2. You will only receive up to 50% credit for the problem.
        • Be warned! For courses in which I allow this, I can usually tell when you get help from external sources. Therefore, make sure you indicate that you got assistance. Failing to do so may be considered a violation of the Academic Integrity Policy (see below).
      This is not a license to violate the Academic Integrity Policy (see below). Instead it is a way for both you and me to have a better understanding of your learning process by documenting the appropriate use of assistance.
    • You should always review your homework assignments after they are handed back.
      • Read all of the comments to determine what you did right and what you did wrong.
      • Clear up any misunderstandings/mistakes by looking at the textbook, resources on the course web page, or asking me.
      • Make sure you are able to do all of the problems correctly.
      • If you have questions about how anything is graded, please ask. Grading questions must be resolved no more than 2 weeks after the assignment is first handed back.
  • Academic Integrity
    You are responsible to follow the Code for Academic Integrity in the Catalog, so please read it.
    • You must do your own work. Putting your name on an assignment (or in a program) implies that it is your work.
    • You are always free to discuss the concepts, examples, etc. from the textbook or class sessions. Often clearing up general confusions goes a long way in helping solve specific problems on your own.
    • You may discuss homework assignments only in very broad terms and only to provide each other nudges.
      • Examples of what is permitted
        • Get clarification about what is being asked.
        • Discuss the general concepts related to an assignment (e.g. On a program that requires a HashMap, you may discuss what it is, what the various methods do, the syntax for using it, etc.).
        • Give vague hints (e.g. "Look at section 3.4 of the textbook", "I used 3 classes", or "Use an induction proof").
        • Compare the overall structure/design of a program (e.g. what classes/methods you each used and why) after you both (all) already have ideas and as long as that is not the main point of the assignment.
        • Look at someone else's code to help them find a bug, but only after you have already completed your code. The idea is to be a second pair of eyes to help them see the obvious error(s) that they keep looking past, not to help them figure out how to do something they don't know how to do.
      • Examples of what is not permitted (Not a complete list!)
        • Look at someone else's solution, proof, code, etc. so you can copy it.
        • Work through a problem step by step with someone else.
        • Talk through the solution of a problem as each of you write down what you are saying.
        • Talk through the details of how to implement a class/method while you each type it in.
        • Ask questions like "What classes/methods/fields/variables are you using?", "Can I see how you implemented the thingamajig?", "How do I start this proof?", "What did you do after that?"
    • In my classes you may compare answers/results with each other, but not solutions/methods, and only after you have both (or all) completed them.
      • This does not include proofs, essay questions, code, or any other type of problem/assignment in which there isn't a clear distinction between the answer and the solution (i.e. the method to get the answer).
      • This mainly includes numerical answers and the output from programs.
      • The idea is to give you an opportunity to be more confident in your work, not to copy someone else's work.
      • Make sure both you and the other person (people) have completed a given problem before discussing it.
      • If you compare answers and they are different, you should each check your own work. You should not compare the details of your work.
      • Make sure you clearly understand the boundaries!
      • Be aware that this may not be permitted in your other classes.
    • Under no circumstance should you copy any material from any source (e.g. classmates, friends, a teaching assistant or tutor, the textbook, the Internet, etc.) without attributing it to that source, and then only when appropriate (e.g group project or term paper).
    • You must fully understand everything that you turn in. If you don't, then you probably got too much help from somebody and are violating the policy.
    • You are responsible to make sure nobody has access to your work.
      • If somebody copies your homework or program, you will both be held responsible and punished.
      • Make sure nobody has access to your files (from your thumb drive, your computer or on any department PCs or servers).
      • Don't leave scratch paper or printouts of your work where others can obtain them.
      • Tear up any paper before you throw it in the trash/recycle bin.
    • If you are found guilty of violating the policy the result will be a 0 on the assignment in question (even if the violation only involves one problem) and you may receive an 'F' for the entire course depending on the severity of the incident. In both cases a letter will also be sent to the Provost in accordance with the college's policy. I don't care if it will ruin your GPA, you will lose your scholarship, or your parents will disown you. Assuming you read this during the first week of class as you were asked to, you knew the risks when you decided to violate the policy.
  • Course Evaluation
    Hope College expects all students to assess each course in an effort to continuously improve student learning. At the end of the semester, you will be asked to assess how well this course met its stated goals. Your responses will be kept anonymous, but I will take the collective results seriously in thinking about how to provide Hope students the best possible education. Your responses matter. You are urged to participate in this important process.
  • Americans with Disabilities Act
    Any student whose disability falls within ADA guidelines should inform me at the beginning of the semester of any special accommodations or equipment needs necessary to complete the requirements for this course. Students must register documentation with the Office of Disability Services and/or Academic Support Center. If you have questions, call Student Development at extension 7800.
  • Rubrics
    Here are some rubrics I use from time to time:
    • Algorithm Rubric
      Points Category Description
      2CorrectThe algorithm does what it is supposed to do.
      2CompleteYou include all pertinent details.
      2Clear/ConciseYour description of the algorithm makes perfect sense and isn't bogged down in too many unnecessary details.
      2EfficiencyYour algorithm is as efficient as possible and/or meets the required efficiency. Points may or may not be awarded if your algorithm is not correct.
      2AnalysisYou give the worst-case performance of your algorithm with justification (not necessarily a formal proof). When possible and practical, you include the average-case (or expected) performance. Point may or may not be awarded if your algorithm is not correct.

    • Proof Rubric
      Points Category Description
      2CorrectYou prove the right thing, and you prove the thing right.
      2CompleteYou include all pertinent details.
      2Clear/ConciseYour proof is easy to follow/understand and does not contain extraneous details.
      2ConventionsYou follow the proper conventions for the given type of proof.
      2Misc.A catch-all criteria that is based on the exact problem.

    • Computational Problem Rubric
      Points Category Description
      2CorrectYou used a correct technique to get the correct answer.
      2CompleteYou include all pertinent details.
      2Clear/ConciseYour work is easy to follow/understand and does not contain extraneous details.
      2PlausibleEven if your answer is not correct, it is at least within the realm of possibilities in the given context.
      2Misc.A catch-all criteria that is based on the exact problem.

  • FAQ
    Warning: Some of the answers are sarcastic. If sarcasm has a tendency to elude you, please ask me for clarifications.
    1. I wasn't in class. Did I miss anything important?
      Of course not. Why would we do anything important in class, especially since you weren't there?
    2. I can't hand in my homework because the printer in my dorm was broken.
      Tough. You shouldn't have waited until 5 minutes before class to print it. There is a printer somewhere on campus you can use if you allow enough time.
    3. Can I have an extension? I have a lot of other assignments due the same day/week.
      I have a better idea—ask your other professor(s) for an extension! Or better yet, plan ahead and stagger your work. This may come as a surprise, but you don't have to do every assignment the night before they are due. It is possible to actually start an assignment ahead of time.
    4. Can I have an extension? The new Halo just came out!
      No, but I have a really good reason. They are releasing new features in Minecraft the following day and I need to get the assignments graded right away so it doesn't take time away from that.
    5. Can I do extra credit to make up for doing bad on an exam/quiz/homework/paper?
      Sure! It's not like I designed the assignments/exams/papers to evaluation your mastery of the material. Feel free to come up with your own criteria to be evaluated on. It's perfectly fair to all of your classmates to set up a different standard just for you.
    6. How can I improve my grade?
      The only way to improve your grade is to improve your learning. There are many things way to do that. Here are some suggestions.
      • Read every section of the book when it is assigned
      • Do the suggested problems from the textbook
      • Attend every class
      • Start your homework assignments early so you can ask questions when necessary
      • Do every problem on every homework assignment
      • Utilize the Computer Science Help Center when you get stuck while reading or doing homework
      • Come to my office and/or e-mail me when you have questions
      • Have an attitude that says "I want to learn as much as I can in this class" instead of "How good of a grade can I get if I do the minimum amount of work."
    7. I can't take the exam/quiz when scheduled because I already have plane tickets (or made an appointment with my doctor, or my ride is leaving early, etc.). So when can I take it?
      The same time as everybody else—when it is scheduled.
    8. Are you trying to be mean?
      No. I don't have to try. It comes natural.