Syllabus: 4003-334 (Computer Science 4)
1. Course Goals
The goals of this course are twofold:
-
to develop your design skills and to master a notation now in common use
for object-oriented analysis and design.
-
to introduce you to a different kind of programming language than is taught
in the first year courses, and to help you understand some of the resulting
new issues that must be addressed.
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:
-
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%.
-
These percentages are then averaged.
-
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.
-
The percentages for these labs would be 70 and 82.35, respectively.
-
These percentages are averaged with the other eight; suppose the result
is 87%.
-
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 may help each other freely to complete labs, as the purpose of
the labs
is to increase your understanding.
-
However, this does not mean that someone else can do
your lab
for you. Any lab you submit must contain a significant intellectual
contribution
by you.
-
The corollary is that you may not do someone else's work for them
either.
A willing supplier of the material is as guilty of academic
dishonesty as
the receiver.
-
Any help you receive from someone must be acknowledged in the
work
submitted. Failure to acknowledge the source of a significant idea
or approach
is considered plagiarism and not allowed.
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:
-
For a first offense the student involved will receive, at a
minimum, a
grade of zero for the
assigned work.
-
For a second offense, in the same or a different course, the student
will receive, at a minimum, a
failing grade for that course.
-
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:
-
If the student is a computer science major, a letter recording the
incident
will be placed in the student's departmental file; otherwise, the
letter
will be forwarded to the student's department chair or program
coordinator.
-
Violations of the
Code of Conduct... can also result in suspension,
expulsion
and even criminal charges.
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.