Home

Announcements

Assignments

Weekly Outline

Code

Dr. Hans-Joerg Tiede
Office: CNS C207A
Phone: x3666
Office hours: tba

Course Description Introduction to procedural programming (with C). Sorting and searching. Advanced data structures. Symbol tables, binary search trees, and hashing. Trees, graphs, and recursion. Introduction to program verification. Prerequisite: CS 128. Prerequisite or co-requisite: Math 220 or Math/CS 135;

Texts

  • Foundations of Computer Science (C edition), by Alfred Aho and Jeffrey Ullman, W.H. Freeman, 1995.
  • Specifying Software by R. D. Tennent, Cambridge UP, 2002,
  • Programming with Gnu Software by Mike Loukides and Andy Oram, O'Reilly, 1997.
  • C Pocket Reference by Prinz and Kirch-Prinz, O'Reilly, 2002.

    Assignments, Exams, Quizzes, and Grading

    Graded work in this class will consist of:

    • Three exams (two midterms and a final), worth 75% of your grade (25% each).
    • Regular quizzes, worth 10% of your grade. You may drop the lowest quiz grade.
    • Homework assignments, worth 15% of your grade.

    The following scale will be used:

    Grade Score
    A 93.0
    A- 90.0
    B+ 87.0
    B 83.0
    B- 80.0
    C+ 77.0
    C 73.0
    C- 70.0
    D 60.0
    F below 60

    How to work in this class: You are expected to take an active part in every class session. In order to do well in this class, you are expected to:

    • read the assigned chapter before you come to class,
    • regularly attend class and take notes (also see attendance policy below),
    • review your notes and relevant portions of the assigned reading after class,
    • complete all assignments.

    Exams

    Exam questions will come from the text, lecture, and programming project materials. The material in this course is cumulative in nature; although recent topics will be emphasized, you may be tested on any material presented up to the date of the exam.

    Homework assignments and TAs Homework will be handed out (via the assignment log). Combined, these assignments are worth 15% of your total grade. These projects will vary in difficulty. It is highly recommend that you start working (or at least thinking about) an assignment as soon as you receive it. In programming, it can be said that the number of problems seem to escalate with proximity to the deadline.

    1. Unless otherwise stated, assignments are to reflect the effort of an individual programmer. You are not allowed to collaborate unless specifically requested to do so. Identical work, nearly identical work, or collaboration are treated as plagiarism and will be reported to the Associate Provost as academic dishonesty. You should review the contents of the Judicial Affairs Page or contact the instructor if you have any questions or concerns about the university policy on academic honesty.
    2. Assignments are due at the beginning of the class period. Assignments are considered late after this point. Your GRADE WILL BE LOWERED BY 20% for each late day. Exceptions will be made only for severe medical illness (with an appropriate note from your physician) or family crisis (with an appropriate memo from the Dean of Students). AN ASSIGNMENT WILL NOT BE ACCEPTED AFTER THE GRADED ASSIGNMENT HAS BEEN RETURNED TO THE CLASS.
    3. Only one copy of each assignment will be accepted. Make sure that you check your work carefully. You will not be allowed to resubmit any assignment. The programmer is responsible for assuring that projects meet the assigned specifications.
    4. All submitted work MUST BE TYPED, and STAPLED.
    5. All program listings MUST have page numbers, file name, and date. (Use the Print page numbers option).
    6. Special note about tutors. The tutoring hours are primarily for helping you debug your projects, or to help you with any problems that you are having with a project that you have already been working on. The tutors are not there to "get you started", nor are they responsible for covering the lecture material with you if you missed class, or weren't paying attention, or haven't read the book. This means that you are not to come to the tutors with absolutely no code written. You can certainly come see them if your project isn't finished, but don't come to them empty-handed! If you are really stumped on a project, and are having problems getting started (despite your effort to read the relevant text and understand the lecture), then you should plan to come see me rather than the tutors. That's what we're here for! You should also come see me if you missed a lecture for any reason, and are having trouble with the projects. My office hours are available for this, and you can also make an appointment with me if my office hours aren't convenient.
      Tips:
      • If your code is fairly long (more than fits on one screen), you might print out a hard copy of your code to bring to the tutor (or the instructor). It's usually easier to work with.
      • You should make sure that your code is easy to read by using proper indentation and commenting from the very beginning!
      • The best help you can give yourself when working on the projects forthis class is to start early!

    Computer use in class

    You are welcome to use the computer during class to take notes or to copy, compile, and run programs that we are discussing. However, you may not check your e-mail, surf the web, or use the computer for any purpose not related to this course during class.

    Attendance Policy

    You should attend regularly. I will take attendance every day. The only excuses for absences are severe medical problems documented by your physician or family emergencies documented by the Dean of Students' office. More than three unexcused absences will lower your final grade by one letter grade (i.e. from a B+ to a C+). You cannot make up quizzes and you may only make up exams if you have a documented medical problem or family emergency as outlined above.

    Special Note

    My daughter has had a liver transplant. In order to keep her body from rejecting the new liver, her immune system is suppressed. Therefore, please do not come to my office hours if you have a cold, the flu, or any other infectious disease. If you are sick and need to contact me, write me an e-mail instead. If you feel well enough, you can come to class if you're sick, however, please do not come up to talk to me. Please note that university regulation state that students diagnosed with any communicable disease such as measles, mumps, or chicken pox are required to recuperate off campus and are only allowed to return to campus and to classes with a physician letter of release.
    Should you receive the smallpox vaccine while taking this class (or any other live vaccine, such as chicken pox), you need to be aware that you can spread the virus that is used to inoculate you to those who have not been vaccinated. If you receive the smallpox vaccination, you need to contact health services. You will have to stay of campus for a period of time determined by health services before returning to class.