James Madison
University

College of Integrated Science & Technology

Department of Computer Science

Spring 2009

CS 240 Data
Structures and Algorithms

Professor:    Dr. Elizabeth S. Adams

Office:      ISAT/CS
213

Phone:                   (540)-568-1667

E-Mail:         [email-masked]

Office
Hours:

Mondays:  by appointment AND whenever my door is
open

Tuesdays:  10:00-11:00am

Wednesdays: 1:00-3:00 pm

Thursdays:  6:15-7:15 pm

Fridays:  by appointment and whenever my door is open

NOTE:  I am frequently in
my office at other times, particularly in the evening and you are welcome
whenever I am there and my door is open

Class
Room :  HHS 2208

Class
Meeting Times:

Tuesday/Thursday

Section 001

12:30-1:45pm

Textbook:

Ada  plus Data Structures, John McCormick and
Nell Dale, 2nd Edition, Jones and Bartlett, 2006

Useful
Other Materials:

Software Construction
and  Data Structures with Ada
95,  Michael Feldman, Addison
Wesley   - will be placed
on reserve in the East Campus library

Ada Language Reference
Manual
– available as part of GNAT Ada
installation and will be placed on reserve in the East Campus library

Class
web page https://users.cs.jmu.edu/adamses/web
(not
active yet)

FINAL
EXAM  will
be Tuesday May 5th  7:00-9:00
pm in HHS 2208

Course
Description:

In this course students
will study the classic data structures including, but not limited to:
stacks, queues, linked lists, trees, graphs, heaps and hash tables.  They will be interested in the
storage structures and algorithms used to manipulate these data structures
and the operations that can be performed on them.  They will learn to differentiate
between the specification of the operations performable on a data
structure and the implementation of it.

Students will study
classic sorting and searching algorithms in detail and will learn how to
evaluate their efficiency (asymptotic run times).

Students will have the
opportunity to write recursive algorithms and to be come better acquainted
with their usefulness and their requirements..

Tentative  Grading Categories and Weights:

Categories

Weights

Quizzes & Homework

10%

Programming Assignments

15%

Exam 1

20%

Exam 2

20%

Final Exam

30%

Attendance/class
participation

5%

Grade Criteria:

Grade

A

B

C

D

F

Average

90 or more

80-89

70-79

60-69

less than 60

Course Assumptions:

Students are in this class to learn

The programming language in the course is Ada

This course requires a lot of time

The coding of programming assignments and programming
homework are individual work although questions may be addressed to the
professor or posted on the Blackboard Discussion Board for this class

Discussing the requirements of a programming
assignment or programming homework with other students is permitted

Students will come for help rather than not
turning in an assignment

Grades will be posed on Blackboard

Feedback will be given on student work – in
the form of class discussions and individual grades

Programming Assignment
Delivery Requirements

Source
code will be submitted via Blackboard. What else to submit will be specified with each assignment and
may include sample input used to test the program and output produced by
program test.

Submission instructions will be specified.

Specifications for names of files will be provided.

Printouts of source code, sample input, sample output must
be submitted for each programming assignment and all must be submitted in
a folder.

Late programs will suffer a penalty point
deduction.

When students are asked to bring code to class on
transportable media such as a flash drive or CD, or to submit a .exe file, such code will be
readable using the Windows operating system.

Exam Information:

No makeup exams will be given.

The dates of the exams will be announced in advance
of the exams.

The final exam will be given:  Tuesday May 5th from 7:00-9:00pm.
NOTE: we have discussed this in class.  It is not the registrar's scheduled
time.

You
must take the final to pass the course regardless of the grade you have
earned up to that point (i.e. even if you have enough points to pass the
course with a 0 on the final, you must take it to pass the course).

Professor/Course
Policies:

Policy
on Incompletes:

Incompletes are not usual.  They are never automatic.  They will be considered only when
circumstances beyond your control prevent timely completion of the course.  You can not be granted an incomplete
unless you are passing the course at the time you request the incomplete.

Attendance Policy:

I expect you to attend every class and be
prompt. If you are late, please enter quietly so as not to disrupt the class. I
would rather you come late than miss an entire class.  If you have to miss class, it is YOUR
responsibility to get any material you may have missed from another student in
the class.  If you tell a friend in
advance, they can take notes for you..
If you must miss a class, please let me know via e-mail before the class
or as soon afterwards as is possible.

Written Work Policy:

