Chapter 0 Week 1¶
- 0.1. CS3114 Introduction
- 0.1.1. Introduction
- 0.1.1.1. Introduction
- 0.1.1.2. Administration stuff
- 0.1.1.3. Course Mechanics
- 0.1.1.4. Canvas
- 0.1.1.5. OpenDSA
- 0.1.1.6. Web-CAT
- 0.1.1.7. Milestones
- 0.1.1.8. Course Introduction
- 0.1.1.9. Role in the Curriculum
- 0.1.1.10. Costs and Benefits
- 0.1.1.11. Data Structure
- 0.1.1.12. Logical vs. Physical Form
- 0.1.1.13. Logical vs. Physical Form (2)
- 0.1.1.14. Homework
- 0.1.1.15. Before you leave today
- 0.1.1. Introduction
- 0.2. Program Management
- 0.2.1. Program Management
- 0.2.1.1. Project Management
- 0.2.1.2. Historical Data
- 0.2.1.3. Historical Data 2
- 0.2.1.4. Historical Data 3
- 0.2.1.5. What is the Mechanism?
- 0.2.1.6. How to fail at implementing your project:
- 0.2.1.7. How to succeed at implementing your project
- 0.2.1.8. How to Survive
- 0.2.1.9. Being Organized 1
- 0.2.1.10. Being Organized 2
- 0.2.1.11. Memory Can't Handle It
- 0.2.1.12. Spread Work Over Time
- 0.2.1.13. Incremental Development
- 0.2.1.14. Milestones
- 0.2.1. Program Management
- 0.3. Memory Management
- 0.4. Project 1 Implementation Details
Chapter 1 Week 2¶
- 1.1. Algorithm Analysis
- 1.1.1. Algorithm Analysis
- 1.1.1.1. Algorithm Efficiency
- 1.1.1.2. How to Measure Efficiency?
- 1.1.1.3. Problems, Algorithms, Programs
- 1.1.1.4. Growth Rate Example (1)
- 1.1.1.5. Growth Rate Example (2)
- 1.1.1.6. Growth Rate Graph
- 1.1.1.7. Best, Worst, Average Cases
- 1.1.1.8. Which Analysis to Use?
- 1.1.1.9. Faster Computer or Algorithm?
- 1.1.1.10. Faster Computer or Algorithm? 2
- 1.1.1.11. Asymptotic Analysis: Big-oh
- 1.1.1.12. Big-oh Notation (cont)
- 1.1.1.13. Big-Oh Examples
- 1.1.1.14. Big-Oh Examples (2)
- 1.1.1.15. A Common Misunderstanding
- 1.1.1.16. Big-Omega \(\Omega\)
- 1.1.1.17. Big-Omega Example
- 1.1.1.18. Theta Notation \(\Theta\)
- 1.1.1.19. A Common Misunderstanding
- 1.1.1.20. Simplifying Rules
- 1.1.1.21. Time Complexity Examples (1)
- 1.1.1.22. Time Complexity Examples (2)
- 1.1.1.23. Time Complexity Examples (3)
- 1.1.1.24. Time Complexity Examples (4)
- 1.1.1.25. Binary Search
- 1.1.1.26. Other Control Statements
- 1.1.1.27. Analyzing Problems
- 1.1.1.28. Analyzing Problems: Example
- 1.1.1.29. Space/Time Tradeoff Principle
- 1.1.1.30. Multiple Parameters
- 1.1.1.31. Space Complexity
- 1.1.1. Algorithm Analysis
Chapter 2 Week 3¶
- 2.1. JUnit Testing
- 2.1.1. Testing
- 2.1.2. JUnit testing and code coverage
- 2.1.3. Philosophy
- 2.1.4. A Bad test (1)
- 2.1.5. A Bad test (2)
- 2.1.6. Full test of output
- 2.1.7. Selective Testing of Output
- 2.1.8. What would be good testing for Project 1?
- 2.1.9. Models
- 2.1.10. What if your model is wrong?
- 2.1.11. Regression testing
- 2.2. Clean Code
- 2.3. Lists
- 2.3.1. Lists
- 2.3.1.1. Lists, Stacks, Queues
- 2.3.1.2. List Implementation Concepts
- 2.3.1.3. List ADT (1)
- 2.3.1.4. List ADT (2)
- 2.3.1.5. List ADT (3)
- 2.3.1.6. List ADT Examples
- 2.3.1.7. List Find Function
- 2.3.1.8. Array-Based List Class (1)
- 2.3.1.9. Array-Based List Insert
- 2.3.1.10. Link Class
- 2.3.1.11. Linked List Position (1)
- 2.3.1.12. Linked List Position (2)
- 2.3.1.13. Linked List Position (3)
- 2.3.1.14. Linked List Class (1)
- 2.3.1.15. Linked List Class (2)
- 2.3.1.16. Insertion
- 2.3.1.17. Removal
- 2.3.1.18. Prev
- 2.3.1.19. Overhead
- 2.3.1.20. Comparison of Implementations
- 2.3.1.21. Space Comparison
- 2.3.1.22. Space Example
- 2.3.1.23. Freelist
- 2.3.1.24. Doubly Linked Lists
- 2.3.1.25. Container Class Design Issues
- 2.3.1.26. Doubly Linked Node (1)
- 2.3.1.27. Doubly Linked Insert
- 2.3.1.28. Doubly Linked Remove
- 2.3.1.29. Stacks
- 2.3.1.30. Stack ADT
- 2.3.1.31. Array-Based Stack (1)
- 2.3.1.32. Array-Based Stack (2)
- 2.3.1.33. Linked Stack
- 2.3.1.34. Queues
- 2.3.1.35. Queue Implementation (1)
- 2.3.1.36. Queue Implementation (2)
- 2.3.1.37. Queue Implementation (3)
- 2.3.1.38. Circular Queue (1)
- 2.3.1.39. Circular Queue (2)
- 2.3.1. Lists
- 2.4. Binary Trees Part 1
Chapter 3 Week 4¶
- 3.1. Binary Trees Part 2
- 3.1.1. Binary Trees Part 2
- 3.1.1.1. Full and Complete Binary Trees
- 3.1.1.2. Full Binary Tree Theorem (1)
- 3.1.1.3. Full Binary Tree Theorem (2)
- 3.1.1.4. Full Binary Tree Corollary
- 3.1.1.5. Dictionary
- 3.1.1.6. .
- 3.1.1.7. Dictionary (2)
- 3.1.1.8. Binary Search Trees
- 3.1.1.9. BST as a Dictionary (1)
- 3.1.1.10. BST as a Dictionary (2)
- 3.1.1.11. BST
findhelp
- 3.1.1.12. BST
inserthelp
- 3.1.1.13. BST
deletemax
- 3.1.1.14. BST
removehelp
- 3.1.1.15. .
- 3.1.1.16. BST Analysis
- 3.1.1. Binary Trees Part 2
- 3.2. Binary Trees Part 3
- 3.2.1. Binary Trees Part 3
- 3.2.1.1. Comparison (1)
- 3.2.1.2. Comparison (2)
- 3.2.1.3. KVpair
- 3.2.1.4. .
- 3.2.1.5. KVpair: Generics
- 3.2.1.6. .
- 3.2.1.7. Using the KVpair (1)
- 3.2.1.8. Binary Tree Implementation (1)
- 3.2.1.9. Binary Tree Implementation (2)
- 3.2.1.10. Inheritance (1)
- 3.2.1.11. Inheritance (2)
- 3.2.1.12. Inheritance (3)
- 3.2.1.13. Design Patterns
- 3.2.1.14. Composite (1)
- 3.2.1.15. Composite (2)
- 3.2.1.16. Composite (3)
- 3.2.1.17. Space Overhead (1)
- 3.2.1.18. Space Overhead (2)
- 3.2.1. Binary Trees Part 3