- Von Neumann Architecture
- Processor -> Processes -> Threads
- Memory
- Call Stacks or Stack Frames
- Variable Scope
- What is data?
- Data that’s "connected together" but suitable for different uses -> "structures"
- Top 3 Things We Always Do with Data Structures
- Read some data
- Insert some new data
- Sort the data
- Classic Data Structures and Algorithms
- Linked List structure: good for simple things, easy to read, write; tough to sort
- Binary Tree: good for large data set, easy to read, write, easy to sort
- Graphs: good for networks, flow simulation, harder to read/write, sort
- Big O notation
- Concepts Worth Knowing:
- Concurrency vs Parallism
- Concurrency = one chef multitasking; good when order matters
- Parallelism = multiple chefs; good when order doesn’t matter
- Queueing
- Exception Handling
- Shell/Terminal commands and the "Unix philosophy"
- Unit Testing/Test Driven Development
- Algorithms To Know:
- BubbleSort, Quicksort,
- Djikstra (shortest path), Traveling Saleseman, Breadth-First, Depth-First,
- Huffman Compression, Flood Fill
- The Best Parts of Computer Science
Open office hours / Q&A