
Course Syllabus CISC181 Honors
Introduction to Computer Science -- Spring 2005
Course Particulars
|
Lecture:
|
Tuesday/Thursday 11:00-12:15, 201 Smith Hall
|
|
Lab:
|
Section 080 -- Monday, 11:15-12:05, 009 Willard Hall
Education Building
|
|
2080
|
Course Project Number |
|
Instructor:
|
Dr.
Kathy McCoy
|
|
Office:
|
201 77-79 E. Del. Ave
|
|
Hours:
|
Mon 1:30-2:15pm; Wed 8:30-10:30am |
|
email:
|
mccoy@cis.udel.edu
|
|
Phone:
|
831-1956
|
|
Teaching Assistant:
|
Tara Strobel |
|
Office:
|
115 Pearson Hall |
|
Hours:
|
Tue/Thurs 9:45-10:45am |
|
email:
|
tstrobel@UDel.Edu
|
Course Objectives
The primary objective of this course is to begin to study computer science
as a discipline. We lay foundational concepts necessary for effective practical
application in the realm of software engineering and for more theoretical
endeavors which underly such practical applications.
Our main emphasis will be on the study of the programming language C++,
an extension of the widely used C language. C++ contains many features
to support modern concepts in software engineering --- concepts that are
not a part of C. For this reason and because C++ is (almost) a superset
of C, C++ is rapidly replacing C as the programming language of choice
in a wide variety of applications.
Our objectives in CISC 181 will be to
-
Obtain a solid foundation in core C++, i.e., in those parts of C++ that
correspond to C and C++ stream input/output.
-
Discuss and learn essential aspects of good program design.
-
Obtain an introduction to the concepts of object oriented programming,
abstract data types, and reusable software through the study of C++ features
like classes, overloading operators, inheritance, and polymorphism that support these concepts.
-
Understand when and how these concepts can be effectively used to create
``reusable'' programs (or program components).
-
Obtain an introduction to some elementary data structures like stacks,
queues, and lists. Understand their associated algorithms, and how to use
them appropriately in applications.
-
Further develop skills in testing and debugging.
Prerequisites
Students are assumed to know how to program in a high level language such
as SCHEME, PASCAL,C, or BASIC,
and to have (or will quickly acquire) working knowledge of a text editor such as emacs,
or vi.
Since this is the spring semester, it is also assumed that students have been introduced to the
unix operating system and to the computing environment here at the University of Delaware.
Texts
-
Required
-
H. M. Deitel P. J. Deitel, C++ How
to Program, Fourth Edition, Prentice-Hall (2003).
Tentative Topics and Calendar
Note: Generally new material will be introduced first through the reading,
then discussed in lecture, and then used in homework assignments and projects.
Reading assigned on a given date is to be done before the next lecture.
The labs will be devoted to explanations of the mechanics of using the
various software used in the course, help with techniques of debugging
and testing, on-line exercises to reinforce the above, etc.
| Topics |
Approx. Date |
| Chap. 1, Intro. to Computers C++ |
|
| Chap. 2, Control Structures |
|
| Chap. 3, Functions |
|
| Chap. 4, Arrays (Introduction) |
|
| TEST 1 |
Thursday, March 10th? |
| Chap. 4, Arrays (cont.) |
|
| Chap. 5, Pointers Strings |
|
| Chap. 6, Classes Data Abstraction |
|
| Chap. 7, Classes: Part II |
|
| TEST 2 |
Tuesday, April 19th? |
| Chap. 8, Operator Overloading |
|
| Chap. 11, Stream I/O |
|
| Chap. 15, Data Structures |
|
| Chap. 9, Inheritance |
|
| Chap. 10, Polymorphism |
|
| Final Exam |
Tentative: Friday, May 20th, 10:30-12:30 |
Other Important Dates
-
Last day for change of registration and free drop/add, Monday, February
21
-
Spring Break After class on Friday March 25 - Classes resume Monday,
April 4
-
Last day to drop w/o penalty, Monday, April 18
-
Last CISC181 class-- Tuesday, May 17
Attendance
Attendance at ALL lectures and labs is required. An absence is excused
only for some event beyond the student's control, e.g., sickness, a death
in the family. Some examples of absences that are not excused include (1)
conflicts with work schedules (these are assumed to be worked out before
the student enrolls for the course), (2) reservations to travel, especially
around vacation periods (the semester calendar is published well in advance),
(3) non-emergency doctor and dental appointments.
Grading
-
Daily Homeworks
-
With each class there will be a set of exercises assigned (usually from the book).
These exercises will be due at the start of the following class (unless
otherwise specified). In the beginning, these can be done on paper, however it
is suggested that you do any involving programming on a machine.
Instructions for scripting your homework assignments/programs will be provided.
Daily homeworks will be graded on a variable point scale (generally between 5 and 30 points). Because we will often
discuss homeworks in class, they may not be turned in late (for a grade -- you
may wish have them graded just to make sure you are understanding the material
if you are late).
-
Labs
-
Each Monday you will have a lab assignment to do during the lab session.
The purpose of the lab is to familiarize yourself with various programming
concepts, debugging tools, etc... with the benefit of a teaching assistant
should you have any questions/concerns. The TA will come with a lab assignment
to the lab. You are required to work on the lab at the lab time and will
usually turn in the lab at the end of the lab session. In cases where you
are unable to complete the lab during the alloted time, you may turn the
assignment in at the start of class (i.e., 11:00am) on the following class
day (Tuesday). Attendance for the entire lab period is mandatory; you
may only leave lab early if you have turned in a completed lab assignment. Labs
will be graded on a 10 point scale. Because we will often discuss labs in class,
they may not be turned in late (for a grade -- you may wish have them graded
just to make sure you are understanding the material if you are late).
-
WARNING: It is best to complete the lab during lab or immediately
after (the labs are designed so that you should be able to complete them
during the lab period). You will also have a homework assignment due for
Tuesday's class.
-
Programs
-
There will be approximately 3 larger programming assignments. These you
will be given several weeks to complete. We will be using the CC compiler
on the ``composer'' machines.
-
The grading of the programs will be based on both their correctness and
their clarity. The correctness concerns whether the program is complete
and accurate (i.e., does it actually do what it is supposed to do?). The
clarity of the program concerns the program documentation (including both
comments and well-chosen function and variable names), the format, modularity,
code structure, testing methodology, etc... Programs will be graded on a 100
point scale.
-
Exams
-
There will be three exams. These will be closed-book (though I may permit
some notes to be used).
-
Course Grade
-
The following table indicates how the final grade will be calculated:
| Daily homeworks |
13% |
| Labs |
12% |
| Programming projects |
25% |
| Test 1 |
15% |
| Test 2 |
15% |
| Final Exam |
20% |
-
As an estimate of how the grades will be assigned, please refer to
the table below. This table may be updated as is required during the semester.
However, given a particular average, you may be assured that your grade
will be no lower than that indicated by this table. If the final course
average is
| >= 92 |
= |
A |
| >= 90 & < 92 |
= |
A- |
| >= 88 & < 90 |
= |
B+ |
| >= 82 & < 88 |
= |
B |
| >= 80 & < 82 |
= |
B- |
| >= 78 & < 80 |
= |
C+ |
| >= 72 & < 78 |
= |
C |
| >= 70 & < 72 |
= |
C- |
| >= 68 & < 70 |
= |
D+ |
| >= 62 & < 68 |
= |
D |
| >= 60 & < 62 |
= |
D- |
| < 60 |
= |
F |
-
Special consideration will be given to students who fall just below a grade
cut-off. The special consideration will take into account such factors
as class participation, punctual completion of projects, ``bad days'' suffered
in exams, and other intangibles. Such considerations will never lower your
grade but can raise it.
-
There are invariably mistakes in grading exams and projects. After an exam
or project is returned in class, you will have one week to submit
a written request to have it re-graded. After one week no requests for
grade changes will be considered. The request for re-grading should include
the original paper and the reason and justification for re-grading.
Periodically (2 to 3 times during the semester) you will be given
a ``snapshot'' of your grade (and an indication of where you stand with
respect to the rest of the class). The intention is to not only allow you
to see how you are doing in the class, but to make sure that there are
no mistakes in the grading file. Please check your recorded grades against
the snapshot and point out any inconsistencies within one week.
Late Policies
Deadlines are at the start of class (e.g., 11:00am) on the due date. All
assignments will be collected at that time.
Any assignments turned in (on the due date but) after they have been
collected will be considered 1 day late and will lose 5%. An additional
5% penalty will be added for each 24 hours after the due date. No assignment
will be accepted more than 7 days late.
Late assignments may be turned in to my mailbox (in 103 Smith Hall or
in 77-79 E. Delaware Avenue). You may also turn in assignments to my office
(201 77-79 E. Delaware Avenue). Late assignments must include the time
that they actually reach my box (and this you are on your honor to record
correctly) as well as the computer date (if applicable).
Excuses for late assignments will be considered ONLY if I am notified
in advance (preferably days in advance!). You may always reach me via email
at
mccoy@cis.udel.edu or by phone at 831-1956.
Keeping up with the Work!
The work-load is heavy in this course -- but it is heavy for a reason.
The nature of the material is such that you need to ``learn by doing''.
It is unlikely that you will achieve mastery of the material without trying
out the presented concepts. Because virtually all of your other CIS courses
will build in this one, it is very important that you master this material.
DO NOT GET BEHIND!! Do not leave assignments to the last minute
(or get in the habit of turning in assignments late). Start assignment
early and finish them early. Because you have assignments due every day,
once you get behind it is difficult to catch up. Work that you do now will
help build a solid foundation for your future classes!
Here is a file that I think you might find helpful.
Prof. Caviness's 181 Success Tips This contains some nice advice for how to
succeed in cisc181.
Academic Honesty
I expect you to observe the highest ethical standards in this course. This
means not only in the respect of the computer systems and your fellow users
of these systems, but also in the individual class work that you turn in.
I expect, and indeed encourage, you to consult and learn from each other
with respect to conceptual problems, use of various computing facilities,
and debugging assistance. However, you must be sure that the work that
you turn in be your own and not copied from another in any way. Please keep in
mind that copying an assignment (or partial assignment) solution from the
internet is plagiarism (just as copying from a classmate would be). You should
adhere to the University's Code of Conduct at all times, and ask me if you have
any doubt. All violations
of academic honesty (e.g., any evidence of collaboration beyond what is
specified here) will be handled according to University policy. I encourage
you to familiarize yourself with the University's Policy of Academic Dishonesty
found in The Official Student Handbook.
Professor Caviness includes the following in some of his course policies
and I thought you would benefit from it: Rather than simply following the
rules because of the negative consequences if you do not, I hope that you
will be inspired by values such as the following expressed by William Cobbett.
It is the mind that lives; and the length of life ought to
be measured by the number and importance of our ideas; and not by the number
of our days. Never, therefore esteem [persons] merely on account of their
riches or their station. Respect goodness, find it where you may. Honor
talent wherever you behold it unassociated with vice; but, honor it most
when accompanied with exertion, and especially when exerted in the cause
of truth and justice.
A Grammar of the English Language, 1819.
Faculty-Student Interaction
The instructor and the TA are here to help you, so please do not hesitate
to call on us. If you are having trouble, the sooner you talk to us the
easier it is to deal with your problem. We are also happy to see you if
you are not having problems, e.g., if you find a particular topic interesting
and would like to know more about it, if there is a question that you did
not get a chance to ask in class, etc.
You are encouraged to make use of posted office hours. If, however,
you have a time conflict with the office hours or if you run into difficulty
at other times, please email me (
mccoy@cis.udel.edu) with a question or
for an appointment. Please keep in mind that my schedule can be very busy at
times. I will attempt to reply to email in a timely fashion, but please do not
expect that I will be able to help if you have started the project late and are
against a deadline. Please be in the habit of starting the assignments
early so that you can identify the difficulties (and hopefully discuss them
during my office hours).
Also, please make use of email for sending questions at any time. I
will respond to them as soon as possible. I will also email the class --
especially in cases where something needs to be clarified in an assignment.
Please check your email regularly even when you do not have a programming
assignment to due.
Return to
Course Home Page
Return to Dr. McCoy's
Teaching Page
Return to Dr. McCoy's Home Page
Corrections, suggestions and comments to
mccoy@cis.udel.edu
Kathleen F. McCoy
Last updated February 7, 2005