This repository contains a collection of my unique code, projects, and assignments created during my Bachelor of Science in Computer Science. It covers a range of topics such as Artificial Intelligence and Machine Learning, Networking, Linux Administration, Algorithms, and more. Each folder contains standalone projects, implementations, or exercises relevant to specific subjects within the Computer Science curriculum.
This repository serves as a personal archive of my coursework, showcasing my practical and theoretical understanding across various Computer Science domains. Below is a breakdown of each section, with highlights of the projects and topics covered within each area.
Folder:
AI-ML
Contains projects and assignments related to Artificial Intelligence and Machine Learning. Key topics covered include:
- Supervised and Unsupervised Learning: Implementations of algorithms like K-Nearest Neighbors (KNN), Decision Trees, and Clustering.
- Neural Networks: Basic neural network models and exploration of deep learning frameworks.
- Data Preprocessing and Feature Engineering: Techniques to clean and prepare datasets for modeling.
- Evaluation Metrics: Metrics like accuracy, precision, recall, F1-score used to assess model performance.
Folder:
Algorithm
Includes various algorithms implemented in Python, showcasing my knowledge of Data Structures and Algorithms. Highlights include:
- Sorting Algorithms: Implementations of popular sorting techniques (e.g., QuickSort, MergeSort).
- Graph Theory Algorithms: Depth-First Search (DFS), Breadth-First Search (BFS), and shortest path algorithms.
- Dynamic Programming: Solutions to optimization problems using dynamic programming concepts.
- Complexity Analysis: Projects include time and space complexity analysis for each algorithm.
Folder:
Linux Server Administration
Focuses on Linux system administration and shell scripting. Some examples of tasks and projects include:
- User and Group Management: Scripts for managing users, permissions, and group settings.
- Network Configuration: Basic network setup, firewall configurations, and SSH server management.
- System Monitoring and Automation: Shell scripts for process monitoring, scheduled tasks (cron jobs), and performance analysis.
- Security Hardening: Best practices and configurations for securing Linux servers.
Folder:
Network Security
Contains code and scripts related to network security principles and cybersecurity protocols. Topics include:
- Encryption and Decryption Algorithms: Implementations of cryptographic algorithms (e.g., AES, RSA).
- Intrusion Detection: Basics of IDS and firewall rules to monitor and control network traffic.
- Network Scanning and Vulnerability Assessment: Using tools and scripts to assess network vulnerabilities.
- Secure Network Design: Principles of designing secure networks with focus on access control and authentication.
Folder:
Presentation-SS
Includes presentation slides and documentation for various topics covered in the curriculum. These presentations summarize key concepts, providing a quick reference on topics like AI, cybersecurity, data structures, and more.
Folder:
Theory_Computation
Projects and notes related to the Theory of Computation. Key concepts covered include:
- Finite Automata and Regular Expressions: Implementation of basic automata and regular expressions.
- Context-Free Grammars and Pushdown Automata: Exercises and code for designing grammars and parsing techniques.
- Turing Machines: Basic simulations and theoretical problems related to Turing machines and computability.
- Complexity Classes: Understanding of complexity classes like P, NP, and NP-complete problems.
This repository includes both Python and shell scripts. To set up the environment:
- Ensure Python 3.x is installed on your system.
- Install necessary Python packages (for AI-ML projects) using
pip install -r requirements.txt
. - For Linux-related projects, it is recommended to have access to a Linux environment (either native or virtualized).
To set up a virtual environment for Python projects, follow these steps:
-
Create the Virtual Environment (only needs to be done once):
python3 -m venv venv # For Linux/macOS python -m venv venv # For Windows
-
Activate the Virtual Environment:
source venv/bin/activate # For Linux/macOS venv\Scripts\activate # For Windows
-
Install Dependencies: After activating the environment, install the required packages:
pip install -r requirements.txt
Each folder contains a README.md
or a separate documentation file explaining the specific usage and requirements for the projects in that folder. Please refer to those files for running and testing the individual projects.
This repository is for personal educational use only. Reusing the code outside of this context requires permission.