Skip to content

CS-Fundamentals πŸ“šπŸ’» This repository is a collection of code implementations and learning resources covering core computer science topics, including DBMS, OS, Compiler Design, Algorithm Analysis, Cryptography, and more. It serves as a reference for students and developers looking to strengthen their CS fundamentals.

License

Notifications You must be signed in to change notification settings

agneepradeep/CS-Fundamentals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CS-Fundamentals Repository

πŸ“Œ About

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.

πŸ“‚ Topics Covered

This repository will be regularly updated with content on the following topics:

1️⃣ Data Structures

  • Arrays, Linked Lists, Stacks, Queues
  • Trees (Binary, BST, AVL, B-Trees)
  • Graphs (DFS, BFS, Dijkstra's Algorithm, Floyd-Warshall, A*)
  • Hashing, Tries, Heaps

2️⃣ Algorithms

  • 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)

3️⃣ Operating Systems (OS)

  • 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)

4️⃣ Database Management Systems (DBMS)

  • SQL Queries and Optimization
  • Normalization (1NF, 2NF, 3NF, BCNF)
  • Indexing, Transactions, ACID Properties
  • NoSQL Databases and CAP Theorem

5️⃣ Compiler Design

  • Lexical Analysis and Tokenization
  • Parsing (LL(1), LR(1), Shift-Reduce Parsing)
  • Syntax Trees and Abstract Syntax Trees (AST)
  • Code Optimization and Code Generation

6️⃣ Cryptography and Security

  • 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)

7️⃣ Computer Networks

  • 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)

8️⃣ Software Engineering

  • SDLC Models (Waterfall, Agile, DevOps, SCRUM)
  • Design Patterns (Singleton, Factory, Observer, MVC)
  • Software Testing (Unit Testing, Integration Testing, Regression Testing)

πŸ›  Getting Started

To explore and use this repository, follow these steps:

πŸ”Ή Clone the Repository

 git clone https://github.com/agneepradeep/CS-Fundamentals.git

πŸ”Ή Navigate through the Topics

Each topic is organized into separate directories containing explanations, code snippets, and problem-solving approaches.

πŸ”Ή Run Code Examples

Most of the implementations are in C++, Java, and Python. Follow the instructions in each directory to run specific examples.

πŸ”Ή Contribute to the Repository

If you have additional content, improvements, or optimizations, feel free to contribute! See the Contribution Guidelines.


πŸ”₯ Why This Repository?

  • πŸ“˜ 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.

🀝 Contributing

Contributions are welcome! To contribute:

  1. Fork the Repository
  2. Create a Feature Branch
  3. Make Your Changes
  4. Commit & Push
  5. Submit a Pull Request (PR)

Before submitting, ensure your code is well-documented, tested, and properly formatted.


πŸ“œ License

This project is licensed under the MIT License – you're free to use, modify, and distribute it.


πŸ“¬ Contact & Feedback

For any questions, suggestions, or discussions, feel free to:

  • Open an Issue in the repository
  • Contact the repository owner directly

Happy Learning & Coding! πŸš€

About

CS-Fundamentals πŸ“šπŸ’» This repository is a collection of code implementations and learning resources covering core computer science topics, including DBMS, OS, Compiler Design, Algorithm Analysis, Cryptography, and more. It serves as a reference for students and developers looking to strengthen their CS fundamentals.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published