CSE 235 Fall 2003
Introduction to Discrete Structures
Archived Class
Charles Cusack
Computer Science and Engineering
University of Nebraska--Lincoln



CSCI 125
CSCI 255
MATH 341


Teaching Policies and Assorted Advice

  • Course information
    Every course I teach has a webpage, accessible from my Teaching page.
  • Contacting Me
    The main ways to contact me are e-mail, phone, and coming to my office. The easiest ways are e-mail and stopping by my office. I generally respond to e-mails within a few hours, depending on when it is sent.
  • Coming to my Office
    If you want to see for help on anything, you have three choice, listed in order of preference:
    1. Come to my office hours. There is no appointment necessary—just show up.
    2. Schedule an appointment using my Google Calendar. For help, see Setting up and appointment with a professor using Google Calendar. If possible, request an appointment 24 hours in advance.
    3. Stop by my office and hope I am in and not busy. I am on campus by 8:30 most days (but it is not guaranteed).
  • Getting help
    When I am not available, there are other places to get help:
    • The Computer Science Help Center
    • Textbook(s)
    • Reference books (A Java or C++ book, for instance)
    • The Internet (Hey, if it's on the Internet it has to be correct!)
    • Course webpage
    • Links listed on the course webpage
    • A tutor through the ASC
    Be resourceful when you run into problems—but always stay within the appropriate boundaries.
  • Class Attendance
    You are expected to attend every class. Anything you miss is your responsibility.
  • Grading
    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.
    The course webpage contains a chart that gives the percentage breakdown for the course. I do not assign letter grades to individual assignments. 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
  • Extra Credit
    I assign grades based on mastery of the material from the course, and the assignments are designed to test that mastery. Thus your grades will be based on those assignments and nothing else. In other words, I do not allow for extra credit assignments.
  • Handing in homework assignments
    All assignments are due at the beginning of class on the due date.
    • Written assignments must be brought to class. Written assignments that are slid under my door, placed in my mailbox, or given to anybody but me may be rejected.
    • Programming assignments must be handed in by class time using Webhandin. It is your responsibility to make sure that your files are handed in properly. Unless otherwise specified, no hard copies of your code are required. Write-ups related to the assignment should be submitted as a PDF with the code.
  • Free Late policy
    Unless otherwise specified, all of my courses have the Free Late policy in effect. According to this policy, I will accept one (and only one) assignment up to 1 class period late. In order to use the Free Late, you must
    1. attend class on the due date, and
    2. hand in a piece of paper with
      • your name,
      • the phrase "I want to use my Free Late", and
      • a one sentence reason/excuse. Any reason/excuse is valid, but I would like to know what it is.
    This only applies to homework assignments, programming assignments, and lab reports. It does not apply to term papers, quizzes, tests, etc.
    Note: If you arrive to class late when an assignment is due, you will have to use your Free Late to turn it in.
    Other than the one Free Late assignment, I will not accept late homework.
  • Homework assignments
    • 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 needed to complete 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 reserve the right to deduct points from any papers which are disorganized, illegible, or contain extraneous material. In other words, the homework which you turn in should NOT look like scratch paper. After you have worked through a solution, neatly re-write it on another sheet. If possible or required, use a graphics-capable word processor. Word or LaTeX are two good choices.
  • Programming assignment grades
    Program grades are usually based on the following criteria, as specified on each assignment. For each criteria, I give a list of the sorts of questions I am thinking about as I grade. The lists are by no means exhaustive, but should give you an idea of what I am looking for. Some assignment may give additional criteria.
    • Correctness: Does it compile? Does it run properly? Does it do everything according to the specification? If specified, are the classes/methods/functions named properly? Are the parameter types, etc. correct? Is the input/output correct? Did you follow all of the instructions?
    • Code documentation: If a specific guide was given for documentation (e.g. use Javadoc comments), did you follow it? Does each file contain the filename, author, class, date, and an overview of what is in the file? Are pre/post conditions given for each method/function? Is each class and segment of code documented? Is each variable explained?
    • Design: Is each of your classes cohesive—that is, does each class represent one specific and well defined thing, and does each method do one well defined thing? Does your code involve a low level of coupling? Is your GUI separate from the main program logic? If applicable, is your code extendable? Did you utilize inheritance where applicable? Are you utilizing the appropriate data structures?
    • Style: If you were given a specific style guideline to follow, did you follow it? Are functions/classes used when appropriate, including proper and intelligent use of variables, return values, and arguments? Do the class functions make sense? Are the names for variables/functions/classes descriptive? Are loops indented properly? Is the code neat and organized? Has any extraneous code been removed? Is your code understandable and as simple as possible? Are errors dealt with in a sensible way? Do you use complicated and/or long code when short and simple would suffice?
    • Write-up or Analysis: Is it in the specified form (README file, Word document, Text document, HTML)? Does it have the required information (charts/diagrams/examples)? Is a complete analysis performed as specified? Did you fully answer all questions? Is it well written (organization/grammar)?
    • Performance or Efficiency: Is each function implemented as efficiently as possible, both in terms of running time and code length? Is the overall runtime as it should be? Did you utilize the proper data structures and algorithms for each given task?
    • GUI or Interface: How easy is it to use? Does it look good? Is the input/output clear? Is the GUI user-friendly? Is it clear how to use it? Are all inputs handled properly? Are errors dealt with in a way that allows the user to fix their mistakes, including error messages where appropriate?
  • Make-up quizzes/tests/exams
    I generally do not give make-up quizzes or tests, so do not plan trips during the semester or exam week. This holds true of quizzes that are unannounced as well. There are very rare exceptions to these rules (college-related travel, for instance), but visiting your girlfriend in Houghton is NOT one of them.
  • Academic Dishonesty
    You must do your own work! Although I allow students to collaborate on some assignments, under no circumstance should any copying of material, whether written problems, source code, etc., take place. In other words, you may discuss the assignment verbally, using paper, etc. as visual aides, but you should NOT send or receive any source code, either electronically or physically, exchange written answers, etc. If you are unclear as to whether or not something is "cheating", be safe and ask before you proceed. I place a very high value on integrity, and I will seek the maximum possible penalty for any infractions.
    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. The first thing you should do is make sure nobody has access to the files, either on your computer or on any department PCs or servers. The second thing you need to do is make sure you 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.
  • Tips
    There are four things that will help you do well in most courses:
    1. Attitude: Your focus should not be on what grade you want/need to get in a class, rather it should be on learning the material as well as you can. If you focus on learning, generally the good grades will come.
    2. Reading: Read your textbook and reference materials. In many of my courses, I will not lecture through material during class. I expect that you know how to read and can learn much of the material by reading and doing suggested exercises (if they exist). Class time will be spent discussing the more difficult topics or expanding on what the book has to say. If you are not preparing for class time, you will not get much out of class time. If it is not clear what sections you should be reading, please ask.
    3. Doing Problems/Programs: Do any suggested problems or programs. It is much easier to understand and remember concepts when you see them in practice.
    4. Attend Lecture/Lab: Whether or not attendance is required, you should always attend. There is always the possibility of missing important information if you skip class. In addition, my experience has shown that those who attend class usually do much better than those who do not. You are responsible for anything you miss during lecture, lab, or recitation.
    A final tip: Neither I nor the textbook can teach you any subject. Learning is usually accomplished through practice. You will not learn by merely reading the textbook and/or paying attention during class. This is particularly true with courses that involve mathematics. The only way you will learn it is by working through problems—sometimes lots of them. Learning is often like sports in that way—you don’t learn how to play basketball (or insert your favorite sport) by reading books and/or watching people play it. Those things can be helpful, but you will never become a proficient basketball player unless you practice. Practicing a sport involves running many drills to work on the fundamentals and then applying the skills you learned to new situations. Learning many topics is exactly the same—you first need to do lots of exercises to practice the fundamental skills, and then as your understanding of the concepts becomes more concrete you need to be able to apply those skills to new situations.
  • 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.