Main Page: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
(183 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<strong>Table of Contents</strong> | <strong>Table of Contents</strong> | ||
=== Computer Science Knowledge Base === | |||
== 1. Introduction to Computer Science == | == 1.0 Introduction to Computer Science == | ||
=== 1.1 What is Computer Science? === | === 1.1 What is Computer Science? === | ||
* 1. | * [[0.0.0 About this Wiki]] | ||
* 1. | |||
* 1. | * [[1.1.1 Definition and Scope]] | ||
* [[1.1.2 Problem-Solving Focus|1.1.2 Problem-Solving - Computational Thinking]] | |||
* [[1.1.3 Interdisciplinary Nature]] | |||
=== 1.2 History of Computing === | === 1.2 History of Computing === | ||
* Early Calculating Devices (Abacus, Pascaline, Leibniz Wheel) | * [[1.2.1 Early Calculating Devices (Abacus, Pascaline, Leibniz Wheel)]] | ||
* Analytical Engine (Babbage & Lovelace) | * [[1.2.2 Analytical Engine (Babbage & Lovelace)]] | ||
* Early Electronic Computers (ENIAC, UNIVAC) | * [[1.2.3 Alan Turing: The Brilliant Mind Who Shaped Our Digital World]] | ||
* Transistors & Integrated Circuits | * [[1.2.3 Early Electronic Computers (ENIAC, UNIVAC)|1.2.4 Early Electronic Computers (ENIAC, UNIVAC)]] | ||
* Personal Computers & the Internet | * [[1.2.5 Transistors & Integrated Circuits]] | ||
* [[1.2.6 Personal Computers & the Internet]] | |||
=== 1.3 Key Figures in Computer Science === | |||
* [[1.3.1 Ada Lovelace, Alan Turing, Grace Hopper, Dennis Ritchie, Linus Torvalds, etc.]] | |||
=== 1.4 Branches of Computer Science === | |||
* 1.4.1 [[1.4.1 Theoretical CS, Algorithms, Data Structures, AI, ML, Cybersecurity, Networking, etc.|Theoretical CS, Algorithms, Data Structures, AI, ML, Cybersecurity, Networking, etc.]] | |||
=== 1.5 [[1.5 How a Computer Works|How a Computer Works]] === | |||
== 2.0 Foundational Concepts == | |||
=== 2.1 Data Representation === | |||
* [[2.1.1 Binary Numbers (Bits, Bytes)#How Computers Understand the World: Foundational Concepts|2.1.1 Binary Numbers (Bits, Bytes)]] | |||
* [[2.1.2 Number Systems (Decimal, Binary, Octal, Hexadecimal)]] | |||
* [[2.1.3 Character Encoding (ASCII, Unicode, UTF-8)]] | |||
* [[2.1.4 Image, Audio, and Video Representation (Basic)]] | |||
=== 2.2 Boolean Algebra & Logic Gates === | |||
* [[2.2.1 AND, OR, NOT, XOR, NAND, NOR gates]] | |||
* [[2.2.2 Truth Tables]] | |||
* [[2.2.3 Boolean Expressions & Simplification]] | |||
=== 2.3 Algorithms & Pseudocode === | |||
* [[2.3.1 Definition of an Algorithm]] | |||
* [[2.3.2 Characteristics of Good Algorithms]] | |||
* [[2.3.3 Representing Algorithms (Flowcharts, Pseudocode)]] | |||
=== 2.4 [[Computational Thinking]] === | |||
* [[2.4.1 Decomposition]] | |||
* [[2.4.2 Pattern Recognition]] | |||
* [[2.4.3 Abstraction]] | |||
* [[2.4.4 Algorithms]] | |||
== 3.0 [[3.0 Programming Fundamentals|Programming Fundamentals]] == | |||
=== 3.1 [[3.1 Programming Paradigms|Programming Paradigms]] === | |||
* 3.1.1 [[3.1.1 Procedural Programming|Procedural Programming]] | |||
* 3.1.2 [[3.1.2 Object-Oriented Programming (OOP) - Basic Concepts|Object-Oriented Programming (OOP) - Basic Concepts]] | |||
* [[3.1.3 Functional Programming (Basic Concepts)]] | |||
=== 3.2 [[3.2 Data Types & Variables|Data Types & Variables]] === | |||
* 3.2.1 [[3.2.1 Primitive Data Types (Integers, Floats, Booleans, Characters)|Primitive Data Types (Integers, Floats, Booleans, Characters)]] | |||
* 3.2.2 [[3.2.2 Reference Data Types (Strings, Objects)|Reference Data Types (Strings, Objects)]] | |||
* [[3.2.3 Variable Declaration and Initialization]] | |||
=== 3.3 [[3.3 Control Structures|Control Structures]] === | |||
* [[Conditional Statements (if, else if, else, switch)#3.3.1 Conditional Statements (if, else if, else, switch)|3.3.1 Conditional Statements (if, else if, else, switch)]] | |||
* 3.3.2 [[3.3.2 Looping Constructs (for, while, do-while)|Looping Constructs (for, while, do-while)]] | |||
=== 3.4 [[3.4 Functions/Methods|Functions/Methods]] === | |||
* 3.4.1 [[3.4.1 Definition and Purpose|Definition and Purpose]] | |||
* 3.4.2 [[3.4.2 Parameters and Return Values|Parameters and Return Values]] | |||
* 3.4.3 [[3.4.3 Scope|Scope]] | |||
=== 3.5 [[Basic Data Structures]] === | |||
* 3.5.1 [[3.5.1 Arrays (One-dimensional, Multi-dimensional)|Arrays (One-dimensional, Multi-dimensional)]] | |||
* 3.5.2 [[Strings (Manipulation, Common Operations)]] | |||
=== 3.6 [[Error Handling & Debugging]] === | |||
* 3.6.1 [[3.6.1 Types of Errors (Syntax, Runtime, Logic)|Types of Errors (Syntax, Runtime, Logic)]] | |||
* 3.6.2 [[3.6.2 Exception Handling (try-catch)|Exception Handling (try-catch)]] | |||
* 3.6.3 [[3.6.3 Debugging Techniques and Tools|Debugging Techniques and Tools]] | |||
=== 4.0 [[4.0 Data Structures Algorithms (DSA)|Data Structures Algorithms (DSA)]] === | |||
==== 4.1 [[4.1 Data Structures|Data Structures]] ==== | |||
* '''4.1.1 [[4.1.1 Linear Data Structures#4.1.1 Linear Data Structures|Linear Data Structures]]:''' | |||
** 4.1.1.1 [[4.1.1 Linear Data Structures#4.1.1 Linear Data Structures|Arrays (Fixed-size, Dynamic Arrays)]] | |||
** 4.1.1.2 [[4.1.1.2 Linked Lists (Singly, Doubly, Circular)|Linked Lists (Singly, Doubly, Circular)]] | |||
** 4.1.1.3 [[4.1.1.3 Stacks (LIFO)|Stacks (LIFO)]] | |||
** 4.1.1.4 [[4.1.1.4 Queues (FIFO, Priority Queues)|Queues (FIFO, Priority Queues)]] | |||
* '''[[4.1.2 Non-Linear Data Structures]]:''' | |||
** 4.1.2.1 [[4.1.2.1 Trees (Binary Trees, Binary Search Trees, AVL Trees, Red-Black Trees)|Trees (Binary Trees, Binary Search Trees, AVL Trees, Red-Black Trees)]] | |||
** 4.1.2.2 [[4.1.2.2 Graphs (Directed, Undirected, Weighted)|Graphs (Directed, Undirected, Weighted)]] | |||
** 4.1.2.3 [[4.1.2.3 Hash Tables (Hashing Functions, Collision Resolution)|Hash Tables (Hashing Functions, Collision Resolution)]] | |||
** 4.1.2.4 [[4.1.2.4 Heaps (Min-Heap, Max-Heap)|Heaps (Min-Heap, Max-Heap)]] | |||
* '''4.2 [[4.2 Algorithms|Algorithms]]''' | |||
** '''4.2.1 [[4.2.1 Sorting Algorithms|Sorting Algorithms]]:''' | |||
*** 4.2.1.1 [[4.2.1.1 Bubble Sort, Selection Sort, Insertion Sort|Bubble Sort, Selection Sort, Insertion Sort]] | |||
*** 4.2.1.2 [[4.2.1.2 Merge Sort, Quick Sort (Divide and Conquer)|Merge Sort, Quick Sort (Divide and Conquer)]] | |||
*** 4.2.1.3 [[4.2.1.3 Heap Sort, Radix Sort|Heap Sort, Radix Sort]] | |||
** '''4.2.2 [[4.2.2 Searching Algorithms|Searching Algorithms]]:''' | |||
*** 4.2.2.1 [[4.2.2.1 Linear Search|Linear Search]] | |||
*** 4.2.2.2 [[4.2.2.2 Binary Search|Binary Search]] | |||
** '''4.2.3 [[4.2.3 Graph Algorithms|Graph Algorithms]]:''' | |||
*** 4.2.3.1 [[4.2.3.1 Breadth-First Search (BFS)|Breadth-First Search (BFS)]] | |||
*** 4.2.3.2 Depth-First Search (DFS) | |||
*** 4.2.3.3 Dijkstra's Algorithm (Shortest Path) | |||
*** 4.2.3.4 Minimum Spanning Trees (Prim's, Kruskal's) | |||
** '''4.2.4 Dynamic Programming:''' | |||
*** 4.2.4.1 Memoization, Tabulation | |||
*** 4.2.4.2 Common DP Problems (Fibonacci, Knapsack) | |||
** '''4.2.5 Recursion:''' | |||
*** 4.2.5.1 Base Cases, Recursive Steps | |||
*** 4.2.5.2. Tail Recursion | |||
** '''4.2.6 Greedy Algorithms''' | |||
'''5.0 [[5.0 Computer Architecture & Organization|Computer Architecture & Organization]]''' | |||
* '''5.1 [[5.1 CPU Components|CPU Components]]''' | |||
** 5.1.1 [[5.1.1 Arithmetic Logic Unit (ALU)|Arithmetic Logic Unit (ALU)]] | |||
** 5.1.2 [[5.1.2 Control Unit (CU)|Control Unit (CU)]] | |||
** 5.1.3 [[5.1.3 Registers|Registers]] | |||
** 5.1.4 [https://wiki.omnivision.website/index.php?title=5.1.4_Instruction_Cycle_(Fetch,_Decode,_Execute,_Store)&veaction=edit§ion=1 Instruction Cycle (Fetch, Decode, Execute, Store)] | |||
* '''5.2 [[5.2 Memory Hierarchy|Memory Hierarchy]]''' | |||
** 5.2.1 [[5.2.1 Cache Memory (L1, L2, L3)|Cache Memory (L1, L2, L3)]] | |||
** 5.2.2 [[5.2.2 RAM (Random Access Memory)|RAM (Random Access Memory)]] | |||
** 5.2.3 [[5.2.3 ROM (Read-Only Memory)|ROM (Read-Only Memory)]] | |||
** 5.2.4 [[5.2.4 Virtual Memory (Basic Concept)|Virtual Memory (Basic Concept)]] | |||
* '''5.3 [[5.3 Input/Output Systems|Input/Output Systems]]''' | |||
** 5.3.1 [https://wiki.omnivision.website/index.php?title=5.3.1_I%2FO_Devices_and_Controllers&wvprov=sticky-header I/O Devices and Controllers] | |||
** 5.3.2 [https://wiki.omnivision.website/index.php?title=5.3.2_Polling%2C_Interrupts%2C_DMA&wvprov=sticky-header Polling, Interrupts, DMA] | |||
* '''5.4 [[5.4 Instruction Sets|Instruction Sets]]''' | |||
** [[5.4.1 RISC vs. CISC]] | |||
* '''5.5 [[5.5 Assembly Language (Basic Concepts)|Assembly Language (Basic Concepts)]]''' | |||
* 5.6 [[5.6 How a Computer Works|How a Computer Works]] | |||
'''6.0 [[6.0 Operating Systems (OS)|Operating Systems (OS)]]''' | |||
* '''6.1 [https://wiki.omnivision.website/index.php?title=6.1_Role_and_Functions_of_an_OS&veaction=edit Role and Functions of an OS]''' | |||
** 6.1.1 [https://wiki.omnivision.website/index.php?title=6.1_Role_and_Functions_of_an_OS&veaction=edit Resource Management, Process Management, Memory Management, File Management] | |||
* '''6.2 [[6.2 Process Management|Process Management]]''' | |||
** 6.2.1 [[6.2.1 Processes vs. Threads|Processes vs. Threads]] | |||
** 6.2.2 [[6.2.2 Process States|Process States]] | |||
** 6.2.3 [[6.2.3 CPU Scheduling Algorithms (FCFS, SJF, Priority, Round Robin)|CPU Scheduling Algorithms (FCFS, SJF, Priority, Round Robin)]] | |||
** 6.2.4 [[6.2.4 Inter-Process Communication (IPC)|Inter-Process Communication (IPC)]] | |||
* 6.2.5 [[6.2.5 Synchronization (Semaphores, Mutexes)|Synchronization (Semaphores, Mutexes)]] | |||
* '''6.3 [[6.3 Memory Management|Memory Management]]''' | |||
** 6.3.1 [[6.3.1 Paging, Segmentation|Paging, Segmentation]] | |||
** 6.3.2 [[6.3.2 Virtual Memory|Virtual Memory]] | |||
** 6.3.3 [[6.3.3 Page Replacement Algorithms|Page Replacement Algorithms]] | |||
* '''6.4 [[6.4 File Systems|File Systems]]''' | |||
** 6.4.1 [[6.4.1 File Organization, Directory Structures|File Organization, Directory Structures]] | |||
** 6.4.2 [[6.4.2 File Allocation Methods|File Allocation Methods]] | |||
* '''6.5 [[6.5 Concurrency & Deadlock|Concurrency & Deadlock]]''' | |||
** 6.5.1 [[6.5.1 Conditions for Deadlock|Conditions for Deadlock]] | |||
** 6.5.2 [[6.5.2 Deadlock Prevention, Avoidance, Detection, Recovery|Deadlock Prevention, Avoidance, Detection, Recovery]] | |||
'''7.0 [[7.0 Images & Graphics|Images & Graphics]]''' | |||
* '''7.1 [[7.1 What is a Digital Image?|What is a Digital Image]]?''' | |||
** 7.1.1 [[7.1.1 Pixels and Resolution|Pixels and Resolution]] | |||
** 7.1.2 [[7.1.2 How Computers See Color (RGB, basic idea)|How Computers See Color (RGB, basic idea)]] | |||
* '''7.2 [[7.2 Image File Formats|Image File Formats]]''' | |||
** 7.2.1 [[7.2.1 JPG (for photos)|JPG (for photos)]] | |||
** 7.2.2 [[7.2.2 PNG (for graphics, transparency)|PNG (for graphics, transparency)]] | |||
** 7.2.3 [[7.2.3 GIF (for simple animations, limited colors)|GIF (for simple animations, limited colors)]] | |||
* '''7.3 [[7.3 Computer Graphics: Making Digital Art|Computer Graphics: Making Digital Art]]''' | |||
** 7.3.1 [[7.3.1 Creating Images (drawing, 3D models - simple concepts)|Creating Images (drawing, 3D models - simple concepts)]] | |||
** 7.3.2 Animation Basics (moving images) | |||
* '''7.4 Image Processing: Changing Pictures''' | |||
** 7.4.1 Basic Edits (brightness, contrast, filters) | |||
** 7.4.2 Why We Process Images (fixing, enhancing, effects) | |||
* '''7.5 Computer Vision: Teaching Computers to See''' (Brief, exciting examples) | |||
** 7.5.1 Facial Recognition | |||
** 7.5.2 Object Detection (self-driving cars, sorting) | |||
'''8.0 Video & Multimedia''' | |||
* 8.1 What is Digital Video? (Explaining frames, frame rate, audio) | |||
* 8.2 Video File Formats (MP4, MOV, etc.) | |||
* 8.3 Video Compression (Basic idea of making files smaller) | |||
* 8.4 Video Streaming (How YouTube/Netflix works) | |||
* 8.5 Basic Audio Concepts (Sound waves to digital, basic formats) | |||
'''9.0 [[7.0 Networking & Internet|Networking & Internet]]''' | |||
* '''9.1 [[7.1 Network Models|Network Models]]''' | |||
** 9.1.1 [[7.1.1 OSI Model (7 Layers)|OSI Model (7 Layers)]] | |||
** 9.1.2 [[7.1.2 TCP/IP Model (4/5 Layers)|TCP/IP Model (4/5 Layers)]] | |||
* '''9.2 [[7.2 Protocols|Protocols]]''' | |||
** 9.2.1 [[7.2.1 HTTP/HTTPS, FTP, SMTP, POP3, IMAP|HTTP/HTTPS, FTP, SMTP, POP3, IMAP]] | |||
** 9.2.2 [[7.2.2 TCP (Reliable, Connection-Oriented)|TCP (Reliable, Connection-Oriented)]] | |||
** 9.2.3 [[7.2.3 UDP (Unreliable, Connectionless)|UDP (Unreliable, Connectionless)]] | |||
** 9.2.4 [[7.2.4 IP (Internet Protocol)|IP (Internet Protocol)]] | |||
** 9.2.5 [[7.2.5 DNS (Domain Name System)|DNS (Domain Name System)]] | |||
* '''9.3 [[7.3 Network Topologies|Network Topologies]]''' | |||
** 9.3.1 [[7.3.1 Bus, Star, Ring, Mesh|Bus, Star, Ring, Mesh]] | |||
* '''9.4 [[7.4 Web Technologies (Basic Overview)|Web Technologies (Basic Overview)]]''' | |||
** 9.4.1 [[7.4.1 HTML, CSS, JavaScript (Client-side)|HTML, CSS, JavaScript (Client-side)]] | |||
** 9.4.2 [https://wiki.omnivision.website/index.php?title=7.4.2_Web_Servers%2C_APIs&wvprov=sticky-header Web Servers, APIs] | |||
'''10.0 Databases''' | |||
* '''10.1 Database Types''' | |||
** 10.1.1 Relational Databases (SQL) | |||
** 10.1.2 NoSQL Databases (Key-Value, Document, Column-Family, Graph) | |||
* '''10.2 Relational Database Concepts''' | |||
** 10.2.1 Tables, Rows, Columns | |||
** 10.2.2 Primary Keys, Foreign Keys | |||
** 10.2.3 Relationships (One-to-One, One-to-Many, Many-to-Many) | |||
* '''10.3 SQL (Structured Query Language)''' | |||
** 10.3.1 CRUD Operations (SELECT, INSERT, UPDATE, DELETE) | |||
** 10.3.2 JOINs, Subqueries | |||
** 10.3.3 Data Definition Language (DDL) | |||
** 10.3.4 Data Manipulation Language (DML) | |||
* '''10.4 Database Design''' | |||
** 10.4.1 Normalization (1NF, 2NF, 3NF, BCNF) | |||
** 10.4.2 Entity-Relationship (ER) Diagrams | |||
* '''10.5 Database Management Systems (DBMS)''' | |||
** 10.5.1 Examples (MySQL, PostgreSQL, Oracle, SQL Server) IX. Software Engineering | |||
'''11.0 [[9.0 Software Engineering|Software Engineering]]''' | |||
* '''11.1 [[10.1 Software Development Life Cycle (SDLC)|Software Development Life Cycle (SDLC)]]''' | |||
** 11.1.1. [[10.1.1. Phases (Requirements, Design, Implementation, Testing, Deployment, Maintenance)|Phases (Requirements, Design, Implementation, Testing, Deployment, Maintenance)]] | |||
** 11.1.2 [[9.1.2 Models (Waterfall, Iterative, Spiral)|Models (Waterfall, Iterative, Spiral)]] | |||
* '''11.2 [[9.2 Agile Methodologies|Agile Methodologies]]''' | |||
** 11.2.1 [[9.2.1 Scrum, Kanban|Scrum, Kanban]] | |||
** 11.2.2 [[9.2.2 User Stories, Sprints|User Stories, Sprints]] | |||
* '''11.3 [[9.3 Version Control|Version Control]]''' | |||
** 11.3.1 [[9.3.1 Git (Basic Commands: clone, add, commit, push, pull, branch, merge)|Git (Basic Commands: clone, add, commit, push, pull, branch, merge)]] | |||
** 11.3.2 [[9.3.2 GitHub/GitLab/Bitbucket (Remote Repositories)|GitHub/GitLab/Bitbucket (Remote Repositories)]] | |||
* '''11.4 [[Software Testing]]''' | |||
** 11.4.1 [[9.4.1 Unit Testing, Integration Testing, System Testing, Acceptance Testing|Unit Testing, Integration Testing, System Testing, Acceptance Testing]] | |||
** 11.4.2 [[9.4.2 Test-Driven Development (TDD)|Test-Driven Development (TDD)]] | |||
* '''11.5 [[9.5 Design Patterns|Design Patterns]]''' | |||
** 11.5.1 [[9.5.1 Creational (Singleton, Factory)|Creational (Singleton, Factory)]] | |||
** 11.5.2 [[9.5.2 Structural (Adapter, Decorator)|Structural (Adapter, Decorator)]] | |||
** 11.5.3 [[9.5.3 Behavioral (Observer, Strategy) X. Artificial Intelligence (AI) & Machine Learning (ML)|Behavioral (Observer, Strategy) X. Artificial Intelligence (AI) & Machine Learning (ML)]] | |||
'''12.0 [[10.0 Artificial Intelligence (AI) & Machine Learning|Artificial Intelligence (AI) & Machine Learning]]''' | |||
* '''12.1 [[10.1 Introduction to AI|Introduction to AI]]''' | |||
** 12.1.1 [[10.1 Introduction to AI|Strong AI vs. Weak AI]] | |||
** 12.1.2 [[10.1.2 Applications of AI|Applications of AI]] | |||
* '''12.2 [[10.2 Types of Machine Learning|Types of Machine Learning]]''' | |||
** 12.2.1 [[10.2.1 Supervised Learning (Regression, Classification)|Supervised Learning (Regression, Classification)]] | |||
** 12.2.2 [[10.2.2 Unsupervised Learning (Clustering, Dimensionality Reduction)|Unsupervised Learning (Clustering, Dimensionality Reduction)]] | |||
*** 12.2.3 [[10.2.3 Reinforcement Learning|Reinforcement Learning]] | |||
* '''12.3 [[10.3 Common ML Algorithms|Common ML Algorithms]]''' | |||
** 12.3.1 [[10.3.1 Linear Regression, Logistic Regression|Linear Regression, Logistic Regression]] | |||
** 12.3.2 [https://wiki.omnivision.website/index.php?title=10.3.2_Decision_Trees%2C_Random_Forests&wvprov=sticky-header Decision Trees, Random Forests] | |||
** 12.3.3 [[10.3.3 Support Vector Machines (SVM)|Support Vector Machines (SVM)]] | |||
** 12.3.4 [[10.3.4 K-Means Clustering|K-Means Clustering]] | |||
* '''[[10.4 Neural Networks & Deep Learning (Basic Concepts)]]''' | |||
** 12.4.1 [[10.4.1 Perceptrons, Layers#10.4.1 Perceptrons, Layers|Perceptrons, Layers]] | |||
** 12.4.2 [[10.4.2 Activation Functions|Activation Functions]] | |||
** 12.4.3 [[10.4.3 Backpropagation (High-level)|Backpropagation (High-level)]] | |||
** 12.4.4 [[10.4.4 Convolutional Neural Networks (CNNs)|Convolutional Neural Networks (CNNs)]] | |||
** 12.4.5 [[10.4.5 Recurrent Neural Networks (RNNs)|Recurrent Neural Networks (RNNs)]] | |||
* '''12.5 [[10.5 Natural Language Processing (NLP) / Computer Vision (CV)|Natural Language Processing (NLP) / Computer Vision (CV)]]''' | |||
** 12.5.1 [[10.5.1 Basic tasks and applications|Basic tasks and applications]] | |||
** 12.5.2 [https://wiki.omnivision.website/index.php?title=10.5.2_Large_Language_Models_%28LLMs%29&wvprov=sticky-header Large Language Models (LLMs)] | |||
*** 12.5.2.1 [[10.5.2.1 Generative Pre-trained Transformers (GPT)|Generative Pre-trained Transformers (GPT)]] | |||
'''13.0 Cybersecurity''' | |||
* '''13.1 Fundamentals of Security''' | |||
** 13.1.1 Confidentiality, Integrity, Availability (CIA Triad) | |||
** 13.1.2 Authentication, Authorization, Accounting (AAA) | |||
* '''13.2 Common Threats & Attacks''' | |||
** 13.2.1 Malware (Viruses, Worms, Ransomware) | |||
** 13.2.2 Phishing, Social Engineering | |||
** 13.2.3 Denial of Service (DoS) / Distributed Denial of Service (DDoS) | |||
** 13.2.4 Man-in-the-Middle Attacks | |||
* '''13.3 Cryptography''' | |||
** 13.3.1 Symmetric vs. Asymmetric Encryption | |||
** 13.3.2 Hashing | |||
** 13.3.3 Digital Signatures | |||
* '''13.4 Network Security''' | |||
** 13.4.1 Firewalls, Intrusion Detection/Prevention Systems (IDS/IPS) | |||
** 13.4.2 Virtual Private Networks (VPNs) | |||
* '''13.5 Web Security''' | |||
** 13.5.1 Cross-Site Scripting (XSS) | |||
** 13.5.2 SQL Injection | |||
** 13.5.3 Cross-Site Request Forgery (CSRF) XII. Theoretical Computer Science | |||
'''14.0 Theoretical Computer Science''' | |||
* '''14.1 Automata Theory''' | |||
** 14.1.1 Finite Automata (DFAs, NFAs) | |||
** 14.1.2 Regular Expressions | |||
** 14.1.3 Context-Free Grammars & Pushdown Automata | |||
* '''14.2 Computability Theory''' | |||
** 14.2.1 Turing Machines | |||
** 14.2.2 Church-Turing Thesis | |||
** 14.2.3 Halting Problem (Undecidability) | |||
* '''14.3 Complexity Theory''' | |||
** 14.3.1 Time and Space Complexity (Big O Notation revisited) | |||
** 14.3.2 P, NP, NP-Complete, NP-Hard XIII. Emerging Topics & Future Trends | |||
'''15.0 Emerging Topics and Future Trends''' | |||
* '''15.1 Quantum Computing''' | |||
** 15.1.1 Basic Principles (Superposition, Entanglement) | |||
** 15.1.2 Qubits, Quantum Gates | |||
* '''15.2 Blockchain & Distributed Ledger Technologies''' | |||
** 15.2.1 Decentralization, Cryptocurrencies | |||
** 15.2.2 Smart Contracts | |||
* '''15.3 Cloud Computing''' | |||
** 15.3.1 IaaS, PaaS, SaaS | |||
** 15.3.2 Public, Private, Hybrid Clouds | |||
* '''15.4 Big Data''' | |||
** 15.41 Volume, Velocity, Variety | |||
** 15.42 Hadoop, Spark (Basic Concepts) | |||
* '''15.5 Ethical AI & Societal Impact''' | |||
** 15.51 Bias in AI, Privacy Concerns | |||
** 15.52 AI Safety and Governance | |||
'''16.0 Resources''' | |||
* 16.1 Code.org | |||
* 16.2 Hour of Code | |||
* 16.3 Khan Academy | |||
* 16.4 Scratch | |||
* 16.5 Skillstruck.com | |||
* 16.6 Harvard CS50 | |||
** 16.61 [[16.61 Harvard CS50 (2023) Full Computer Science University Course|Harvard CS50 (2023) Full Computer Science University Course]] | |||
Latest revision as of 04:11, 12 July 2025
Table of Contents
Computer Science Knowledge Base
1.0 Introduction to Computer Science
1.1 What is Computer Science?
- 1.1.1 Definition and Scope
- 1.1.2 Problem-Solving - Computational Thinking
- 1.1.3 Interdisciplinary Nature
1.2 History of Computing
- 1.2.1 Early Calculating Devices (Abacus, Pascaline, Leibniz Wheel)
- 1.2.2 Analytical Engine (Babbage & Lovelace)
- 1.2.3 Alan Turing: The Brilliant Mind Who Shaped Our Digital World
- 1.2.4 Early Electronic Computers (ENIAC, UNIVAC)
- 1.2.5 Transistors & Integrated Circuits
- 1.2.6 Personal Computers & the Internet
1.3 Key Figures in Computer Science
1.4 Branches of Computer Science
1.5 How a Computer Works
2.0 Foundational Concepts
2.1 Data Representation
- 2.1.1 Binary Numbers (Bits, Bytes)
- 2.1.2 Number Systems (Decimal, Binary, Octal, Hexadecimal)
- 2.1.3 Character Encoding (ASCII, Unicode, UTF-8)
- 2.1.4 Image, Audio, and Video Representation (Basic)
2.2 Boolean Algebra & Logic Gates
- 2.2.1 AND, OR, NOT, XOR, NAND, NOR gates
- 2.2.2 Truth Tables
- 2.2.3 Boolean Expressions & Simplification
2.3 Algorithms & Pseudocode
- 2.3.1 Definition of an Algorithm
- 2.3.2 Characteristics of Good Algorithms
- 2.3.3 Representing Algorithms (Flowcharts, Pseudocode)
2.4 Computational Thinking
3.0 Programming Fundamentals
3.1 Programming Paradigms
- 3.1.1 Procedural Programming
- 3.1.2 Object-Oriented Programming (OOP) - Basic Concepts
- 3.1.3 Functional Programming (Basic Concepts)
3.2 Data Types & Variables
- 3.2.1 Primitive Data Types (Integers, Floats, Booleans, Characters)
- 3.2.2 Reference Data Types (Strings, Objects)
- 3.2.3 Variable Declaration and Initialization
3.3 Control Structures
- 3.3.1 Conditional Statements (if, else if, else, switch)
- 3.3.2 Looping Constructs (for, while, do-while)
3.4 Functions/Methods
- 3.4.1 Definition and Purpose
- 3.4.2 Parameters and Return Values
- 3.4.3 Scope
3.5 Basic Data Structures
3.6 Error Handling & Debugging
- 3.6.1 Types of Errors (Syntax, Runtime, Logic)
- 3.6.2 Exception Handling (try-catch)
- 3.6.3 Debugging Techniques and Tools
4.0 Data Structures Algorithms (DSA)
4.1 Data Structures
- 4.1.1 Linear Data Structures:
- 4.1.1.1 Arrays (Fixed-size, Dynamic Arrays)
- 4.1.1.2 Linked Lists (Singly, Doubly, Circular)
- 4.1.1.3 Stacks (LIFO)
- 4.1.1.4 Queues (FIFO, Priority Queues)
- 4.1.2 Non-Linear Data Structures:
- 4.2 Algorithms
- 4.2.1 Sorting Algorithms:
- 4.2.2 Searching Algorithms:
- 4.2.2.1 Linear Search
- 4.2.2.2 Binary Search
- 4.2.3 Graph Algorithms:
- 4.2.3.1 Breadth-First Search (BFS)
- 4.2.3.2 Depth-First Search (DFS)
- 4.2.3.3 Dijkstra's Algorithm (Shortest Path)
- 4.2.3.4 Minimum Spanning Trees (Prim's, Kruskal's)
- 4.2.4 Dynamic Programming:
- 4.2.4.1 Memoization, Tabulation
- 4.2.4.2 Common DP Problems (Fibonacci, Knapsack)
- 4.2.5 Recursion:
- 4.2.5.1 Base Cases, Recursive Steps
- 4.2.5.2. Tail Recursion
- 4.2.6 Greedy Algorithms
5.0 Computer Architecture & Organization
- 5.1 CPU Components
- 5.1.1 Arithmetic Logic Unit (ALU)
- 5.1.2 Control Unit (CU)
- 5.1.3 Registers
- 5.1.4 Instruction Cycle (Fetch, Decode, Execute, Store)
- 5.2 Memory Hierarchy
- 5.2.1 Cache Memory (L1, L2, L3)
- 5.2.2 RAM (Random Access Memory)
- 5.2.3 ROM (Read-Only Memory)
- 5.2.4 Virtual Memory (Basic Concept)
- 5.3 Input/Output Systems
- 5.3.1 I/O Devices and Controllers
- 5.3.2 Polling, Interrupts, DMA
- 5.4 Instruction Sets
- 5.5 Assembly Language (Basic Concepts)
- 5.6 How a Computer Works
- 6.1 Role and Functions of an OS
- 6.2 Process Management
- 6.2.5 Synchronization (Semaphores, Mutexes)
- 6.3 Memory Management
- 6.3.1 Paging, Segmentation
- 6.3.2 Virtual Memory
- 6.3.3 Page Replacement Algorithms
- 6.4 File Systems
- 6.5 Concurrency & Deadlock
- 7.1 What is a Digital Image?
- 7.2 Image File Formats
- 7.3 Computer Graphics: Making Digital Art
- 7.3.1 Creating Images (drawing, 3D models - simple concepts)
- 7.3.2 Animation Basics (moving images)
- 7.4 Image Processing: Changing Pictures
- 7.4.1 Basic Edits (brightness, contrast, filters)
- 7.4.2 Why We Process Images (fixing, enhancing, effects)
- 7.5 Computer Vision: Teaching Computers to See (Brief, exciting examples)
- 7.5.1 Facial Recognition
- 7.5.2 Object Detection (self-driving cars, sorting)
8.0 Video & Multimedia
- 8.1 What is Digital Video? (Explaining frames, frame rate, audio)
- 8.2 Video File Formats (MP4, MOV, etc.)
- 8.3 Video Compression (Basic idea of making files smaller)
- 8.4 Video Streaming (How YouTube/Netflix works)
- 8.5 Basic Audio Concepts (Sound waves to digital, basic formats)
- 9.1 Network Models
- 9.1.1 OSI Model (7 Layers)
- 9.1.2 TCP/IP Model (4/5 Layers)
- 9.2 Protocols
- 9.3 Network Topologies
- 9.3.1 Bus, Star, Ring, Mesh
- 9.4 Web Technologies (Basic Overview)
- 9.4.1 HTML, CSS, JavaScript (Client-side)
- 9.4.2 Web Servers, APIs
10.0 Databases
- 10.1 Database Types
- 10.1.1 Relational Databases (SQL)
- 10.1.2 NoSQL Databases (Key-Value, Document, Column-Family, Graph)
- 10.2 Relational Database Concepts
- 10.2.1 Tables, Rows, Columns
- 10.2.2 Primary Keys, Foreign Keys
- 10.2.3 Relationships (One-to-One, One-to-Many, Many-to-Many)
- 10.3 SQL (Structured Query Language)
- 10.3.1 CRUD Operations (SELECT, INSERT, UPDATE, DELETE)
- 10.3.2 JOINs, Subqueries
- 10.3.3 Data Definition Language (DDL)
- 10.3.4 Data Manipulation Language (DML)
- 10.4 Database Design
- 10.4.1 Normalization (1NF, 2NF, 3NF, BCNF)
- 10.4.2 Entity-Relationship (ER) Diagrams
- 10.5 Database Management Systems (DBMS)
- 10.5.1 Examples (MySQL, PostgreSQL, Oracle, SQL Server) IX. Software Engineering
11.0 Software Engineering
- 11.1 Software Development Life Cycle (SDLC)
- 11.2 Agile Methodologies
- 11.2.1 Scrum, Kanban
- 11.2.2 User Stories, Sprints
- 11.3 Version Control
- 11.4 Software Testing
- 11.5 Design Patterns
12.0 Artificial Intelligence (AI) & Machine Learning
- 12.1 Introduction to AI
- 12.1.1 Strong AI vs. Weak AI
- 12.1.2 Applications of AI
- 12.2 Types of Machine Learning
- 12.3 Common ML Algorithms
- 12.3.1 Linear Regression, Logistic Regression
- 12.3.2 Decision Trees, Random Forests
- 12.3.3 Support Vector Machines (SVM)
- 12.3.4 K-Means Clustering
- 10.4 Neural Networks & Deep Learning (Basic Concepts)
- 12.4.1 Perceptrons, Layers
- 12.4.2 Activation Functions
- 12.4.3 Backpropagation (High-level)
- 12.4.4 Convolutional Neural Networks (CNNs)
- 12.4.5 Recurrent Neural Networks (RNNs)
- 12.5 Natural Language Processing (NLP) / Computer Vision (CV)
- 12.5.1 Basic tasks and applications
- 12.5.2 Large Language Models (LLMs)
13.0 Cybersecurity
- 13.1 Fundamentals of Security
- 13.1.1 Confidentiality, Integrity, Availability (CIA Triad)
- 13.1.2 Authentication, Authorization, Accounting (AAA)
- 13.2 Common Threats & Attacks
- 13.2.1 Malware (Viruses, Worms, Ransomware)
- 13.2.2 Phishing, Social Engineering
- 13.2.3 Denial of Service (DoS) / Distributed Denial of Service (DDoS)
- 13.2.4 Man-in-the-Middle Attacks
- 13.3 Cryptography
- 13.3.1 Symmetric vs. Asymmetric Encryption
- 13.3.2 Hashing
- 13.3.3 Digital Signatures
- 13.4 Network Security
- 13.4.1 Firewalls, Intrusion Detection/Prevention Systems (IDS/IPS)
- 13.4.2 Virtual Private Networks (VPNs)
- 13.5 Web Security
- 13.5.1 Cross-Site Scripting (XSS)
- 13.5.2 SQL Injection
- 13.5.3 Cross-Site Request Forgery (CSRF) XII. Theoretical Computer Science
14.0 Theoretical Computer Science
- 14.1 Automata Theory
- 14.1.1 Finite Automata (DFAs, NFAs)
- 14.1.2 Regular Expressions
- 14.1.3 Context-Free Grammars & Pushdown Automata
- 14.2 Computability Theory
- 14.2.1 Turing Machines
- 14.2.2 Church-Turing Thesis
- 14.2.3 Halting Problem (Undecidability)
- 14.3 Complexity Theory
- 14.3.1 Time and Space Complexity (Big O Notation revisited)
- 14.3.2 P, NP, NP-Complete, NP-Hard XIII. Emerging Topics & Future Trends
15.0 Emerging Topics and Future Trends
- 15.1 Quantum Computing
- 15.1.1 Basic Principles (Superposition, Entanglement)
- 15.1.2 Qubits, Quantum Gates
- 15.2 Blockchain & Distributed Ledger Technologies
- 15.2.1 Decentralization, Cryptocurrencies
- 15.2.2 Smart Contracts
- 15.3 Cloud Computing
- 15.3.1 IaaS, PaaS, SaaS
- 15.3.2 Public, Private, Hybrid Clouds
- 15.4 Big Data
- 15.41 Volume, Velocity, Variety
- 15.42 Hadoop, Spark (Basic Concepts)
- 15.5 Ethical AI & Societal Impact
- 15.51 Bias in AI, Privacy Concerns
- 15.52 AI Safety and Governance
16.0 Resources
- 16.1 Code.org
- 16.2 Hour of Code
- 16.3 Khan Academy
- 16.4 Scratch
- 16.5 Skillstruck.com
- 16.6 Harvard CS50
Consult the User's Guide for information on using the wiki software.