Welcome to the CS-Fundamentals repository! This repository serves as a comprehensive collection of code implementations, study materials, and resources covering essential topics in Computer Science. Whether you are a student, a developer, or an enthusiast, this repository aims to provide a structured approach to learning the core concepts of CS.
This repository will be regularly updated with content on the following topics:
- Arrays, Linked Lists, Stacks, Queues
- Trees (Binary, BST, AVL, B-Trees)
- Graphs (DFS, BFS, Dijkstra's Algorithm, Floyd-Warshall, A*)
- Hashing, Tries, Heaps
- Sorting (Quick Sort, Merge Sort, Heap Sort, Counting Sort, Radix Sort)
- Searching (Binary Search, Interpolation Search, Jump Search)
- Dynamic Programming (Knapsack, LIS, LCS, Floyd-Warshall, Matrix Chain Multiplication)
- Greedy Algorithms (Huffman Coding, Kruskal's Algorithm, Prim's Algorithm)
- Divide and Conquer (Merge Sort, Quick Sort, Strassenβs Matrix Multiplication)
- Backtracking (N-Queens, Sudoku Solver, Subset Sum)
- Process Management (Scheduling Algorithms: FCFS, SJF, RR, Priority Scheduling)
- Memory Management (Paging, Segmentation, Virtual Memory)
- File Systems (EXT, NTFS, FAT32)
- Synchronization (Mutex, Semaphore, Deadlock Handling)
- SQL Queries and Optimization
- Normalization (1NF, 2NF, 3NF, BCNF)
- Indexing, Transactions, ACID Properties
- NoSQL Databases and CAP Theorem
- Lexical Analysis and Tokenization
- Parsing (LL(1), LR(1), Shift-Reduce Parsing)
- Syntax Trees and Abstract Syntax Trees (AST)
- Code Optimization and Code Generation
- Encryption Algorithms (AES, DES, RSA, ECC)
- Hashing (MD5, SHA-256, SHA-3)
- Digital Signatures and Public Key Infrastructure (PKI)
- Secure Communication Protocols (TLS, SSL, HTTPS)
- OSI & TCP/IP Models
- Routing Algorithms (Dijkstra, Bellman-Ford, OSPF, RIP)
- Protocols (HTTP, FTP, DNS, DHCP, SSH, ICMP)
- Network Security (Firewalls, IDS, VPNs, DDoS Mitigation)
- SDLC Models (Waterfall, Agile, DevOps, SCRUM)
- Design Patterns (Singleton, Factory, Observer, MVC)
- Software Testing (Unit Testing, Integration Testing, Regression Testing)
To explore and use this repository, follow these steps:
git clone https://github.com/agneepradeep/CS-Fundamentals.git
Each topic is organized into separate directories containing explanations, code snippets, and problem-solving approaches.
Most of the implementations are in C++, Java, and Python. Follow the instructions in each directory to run specific examples.
If you have additional content, improvements, or optimizations, feel free to contribute! See the Contribution Guidelines.
- π Structured Learning: Covers fundamental topics in-depth.
- π Well-Organized: Each concept is categorized for easy access.
- π Hands-on Learning: Includes code implementations with explanations.
- π― Interview & Exam Prep: Ideal for coding interviews and university exams.
Contributions are welcome! To contribute:
- Fork the Repository
- Create a Feature Branch
- Make Your Changes
- Commit & Push
- Submit a Pull Request (PR)
Before submitting, ensure your code is well-documented, tested, and properly formatted.
This project is licensed under the MIT License β you're free to use, modify, and distribute it.
For any questions, suggestions, or discussions, feel free to:
- Open an Issue in the repository
- Contact the repository owner directly
Happy Learning & Coding! π