Entries
36 entries
Fundamentals
Algorithms, data structures, computational thinking, and programming paradigms that form the foundation of software development.
Data Structures
- Arrays — Contiguous memory storage
- Linked Lists — Node-based sequential storage
- Stacks — LIFO data structure
- Queues — FIFO data structure
- Hash Tables — Key-value lookup
- Binary Search Trees — Ordered tree structures
- B-Trees — Balanced multi-way search trees
- Heaps — Priority-based tree structure
- Graphs — Vertex and edge relationships
- Tries — Prefix tree for string operations
- Sets — Unique element collections
- Data Structures Overview — Comparative guide
Algorithms
- Sorting Algorithms — Ordering data efficiently
- Searching Algorithms — Finding elements in data
- Graph Traversal — BFS, DFS, and traversal strategies
- Shortest Path — Dijkstra, Bellman-Ford, and variants
- Divide and Conquer — Recursive problem decomposition
- Dynamic Programming — Optimal substructure and memoization
- Greedy Algorithms — Locally optimal choices
- String Algorithms — Pattern matching and text processing
- Recursion — Self-referential problem solving
- Bit Manipulation — Low-level binary operations
Paradigms
- Functions — Modular code organization
- Variables and Types — Data representation
- Control Flow — Branching and decision logic
- Loops — Iteration patterns
- Scope and Closures — Variable visibility and capture
- Memory Management — Allocation, deallocation, and garbage collection
- Error Handling — Exception and error management
- Code Organization — Structuring code for maintainability
- Concurrency — Parallel and concurrent execution
- State Machines — Finite automata and state transitions
- Regular Expressions — Pattern matching with formal grammars
Complexity
- Big O Notation — Asymptotic analysis of algorithms
- Floating-Point Arithmetic — Numerical precision and representation
- Debugging Techniques — Systematic approaches to finding bugs
Related Resources
- Architecture Patterns - Applied patterns from TestKitchen
- Architecture Domain - System-level design
Sources
Primary references for this domain:
- The Algorithm Design Manual - Steven Skiena
- Introduction to Algorithms - CLRS
- Structure and Interpretation of Computer Programs - Abelson & Sussman