💻 In this project I will test my skills in different advanced programming areas using Python.
🥇 By the end of this excercise the project will contain Python examples in different programming areas.
🙂 The fun part that resulting code might look sometimes simple and at the same time solving advanced problem.
Metaprogramming:
- Write a Python decorator that logs the execution time of a function. Example ✔️
- Create a metaclass that enforces a Singleton pattern for classes. Example ✔️
Concurrency and Parallelism:
- Implement a multi-threaded web scraper using the threading module. Example ✔️
- Use the multiprocessing module to parallelize a CPU-bound task.
Functional Programming:
- Implement a custom map function using only Python's built-in functions (no loops or list comprehensions).
- Write a function that generates the Fibonacci sequence using a generator.
Data Structures and Algorithms:
- Implement a binary search tree (BST) with insertion, deletion, and searching methods.
- Solve the traveling salesman problem using a genetic algorithm.
Design Patterns:
- Implement the Factory Method or Abstract Factory design pattern.
- Create a Python program using the Observer pattern.
Advanced OOP:
- Implement a custom context manager using enter and exit methods.
- Create a class that behaves like a dictionary but supports dot notation for attribute access.
Data Analysis and Visualization:
- Use libraries like Pandas and Matplotlib to analyze and visualize a dataset.
- Implement a custom function for Principal Component Analysis (PCA).
Web Development:
- Build a RESTful API using a web framework like Flask or Django.
- Create a web scraping tool that collects data from a website and stores it in a database.
Machine Learning:
- Implement a simple neural network from scratch using only NumPy.
- Use a machine learning library like scikit-learn to build and evaluate a model on a dataset.
Networking:
- Create a simple chat application using sockets in Python.
- Implement a TCP server that handles multiple clients concurrently.
Security:
- Write a script to analyze the security of a website by checking for common vulnerabilities.
- Implement a basic encryption and decryption algorithm.
Testing:
- Write unit tests for a complex function or class using the unittest or pytest framework.
- Practice mocking external dependencies in your tests.
Concurrency with asyncio:
- Build a simple asynchronous web server using the asyncio library.
- Implement a program that fetches data from multiple URLs concurrently using asyncio.
Databases:
- Create a Python script that interacts with a relational database (e.g., SQLite, PostgreSQL, MySQL) to perform CRUD operations.
- Implement a data migration script using an ORM like SQLAlchemy.
Advanced Python Libraries:
- Explore advanced features of libraries like NumPy, SciPy, and pandas, and solve challenging data manipulation or scientific computing problems.