"I think that I shall never see a poem as lovely as a tree", Joyce Kilmer

advertisement
"I think that I shall never see a poem as lovely as a tree", Joyce Kilmer
PHILADELPHIA UNIVERSITY
COMPUTER INFORMATION SYSTEMS
IS31 Algorithms and Data Structures
(course by appointment – independent study form required)
FALL 2005
Professor: Dr. Les M. Sztandera
Office: 22 Gibbs Hall
Tel: (215) 951-5356
Office hours: Tuesdays 5:30pm-6:30pm and Tuesdays/Thursdays 8:30am - 9:30am
Weekly meetings to monitor progress: Thursdays 12:30pm-1:00pm
Electronic mail: SztanderaL@PhilaU.edu
Web page: http://faculty.philau.edu/SztanderaL
Mailbox: Gibbs Hall
Catalogue description:
Study of advanced programming techniques and data
representations, including recursion, stacks and queues; packaging data
abstraction; advanced searching and sorting; files; binary search trees;
analysis of algorithms and computational complexity; advanced data structures.
Programming assignments will be submitted. The course replaces CS31.
Prerequisites: IS10
Course objectives: To gain an understanding of algorithms, data organization and
data abstraction. Familiarity with computability theory concepts, with
programming languages used as a vehicle for expressing algorithmic ideas.
Textbook: W. Collins, Data Structures, Mc-Graw Hill, 2003, 0-07-236965-5
References: lecture notes
Grading:
Midterm.........................................30%
Homework Assignments............................10%
Programming Projects............................30%
Final Exam......................................30%
Exams will be closed book and open notes.
Grading Scale:
Grading will be done on a straight scale as follows:
90-100....................................A
87-90.....................................A84-87.....................................B+
80-84.....................................B
77-80.....................................B74-77.....................................C+
70-74.....................................C
67-70.....................................C64-67.....................................D+
60-64.....................................D
0-60......................................F
Course policies:
i)
ii)
iii)
iv)
v)
vi)
vii)
Students must have taken the specified prerequisites for this course,
or explicitly have the permission of the professor to take this course
without them, in order to be enrolled.
Deadlines for all assignments will be enforced. There is a penalty 10%
per day for the late submission. In general, no late material will be
accepted unless the work cannot be completed on time because of illness
or other emergencies beyond the control of the student. No make-up
examinations will be offered.
If a student wishes to drop it is the student's responsibility to do so
by the deadline.
Academic dishonesty will not be tolerated. The submission of unoriginal
or plagiarized work will result in a grade of zero (0) for the first
offense, and an automatic grade of F for the course will be assigned
for the second offense. This policy applies to all participants.
Questions regarding the debugging of programming assignments will not
be answered over the telephone. For such questions, bring a program
listing as well as any other material (such as sample runs) that
illustrates the problem over to the professor's office.
I generally have an "open door" policy with respect to seeing students.
My office hours are guaranteed times when I will be in my office,
unless otherwise announced in class. I am willing to see students at
other times by appointment and will see walk-ins if I am not busy.
Walk-in visits should be limited to emergencies and quick questions
only; if you have more to discuss please come to my office during
office hours or make an appointment so I can make my plans accordingly.
The following paragraphs summarize University and School policy on
incompletes: An incomplete is given only for an exceptional reason for
not completing the course (e.g., serious illness or other emergencies
beyond the control of the student). Any such reason must be fully
documented before an incomplete can be given. Any request for an
incomplete grade must be approved by the Dean of the School. In the
unlikely case that an incomplete is given, it must be made up with me.
It is not possible to "sit in" on another faculty member's course and
have that person give me the grade to turn in. (Any student attending
any Computer Information System course must be registered for the
course he/she is attending.) As a result of University and School rules
concerning incompletes, incompletes in the Department of Computer
Information Systems are rarely given.
Course Outline:
1.
Introduction
a) Overview
b)
Why Study Algorithms?
2.
Algorithm Design
a) How to Design an Algorithm
b) Example 1: Fibonacci Numbers
c) Example 2: Matrix Addition
3.
Static Data Structures
a) Overview
b) Arrays
c) Ordered Lists
d) Stacks
e) Example Calculator
f) Queues
4.
Recursion
a) Introduction
b) Factorial Numbers
c) Fibonacci Numbers
d) Writing Recursive Functions
e) Use of Recursion
5.
Dynamic Data Structures
a) Introduction
b) Linked Lists with and without Pointers
c) List Processing
d) Stacks Revisited
e) Dynamic Memory Allocation
f) Simulation Example
g) Doubly Linked Lists
h) Generalized Lists
6.
Trees
a) Basic Principles
b) Binary Trees
c) Balanced Trees
d) Threaded Binary Trees
e) Applications of Trees
7.
Graphs and Digraphs
a) Introduction
b) Internal Representation
c) Traversals
d) Spanning Trees
e) Shortest Path Algorithm
8.
Searching
a) Introduction
b) Sequential Searching
c) Searching Ordered Tables
d) Hashing
9.
Sorting Techniques
a)
b)
c)
d)
e)
f)
g)
10.
Introduction
Bubble Sort
Selection Sort
Insertion Sort
Quicksort
Heapsort
Mergesort
Advanced Data Structures
a) Red Black Trees
b) Decision Trees
Download