Fall 2002

Course Overview and Syllabus

This is a primer in computer science which includes an introduction to the C++ programming language and the UNIX operating system. You will learn how to design algorithms and write computer programs while getting a general introduction to the field of computer science.

Prerequisites: We do assume some familiarity with computers and programming. If you take this course, we assume that you have done some (not much) programming in some language. None of the details are expected but we go over introductory material relatively fast since we expect the concepts to be familiar. Those who do not have this background may obtain it by taking the COMP 10 or EN 47.

Instructor Information

Who Office E-mail Phone Section Time Place

Roni Khardon

Halligan 230 7-5290      
        01 H Block Halligan 111
Jim Schmolze Halligan 220 7-3681      
        02 E Block Halligan 111

Text Books

The following book is required: Third Edition of the ``Alternate Version of Starting Out with C++'' by T. Gaddis, J. Walters, and G. Muganda, Scott Jones Publishers, 2002.

The following book includes the reading for the special topics: The Analytical Engine, an Introduction to Computer Science Using the Internet, by R. Decker, and S. Hirshfield, PWS publishing Company, 1998.


Labs will be held each week in Halligan Hall. You must register for one of them and attend it regularly. New course material will be given in both the main lectures and labs, with much of the practical information about using the computer given during the labs. In other words, it is important to attend the labs.

Lab registration is done through the eecs department, not through the registrar's office. Information about registration and meeting times will be given in class.

Assignments and Due Dates

Assignments will consist of readings, written homeworks, written designs and computer programming projects. Assignments will given every week. You will turn in your programming projects via the computer, after which they will usually be graded by the computer. All assignments must be turned in on time to receive full credit. Written homeworks that are late receive no credit. Programming projects that are late lose at least half credit. Programming projects more than 4 days late receive no credit. The general criteria used to grade assignments are correctness, completeness, lateness, and correct use of style.

In order to allow for illness, emergencies or simple forgetfulness, you may skip handing in a limited number of assignments with no grade penalty. We call this the ``slack.'' You may skip handing in 3 written homeworks and/or designs, you may skip handing in up to 5 points worth of projects, and you may skip up to 2 scheduled labs. There is no need to ask permission nor even to advise your instructor if you decide to utilize this slack. At the end of the semester, we simply total your scores in each category, and we set the maximum score for each student to be the total number of points for all the assignments minus the slack. For example, if there are 90 points worth of projects, then the highest total score that anyone can receive is 85. If you get more than 85 points, your score is reduced to 85. Thus, if you skipped a 5 point project, you can still get a perfect score for the projects.

Checking and Disputing Grades

Within 2 to 3 weeks from the start of the semester, you will have access to our records of all your grades via the Andante computer. We ask you to check these records every week to make sure that you have received your proper credit. It usually takes about 1 week for grades to be posted. You will then have 1 additional week to check the recording of your grades. Any disputes concerning recorded grades must be made within 2 weeks of submitting the assignment or exam. Thus, when you turn in a HW, after 2 more weeks you cannot dispute your recorded grade even if it is obviously wrong! If you detect an error in a grade, you should contact the person responsible for recording that grade. For lab attendance, written homeworks, written designs, style inspections and visual inspections of your projects, the person to contact is your lab TA. For computer projects, the contact is the course manager, whose email address is ``grader11''. For exams, the contact is your instructor. Please contact the correct person if a dispute arises. If a dispute with your lab TA cannot be resolved, then you should contact the course manager. If it cannot be resolved with the course manager, then and only then should you contact your instructor about it.


There will be 3 exams during the semester. There is no final exam. Your syllabus shows the dates for the 3 exams. Please note that they take place on the open block, 11:50 on Monday of the corresponding week. In addition, there will be exactly one makeup exam given - no exceptions! This makeup exam will be given during the reading period at the end of the semester, and will cover all the material taught in the course. If you have been excused from one of the 3 exams, then you may take the makeup exam in its place. Also, if you have taken all the in-class exams then, at your option, you may take the makeup exam, and the worst curved score from all 4 of the exams will be discarded.

Illness or Emergencies

If you are going to miss any assignment due to illness or other emergency, you need not contact anyone. Instead, you will use up your slack - see ``Assignments and Due Dates'' above. However, if you are going to miss an exam due to illness or other type of emergency, please contact your instructor as soon as possible. A note from health services, a doctor, or a dean confirming your illness or situation is required. This is the only way to be excused from an exam. If you miss an exam without going through this process, you will be allowed to take the makeup but you will receive a penalty of 10%.