All work done and turned
in for grading must be computer generated and printed! This includes charts,
pictures, drawings, as well as text. DO NOT turn in work that is hand written
unless I specifically announce that it is okay.  It must have your name, course number,
semester (Spring 2009) and date of submission in the upper left corner of the
first page, and multiple pages  must be
stapled together. (Buy a tot stapler if you don't have a stapler at home).

Email Policy:

When you write to me to
ask a question or make a comment, please use your own school account whenever
possible and make sure that your mailbox has
room for me to respond to you.  If
you use another account, make sure you identify yourself as I will not open
mail if I can't identify the sender.
I read e-mail regularly and respond to each and every message.

The Honor System:

I uphold the JMU Honor
Code. Unauthorized collaboration will be punished as will other violations of
the JMU Honor System. Some violations to be aware of:

1.       Sharing
of computer account passwords for any reason.

2.     Allow
another student to use your computer account unsupervised.

3.     Giving
or receiving help when we have asked you to work alone.

4.     Sharing
documents or parts thereof electronically.

You are all here to
learn, not only from me, but also from each other. I encourage you to work
together towards solutions and to share your knowledge with your
classmates.  A number of assignments
(such as the projects) will be group assignments.  Others will be individual assignments
(programs, homework, quizzes and tests). I expect that you UNDERSTAND
anything that you turn in to me. If you do not at least know what’s
going on in the code, do NOT take credit for it. Please note that signing a
roll for another student is considered cheating and will result in a minimum
one-semester suspension from the university.

Grades:

Grades will be clearly
indicated on graded work when it is returned to you.  It is your responsibility to keep all
graded work until the end of the semester in case you wish to dispute your
grade.  Grades will  be posted on Blackboard

Missing Tests / Exams: -

Don't!  If there is an unavoidable reason for
you to miss a test, you must inform me in advance and it may be possible
for you to make it up. If you miss a test and inform me afterwards, then,
depending on the reason, you may be allowed to make it up (with a 25 point
penalty).  If you miss the final
exam, you are out of luck and will not pass the course (i.e. you will earn a
grade of F) regardless of your average at that point.

Final Grades:

Final grades will be
available as soon as I have finished grading all work for the course and
submitted the grades.  Final grades
may only be changed if there is a clerical error in the computation or
recording of your grade. Please have all of your graded work in your possession
when you come to see me if you believe an error has been made.

Extra Credit:

There will be no extra
credit.   Do the best job you
possibly can on work and assigned readings.  If you do not have time to fully
complete assignments, you won't have time for extra credit.

Crisis:

If you get seriously ill
or have some family crisis that causes you to miss a deadline, please get in
touch with me as soon as possible.
I will work with you to help you complete the course.

Advice:

·
LEARN!!! Listen with an open mind. Be
skeptical of ideas presented. Do assignments with enthusiasm. The assignments
are to aid in your learning, not because I feel you need something to do.
College has many purposes: to get you a job, to prove to the world that you can
solve problems well, and to educate you.
Learning need not be a chore. For whatever reason you’re here,
realize that I am here to help you learn.
I can't however, learn for you.
You must do it for yourself.

·
PREPARE and REVIEW!!!  Prepare for class and review afterwards.
Doing the assigned readings before lecture helps greatly in understanding the
material as it is presented. Review the lecture material (and your notes) after
lecture (the next day perhaps) to make sure that it all still makes sense. Plan
to spend at least 2-3 hours of time outside of class for every hour in class

·
BE AWARE!!!  Know what the course policies are and
carefully study the grading scheme for the course.  You can see that you will be submitting
a lot of work to me.  It is important
to understand that it is the totality of your work that will determine your
grade.  No one quiz can seriously
affect your grade.  You should
retain all graded work that is returned to you so that you can study from it
and learn from your mistakes.  In
addition, should you believe that your grade has been incorrectly calculated,
the graded work will provide the basis for re-evaluation.

·
ENJOY!!!  Computer science is fun.  It is a fascinating major and one which
you will find challenging and rewarding.
It’s not easy but it can be exciting and exhilarating.  Everything takes longer than expected so
to keep it fun, keep up to date.
This course may be one of the most useful courses you will take in terms
of your future in the field.

Semester Registration and Withdrawal Information

The deadlines for dropping and/or adding spring semester
classes on e-campus are as follows (dropping a class after these dates through
the course adjustment deadlines result in a “W” grade on the
transcript and tuition charges):   Semester Class – Tuesday, January 20,
2009

The deadlines for adding classes with instructor and
academic unit head signatures are as follows Semester class:  Thursday,
January 29, 2009

Getting an override into a full class does not automatically
enroll the student in class.  You  must register on e-campus or, if the add is made between January 21st and
January 29th, at the Registration Services counter in Warren Hall.

The course adjustment deadlines (to withdraw with a
“W” grade or change credit options (from graded credit to credit/no
credit or credit/no credit to graded credit)) are as follows:

Semester Class
– Friday, March 20, 2009

After the course
adjustment deadlines, a student cannot withdraw from a class through e-campus
but may request a withdrawal directly from the instructor of a course.