Welcome to Data Structures (and Algorithms)!
You're in the right place if you want to improve your Java programming skills and learn lots about the various ways to organize data efficiently for your applications.
Basics
Catalog Description: 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.
Prerequisite(s): 600.107: Introduction to Programming in Java (or equivalent); 600.120: Intermediate Programming can be helpful as well.
Academic Integrity: It is your responsibility to adhere to the Department Integrity Code and other applicable university regulations. Feel free to email us your questions or concerns.
Universal Insecurity Clause: Whenever you are unclear about the requirements for a given grade item such as an assignment or a presentation, it is your responsibility to contact the instructor and ask for clarification.
Disability Services: Any student with a disability who may need accommodations in this class must obtain an accommodation letter from Student Disability Services, 385 Garland, (410) 516-4720, studentdisabilityservices@jhu.edu
Illness and Class Attendance: If you have to miss class due to illness, please inform your instructor as soon as possible. You do not need a doctor's note if you miss a class or two, but if your illness affects grade items such as exams or assignments, you should request a doctor's note and submit it to your instructor once you return to school.
Religious Holidays: Religious holidays are valid reasons to be excused from class. Students who must miss a class or an examination because of a religious holiday must inform the instructor as early in the semester as possible in order to be excused from class or to make up any work that is missed.
Coordinates
Lecture:
Monday, Tuesday, Thursday, Friday, 9:30 am – noon
Location:
226 Maryland Hall
Midterm Exam:
Tuesday, July 17, 9:30 am – 10:15 am
Final Exam:
Friday, August 3, 10:45 am – 11:30 am
Text Books (recommended, not required):
Programming in Java:
- Robert Sedgewick, Kevin Wayne: Introduction to Programming in Java, Addison-Wesley, 2008. [Buy]
- Peter Sestoft: Java Precisely, 2nd edition, MIT Press, 2005. [Buy] [Old PDF]
Algorithms and Data Structures:
- Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein: Introduction to Algorithms, 3rd edition, MIT Press, 2009. [Buy]
- Robert Sedgewick, Kevin Wayne: Algorithms, 4th edition, Addison-Wesley, 2011. [Buy]