Final Grade

Your final grade will depend primarily on a weighted average of the grades you receive throughout the semester. The weights are as follows:

for a total of 400 points. Note that the total in each category will be rescaled to this range. Continuing the example from above, if there are 90 points worth of projects, and the maximal score after the slack is 85, then the project mark will be scale by 75/85 before being averaged in the final mark.

To do well in this course, you must do well on everything - homeworks, projects and exams - and you must participate in lectures and labs. Note: any student who does not complete at least half of the programming projects will fail the course, no matter what other scores s/he receives.

Getting Help and Collaboration

If you need help with a programming project, please contact a TA first. If she or he doesn't answer your question satisfactorily, then contact your instructor. It is best to visit either the TAs or your instructor during their posted office hours. Failing that, try electronic mail, or if it is an emergency, a phone call. Tutors are available through Academic Resources. However, if you get a tutor, you should check with your instructor to make sure that your tutor is qualified.

The policy on homeworks and programming projects for this course is that you must do all your work on your own unless you are explicitly told otherwise by your instructor. If you need help, you should see either a TA, your instructor or a tutor through Academic Resources. If you wish to discuss an assignment with others, you may do so only at a very high level, or at a very low level - i.e., help to find a particular error. In such cases, you must identify each person who helped you, except for course staff. You may not otherwise discuss or share the solutions to assignments via any medium. Each student is responsible for keeping his/her solutions private. For example, if you print out a listing of your program, you may not discard it in the user area as other students could retrieve it from the trash. Copying part of an assignment or program from another student, or being copied from, even if the assignment is later modified, will be treated as plagiarism. In addition, you are responsible for keeping your computer password secret. If anyone other than you is found using your computer account, whether they are in the class or not, you will be treated as if you received unauthorized help. Plagiarism or obtaining unauthorized help in this course will be treated in the same way as plagiarism in any other course, and can result in loss of credit, probation, suspension, or expulsion.

Computers, Electronic Mail and the World Wide Web

We will use the Andante computer for all class projects. We will freely use e-mail (i.e., computer mail) to make course related announcements, so please check your e-mail regularly. Finally, all course materials other than textbooks are available in one of the special course directories (they begin with /comp/11) or from the course web page


Our C++ textbook is very comprehensive and covers a lot of material and should serve as a good reference well beyond the course. We will cover a large part of the text but not all of it. We will also cover a few other topics not included in that text and some readings will be assigned from the second text. Both books are available on reserve in the library. You are responsible for all the material assigned in the reading even if some of the details are not discussed in class. The next table gives a more detailed schedule. The dates shown are for the Monday of each week. C1, C2, etc. refers to chapters 1, 2, etc. in the text. Except for exam and holiday dates, all dates below are approximate. Exam dates are not subject to change.

Topics Important Dates
C1,C2: Introduction Tu 9/3: Classes begin
C3: Expressions and Interactivity  

C4: Making Decisions with
Conditional Statements
C5: Looping Statements
Tu 9/17: Last day to add classes
C6: Functions: writing modular programs
C18: Recursive Functions (I)
Tu 10/1: Last day to drop without 'W'
   (except freshmen)
C7: Object-Oriented Programming
with Classes
Mo 10/7: EXAM 1: Weeks 1 - 5
C8: Arrays
Mo 10/14: Columbus Day -- Univ. Holiday
Tu 10/15: Substitute Monday's schedule
Special Topic I: Computer Architecture
Special Topic I
C9: Searching and Sorting
C18: Recursive Functions (II)
Mo 11/4: EXAM 2: Weeks 1 - 9
Special Topic II: Theory of Computation
Special Topic III: Artificial Intelligence
Mo 11/11: Veteran's Day -- Univ. Holiday
Tu 11/12: Last day for freshmen to drop
   courses without 'W'
C10: Pointers  
C10 W, 11/27 - F, 11/29: Thanksgiving -- Univ. Holiday
C14: Input-Output with Files
  Mo 12/9: EXAM 3: Weeks 1-14
Mo 12/9: Last day of classes

About this document ...

This document was generated using the LaTeX2HTML translator Version 98.1p1 release (March 2nd, 1998)

Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 -no_navigation -no_images -dir TEMPHTML syllabus.tex.

The translation was initiated by Roni Khardon on 2002-08-30

Roni Khardon