Syllabus[1]

Data Structures / IS 621

Fall 2004

Instructor:

            Dr. Herbert Tesser x2696

            Room:  Science 326

            Email:  tesser@marshall.edu

            Office hrs.        Mondays 3:00 – 5:00

Tues 3:00 – 4:30

                                    Wed. 3:00 – 4:00

                                    Other times by appointment

                                

Course Objectives

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

  • study a variety of abstract data types and their implementations
  • develop algorithms for use with these data types
  • analyze the data types and algorithms under various conditions

This course introduces students to the design and implementation of data structures.  These include arrays, stacks, queues, linked lists, heaps, trees and some work on graphs. We will also discuss analysis of algorithms, sorting, hashing, and memory allocation.

Students who successfully complete the course will:

  • understand and have had experience implementing several common abstract data types, including stacks, queues, lists, trees and graphs
  • understand and have implemented basic algorithms used in searching and sorting
  • have experience using algorithms and abstract data types in practical applications
  • be able to analyze the design of algorithms and abstract data types

Text and materials

Text:  Abstract Data Types                               OR                   Visual Basic Algorithms

 Authors:  Dale, N. and Walker, H.                                           Stephens, R.

 Publisher     Heath   ISBN:       0-669-40000-9                                   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 Monday nights.

Several short quizzes and a midterm will be given during class. 

There will be homework and projects assigned.  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, or 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                              25%

Term exam(s)                                                     40%

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 no more than one classmate 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 621 - Data Structures I)

Week

Chapter

Topic

Homework

Assignments

Due

Date

8/23

Ch. 1

Introduction,

Concepts of Abstraction, Specification, Applications, and Realization

Ch. 1 {1,2,8,9}

8/30

8/30

Ch. 2

Analysis of Algorithms,  Big O notation, typical growth rates, recursion,  Common Examples (binary search, Euclid’s algorithm) , Applications

Ch. 2 {2,7,17}

TBA

9/13

9/6

 

Labor Day

 

 

9/13

Ch. 3

Generality in Algorithms,  Language Independence, Error Handling, Information Hiding,

Ch. 3 {3, 4} TBA

9/20

9/20

and

9/27

Ch. 4

Ch. 5 pp. 152-154

Abstract Data Types (ADT), specification, representation and notation,  Examples (lists, stacks) 

Ch. 4 TBA

TBA

10/4

 

Exam

 

 

10/11

Ch. 5

Queues

Ch. 5 {1,2,4,21}

10/18

Proj.1 due

10/18

Ch. 6

 Arrays – one and multi-dimensional, sequences.

Ch. 6 {2} TBA

10/25

10/25

Ch. 6

Examples: string searching, sorting (e.g. quicksort, mergesort)

TBA

TBA

11/1

Ch. 7

Introduction to trees, binary trees, heaps,

Examples: expression trees,

 Ch. 7 {1,2,7}

11/15

Proj 2 due

11/8

 

Exam

TBA

TBA

11/15

Ch. 8

Binary trees, search trees, heaps, Examples and applications

TBA

TBA

11/22

Ch. 8

Static and Dynamic trees, 

 

 

11/29

Ch. 8

Review and how to use session

 

Proj. 3 due

12/6

 

Final Exam

 

 

 

 

 

 

 

                       

 



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