Course Description
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. Introduction to the Java programming language.
Lectures
-
1. Developing a Simple Program
Berkeley
Computer Science
Paul Hilfinger -
2. More on Simple Programs
Berkeley
Computer Science
Paul Hilfinger -
3. Values and Containers
Berkeley
Computer Science
Paul Hilfinger -
4. Simple Pointer Manipulation
Berkeley
Computer Science
Paul Hilfinger -
5. Arrays and Objects
Berkeley
Computer Science
Paul Hilfinger -
6. Object-Oriented Mechanisms
Berkeley
Computer Science
Paul Hilfinger -
7. Interfaces and Abstract Classes
Berkeley
Computer Science
Paul Hilfinger -
8. Abstract Methods and Classes, Continued
Berkeley
Computer Science
Paul Hilfinger -
9. Examples of Interfaces
Berkeley
Computer Science
Paul Hilfinger -
10. Misc. Support for Abstraction; Exceptions
Berkeley
Computer Science
Paul Hilfinger -
11. Misc. Support for Abstraction, Continued
Berkeley
Computer Science
Paul Hilfinger -
12. Numbers
Berkeley
Computer Science
Paul Hilfinger -
13. Algorithmic Analysis I
Berkeley
Computer Science
Paul Hilfinger -
14. Algorithmic Analysis II
Berkeley
Computer Science
Paul Hilfinger -
15. Collections Overview
Berkeley
Computer Science
Paul Hilfinger -
16. Paradox of Voting
Berkeley
Computer Science
Paul Hilfinger -
17. Resource Curse
Berkeley
Computer Science
Paul Hilfinger -
18. Getting a View - Sublists
Berkeley
Computer Science
Paul Hilfinger -
19. Data Structures Exam Review
Berkeley
Computer Science
Paul Hilfinger -
20. Trees
Berkeley
Computer Science
Paul Hilfinger -
21. Trees, Searching
Berkeley
Computer Science
Paul Hilfinger -
22. Generic Programming
Berkeley
Computer Science
Paul Hilfinger -
23. Priority Queues, Range Queries
Berkeley
Computer Science
Paul Hilfinger -
24. Hashing
Berkeley
Computer Science
Paul Hilfinger -
25. Sorting
Berkeley
Computer Science
Paul Hilfinger -
26. Sorting, Continued
Berkeley
Computer Science
Paul Hilfinger -
27. Balanced Search Structures
Berkeley
Computer Science
Paul Hilfinger -
28. Balanced Search Structures, Continued
Berkeley
Computer Science
Paul Hilfinger -
29. Pseudo-Random Sequences
Berkeley
Computer Science
Paul Hilfinger -
30. Backtracking Search, Game Trees
Berkeley
Computer Science
Paul Hilfinger -
31. Enumeration Types, Threads, and Concurrency
Berkeley
Computer Science
Paul Hilfinger -
32. Threads and Concurrency, Continued
Berkeley
Computer Science
Paul Hilfinger -
33. Graphs, Introduction
Berkeley
Computer Science
Paul Hilfinger -
34. Graphs, Minimal Spanning Trees, Union-find
Berkeley
Computer Science
Paul Hilfinger -
35. Graphs, Continued
Berkeley
Computer Science
Paul Hilfinger -
36. Dynamic Programming
Berkeley
Computer Science
Paul Hilfinger -
37. Storage Management
Berkeley
Computer Science
Paul Hilfinger -
38. Storage Management, Continued, Reflection
Berkeley
Computer Science
Paul Hilfinger -
39. Data Structures Course Summary
Berkeley
Computer Science
Paul Hilfinger
Discussion