In nearly every software application, data must be stored and managed to meet the needs (i.e. time and space efficiency) of the user. This course introduces basic data structures and their application using the Java programming language. We will first review the basics of Java and introduce object-oriented design as a strategy for writing understandable and maintainable software. We will then introduce a mathematical framework for evaluating the efficiency of Java code, and develop implementations of basic data structures such as lists, stacks and queues. We will then study searching and sorting algorithms, and introduce recursion as a strategy for improving the running time of these algorithms. This will lead us to study more advanced data structures that are defined recursively, such as trees and heaps. If time permits, we will cover additional topics, such as hash tables and the storage and exploration of graphs.
At the end of this course, students should be able to:
| Telephone: | 413.545.4217 |
| Office: | Knowles Eng. Bldg. 211D |
| Email: | mettu@ecs.umass.edu |
| Office Hours: | Th 4-5p |
| Telephone: | 413.545.3899 |
| Office: | Knowles Eng. Bldg. 314 |
| Email: | asanyal@ecs.umass.edu |
| Office Hours: | Tu 11-12p |
| Name | Office Hours |
| Sailaja Madduri | Monday 12:15-1:15p |
| Deepak Unnikrishnan | Wednesday 9:30-10:30a |