Syllabus: 4003-334 (Computer Science 4)

1. Course Goals

The goals of this course are twofold: Object technology will still be the primary programming paradigm used in this course. Even the programming language part of the course is is not a ``programming'' course, per se. Programming is a means to an end, not an end in and of itself. We are not so much concerned with the syntax of the language as we are with the consequences of the different semantics you will encounter.

You will find that you will be expected to pick up programming details more quickly, as we continue to work on larger designs.

There will be considerable emphasis on reading design diagrams and code, in addition to creation.

2. Texts

The text for the course is Thinking in C++, Volume 1, by Bruce Eckel (which is available for free online). Other C++ references are also available, some of which are listed here

Assorted documents produced by the faculty of the Department of Computer Science (handed out in class).

A list of suggested texts is given below:

Book  Author Required/Optional
Thinking In C++ Volume 1
Thinking In C++ Volume 2
Bruce Eckel Required
Teach Yourself C++, 7th edition Al Stevens Optional
C++: How To Program Deitel & Deitel Optional
C++ Primer Lippman & Lajoie Optional
Absolute C++ Savitch Optional
C++ for Java Programmers Budd Optional

3. Grading Policy

The course consists of the activities shown below, which are weighted as indicated to compute the final grade:
 
Component Weight
Lab Activities 35%
Project 25%
Exams 20%
Final Exam 20%

The project is an integral part of this course, and the experience you gain from it is valuable. Therefore, to pass the course you must submit a solution, even if incomplete, for each project part assigned; your solution must compile without errors, and must show that you have made a reasonable effort toward solving the problem. The percentages in the table above not withstanding, if you do not submit a solution showing reasonable effort for each project part, you will fail the course.

The final grade assigned is based on your total grade standing out of a maximum of 100%:

Letter Grade Numeric Range
A 90-100
B 80-89
C 70-79
D 60-69
F 0-59

4. Course Format

There are three hours of lecture and two hours of lab each week. It is required that each student register for one section of the lecture and one section of the lab. You do not have to take the lecture and the lab from the same instructor. The lab instructor is responsible for giving you grades on labs. The lecture instructor is responsible for giving you grades on exams, projects and the final exam. It will be the lecture instructor who assigns your final grade in the course. If you have any questions regarding your registration, consult your instructor or the staff in the Computer Science office (70-3000) immediately. Finally, while there may be several sections of both the lecture and lab, it is not a smorgasbord; you must attend the sections for which you are registered or you will not get credit for your work.

5. Laboratories

There are ten scheduled laboratory sessions, one per week. Labs start the first week of the quarter. It is vital that you read each lab write-up (from your document packet, or handed out in lecture) and do all the indicated pre-lab activities before you come to lab, so you will be ready to go when lab begins.

You will have nearly a week to complete each lab. Labs are due at the end of the day two days prior to your next scheduled lab session (e.g. students who have their lab on Monday must submit their work before the end of the following Saturday). You will receive your grade via electronic mail, typically within a week after the due date. Depending on when finals start, you may have less than the usual amount of time to complete the last lab of the quarter; we prefer to keep exam week free of other activities so you can concentrate on your final exams.

Some of your work will be tested during the submission process. You may be given some test data to help you in testing your program; we may use some or all of this data, or other data, when we test your work. You will be shown the results of some (but not necessarily all) of the tests performed. If you see any tests fail, you may correct and resubmit your work. There is no penalty for resubmitting, only the last submission will be graded.

Your lab grade is computed in the following manner:

  1. Your point total on each lab is first converted to a percentage of the number of points possible for that lab. Any labs that you did not do count as 0%.
  2. These percentages are then averaged.
  3. The average is then divided by 0.95; if the result is greater than 100%, it is set to 100%.
To illustrate, suppose that you got seven out of ten points on lab one, and 14 out of 17 points on lab 2.
  1. The percentages for these labs would be 70 and 82.35, respectively.
  2. These percentages are averaged with the other eight; suppose the result is 87%.
  3. 87% divided by .95 is 91.58%: this would be your lab grade.
We give you a 5% curve on your lab grade because there are no make-ups or late submissions of labs.

6. Projects

This term, there will be only one project for this course. You will have more than half the quarter to complete the project. There will be a series of mini-deadlines (activities) to meet during that period, which will be specified in the project handout. The projects are coordinated and graded by your lecture instructor. See in an important note above in the Grading section regarding reasonable effort on projects.

Last-Minute Penalty

NOTE: The lecturers will not answer project questions less than 36 hours before a project activity is due, except for regularly scheduled office hours, if any.

7. Exams

There are two exams of 50 minutes each, worth a total of 20% of your final grade and weighted equally. You are expected to take exams during your scheduled lecture period; in general, we will not give make-up exams. However, we realize that some situations might arise that would prevent you from taking an exam (severe illness, accidents, etc.). Should this occur, you must inform your lecture instructor prior to the exam; you can either call him/her or leave a message with the staff in the Computer Science Department office (70-3000, telephone 475-2995 or 475-6179). Once you return, we will make specific arrangements regarding the missed exam.

Please note that oversleeping, cars that don't start, and other excuses of this ilk are not generally valid. It is your responsibility to get to class on time for exams. If you miss an exam and did not make prior arrangements for a makeup, you will receive a zero for it.

