Computer Science I
COMS 261.01
MWF 9:30-10:20, Tu 2:30-3:20 Bagby 120
Spring 2008


Instructor

Professor Tom Valente
Office: Bagby 123, ext 6210
Email: tvalente

Office hours:
MWR 2:30PM-4:00PM
and other times when my office door is opened.


Textbook

C++ Program Design, 3rd Edition (2002) , by James P. Cohoon and Jack W. Davidson


Class Format

The MWF meetings will consist of lectures that closely follow the topics presented in the textbook and hopefully, bring them to life. The subject matter is such that the lectures ought to be dynamic, with many examples to interact with. I will do my best to make it so by using the classroom technology and well-chosen examples to illustrate the points and techniques of the course. All of you are expected to be alert and to participate in these discussions. The emphasis will be on problem-solving, to provide context for learning and using the C++ features as they come up in the textbook and in labs.

That being said, please realize that most of the learning for the course will take place outside of the lectures. This will happen as a result of lab experiments and exercises, homework problems, and programming projects. It is absolutely necessary to do all of these and to have read the required material before each class in order for you to keep pace with the course. Feel free to drop by my office for questions, or simply to chat about the course and your progress in it.

Programming is not a spectator sport, so simply coming to classes, though necessary, is not by itself sufficient as a source for learning. Remember to take advantage of every opportunity to learn by making use of readings, lectures, labs, projects, homework, myself, and your classmates (when permitted).

Grading

Your grade is a weighted average of labs, projects, and exams, computed as follows:

The grades are then assigned according to the following scale, with plus and minus assigned appropriately: 90%-100%: A; 80%-90% B; 70%-80% C; 60%-70% D; 0-60% F.

Labs: (13 for 20%) Each Tuesday, beginning January 22nd, there will be a computer lab that you will work on. Each lab requires that you gain hands-on experience with the material we've discussed in class that week. On occasion, new concepts will be introduced. It is important that these labs be active, which means that you should discuss examples with students on either side of you, and with your instructor. For each lab, you will be asked to turn in some work, usually a short computer program. Because labs are weekly and timely, no lab may be turned in late. Tuesday lab work will normally be due on the Monday evening following. However, if your schedule permits, you might consider staying on Tuesday afternoon and possibly finishing in one sitting.

Programming projects: (5 for 30%) The tentative due dates for each project are listed below. All projects are due at midnight on the dates indicated.

Each program will be tested by me using various data and graded on the basis of 50 points. To receive full credit, the program must work correctly in all cases, be adequately documented and clearly written, and it must be turned in on time. For late submissions, 5 points will be deducted for each day late after the due date (with a weekend counting only 1 day). More will be said about policy when the 1st assignment is handed out in February.

It is very important to begin work early on the projects. For each project, you will be given at least one week to complete it. Do not underestimate the amount of time that the project will require. Students become frustrated if they expect to do their project in one sitting, quickly and painlessly. Start early! Try to tolerate some frustration as every programmer must.

Tests and final exam: (2 for 25%, then 20%) You should make every conceivable effort to be present and prepared for an hour test. The only valid excuses for missing a test are serious illnesses and unavoidable emergencies which can be verified. If you foresee that you must miss a test, then you should make arrangements, before the absence, to take the test. If you miss a test for a reason that is less than compelling, you will not be allowed to take the test later.

Attendance

Attendance will be checked at the beginning of each class. In an introductory computer science class, attendance at every class is absolutely essential, so I expect you to attend every class and to be on time. If you miss class, you will hear from me.

Links

Programming a simple machine in its machine language.

Programming a simple machine in its assembly language.

A scratchpad that allows for some object-oriented programming.

My web site that allows you to step thru Selection Sort algorithm.

My web site that allows you to step thru Insertion Sort algorithm.

My web site that allows you to step thru a Bubble Sort algorithm.