Introduction to Computer Science

  1. Algorithms and Data Structures
    1. Algorithm Fundamentals
      1. Algorithm Definition
        1. Input-Output Specification
          1. Finiteness
            1. Definiteness
              1. Effectiveness
                1. Correctness
                2. Algorithm Representation
                  1. Natural Language Description
                    1. Pseudocode
                      1. Flowcharts
                        1. Programming Language Implementation
                        2. Algorithm Design Strategies
                          1. Brute Force
                            1. Divide and Conquer
                              1. Greedy Algorithms
                                1. Dynamic Programming
                                  1. Backtracking
                                2. Algorithm Analysis
                                  1. Performance Measurement
                                    1. Empirical Analysis
                                      1. Theoretical Analysis
                                      2. Time Complexity Analysis
                                        1. Best Case Analysis
                                          1. Worst Case Analysis
                                            1. Average Case Analysis
                                              1. Amortized Analysis
                                              2. Space Complexity Analysis
                                                1. Memory Usage
                                                  1. Auxiliary Space
                                                  2. Asymptotic Notation
                                                    1. Big O Notation
                                                      1. Big Omega Notation
                                                        1. Big Theta Notation
                                                          1. Common Complexity Classes
                                                            1. Constant Time O(1)
                                                              1. Logarithmic Time O(log n)
                                                                1. Linear Time O(n)
                                                                  1. Linearithmic Time O(n log n)
                                                                    1. Quadratic Time O(n²)
                                                                      1. Exponential Time O(2ⁿ)
                                                                  2. Fundamental Algorithms
                                                                    1. Searching Algorithms
                                                                      1. Linear Search
                                                                        1. Algorithm Implementation
                                                                          1. Time Complexity Analysis
                                                                            1. Use Cases
                                                                            2. Binary Search
                                                                              1. Prerequisites
                                                                                1. Algorithm Implementation
                                                                                  1. Time Complexity Analysis
                                                                                    1. Variations
                                                                                  2. Sorting Algorithms
                                                                                    1. Simple Sorting Algorithms
                                                                                      1. Bubble Sort
                                                                                        1. Selection Sort
                                                                                          1. Insertion Sort
                                                                                          2. Efficient Sorting Algorithms
                                                                                            1. Merge Sort
                                                                                              1. Divide and Conquer Approach
                                                                                                1. Merging Process
                                                                                                  1. Time Complexity Analysis
                                                                                                  2. Quick Sort
                                                                                                    1. Partitioning Strategy
                                                                                                      1. Pivot Selection
                                                                                                        1. Time Complexity Analysis
                                                                                                        2. Heap Sort
                                                                                                          1. Heap Data Structure
                                                                                                            1. Heapify Process
                                                                                                          2. Specialized Sorting
                                                                                                            1. Counting Sort
                                                                                                              1. Radix Sort
                                                                                                                1. Bucket Sort
                                                                                                              2. String Algorithms
                                                                                                                1. String Matching
                                                                                                                  1. Pattern Recognition
                                                                                                                    1. String Manipulation
                                                                                                                  2. Data Structure Fundamentals
                                                                                                                    1. Abstract Data Types
                                                                                                                      1. Interface vs Implementation
                                                                                                                        1. Data Abstraction
                                                                                                                          1. Encapsulation
                                                                                                                          2. Data Structure Operations
                                                                                                                            1. Insertion
                                                                                                                              1. Deletion
                                                                                                                                1. Traversal
                                                                                                                                  1. Update
                                                                                                                                  2. Data Structure Selection Criteria
                                                                                                                                    1. Time Complexity Requirements
                                                                                                                                      1. Space Complexity Requirements
                                                                                                                                        1. Operation Frequency
                                                                                                                                      2. Linear Data Structures
                                                                                                                                        1. Arrays
                                                                                                                                          1. Static Arrays
                                                                                                                                            1. Memory Layout
                                                                                                                                              1. Index-Based Access
                                                                                                                                                1. Array Operations
                                                                                                                                                2. Dynamic Arrays
                                                                                                                                                  1. Resizing Strategies
                                                                                                                                                    1. Amortized Analysis
                                                                                                                                                    2. Multi-Dimensional Arrays
                                                                                                                                                      1. Matrix Representation
                                                                                                                                                        1. Memory Layout
                                                                                                                                                      2. Linked Lists
                                                                                                                                                        1. Singly Linked Lists
                                                                                                                                                          1. Node Structure
                                                                                                                                                            1. Basic Operations
                                                                                                                                                              1. Memory Management
                                                                                                                                                              2. Doubly Linked Lists
                                                                                                                                                                1. Bidirectional Navigation
                                                                                                                                                                  1. Operation Efficiency
                                                                                                                                                                  2. Circular Linked Lists
                                                                                                                                                                    1. Implementation Variations
                                                                                                                                                                      1. Use Cases
                                                                                                                                                                    2. Stacks
                                                                                                                                                                      1. LIFO Principle
                                                                                                                                                                        1. Stack Operations
                                                                                                                                                                          1. Push Operation
                                                                                                                                                                            1. Pop Operation
                                                                                                                                                                              1. Peek/Top Operation
                                                                                                                                                                              2. Stack Applications
                                                                                                                                                                                1. Function Call Management
                                                                                                                                                                                  1. Expression Evaluation
                                                                                                                                                                                    1. Undo Operations
                                                                                                                                                                                    2. Stack Implementation
                                                                                                                                                                                      1. Array-Based Implementation
                                                                                                                                                                                        1. Linked List Implementation
                                                                                                                                                                                      2. Queues
                                                                                                                                                                                        1. FIFO Principle
                                                                                                                                                                                          1. Queue Operations
                                                                                                                                                                                            1. Enqueue Operation
                                                                                                                                                                                              1. Dequeue Operation
                                                                                                                                                                                                1. Front/Rear Access
                                                                                                                                                                                                2. Queue Variations
                                                                                                                                                                                                  1. Circular Queues
                                                                                                                                                                                                    1. Priority Queues
                                                                                                                                                                                                      1. Double-Ended Queues
                                                                                                                                                                                                      2. Queue Applications
                                                                                                                                                                                                        1. Process Scheduling
                                                                                                                                                                                                          1. Breadth-First Search
                                                                                                                                                                                                            1. Buffer Management
                                                                                                                                                                                                        2. Non-Linear Data Structures
                                                                                                                                                                                                          1. Trees
                                                                                                                                                                                                            1. Tree Terminology
                                                                                                                                                                                                              1. Nodes and Edges
                                                                                                                                                                                                                1. Root Node
                                                                                                                                                                                                                  1. Leaf Nodes
                                                                                                                                                                                                                    1. Internal Nodes
                                                                                                                                                                                                                      1. Parent-Child Relationships
                                                                                                                                                                                                                        1. Tree Height and Depth
                                                                                                                                                                                                                        2. Binary Trees
                                                                                                                                                                                                                          1. Binary Tree Properties
                                                                                                                                                                                                                            1. Tree Traversal Methods
                                                                                                                                                                                                                              1. Inorder Traversal
                                                                                                                                                                                                                                1. Preorder Traversal
                                                                                                                                                                                                                                  1. Postorder Traversal
                                                                                                                                                                                                                                    1. Level-Order Traversal
                                                                                                                                                                                                                                  2. Binary Search Trees
                                                                                                                                                                                                                                    1. BST Properties
                                                                                                                                                                                                                                      1. Search Operations
                                                                                                                                                                                                                                        1. Insertion and Deletion
                                                                                                                                                                                                                                          1. Tree Balancing Concepts
                                                                                                                                                                                                                                          2. Tree Applications
                                                                                                                                                                                                                                            1. File Systems
                                                                                                                                                                                                                                              1. Decision Trees
                                                                                                                                                                                                                                                1. Expression Trees
                                                                                                                                                                                                                                              2. Graphs
                                                                                                                                                                                                                                                1. Graph Terminology
                                                                                                                                                                                                                                                  1. Vertices and Edges
                                                                                                                                                                                                                                                    1. Directed vs Undirected Graphs
                                                                                                                                                                                                                                                      1. Weighted vs Unweighted Graphs
                                                                                                                                                                                                                                                        1. Graph Connectivity
                                                                                                                                                                                                                                                        2. Graph Representation
                                                                                                                                                                                                                                                          1. Adjacency Matrix
                                                                                                                                                                                                                                                            1. Adjacency List
                                                                                                                                                                                                                                                              1. Edge List
                                                                                                                                                                                                                                                              2. Graph Traversal
                                                                                                                                                                                                                                                                1. Depth-First Search
                                                                                                                                                                                                                                                                  1. Breadth-First Search
                                                                                                                                                                                                                                                                  2. Graph Applications
                                                                                                                                                                                                                                                                    1. Social Networks
                                                                                                                                                                                                                                                                      1. Transportation Networks
                                                                                                                                                                                                                                                                        1. Web Page Linking
                                                                                                                                                                                                                                                                      2. Hash Tables
                                                                                                                                                                                                                                                                        1. Hash Function Design
                                                                                                                                                                                                                                                                          1. Collision Resolution
                                                                                                                                                                                                                                                                            1. Chaining
                                                                                                                                                                                                                                                                              1. Open Addressing
                                                                                                                                                                                                                                                                              2. Hash Table Performance
                                                                                                                                                                                                                                                                                1. Applications of Hashing