8. Final Exam

A common final exam will be given to all daytime sections of this course at the same time during the regularly scheduled final exam period. The final will be comprehensive and will cover material from the entire course, including lecture, lab and assigned readings in the textbooks. The final exam will count for 20% of your final grade.

The date of the final exam will be announced as soon as it is known; this should be prior to the sixth week of the quarter, according to RIT's Final Examination Policy. You must take the final exam at the time scheduled for your section; except as provided for by the Final Examination Policy, finals are not given early, nor will there be a makeup exam.

In case of conflicting final exams, the Policy states that you, the student, must submit a written request for rescheduling your exam to the head of your department and to the instructor being asked to reschedule the exam by the last day of the sixth week of the quarter.

9. Academic Honesty

It is a shame that this must be stated at all, but there are always a few students who do not abide by the rules of proper academic conduct. For the record:

You can find the complete RIT's Academic Honesty Policy (section 18 of the RIT Students Rights and Responsibilities handbook) by following the links.

Those who behave in a dishonest or unethical manner in computer science courses, or in their dealings with the Computer Science Department, are subject to disciplinary action. In particular, dishonest or unethical behavior in the execution of assigned work in a computer science course will be treated as follows:

  1. For a first offense the student involved will receive, at a minimum, a grade of zero for the assigned work.
  2. For a second offense, in the same or a different course, the student will receive, at a minimum, a failing grade for that course.
  3. For a third offense, a student will be suspended and their case will be referred to judicial affairs.

Furthermore, the following action will be taken for each person involved in the incident, whether currently enrolled in the course or not:

For more details refer to the DCS Policy on Academic Dishonesty. For most of you, such warnings are unnecessary. We have to mention this because otherwise some students would say, ``but you never said I couldn't just copy Johnny's work and turn it in as my own.''

10. Tentative Schedule

A weekly schedule is available on line. They reflect our best estimate of the timing of the topics covered in this course. Any changes to this schedule will be announced in advance by your lecture or lab instructor, or via e-mail.

While many course topics are covered by the texts, the class presentations will not duplicate the texts. The amount of material to be covered in this course is such that you will be required to do more outside reading to learn the more straight forward material, so we can concentrate on techniques and the more confusing aspects in lecture and lab. Some course topics may not addressed directly by any of the text books, but you will be given class handouts for them. Detailed reading assignments are shown in the weekly schedule, and it is very important that you do the reading.

We cannot stress strongly enough that you are expected to have read assigned portions of the texts before class, as some of the material will not be covered in class unless questions arise. You are responsible for everything in the assigned readings whether covered in class or not, as well as lecture material whether covered in the readings or not. You may also have assigned readings to do before a lab session. Pertinent questions are always welcome.

11. Getting Help

There are many people on campus who are both able and willing to help you when you have trouble understanding something. Resources include: your lecture instructor, your lab instructor, the teaching assistants and the lab assistants.

11.1. Instructors

Both your lecture and lab instructors have offices in the same building as the computer labs. They have regularly scheduled office hours, which are times when they are committed to being available to students for any questions or problems that they may have. No matter how busy someone appears to be, their office hours are there for you and you are welcome. Most faculty are also available by prior appointment if you can't come during an office hour. We ask that you be on time for your appointments and you notify the person if you can't come as planned.

11.2. Teaching Assistants

There are teaching assistants assigned to the first and second year courses; their names and office number(s) are shown on the weekly schedule available on line. Their office hours are also posted on the bulletin board outside their office.

They can help you with programming language problems, UNIX problems, and program debugging. They are the first people you should see when you have problems with your assignments. Of course, you may always contact your instructor during her or his office hours or make an appointment.

NOTE: While the teaching assistants are there to help you, they will NOT write your programs for you.

11.3. Lab Assistants

A lab assistant is on duty whenever the CSL is open. The lab assistant monitors the lab, retrieves listings printed on the printers, and can provide assistance for simple UNIX problems, mechanical problems with workstations, and simple programming language problems. For help with other problems, see the teaching assistants first.

12. General Conduct

Student conduct will be evaluated in accordance with the Institute Policies and Procedures Manual and in particular Misconduct in Research and Scholarship and Code of Conduct for Computer Use. You should also have two related documents, the Code of Conduct for the Use of Department of Computer Science Facilities and the Policy on the Use of Computer Games on Department of Computer Science Facilities, which are refinements of the general Institute policies.

13. Policy on W and I Grades

RIT policy allows you to withdraw from a course with a grade of W on or before the Friday of the sixth week in the quarter. After this date, your instructor cannot give you a W, but must assign you a grade based on your work.

This course has been designed so that you can complete all the work in one quarter; thus, incomplete grades will be given only in the most exceptional circumstances, and then only by prior arrangement with your lecture instructor. Your lecture instructor has the final say in this matter.

14. Disclaimer

Every effort has been made to provide accurate information in this document. We reserve the right, however, to make changes to any facet of the course should circumstances warrant it. Any such changes will be announced in both lecture and lab.


UNIX is a registered trademark of The Open Group, Ltd.


Version: $Id: syllabus.html,v 1.17 2012/09/04 18:32:57 cs4 Exp cs4 $

Copyright (C) 2001 Department of Computer Science, Rochester Institute of Technology, Rochester, NY. All Rights Reserved.