Syllabus
CS 1321 (Principles of Algorithm Design II):
Syllabus
Prerequisites
CS 1320, or consent of instructor.
Course description
This course is the second course for computer science majors, following
the guidelines established by the Association for Computing
Machinery. This course also partially satisfies the requirements for
Understanding the World Through Science of the common
curriculum. The course content will include
defining data types including singly-linked lists, doubly-linked lists,
stacks, queues, and trees;
recursion; use of libraries; pointers; dynamic memory;
type-independent programming; and program implementation strategies.
Course goals and objectives
The objectives of this course include, but are not limited to, the
following:
- learning fundamental problem-solving methodology
- implementing algorithms using a programming language
- dealing with complex systems
- development and analysis of algorithms
- introduction to the basic topics in data structures
Instructor
- Instructor:
- Dr. Berna Massingill
- E-mail:
- bmassing@cs.trinity.edu
- Web page:
-
http://www.cs.trinity.edu/~bmassing/
- Office:
- Halsell 201L
- Office hours:
- See my Web page.
- Office phone:
- (210) 999-8138
Textbook
Data Structures and Other Objects Using C++;
Michael Main and Walter Savitch; Addison-Wesley; 1997.
Other references
(This list of references graciously provided by Drs. Oldham and Eggen.)
- Cormen, Leiserson and Rivest,
Introduction to Algorithms,
McGraw Hill, 1990.
Emphasizes algorithms, not programming.
- Cygnus,
The ISO/ANSI C++ Draft
Standard.
If you want to know about
some obscure C++ rule and have lots of hours to understand the
terminology.
- Daniel P. Friedman and Matthias Felleisen,
The Little LISPer,
MIT Press, 1987, Trade Edition.
A good book on recursion.
- Daniel P. Friedman and Matthias Felleisen,
The Little Schemer,
MIT Press, 1995, Fourth Edition.
A good book on recursion.
- Nicolai M. Josuttis,
The C++ Standard Library: A Tutorial and Reference,
Addison Wesley, 1999.
A good STL reference book.
- Brian W. Kernighan and Dennis M. Ritchie,
The C Programming Language,
Prentice Hall, 1989, Second Edition.
The reference for C, written by its creators.
- Andrew Koenig and Barbara Moo,
Ruminations on C++,
Addison Wesley, 1997.
A great but advanced book on C++ programming.
- Stanley B. Lippman and Josée Lajoie,
C++ Primer,
Addison Wesley, 1998.
A lengthy book introducing C++ language features.
- Stanley B. Lippman,
Essential C++,
Addison Wesley, 2000.
A very short, not-yet-published book covering C++ essentials.
- P.J. Plauger, Alexander A. Stepanov, and Meng Lee,
Standard Template Library: A Definitive Approach to
C++ Programming,
Prentice Hall, 1996.
Presumably authoritative, since one of the authors wrote the STL.
- Bjarne Stroustrup,
The C++ Programming Language,
Addison Wesley, 1997.
The creator of the C++ programming language introduces its
features.
Grades
The grades in this course will be determined by the results of
- three exams, two in class and one during the scheduled final-exam
period,
- several homework assignments, and
- class participation.
Averages will be calculated as a simple percentage, i.e.,
points earned divided by points possible.
Exams will account for approximately 50 percent of the total points
(with the two in-class exams equally weighted and the final worth
twice that much); homeworks will account for about another 40 percent;
class participation will account for the remaining 10 percent (possibly
less).
Letter grades will
be assigned according to the following scale
- 90-100: A
- 80-89: B
- 70-79: C
- 60-69: D
with plus and minus grades assigned in marginal cases.
Exams
Exams are comprehensive but will emphasize the most recent material.
They are scheduled as follows. Please plan accordingly.
- Examination 1: February 16, in class
- Examination 2: March 22, in class
- Final Examination:
- For CS1321-3 (MWF 10:30am): May 9, 2pm
- For CS1321-4 (MWF 11:30am): May 5, 6:30pm
Homeworks
Several homework assignments will be required for successful
completion of this class. Each assignment will be due at the
beginning of the period on the day assigned.
Most homeworks will be laboratory problems, which will be coded in a
suitable programming language.
You are encouraged to use the department's network of Unix machines,
but unless otherwise specified for individual assignments, you may
use any other system that provides a suitable environment.
Detailed requirements for problem submission will be provided with
each assignment.
Class participation
Class participation points will be assigned on the basis of
both attendance and contribution to class discussion.
Attendance
Regular class attendance is strongly encouraged.
Class Web page
Much course-related information (this syllabus,
homework assignments and sample solutions, example programs,
and so forth) will be made available via the
World Wide Web. You can find the home page for the course at
http://www.cs.trinity.edu/~bmassing/CS1320_2000spring/info.html.
This page is not only a starting point for Web-accessible course
material but will also be used for
course-related announcements, so
you should plan to check it frequently.
Late and missed work
Exams can be made up only in cases of documented conflict with a
university-sponsored activity or documented medical emergency.
The former requires prior notice.
Homework will normally be accepted up to five days late, at a penalty
of 10 percent off per day. More stringent deadlines may be imposed
for individual assignments.
Collaboration and academic integrity
Unless otherwise specified, all work submitted for a grade
(exams, quizzes, and homeworks) must represent the student's
own individual effort.
Discussion of homework assignments among students is encouraged,
but not to the point where the actual program code
is being written collectively.
Programs that are identical beyond coincidence are in violation of the
Academic Integrity policy of the university and will result in
disciplinary action, including, but not limited to, a failing grade on
that assignment for all parties involved.
You are responsible for the
security of your work, both electronic and hard copy.