Lectures (Video)
- 1. Course Introduction
- 2. Developing a Simple Program
- 3. Mechanics of Objects
- 4. Single Pointer Manipulation
- 5. Arrays and Objects
- 6. Growing an Array
- 7. Java Library List Classes
- 8. Object-Oriented Mechanisms
- 9. Interfaces and Abstract Classes
- 10. A Puzzle
- 11. Comparable and Reader
- 12. Various Odds and Ends in Support of Abstracton
- 13. Modularization Facilities in Java
- 14. Access Control (Static Only)
- 15. Integers
- 16. Bit Twiddling - Cost Measures
- 17. Asymptotic Cost
- 18. Merge Sort
- 19. Views - Maps
- 20. Implementing with Arrays
- 21. Arrays - cont
- 22. Introduction to Trees
- 23. Tree Representation and Searching
- 24. Java Support for Generic Programming
- 25. Prority Queues, Range Queries, Java Utilities
- 26. Hashing
- 27. Hashing - Cont.
- 28. Classifications and Sorting
- 29. Sorting - cont.
- 30. Balanced Search Structures
- 31. Balanced Search Structures (cont)
- 32. Pseudo Random Numbers
- 33. Pseudo Random Numbers (cont)
- 34. Game Trees, Minimax
- 35. Threads and Concurrency
- 36. Graphs, Instroduction
- 37. Minimal spanning trees, Union-find
- 38. Dynamic Programming
- 39. Storage Management
- 40. Project Overview
- 41. Storage Management - Project
- 42. Review
Data Structures
Course Summary
This course is based on CS 61B Data Structures, Fall 2007 made available by University of California, Berkeley: Webcast.Berkeley under the Creative commons BY-NC-ND 2.5 license.
This course is taught by Prof. Paul Hilfinger in University of California, Berkeley. It covers fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures; arrays strings, and hash tables. Storage management. Elementary principles of software engineering. Abstract data types. Algorithms for sorting and searching. The course includes an introduction to the Java programming language. A good set of lecture notes is available for this course.
Reading Material
1. Head First Java, 2nd EditionSierra and Bates, Head First Java, 2nd Edition, O’Reilly, 2005, ISBN 9780596009205
(Click the button below to see a preview of the book)
2. Pragmatic Unit Testing in Java with JUnit
Hunt and Thomas, Pragmatic Unit Testing in Java with JUnit, The Pragmatic Bookshelf, 2004, ISBN 9780974514017
3. The Java Language Specification, Third Edition
James Gosling, Bill Joy, Guy Steele, and Gilad Bracha, The Java Language Specification, Third Edition, Addison-Wesley Professional, 2005
(Click the button below to see a preview of the book, 2nd edition)
Course Material
1. Documentation on software tools - Emacs, GJDB, Subversion (382 KB pdf)2. Data Structures (Into Java) - Paul Hilfinger (1.4 MB pdf)
3. Emacs Quick Guide (43 KB pdf)
4. Assorted Materials on Java - Paul Hilfinger (606 KB pdf)
Other Resources
Not available.Software
1. GNU EmacsGNU Emacs is an extensible, customizable text editor and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing.
2. Eclipse
A Java IDE but Eclipse is now an open source community whose projects are focused on building an extensible development platform, runtimes and application frameworks for building, deploying and managing software across the entire software lifecycle.
Discussion Forum
For discussion on this topic, please go to the relevant forum for Data Structures. Click the button below to open the forum page in a new window.