Johns Hopkins Computer Science Home
Johns Hopkins University The Whiting School of Engineering

Data Structures
Prof. Jason Eisner
Course # 600.226 - Spring 2004

data structures t-shirt


getting started with WebCT and configuring your browser (Linux is fine); be sure to allow popups

Basic Course Information

Welcome! Virtually any computer program - no matter how interesting or boring - has to store data carefully, to make it efficient to retrieve, summarize, search, or change the data as the program requires. This course covers some of the most commonly used data structures and their methods. You'll learn not only how to use these data structures, but also what algorithms they use internally, so that you can figure out when to use them and how to design new data structures. The course will also build up your skills in object-oriented design and basic analysis of algorithms. In short, this is the course where you turn into a real programmer.

Course catalog entry: This course covers the design and implementation of data structures including arrays, stacks, queues, linked lists, binary trees, heaps, balanced trees (e.g. 2-3 trees, AVL-trees) and graphs. Other topics include sorting, hashing, memory allocation, and garbage collection. Course work involves both written homework and Java programming assignments. Prereq: 600.107 (preferred) or 600.109 required; intermediate programming (600.120 or equivalent) highly recommended.

Lectures:MW 4-5:15 pm in Shaffer 100.
Note that class lasts the full 75 minutes, so we get 2 x 75 instead of 3 x 50 minutes per week.
Web page: - course site - for online warmups etc.
Mailing lists: (image of email address) - announcements, free discussion
(image of email address) - questions for CAs/TA/prof
(image of email address) - report problems with the mailing list
Prof:Jason Eisner - (image
of email address) (or (image of email address)) - office hours Mon+Wed after class in NEB 324A


We have help available in the CS undergrad lab (NEB 225/227) at Tue 8-10 (Kim), Thu 4-6 (Sam), Fri 12:30-2:30 (Ray).

Sam Small - (image of
email address) (or (image
of email address))

Raymond Buse - (image
of email address) (or (image of email address))
Kim Jordan - (image
of email address) (or (image of email address))
Textbook: The purchase links below help JHU's grad students.
Required: Goodrich & Tamassia, Data Structures, 3rd edition - ISBN 0471469831. amazon, barnes&noble, textbookx, ebay. Also fine to use the 2nd edition if you can get it cheaper (differences) - ISBN 0471383678, amazon, barnes&noble, textbookx, ebay
Recommended: Arnold, Gosling & Holmes, The Java Programming Language, 3rd edition - ISBN 0201704331, amazon, barnes&noble, textbookx, ebay
Recommended: Flanagan, Java in a Nutshell, 4th edition - ISBN 0596002831 amazon, barnes&noble, textbookx, ebay
Policies: Academic integrity: read this! It says your work must be your own. The only exception for this course (so far) is that you may collaborate on the online warmups.
Intellectual engagement: much encouraged
Grading: 10% online warmups and class participation (graded on effort only), 45% programming assignments, 15% midterm, 30% final.
Submission procedure: instructions, upload page
Lateness policy: 1 day late = 10% off, 2 days late = 20% off, etc., up to a maximum of 5 days. For example, if the homework is due 4pm Friday, then 3pm Saturday would be 1 day late and 5pm Saturday would be 2 days late. (Of course, if you have a non-academic emergency, talk to academic advising to get a Dean's note.)


Additional Resources