IST236:  Data Structures
Course Syllabus
Fall 2002, MW
2:00 PM – 3:15 PM, Prichard Hall 200

Instructor

:  Brian M. Morgan

Office

Prichard Hall 212

Phone Number 

:  (304) 696-6469

Fax Number

:  (304) 696-6533

Office Hours

:  MWF: 10:00 – 11:00
   MW:
1:00 – 2:00

   T, R: 8:00 – 9:30

   T: 1:00 – 3:00
   Other times by appointment ONLY

E-Mail

:  brian.morgan@marshall.edu

Textbooks:  
The following textbook is required for the course:

Data Structures and the Standard Template Library, by William J. Collins; McGraw Hill; ISBN:  0-07-236965-5, 2003.

Computer Requirements:
Supplemental materials can be found contained within the WebCT environment (http://webct.marshall.edu/).  I will be sending class announcements, updates, etc. using your WebCT account (will cover during the first lecture for those who have never used it).  Access to a WWW browser is required (Netscape 4.5 or higher or Internet Explorer 5.5 or higher) and Adobe Acrobat Reader (available for download through the course’s WebCT site).  You will also be required to obtain a copy of Microsoft Visual C++ .NET for programming projects.  This software can be obtained for free through the
COS’ ITC department on the first floor of the Science building.

Course Description:
This course covers linear and non-linear data structures and representation structures which support distributed and virtual platform computing and applications environments, and data manipulation algorithms.

Credit:
The course is three (3) credit hours. It includes classroom lectures, quizzes, exams, and programming projects. Students will participate in projects that illustrate the implementation of concepts in general applications. 

Pre/co-requisites:
PR - IST163 – Programming Practicum w/C++

Desired Objectives/Outcomes:
By the end of this course, you should be able to:

-          Demonstrate a disciplined approach to problem solving methods using data structures

-          Provide a clear understanding of the concepts of data abstraction and abstract data types

-          Identify a number of the basic data structures used in computer science

-          Demonstrate the concepts of proper object oriented programming

-          Demonstrate the use of specific data structures such as lists, stacks, queues, and trees

-          Be able to program using recursion

Instruction method:
There will be 3 contact hours of classroom lecture per week. Projects covering the major topics are part of the course.  Students may work on their assignments in Prichard Hall 200, 207, or from home with Microsoft Visual C++ .NET (only).
  

Evaluation method:
Evaluation of student's performance will be based on the quality of your performance on projects, quizzes, and exams.  

Grading Policy:

2 in-class Exams

30%

Final Exam

20%

Programming Projects

40%

Quizzes 

10%

 

Assessment of Projects:

The grading of all laboratory programming projects will take into account the following:

1.      Although the most important attribute of a program is correctness, grading will take into consideration such items as time and space efficiency, documentation, etc.

2.      Programs must have proper inline documentation and must be properly indented. 20% will be deducted for poorly documented and/or poorly indented code.

3.      All submitted code must compile correctly. Code that does not compile will receive a 0.  DEBUG YOUR CODE BEFORE SUBMITTING IT!!

4.      When a problem does not specify a required complexity, the grading will differentiate between efficient and nonefficient code.  For example, if you write a program that contains a number of checks that are redundant and/or has one or more loops that iterate zero or one time, up to 10% of the grade will be deducted.

5.      When a method name and/or parameters are specified in an assignment’s description, you must use that name and/or parameters.

6.      When you write a function, remember that the function should work for all possible inputs.

7.      Although interactions with other students are encouraged, you must compose your own answers, unless otherwise noted. 

 

Individuals who utilize other people’s thoughts or ideas must provide appropriate references to said resources.  Failure to provide such documentation will result in a failing grade for the assignment, and may result in a failing grade for the course.

 

In determining the overall grade for a project, you can expect the following grades based on performance:

A – Excellent work that meets and/or exceeds all of the requirements for the project, the project is well-documented and completed efficiently.

B – Good work that meets all of the requirements of the project, but may have errors in documentation or contains errors in logic.

C – Average work that meets all of the requirements of the assignment, but is missing one or more of the items in its entirety that is mentioned in terms of an A grade.

D – Below average work which fails to meet one or more of the requirements of the assignment.

F – Unacceptable work which fails to meet two or more requirements for the project.

Final letter grades are determined based on the following grading scale, or on the basis of an acceptable contract made between the individual student and the instructor on the first day of class: 

90-100% 

A

80-89%

B

70-79%

C

60-69%

D

Below 60

F

 

The instructor reserves the right to change these values depending on the overall class performance and/or extenuating circumstances.  

 

Policy Statement:
Assignments and Project:
  The course includes a number of programming projects.  All assignments are due BY THE BEGINNING OF CLASS on their due date and must be submitted through the WebCT Dropbox. NO LATE ASSIGNMENTS WILL BE ACCEPTED.  

Exams: There are THREE exams: The first will come during Week 6, the second during Week 12, and a comprehensive (possibly take-home) Final exam (as scheduled). Exact dates and times of exams will be announced in class.  Anyone with an overall score of 95% or above heading into the final exam will be exempt from that exam.

Make-up Exams and Late Penalty:  Make‑up exams will not be given except under unusual circumstances and satisfactory written justification.  Any student who misses an exam due to an unexcused absence will receive a grade of zero for that exam with no opportunity for make-up or substitution.  University excused absences or those occurring with a good reason (and that reason must be given prior to missing the exam – call and leave a message if you have to) will be excused.  Make up exams must be taken within one week of the original scheduled date.  The decision whether to give a make up exam rests with the instructor.

Attendance Statement:
As with last semester, I am NOT making class attendance mandatory.  However, I will keep a record of who is attending and who is not, easily done with quizzes.  If you miss class, it is your responsibility to catch up on material missed, and will not be the responsibility of the instructor to catch you up on material missed during my office hours.

Withdrawal Policy:
The
University withdrawal policy is followed in this course. The last day to drop an individual course for the Fall of 2002 is November 1, 2002.  

University Holidays:
The class is officially dismissed on the following dates:
            Labor Day      
September 2, 2002
            Thanksgiving  
November 27, 2002

Topics and Methodology:
The following outline delineates the tentative class schedule with topics to be addressed during the course. 
Please note this is a tentative schedule and it may change upon class progress:

August 26

Overview of Course and Syllabus

Introduction to MS Visual C++ .NET project creation

August 28

Chapter 1

Assign Project 1 – Programming Project 1.1 on page 33

September 4

Chapter 2

September 9

Chapter 2

September 11

Chapter 3

September 16

Chapter 3

Project #1 Due

September 18

Chapter 4

September 23

Chapter 4

Assign Project 2 – Programming Project 4.1 on pages 154-155

September 25

Chapter 5

Review for Exam 1

September 30

Exam 1

October 2

Chapter 6

October 7

Chapter 6

October 9

Chapter 6

Project #2 Due

October 14

Chapter 6/7

Assign Project 3 – Programming Project 6.2 on page 251

October 16

Chapter 7

October 21

Chapter 7

October 23

Chapter 7

October 28

Chapter 8

Project #3 Due

Assign Project 4 – Programming Project 7.2 on pages 300-303

October 30

Chapter 8

November 4

Chapter 8

Project #4 Due

November 6

Chapter 8

Assign Project 5 – Programming Project 8.1 on pages 350-351

Review for Exam 2

November 11

Exam 2

November 13

Chapter 9

November 18

Chapter 9

November 20

Chapter 10

Project #5 Due

November 25

Chapter 10

December 2

Chapter 11

December 4

Dead Week - Review for the Final

December 9

Final Exam

12:45 PM – 2:45 PM

For each topic discussed in the textbook, specific experience of other students and the instructor will be discussed to enhance the characteristics involved.  Additional material may also be covered in the class.

Every student is responsible for all materials presented in class, including lectures, notes, and handouts.  In case you are not present for a class, it is your responsibility to contact the instructor and receive information about the material presented in that class.  Class attendance is very important.  

Effort Required:
As a 200-level course, a considerable amount of work and research effort is required of the student.  For every one hour in class, the student is expected to put in an effort of at least 3 hours outside the class for studying and completing assignments and projects.  Upon background and preparedness, some students may have to put in additional effort.

Communication:
The Bulletin Board facility of WebCT and private E-mail will be used to make any general announcements, last minute changes, etc.  It is mandatory that you monitor your WebCT course messages at least once a day.