Clarkson University
CS 141: Introduction to Computer Science I
Course Syllabus -- Fall 2003

Professor: William Hesse
Office: Science Center 383
Phone: 268-2387
Email: whesse@clarkson.edu

Office hours:
Monday11:00-12:00, 2:00-3:00
Wednesday11:00-12:00, 3:00-4:00
Thursday9:00-11:00
Friday1:00-2:00
Or by appointment

Teaching Assistant: Steve Evanchik
Office: COSI lab (SC 336)
Phone: 268-3837
Email: evanchsa@clarkson.edu

TA's Office Hours:
Tuesday 10:00-12:00, 3:00-4:30

Course Objectives:

  1. Students should learn fundamental principles of how to solve problems through computer programming. The programming techniques will include good program design practices and programming style, resulting in programs which are correct, reliable, robust, efficient, and maintainable.
  2. Students should learn basic features of the programming language C++.

Textbook: "Problem Solving with C++: The Object of Programming",
by Walter Savitch, Addison-Wesley (any edition is OK).

SYLLABUS
CHAPTER TOPIC
1 Introduction
2 Simple Programs
2 If Statements
3 Functions
4 More about functions
7 Loops
9 Arrays
10 Strings
5 Files
6 Classes
8 Abstract Data Types
11 Pointers

GRADING

Exams: You are responsible for all material in the lecture, as well as any reading assignments where I specify you are responsible. Class participation is encouraged. Check Old Exams for old exams to study from.

Labs: The computer laboratory periods are scheduled every Tuesday, in the Internet lab on the third floor of the Science Center. These labs are an essential part of the course. It is important to come prepared for each lab, having looked through the assignment and remembering to bring all necessary materials.

Some of the labs are too long to get done during the lab period. Therefore, lab assignments do not need to be turned in until Monday of the following week, by the beginning of lecture. If you turn them in by Friday of the lab week by the beginning of lecture, you get a 5% bonus. Either turn them in to me or the TA.

In addition to the scheduled labs, the TA will have office hours, where he will help you complete your lab assignments, answer questions about the course, help with homework, and so on. You may come in anytime during the office hours, at your convenience. This gives you the opportunity to finish your lab work under the supervision of the TA.

Programs: In addition to the labs, there will also be additional programs assigned in class. These programming assignments will require more thinking than the labs. Programs will be assigned in class and due in class two or three weeks later. Programs must be turned in by midnight on the day they are due. Programming assignments will be corrected, and returned. Students must correct their programs according to the grader's comments, and resubmit them. This process may repeat. The only way that students can lose points on programming assignments are by turning them in late or by not eventually turning in a completely correct program. Thus, programming assignments are primarily learning experiences, not a method of evaluation.

Late Policy: With computers, everything that can go wrong will go wrong at the last minute. Therefore, it is absolutely necessary that you begin your assignments early. My suggestions are as follows: Start the assignement as soon as possible, so you will immediately realize if there is something you don't know. Then try to finish the assignments early, so you receive the bonus points. If you have problems finishing it on that day, you will have more time to fix any problems. Please follow my suggestions. If you don't, I can guarantee trouble. If you fall behind, it will be difficult to dig yourself out.

Academic integrity: Labs for this class must be done individually. Programming assignments may be discussed with other students. Try not to look at other students' code until you have written that section of code yourself. At that point, you may discuss your code and correct each other's errors. Feel free to discuss the assignments and strategies for solving them, but write the code yourself. Some well-meaning students, in the process of "helping" a friend, wind up essentially doing the assignment for the friend. Not only is this not allowed, but you are really doing your friend a disservice. Programming is learned by doing it yourself.

The exact rules for "doing it yourself" are:

You are encouraged to learn from each other and help each other understand Computer Science. Teach each other and exchange ideas, but be ethical -- don't copy or modify a program which isn't yours (or allow another student to write or debug your programs for you). So, if you are having trouble writing a function, don't copy the function from your friend. If you do, that will be considered cheating. In addition, you will not learn it, and will do badly on the tests. Instead, ask your friend (or somebody else) to explain to you what you need to know to write the function. Then write it yourself.

I take cheating seriously. Cheating on tests, labs, or assignments will result in a failing grade for that assignment, for the course, and/or notification of the academic integrity board.

If you find yourself getting behind, please see the course instructor. We can work together to get you back on schedule. Besides learning programming in C++, you should also be practicing good study habits, time management, and other learning skills in this class.

Author: William Hesse (based on Chris Lynch's syllabus)
Last Modified: Aug 26, 2003