Syllabus: 4003-232 Computer Science 2
version 2.15
Copyright © Department of Computer Science Rochester Institute
of Technology
All Rights Reserved
1. Course Goals
This course continues the Java-based introduction to basic computer science concepts
begun in Computer Science 1. Essentially, this course covers the use of
object-oriented programming to design and implement software solutions.
Students will learn how
to design a solution to a problem by reusing existing components, and by
creating new components using inheritance. Other topics include: exception
handling, files/streams, collections, threads and thread synchronization,
graphical user interfaces (GUI's), networking, and event-driven programming.
Java
is the language used; it is an object-oriented programming language that
was designed for developing large systems from reusable components. Programming
assignments -
labs
and
projects
- are an integral part of the course.
Prerequisite for this course is:
4003-231 Computer Science 1
2. Texts
Introduction to Java Programming, Comprehensive Version, 7th Edition by Y. Daniel Liang
Assorted documents produced by the faculty of the Department of Computer
Science.
3. Grading Policy
The course consists of the activities shown below, which are weighted as
indicated to compute the final grade:
| Component |
Weight |
| Exams |
30% |
| Final |
25% |
| Labs |
20% |
| Projects |
20% |
| Miscellaneous |
5% |
The projects are an integral part of this course, and the experience
you gain from them is valuable. You must
submit a solution, even if incomplete, for each project; your solution
must compile without errors, and meet the minimum reasonable effort requirement
as defined for that project. If you do not meet these requirements you
will not receive credit for the project.
Please note that if you have questions about the grading of any exam
or project or lab,
you must bring it to your instructor's attention within one (1) week
after the graded material (in class for exams and projects; through e-mail for labs) has
been handed back. After that time, your right to appeal will have expired and no grade
adjustments will be considered!
4. Course Format
This course has essentially the same format as Computer Science 1: 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-3005) immediately. Finally,
while there may be other 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.
Lectures are held in the classrooms shown on your schedule. You are expected
to attend all lectures; attendance records will be kept.
Labs are held in one of the Instructional Computing Laboratories (ICLs) in
the Golisano Building (Building 70), and should also be on your schedule.
Although it is possible to hand in work for some of the labs without actually
attending the laboratory class, you are always expected to be there.
Severe grade penalties will result from your not attending lab classes.
The labs are equipped with Sun workstations, which you will use for
both lab exercises and programming projects. While some ICLs may be unavailable
outside of your scheduled lab period, you can use the workstations in the
Computer Science Lab (CSL) any time this facility is open. The CSL is located
in the Golisano Building, Room 3550. The lab hours are posted outside each
of the labs.
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 Thursday must submit their work before
the end of the following Tuesday). 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 27 out of 30 points on lab one,
and 24 out of 30 points on lab 2.
-
The percentages for these labs would be 90 and 80, respectively.
-
These percentages are averaged with the other eight; suppose the final 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
Programming projects are a new activity for this and subsequent courses.
They are larger problems for you to solve outside of lab or lecture time.
There will be one or more projects for this course, all of which will be done
individually, not in teams. For each project you will have approximately
four weeks in which to complete the work; there may be a series of
mini-deadlines to meet during that period.
There will be one or more submission targets to match these deadlines;
the project handout will specify the details.
The project handout will also clearly indicate project due dates, and whether
projects may be submitted late, with substantial penalty. The projects
are coordinated and graded by your lecture instructor.
Important
Projects take longer to do than laboratory assignments. They require
longer term scheduling and technical planning. Do not wait until the last
minute to begin projects or to begin submitting project solutions! An all
too common scenario is that a student will finish the code "in the nick
of time" but not be able to submit on time because many other students
are in the exact same situation, so the systems are incredibly sluggish.
We must reiterate an important point. As described under Grading Policy,
you
must submit a solution for each project which compiles without errors
and meets the minimum reasonable effort requirement.
Note: in order to get a better grade on a project you must submit code to
multiple targets - not just the target for minimum reasonable effort.
7. Exams
There will be two exams given during the quarter; see the course calendar
for specific dates. Each exam will be fifty minutes long. Both exams are
weighted equally with each other.
You are expected to take exams during the scheduled 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-3005, telephone 475-2995).
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 sections at the same time during
the regularly scheduled final exam period. The date of the final will be
announced as soon as we get the information, typically in the third or
fourth week of the quarter. You must take the final exam at the time
scheduled for your section; finals are not given early, nor will there
be any makeup exam. The final will be comprehensive and will cover
material from the entire course, including lecture, lab and assigned readings
in the text books.
RIT recently announced new policies regarding final examinations.
Of direct relevance here are two cases: (1) a conflict in which a student is
scheduled for two final exams at the same time and (2) a situation in which a
student is scheduled for three or more final exams on the same day.
In case (1), there are several rules which determine which final exam takes
precedence.
In case (2), a student has the right (if they wish) not to take three or more
final exams in one day.
In both cases, if a student desires an adjustment of their
final exam schedule, they
must submit a written request for rescheduling, by the last
day of the sixth week of classes, to the head of their
home department, with a copy of the request given to the instructor being
asked to provide the rescheduled final exam.
We highly recommend that students first discuss their situation with
all instructors involved.
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.
The rules regarding helping each other on projects may be different from
the ones specified here for labs. The rules will be stated in the handout
for each project.
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 a grade of zero on
the assignment. [A stronger penalty may be exacted, if, in the judgement
of the instructor, the offense involves a flagrant violation of basical
ethical standards.]
-
For a second offense, in the same or a different course, the student will
receive a failing grade for that course.
-
A third offense 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
The weekly schedule
is available on the web. It reflects 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.
Many of the course topics are not addressed directly by any of the text
books. You can expect numerous class handouts on materials not covered
in the texts. Detailed reading assignments are shown in the
weekly schedule.
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: the
tutoring center, your lecture instructor, your lab instructor, student
lab instructors, the teaching assistants and the lab assistants.
assistants and the lab assistants.
11.1. Tutoring Center/Extra Help Sessions
The Computer Science Department now offers a Tutoring Center for
this and other introductory Computer Science courses. Student lab
instructors (SLIs) as well as teaching assistants (TAs) will be in
the Tutoring Center at scheduled times to help students with labs
as well as more general programming questions.
The tutoring schedule will be
available shortly after the quarter starts from the course homepage.
From time to time, instructors or others offer extra help sessions.
These are typically announced in lecture.
11.2. 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 some
one
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 that you notify the person if you can't come as planned.
11.3. Teaching Assistants
There are teaching assistants (TAs) assigned to the first year courses.
Information about TAs will be available from the course homepage.
They will help us with some of the laboratory sessions and will be available,
either in the tutoring center or their office,
during scheduled office hours.
They can help you with programming language problems, UNIX ® problems,
and program debugging.
NOTE: While the teaching assistants are there to help you, they
will NOT write your programs for you.
11.4. Student Lab Instructors
Student lab instructors (SLIs) are paired with lab instructors and have
responsibility for one or more lab sections. In addition, SLIs will
have scheduled hours in the Tutoring Center.
11.5. Lab Assistants
A lab assistant is on duty whenever the CSL is open. A lab assistant
monitors a lab or labs, retrieves listings printed on the high speed printers,
and provides assistance for simple UNIX ® problems, mechanical
problems with workstations, and simple programming language problems. For
help with detailed problems related to labs and projects, see someone in
the tutoring center instead.
12. General Conduct
Student conduct will be evaluated in accordance with the Policy on Academic
Dishonesty and Code of Conduct for Computer Use found in RIT's
Educational
Policies and Procedures Manual. 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 eighth 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.
Version: $Id: syllabus.html,v 1.6 2009/08/25 16:34:14 vcss232 Exp $