Syllabus[1]

Data Structures / IS 622

Spring 2005

Instructor:

            Dr. Herbert Tesser x2696

            Room:  Science 326

            Email:  tesser@marshall.edu

            Office hrs.        Mondays 3:00 – 5:00

                                     Wed.  3:00 – 5:00

                                    Thurs  3:20 – 4:30

                                    Other times by appointment

                                

Course Objectives

IS 622 continues the study of abstract data types (ADTs) and algorithms begun in IS 621.  The course builds on previous courses in programming. In this course we will:

This course introduces students to the design and implementation of data structures.  These include trees, generalized lists, and graphs. We will also discuss analysis of algorithms, NP and NP-complete algorithms, and memory allocation.

Students who successfully complete the course will:


Texts and materials

 


Text:  Abstract Data Types

Authors:  Dale, N. and Walker, H.

Publisher:  Heath

ISBN:  0-669-40000-9

 

Visual Basic Algorithms,

Stephens, R., 

Publisher:Wiley

ISBN  0-471-24268-3


Supporting Texts (not required but it is highly recommended that you have at least one of the following texts)


 

Algorithms, Data Structures and Problem Solving with C++, by Weiss, M.A., Addison-Wesley, ISBN:  0-8053-1667-1

Or Data Structures and Algorithm Analysis in C, Weiss,  M. A., Addison-Wesley, ISBN: 0-201-49840-5

Fundamentals of Computing II, by Tucker, A., et. al.,  McGraw Hill, ISBN:  0-07-065502-2

and the old standby – it might be out of print:

 Fundamentals of Data Structures, by Horowitz. E. and Sahni, S., Computer Science Press,

ISBN: 0-914894020-X

 

Course Format

This course is designed to be a three-credit course with three lecture hours per week and some laboratory experience. 

 

The course will meet on Thursday from 4:00 to 6:20 pm.

 

Several short quizzes and a midterm will be given during class.  Graded material will be returned during class hours.

 

Attendance

Do! 

 

This is a course dense with information content.  It is necessary to come to class. If you can learn it on your own save the money for tuition.  I’m not a stickler about taking attendance, but  (fill in words-to-the-wise here).

 

Submission of Homework and Assignments

The course is intended to be computer-language-independent.  Homework and assignments may be submitted in any of the following languages:  Visual Basic, C, C++, or JAVA (must be pure JAVA). While I’d like to keep things language independent, I won’t accept COBOL, Jupiter, Atlas, nor any machine language. 

 

Make certain that programs and media submitted are virus free.  You should submit source code with any special compiler options noted.  In general, try to use ANSI standards when applicable.

 

All work must be handed in before the end of class on the day it is due.  At my discretion, late assignments will be penalized 10% of the maximum for each day late.

 

In extraordinary circumstances, I may accept late work without penalty.  I will want documentation for the reason for lateness.  The decision whether to assess a penalty rests with the instructor.

 

Grading

The graded elements of the course are:

 

Homework and Assignments                              15%

Projects                                                             25%

Term exam                                                         25%

Final exam                                                         35%

The final grade may involve a “curve”.  I expect a grade above 90% will earn an “A”, between 80 and 90, a “B”, between 70 and 80, a “C”. Below 70% will earn an “F”.

 

Makeup Policy

There won’t be any makeup for exams.  If you miss an exam you must have a verifiable, well-documented excuse.  If I accept the excuse one of two things will happen:

·        you will get an incomplete and be given an extra project which will have to be completed within a month of the end of class, or

·        Your grade will be computed without the exam and scaled based on all your other work.

The instructor will choose which option applies.

 

If the excuse is not accepted, you will get a zero grade for the missed exam.

 

Unauthorized Collaboration

 

You know what you shouldn’t do.  Don’t do it! If you are in doubt check with me beforehand

 

Sharing ideas is one of the benefits of the educational setting. You are encouraged to work with one or two classmates on homework and assignments.  However, each participant must sign the document submitted.  It is expected that all participants have contributed (approximately) equally to the collaboration.

 

All work on exams must be the product of individual effort.

 

 

 

 

Tentative course schedule (IS 622 Data Structures II)

(ADT = Abstract Data Types, VBA = Visual Basic Algorithms)

 

Week

 

Chapter

Topic

1/19

ADT - 8

Introduction, Review of Binary Search Trees

1/26

VBA - 10

Weighted Binary Search Trees and Huffman code 

2/2

(ADT -9 & VBA 10)

Merging sorted files – More search trees

2/9

 

ADT - 8

Binary trees, search trees, heaps, Examples and applications

2/16

ADT - 8

Static and Dynamic trees 

2/23

VBA - 8

Multi-way search trees, Decision trees

3/2

 

Project  1

3/9

 

File Types and File Operations

3/16

ADT -10

VBA - 12

Exam  and Graphs (Introduction) 

3/23

 

Spring Break

3/30

10, 12

Continuation of Graphs 

4/6

10, 12

Undirected Graphs 

4/13

ADT - 12

Generalized Lists  and project 2

4/20

ADT - 11

Complexity NP-Hard /Complete problems  

4/27

ADT - 11

More hard problems – Review 

5/4

 

Final Exam

 



[1] Copyright ©2001 Herbert Tesser as to this syllabus and all lectures. This syllabus, all lecture notes, and other material  are protected under copyright.  You are prohibited from selling notes provided in this course to, or by, any person or commercial firm without the express written permission of Dr. Herbert Tesser.