CS 2420 - Fall 2006
|
|
|
Syllabus
Instructor: Dan Watson Office: Main 402b Communications: Phone: 797-2440, E-mail: Dan.Watson@usu.edu Office Hours: 1-3 TTh. Prerequisite: CS 1720 or equivalent knowledge. If you feel that you are a poor C++ programmer, your chances of succeeding in this class are slim. I would strongly recommend that you take CS1720 instead of this class. I expect that you know the following material: structs, unions, file operations, classes, friends, overloading operators, inheritance, polymorphism, virtual, exceptions, templates, linked lists, stacks, queues, recursion, and binary trees. There is so much new material to be learned, you do not have time to learn material that you should have mastered in earlier classes. Tutors: Tutors for data structures are available in Main 425. Please use them whenever possible. If a tutor is on duty, I expect that you will consult with her/him before you come to see me. Course Page: All assignments and other information dealing with the course are posted on the course page (http://www.cs.usu.edu/~watson/cs2420).
Objectives:
Requirements:
Programming is an important part of this class. You cannot receive higher than a D+ if you are missing any programming assignments or you have less than 60% of the programming points. This is true regardless of the total points earned. There are typically a few written homework questions
included with each assignment. Written homework
provides an excellent framework for achieving the goals of obtaining a working
knowledge of data structures, perfecting programming skills, and developing
critical thinking strategies to aid the design and evaluation of algorithms.
Since programming has a high overhead in terms of program entry and debugging,
all important topics in this course cannot be covered via programming
projects. Written homework exercises allow students to learn important
material without a high time investment. You can perfect your
programming skills without spending hours at the computer and can get feedback
on your thinking skills from your study partners. Students who
consistently do quality homework have far superior test scores. Exams: There are three midterm exams, each worth 100 points, given on the days specified in the calendar below. Exams cover material presented in class, in the book, and on the programming assignments. I do not give makeup exams. The final exam is comprehensive, is not optional, and is not given early. Please verify that you are able to take all the exams on the dates specified. Grading:
You may be given an F if either your overall average is below 50%.
Remember, you cannot receive higher than a D+ if you haven't turned in all the
programming assignments or don't have over 60% of the possible points on the
programming assignments.
Course Outline:
Regrading: If you feel that a program, written assignment, or exam has been graded incorrectly, submit a concise written summary of your concerns to me. These requests should be submitted within a week of the return of the assignment or exam. Etiquette: My time at the university is spent in two major chunks:
time teaching and time doing research. As a university professor I am
expected to excel in both areas. In order for our relationship to be a happy
one, you need to understand where I'm coming from.
Late Work: The most common problem in this class is failure to
complete the programs on time. Students are typically optimistic about the
amount of time it takes to write a program, and tend to budget their time for
the best possible case instead of for the average or worst case. In
addition, when problems do arise, a person tends to think the she/he is the only
one with such unforeseen problems and anticipates exceptions will certainly be
made. Once a person gets behind with one program, it is very common to be
behind on many programs either because a late finish on one dictates a late
start on the next or because the penalty was not sufficient to avoid similar
pitfalls. Code Reuse: For this course, it is almost never appropriate to
copy code from the book or another source. When you graduate, you will
often pull code from another source, but at this stage in your development, you
need to write it! I try to make the assignments different from what you
can find in books or on the web, but sometimes that makes the assignments harder
than I would like. When I ask you to write code that has been written by
thousands of others before you, you still need to write it so you appreciate it,
so you learn the lessons contained therein. You learn next to nothing by
copying it from elsewhere. Cheating: Although you may collaborate on problem solving, each person
must write, debug, and test his/her own work. Some students feel that if
they worked with the other person for a long period of time (as opposed to just
copying another's work without any personal effort), they haven't cheated.
That is not true. Note, you don't have to feel guilty for what you have
done to have it be cheating. There are degrees of cheating. Copying
another person's code (with or without their knowledge) is cheating.
However, if another person helps you so much that the result isn't your work,
then it is still cheating, regardless of how many hours you spent in the
process. Some think that because the course is demanding, it gives them
license to cheat. Nope! Cheating is cheating. There is no set
of circumstances that justifies it. Flagrant cheating involves turning in another's work as your own (even if that work was done by a tutor). However, there are many other forms for dishonesty that are also considered cheating. Allowing others to copy from your work is considered cheating, and both of you will be penalized. Do not put your friends in an awkward position by asking them to help you cheat. If there are any questions, please refer to the departmental cheating policy. Incompletes: According to university policy, incompletes are not to be given for poor performance. There will be no incompletes given except for conditions beyond the student's control. Such conditions have to have written documentation. The term "conditions beyond the student's control" includes (1) incapacitating illnesses that prevent a student from attending classes for a period of at least two weeks; (2) a death in the immediate family; (3) financial responsibilities requiring a student to alter course schedule to secure employment; (4) change in work schedule as required by an employer; or (5) other emergencies of this nature. When an incomplete is given, it is anticipated that the remaining work will be finished within two or three weeks. If the course must be retaken to make up the work, an incomplete is not appropriate. There are provisions in case of emergency to permit a student to withdraw (grade of W) from a course after the regular drop period when it is not feasible to give an I. ADA Statement: If a student has a disability that will likely require some accommodation by the instructor, the student must contact the instructor and document the disability through the Disability Resource Center, preferably during the first week of the course. Any requests for special considerations relating to attendance, pedagogy, taking of examinations, etc., must be discussed with and approved by the instructor. In cooperation with the Disability Resource Center, course materials, can be provided in alternative formats - large print, audio, diskette or Braille. Class Fees: Associated with this class is a fee of $25. The purpose of this fee is to supplement the department's operating budget to allow it to staff facilities and maintain the associated hardware and software that is necessary for this class. While the student computer fee does cover a portion of the costs to operate some of the department's laboratories, the specialized requirements of this and other computer science classes require this additional funding. Important Dates: |
|