CS-215

COMPUTER SCIENCE II
Spring 1998
MW 10:00 - 10:50 (KASTLE 213)

Course Description:
In CS215, "Computer Science II", we'll study the theory and practice of
developing computer solutions for some fundamental tasks in Computer
Science.

In the theory component, we'll study topics ranging from the analysis
of a given algorithm for its efficient use of time and space resources,
all the way to the development of powerful techniques used to sort and
search through collections of data. We'll also study several data
structures that will help in these tasks, including linked lists,
stacks, queues, and binary trees.

In the practice component, we'll be developing a collection of
algorithms and code written in the C++ programming language to
implement actual solutions for many of the theoretical problems we'll
be studying. We'll also work on several medium to large programming
assignments, which will involve writing specifications, algorithms,
justifications, and test cases, followed by coding, debugging, and
executing well-documented, stylish, and efficient C++ programs.

Instructor:
Prof. Fuhua (Frank) Cheng
763B Anderson Hall
Phone: 257-6760
Email: cheng@cs.engr.uky.edu
URL: http://www.cs.engr.uky.edu/~cheng/

Office Hours:
Mondays and Wednesdays 11:00 am - 1:00 pm and by appointment

Text:
Introduction to Computer Science with C++
(Author: Lambert, Nance, and Naps; publisher: West)

Recitation Leaders:
Ms. Sheila Sittinger
347 Anderson Quadrangle
Phone: 257-6748,6824
Email: smsitt0@sac.uky.edu

Computer Accounts:
This semester will be using Unix accounts on HP computers in
the Library Microlabs, called "sac.uky.edu". Be careful to treat
your computer account as you would your personal and confidential
records. Be sure to change your password frequently, choosing a
password which is not easy to guess. Be sure to protect your
account (via the "chmod" command in Unix) so that others cannot read
your files. And, most importantly, don't abuse the system by doing
things which are inconsiderate, annoying, or disruptive to other
users, or destructive to other accounts. Your right to use the UK
computer systems can be taken away if you abuse the privilege.

Grading Policy:
Homework ...... 10%
Quizzes ...... 5%
Programs ...... 40%
1st Exam ...... 15%
2nd Exam ...... 15%
Final Exam ...... 15%

* Programming assignments must be done in the C++ programming language

Scale:
89 - 100 ...... A
79 - 88 ...... B
69 - 78 ...... C
59 - 68 ...... D
Below 59 ...... E

Programming Assignments:
Programs assigned as separate entities (apart from any homework)
will be scheduled periodically throughout the semester. These programs
will be assigned at least one week prior to the due date (more so for
the more involved ones). Program assignments will be announced in class
and posted on the Web at the following URL:

http://www.cs.engr.uky.edu/~cheng/cs215/cs215.html

under the names "Programming Assignment 1",
"Programming Assignment 2", etc. Also, the grading sheet that is
to be turned in with every programming assignment can be found
at the same site. I expect to give approximately
4-6 programming assignments.

The requirements for programs and documentation, which must be
adhered to *strictly*, is further explained in the handout titled
PROGRAM REQUIREMENTS.

This course deals with programming in C++. You must use C++
to write your programs.

For each programming assignment, in addition to turning in printouts
of your program, external document and gradesheet to your recitation
leader, you also need to email him/her a copy of your program so
he/she can compile and testrun it.

Late Program Policy:
Programs will be assigned a due date that corresponds to a recitation
meeting. You are expected to turn in the program that day.
For flexibility, I will accept programs turned in on a given date
if they are placed under my office door at that given date (with date
of submission printed on it).
For example, if a program is due on a Thursday, and you slide it under
my office door Thursday night, it will be counted as turned in the
previous day. Note that Anderson Hall closes at 12:00 p.m. on weekdays.

The programs and data files that you email to me or your recitation
leader will be counted as turned in according to their respective
date/time stamps. For example, if a program is due on Thursday and
the date on your program/data files are Thursday 11:59 p.m., then you
just made it; Friday 12:00 a.m. will be counted as turned in on Friday.
Weekends and holidays, however, will count as one day (e.g. From Friday
to Monday counts as one day).

If you are using Prime Pascal, the date in which you turn in your
program listing & documentation must match the date of your program & data
files in your turn-in directory, otherwise the later date of the two will
be used.

I will accept programs and homework up to 1 week late for a penality
of 5% for each day past due. Programs and homework more than one week
late will not be considered for a grade.

Exams:
Students must take the exams at the scheduled time. In case of a
legitimate unforeseen conflict (illness or a death in the family), the
student may take the exam at a later time. In case of other conflicts,
the student must inform me in advance and must take the exam before the
scheduled time. Notification of a conflict, as the student sees it,
does not necessarily validate the need for a specially scheduled exam.
The instructor will make that decision.

Homeworks:
Homeworks must be turned in at the beginning of class on the due date.
Since homework solutions may be available after all sections of
CS 215 on the due date, NO late homeworks will be accepted.

Quizzes:
Quizzes will be given in class occasionally.
The quizzes will not be announced beforehand.

Cheating and Plagiarism:
Cheating and plagiarism will not be tolerated in this course.
You may assistant each other with general concepts on the programming
assignments and homework. But you should not copy other people's code
or homework, or let other people copy your code or homework.
The minimum punishment for either of these is an "E" in the course.
See the student handbook for details. If you have any questions about
the line between assistance and cheating, I suggest you discuss it with
your instructor. The instructor reserves the right to ask you to explain
any program that you turn in to judge if the work is actually yours.

Incomplete:
These will not be granted except in cases of extreme hardship
caused by medical problems or by death in the immediate family.

Course Schedule:
Topics Chapters in Text
Introduction and Review (Unix, C++) N/A
Algorithms, Complexity, Simple Sorts & Searches 11
Linked Lists & Pointers 14
Stacks & Queues 15
First Exam (2/25/98, covers Chapters 11, 14) N/A
Recursion 16
Trees & Graphs 17
Second Exam (4/6/98) N/A
Powerful Sorting Methods 18
Powerful Search Methods 19
Final Exam (5/5/98) N/A

Important Dates:
Last day to withdraw from a course: 3/13/98 (Friday)
Last day of classes: 5/1/98 (Friday)
Final Exam: 5/5/98 (Tueday 10:30 - 12:30 am, KASTLE 213)