 |
CS 216 - Data Structures
Course Information |
Course Overview
The focus of this course is data structures, ways to organize data (e.g. linked
lists, hash tables), and algorithms (e.g. sorting, searching), ways to process
data. Our goal is to develop your problem-solving abilities by providing a
deep understanding of the data structures and algorithms computer scientists
find most useful. As you seek to solve new problems in the future, you
will likely associate a new problem to similar problems
in your experience. Drawing from data structures and algorithms you've
previously encountered, you'll synthesize new approaches. Thus, it
is important for you to be equipped with valuable, broadly-applicable tools
for problem-solving. This is our primary aim. By implementing common data structures
and algorithms from language-neutral specification, you will gain a broad, language-independent maturity with data
structures and algorithms.
Learning Objectives
- Understand, implement, and test fundamental data structures such as
stacks, queues, hash tables, and binary search trees.
- Derive and compare computational time and space complexities to better
understand tradeoffs in data structures selection.
- Gain skill in the implementation of language-independent pseudocode
specifications.
Text
Instructor
Todd Neller
Lecture: Tu, Th, 1:10-2:25PM, Glatfelter 112
Office: Glatfelter 209
Office Hours: MWF 11-11:50AM or by appointment.
Note:
Generally, feel free to drop in if my office door is open. If it
is closed, I'm desperately seeking to keep on top of things and rabid attack
ferrets may drop from the ceiling in my defense.
Phone: 337-6643
E-mail:
Grading
80% Assignments
10% Quizzes/Exams
10% Class Attendance/Participation
You are responsible to know the material from each lecture and reading
assignment before the start of the next class. Homework is due at
the beginning of lecture on the due date. Late homework will not
necessarily be accepted. Code must be a legal program in the
relevant language in order to be graded. (It need not be free from logic
errors.) For compiled languages, this means that the program must compile
without error. For interpreted languages, this means it must be
interpretable without error. Class attendance
and participation is required. If you attend all classes and are
willing to participate, you'll get 100% for this part of your grade.
Even if you know enough to give a particular lecture, please consider the
value of helping your peers during in-class exercises
Honor Code
Honesty, Integrity, Honor. These are more important than anything we
will teach in this class. Students can and are encouraged to help each
other understand course concepts, but all graded work must be done independently.
The work you submit (including both code and problem solving ideas expressed
in the code) should be your independent work. For detailed information
about the honor code, see
http://www.gettysburg.edu/about/offices/provost/advising/honor_code/index.dot
.