IST236: Data Structures
Course Syllabus - Fall 2003, TR
Instructor |
: Brian M. Morgan |
Office |
: Prichard
Hall 212 |
Phone Number |
: (304) 696-6469 |
Fax Number |
: (304) 696-6533 |
Office Hours |
: MWF: MW: 2:15 – 3:00 TR: Other times by appointment ONLY |
E-Mail |
Textbooks:
The following textbook is required for the course:
Data Structures Using C++, by D.S. Malik; Course Technology; ISBN: 0-619-15907-3, 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 discuss during the first
lecture). Access to a WWW browser is
required (Netscape 4.7 or higher or Internet Explorer 5.5 or higher) and Adobe
Acrobat Reader (available for download through the course WebCT site). It is also recommended that you visit the COS
ITC center on the first floor of the Science building and sign an agreement to
obtain a copy of Microsoft Visual Studio .NET, the programming environment we
will be using this semester. This
package is available for free to students in this course.
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, exams, and programming projects. Students will participate in
programming projects that illustrate the implementation of concepts in general
applications to learn how to implement Data Structures.
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 approximately 3 contact hours of classroom lecture per week, with
most of that time being spent working through examples in the textbook and
student questions. I will try to keep
full class lectures to a minimum. Content
from each of the chapters will be enforced through programming projects and
examinations. Students may work on their
programming projects in Prichard Hall 200 or 207, from home, or in the Drinko
Library.
Evaluation method:
Evaluation of student's performance will be based on the quality of your
performance on programming assignments, and exams.
Grading Policy:
Final grades are based on your performance on assignments and exams, as
indicated below.
2 In-class Exams |
30% |
Final Exam |
20% |
Programming Projects (#1 is worth 5%, all
others 9%) |
50% |
Attendance & Participation – None
Required |
0% |
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 coding
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 to receive
at least partial credit. Code that does not compile will receive 0 credit, NO EXCEPTIONS.
This means you must debug your code before submitting.
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. Not on just your test inputs.
7.
Although interactions with other students are
encouraged, you must compose your own answers, unless otherwise noted.
Individuals
who utilize other people’s code, 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 a given
project, code compiles and works for multiple test samples, all code and
associated files are well-documented, and the code is written efficiently.
B – Good
work that meets all of the requirements of the assignment, but may have errors
in documentation or coding, or contains code that may not work with all
possible data samples.
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 an
assignment, or has code that will not compile and execute.
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, due no later than the beginning of the second class
meeting. This contract can not be
amended once that it has been accepted by both parties, meaning that a student
will either accept the grade achieved by the contract or by the grading
criteria contained within this syllabus:
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:
Programming Assignments: The
course includes a number of homework programming assignments. 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 after chapter 4 the second after
chapter 8 and a comprehensive Final exam (as scheduled). Exact dates of the exams
will be announced in class.
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 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.
Passing grade: Programming
assignments and exams are required parts of the course and must be
satisfactorily completed to pass this course.
A student must have a passing grading in each area. A failing grade on a component may
result in a failing grade in the course.
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. If you miss
class, it is your responsibility to catch up on material missed, and it will
not be the responsibility of the instructor to catch you up on material missed
during 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 2003 is
University Holidays:
The class is officially dismissed on the following dates:
Thanksgiving Break:
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 |
Review of Syllabus Introduction to WebCT |
August 28 |
Chapter 1 |
September 2 |
Chapter 1 |
September 4 |
Chapter 1/Chapter 2 |
September 9 |
Chapter 2 |
September 11 |
Chapter 2 |
September 16 |
Chapter 3 |
September 18 |
Chapter 3 Programming Project #1 Due (Page 127,
Programming Exercise #3) |
September 23 |
Chapter 4 |
September 25 |
Chapter 4 |
September 30 |
Review for Exam 1 |
October 2 |
Exam 1 |
October 7 |
Chapter 5 |
October 9 |
Chapter 5 Programming Project #2 Due (Page 270,
Programming Exercise #7) |
October 14 |
Chapter 5 |
October 16 |
Chapter 6 |
October 21 |
Chapter 6 Programming Project #3 Due (Page 363,
Programming Exercise #1) |
October 23 |
Chapter 7 |
October 28 |
Chapter 7 Programming Project #4 Due (Page 405,
Programming Exercise #15) |
October 30 |
Chapter 7 |
November 4 |
Chapter 8 |
November 6 |
Chapter 8 Programming Project #5 Due (Page 468,
Programming Exercise #12) |
November 11 |
Chapter 8 |
November 13 |
Review for Exam 2 |
November 18 |
Exam 2 |
November 20 |
Chapter 11 |
November 25 |
Chapter 11 Programming Project #6 Due (Page 522,
Programming Exercise #4) |
December 2 |
Chapter 11 |
December 4 |
Review for Final |
December 9 |
Final Exam, |
For each topic
discussed in the textbook, specific experience of other students and the
instructor will be discussed to enhance the characteristics involved. Programming projects for the course will be
based on the chapters we discuss in the textbook. Additional material may also be covered in
the class.
Every student is
responsible for all materials presented in class, including lectures, notes,
and handouts. Students are also highly
encouraged to work through the end of chapter exercises in the textbook to help
with difficult concepts. 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, this course is provided as an mid-level programming
course, but there will still be a considerable amount of development and
research effort 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 programming. Because of 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.