CSC 350 - Data Structures and Algorithms
Spring 2001, CSC 350 00 2, MR 1:00-2:15 PM, Curtis 252
Instructor:
Norm Lippincott, Curtis 105, 610-606-4666 ext. 3697
nlippinc@cedarcrest.edu or nl@acm.orgOffice Hours:
Monday, 3:30-6:30; Tuesday, 3:30-6:30; Thursday, 2:30-4:30.
Course Description:
A study of the storage structures used for data organization and manipulation: linear lists, stacks, queues, heaps, graphs, binary and general trees, with an emphasis on the use of abstract data types; a comparative analysis of various sorting and searching algorithms: insertion sort, heapsort, mergesort, quicksort, binary search, hashing, breadth-first and depth-first search. The student will complete an independent programming project on a level appropriate to a senior computer science major. Prerequisite: CSC 134.
Textbook
Sahni, S.; Data Structures, Algorithms, and Applications in C++, McGraw-Hill, 1998. ISBN: 0-07-109219-6.
Objectives:
Grading:
Grades for the course will be based on the following grade components
Assignments (5) 45%
Tests (2) 25%
Term Project 25%
Class Participation 5%
A final grade percentage will be computed according to the weights above and rounded to the nearest full percent. Final grades will be awarded based on that percentage as follows:
93-100 A 80-82 B- 67-69 D+
90-92 A- 77-79 C+ 60-66 D
87-89 B+ 73-76 C 0-59 F
83-86 B 70-72 C-
Grade Components:
Assignments
Assignments for the course will require programming and may also include a written component. Acceptable programming languages for assignments are C++ and Java.
Programs should be well documented using comments. Please include, at the beginning of your program, a comment block with your name, course number, assignment number, date, a brief description of the problem, and an overview of your approach to the problem. Also include comments throughout the program to clearly describe all steps in your algorithm. Each function should have a comment block describing the function, all parameters, and return value. Further, code should be indented to enhance readability.
Completed programming assignments are to be submitted in both printed and electronic form. Turn in a printed copy of your program and also e-mail your program source file to your instructor at
nlippinc@cedarcrest.edu. Set the subject line of your e-mail to CSC350LAB in all caps with no spaces. This will ensure your e-mail will be directed to the proper folder for grading. If an assignment includes a written portion, you need only submit that portion in printed form.Tests
Tests will be written and will consist of problems and short answer questions. Tests will be open-book and open-notes.
Term Project
The term project is an independent project, chosen by the student, with a level of complexity "appropriate to a senior computer science major" (see course description). The student will write a project proposal and will submit a detailed design outlining the problem and the approach that will be taken for implementation (see course schedule for due dates). The instructor may accept the proposal and/or design, or may return it to the student for rework. The project is to be implemented using C++ or Java (use of any other language requires approval in advance from the instructor). At the end of the semester, the student will present her project to the class in a 10-15 minute formal presentation. The grade for the term project will be distributed as follows: written design, 20%; implementation, 50%; presentation, 30%.
Class Participation
Students who are active and attentive members of the class may receive up to 5 points for class participation. Students who engage in side conversations during class time should expect no more than 3 points for class participation. For classes held in a computer lab, students who engage in web browsing, e-mail, instant messaging, or similar activity during class time should expect no more than 2 points.
Due Dates and Late Work:
Assignments are due at the beginning of class on the day they are due. By turning in assignments on time your work will be graded and returned in a timely manner (usually by the next class meeting), and with comments as appropriate.
Work turned in late will be subject to any or all of the following:
The assignment will be graded and returned at the instructor’s convenience, possibly as late as the end of the semester.
Honor Philosophy:
The Cedar Crest College Student Handbook, Honor Philosophy part III, Community Standards for Academic Conduct, includes the following:
"As a student at Cedar Crest College, each student shall:
Unless specifically designated by the instructor, assignments for this course are individual assignments, not group projects. It is reasonable and appropriate for students to discuss an assignment outside of class, particularly for programming projects. However, the actual assignment work, whether programming or written, is to be one’s own. It is not appropriate to collaborate on programming assignments, nor is it appropriate to copy another student’s program (or other assignment), alter the program’s (or assignment’s) appearance (e.g. changing formatting, variable names, output text), and present it as your own individual work. Evidence of such behavior will be considered a violation of the Honor Philosophy and will result in a grade of zero for the assignment. A second offense will result in a grade of "F" for the course.
Attendance Policy:
Attendance will be taken for each class, however record of attendance does not directly affect the student’s grade. The student is responsible for all material covered in class. If a student has excessive absence and is not showing responsibility for the course material, an academic performance notice will be issued to the Advising Center. If a student will be absent on the day of a test, arrangements for a makeup must be made in advance of the test. Failure to do so will result in a grade of zero for the test.
Classroom Protocol:
Appropriate classroom behavior is implicit in the Cedar Crest Honor Code. Such behavior is defined and guided by complete protection for the rights of all students and faculty to a courteous, respectful classroom environment. That environment is free from distractions such as late arrivals, early departures, inappropriate conversations, and any other behaviors that might disrupt instruction and/or compromise students’ access to their Cedar Crest College education.
Computer Classrooms:
Computer science classes are often conducted in computer classrooms. When this is the case, the computers are to be used only for activities directly related to the class. Use of class computers for other activities, such as web browsing, e-mail, games, instant messaging, and so on, is not permitted. Be aware that such activity not only distracts you from the class, but distracts other students as well. Students who engage in such activity during class will receive a reduced class participation grade.
Network Account:
In order to access course resources you will need a network login account. The network login account will give you full access to resources available on the Cedar Crest College network as well as an Internet e-mail account. The network login application form, with instructions, is available at
http://www.cedarcrest.edu/helpdesk/forms. If you do not have a network login account, please obtain one before the second class meeting.Course Schedule:
The following is a tentative schedule for the course. It should be used as a guide for your reading prior to class. Also, dates on which assignments will be given and will be due are listed. This is provided so that you can plan your semester accordingly. This schedule is subject to change.
|
Mon |
Thu |
Topic (Reading) |
Assignment |
|
1/18 |
Course Intro Review/Overview of C++ Classes, Templates, and Dynamic Memory Allocation (Ch. 1) |
||
|
1/22 |
#1 Assigned |
||
|
1/25 |
|||
|
1/29 |
Program Performance and Asymptotic Notation (Ch. 2) |
||
|
2/1 |
#1 Due |
||
|
2/5 |
Heapsort, Quicksort, and Mergesort (Sec. 9.3, 9.5.1, 14.1, 14.2.2, 14.2.3) |
#2 Assigned |
|
|
2/8 |
Project Proposal |
||
|
2/12 |
|||
|
2/15 |
Linked Lists (Ch. 3) |
||
|
2/19 |
#2 Due |
||
|
2/22 |
Stacks and Queues (Ch. 5, Ch. 6) |
#3 Assigned |
|
|
2/26 |
|||
|
3/1 |
C++ Standard Template Library |
||
|
3/12 |
Test 1 |
||
|
3/15 |
Trees (Ch. 8, Ch. 11) |
#3 Due |
|
|
3/19 |
#4 Assigned |
||
|
3/22 |
Project Design |
||
|
3/26 |
|||
|
3/29 |
Graphs (Ch. 12) |
||
|
4/2 |
#4 Due |
||
|
4/5 |
#5 Assigned |
||
|
4/9 |
Greedy Algorithms (Ch. 13) |
||
|
4/12 |
|||
|
4/17 * |
Backtracking (Ch. 16) |
||
|
4/19 |
#5 Due |
||
|
4/23 |
Test 2 |
||
|
4/26 |
Project Presentations |
||
|
4/30 |
Term Project |
*
Tuesday, April 17 follows a Monday schedule.Course Resources:
Resources for the course will be placed on the campus network in the following location:
T:\users\nlippinc\csc350