COURSE GUIDELINES

CIS 067 Section 1
Problem Solving, Abstraction, and Design using C++

Fall, 2001
Dr. Friedman

Office: Wachman Hall, Room 302

SUMMARY OF COURSE GOALS:

The purpose of this course is to provide an introduction to and ample exercise with the basic concepts of writing good programs -- programs that are concise, clear, easy to read, test and modify. Particular attention will be paid to the concepts of program and data abstraction. Numerous complete program examples will be illustrated in class, and a number of design and programming problems will be assigned. All programs will be implemented in the C++ programming language.

Programming is hard for most of us. It involves planning and problem solving -- making good decisions about various strategies to follow in mapping out a solution to a problem. Mostly, it requires precision and patience. Unfortunately, C++ is not an easy-to-use language. This will not make it any easier for us to build a firm grounding in the discipline of programming. But we will make every effort to do so anyway.

GRADES:

Base Grade:
5% Class and lab participation
15% Homework
15% Quizzes - (in lab; based on homework)
30% 2 exams (15% each in class, around weeks 5 and 10) (Tuesday Oct 2 and Tuesday Nov 6)
30% Final Exam (date is in your Fall 2001 Schedule)

These percentages are approximate, and can be expected to vary slightly depending upon individual circumstances, and strengths and weaknesses in student background. Homework is used to raise or lower your grade and can affect your final grade by no more than a letter. Excellent homework could raise your Base Grade by as much as a full letter. Poor homework could lower your Base Grade by as much as a letter.

EXAMS:

The exams are closed book. Their content is cumulative, i.e. they address the material covered up to the day of the exam.

If you miss a midterm for an emergency [as agreed ahead of time with the instructor], there will be no makeup exam: the other exams will become proportionally more important.

The final exam is mandatory on the scheduled day.

Exams will be designed to test your understanding of the C++ language, the design and programming methods and processes used in class, and other relevant material about computers including operating systems, electronic mail, the use of the World Wide Web, editors, compilers, loaders, etc.

NOTE: Poor performance (generally, failure to receive a solid D average) on either the exams or the homework will result in a grade of D or worse. All continuing majors will have to retake the course before taking any other courses in the CS major.

HOMEWORKS:

You will be assigned roughly one home work each week. Each assignment must be completed on time and sent by e-mail to the Teaching Assistant (TA). The homework will be graded and commented upon by the TA usually before the next homework is due. Late home work will not be accepted by the TA. The instructor may accept them in the case of emergencies.

I encourage all students to discuss assignments with me, the lab assistants, and with other students in the class. HOWEVER, unless you have a group assignment, you are expected to work and complete all the homework on your own. Plagiarism will be severely punished.

WORKING IN GROUPS:

Your homework assignments are intended to help YOU learn about the art and science of computer programming. I tend to give a lot of programming assignments and a good bit of reading. For most students in the class, doing the reading and the programming assignments is the only way you will master the concepts and ideas discussed; it is most surely the only way you will learn C++. Occasionally, I may give a group assignment. If and when I do, I will tell you. Otherwise, you are responsible for your own assignments.

I view homework as a learning vehicle, so you will not receive letter or numeric grades for your work -- just a check, check +, or check - (or a zero). It is up to you to ensure your homework effort serves its purpose -- for you to learn the material.

All assignments should be carefully documented (commented). Your name, section, the date, and the title of your assignment (and your instructors name) should appear at the top of each program as part of the documentation.

LABORATORIES:

Laboratories are lead by the Teaching Assistant. Attendance to the laboratory is MANDATORY. In the laboratory you will be helped to learn how to use the programming environment: command language, editor, compiler, and debugger. You will be presented examples related to the material discussed in class and you will examine common errors and how to avoid them. Part of the laboratory time will be dedicated to work on your programming assignments.

CLASS ATTENDANCE:

Please --

  1. Come to class on time or eventually you may find that you are not welcome.
  2. Be prepared -- you will be helped considerably if you do the reading and the homework on time. If you can stay a bit ahead in the reading you will be even better off.
  3. Ask questions in class -- even during exams. I can’t tell what is being learned and what is causing trouble if you don’t ask questions.
  4. If you miss class, please obtain notes and missed assignments from your fellow classmates. If there is anything that you do not understand, I will be happy to help you, but you have to make the first effort to make up the work. All assignments must be turned in on time.
  5. I will not give incompletes except under extraordinary conditions. I EXPECT EACH STUDENT TO TAKE THE INITIATIVE TO MAKE UP WHATEVER IS MISSED IN CLASS.

CHEATING:

Academic cheating (such as plagiarism, copying during an exam, copying homework, stealing files and passwords, etc.) is strictly prohibited in this course. The penalty for the first offense will normally be an F in the course. A subsequent offense (in this or any other course) may also be referred to the University Disciplinary Committee.

No collusion what-so-ever during an exam will be tolerated. In particular, no talking or other sharing of information (for example during open book exams) is permitted. Keep your eyes on YOUR paper.

IGNORANCE OF ACCEPTABLE GUIDELINES OF CONDUCT IS NO EXCUSE. Your Temple Student Handbook has information on this subject -- I expect everyone to read it as part of your first assignment.

YOUR PASSWORD:

Your password is your unique "key" to your computing resources. It is your key and is not to be shared with anyone else regardless of who it is or the reasons you might think you have. Misuse of your password may result in the removal of your computing access privileges and in University Disciplinary action. Please treat this password as your own personal property -- that's exactly what it is!

WITHDRAWAL POLICY:

You may withdraw from this course (with a grade of "W passing") at any time prior to the "magic date" specified by the University (usually about three weeks before the end of classes). It is up to you to find out when this date is for a given semester. I will generally try to give, grade, and return the SECOND EXAM in time for you to make a decision about what to do if you are not happy with your progress in the course. Students who simply "drop out" of class without formally withdrawing will receive a grade of F.

A final note:

In signing up for this course, you have signed a contract to do the work that is required and to fully participate in course activities, including standard homework, all labs, group/cooperative projects, quizzes, and exams. I expect you to live up to your end of the bargain. You will be graded according to how well you satisfy course requirements. If you have any questions, please see me. This is hard work, but it also can be a lot of fun. And, who knows, perhaps you will soon take another computer course. Thanks.