Python Roadmap
1. Introduction to Python
-
1.1 Python Basics
- Setting up Python (Installation, IDE, Jupyter)
- Data types: integers, floats, strings, booleans
- Variables and comments
- Basic I/O operations (input(), print())
-
1.2 Control Flow
- If-else conditions
- For and while loops
- Break, continue, and pass
-
1.3 In-class Projects
- Simple Calculator (addition, subtraction, multiplication, division)
- Temperature Converter (Celsius to Fahrenheit and vice versa)
-
1.4 Test Project (Individual)
- Loan Eligibility Checker (input: salary, loan amount, repayment duration; output: eligible or not)
2. Data Structures & Algorithms
-
2.1 Lists and Tuples
- Creating and manipulating lists
- List comprehensions
- Tuples (immutable lists)
-
2.2 Dictionaries and Sets
- Creating and accessing dictionaries
- Keys and values manipulation
- Set operations
-
2.3 Basic Algorithms
- Sorting and searching algorithms
- Iteration vs. recursion
-
2.4 In-class Project
- Student Grades Manager (store and retrieve student names and grades)
-
2.5 Test Project (Group)
- Inventory System for a Small Store (using dictionaries to manage product names, prices, stock, and sales)
3. Functions & Modules
-
3.1 Defining Functions
- Parameters, arguments, and return values
- Scope (local and global variables)
-
3.2 Lambda Functions and Higher-Order Functions
- Lambda expressions
- Map, filter, and reduce functions
-
3.3 Modules and Packages
- Importing and using standard libraries
- Creating custom modules
-
3.4 In-class Project
- To-do List with a Function-based Structure (create, update, delete tasks)
-
3.5 Test Project (Individual)
- Employee Management System (using functions to handle different operations like adding, removing, or updating employee records)
4. Object-Oriented Programming
-
4.1 OOP Basics
- Classes and objects
- Attributes and methods
- Constructors (__init__ method)
-
4.2 Advanced OOP Concepts
- Inheritance
- Encapsulation and abstraction
- Polymorphism and method overriding
-
4.3 In-class Project
- Bank Account Management System (create classes for accounts, perform deposit/withdrawal operations)
-
4.4 Test Project (Group)
- Library Management System (manage books, borrowers, due dates, fines)
5. Error Handling & File Handling
-
5.1 Exception Handling
- Try-except blocks
- Raising exceptions
- Custom exceptions
-
5.2 File Handling
- Reading from and writing to files
- CSV file manipulation
-
5.3 In-class Project
- Error-Free Student Record Storage (handle errors like wrong input format while saving student details into a file)
-
5.4 Test Project (Individual)
- Expense Tracker Application (save daily expenses to a file and generate a monthly report)
6. Working with Libraries
-
6.1 Numpy & Pandas for Data Manipulation
- Introduction to arrays, dataframes, and series
- Data cleaning, filtering, and aggregation
-
6.2 Matplotlib & Seaborn for Data Visualization
- Line plots, bar charts, histograms
- Visualizing distributions and relationships in data
-
6.3 In-class Project
- Analyze and visualize COVID-19 data (load data from a CSV, clean it, and generate visual reports)
-
6.4 Test Project (Group)
- Sales Data Analysis (clean raw sales data, analyze monthly performance, and visualize trends)
7. Introduction to Databases
-
7.1 SQLite Basics
- Connecting to databases
- Performing CRUD operations
-
7.2 SQL Queries
- Select, insert, update, delete
- Joins and aggregations
-
7.3 In-class Project
- Personal Movie Collection Database (store and retrieve movie details with SQLite)
-
7.4 Test Project (Individual)
- Build a Simple Student Attendance System with SQLite (add students, mark attendance, generate reports)
8. Web Scraping & APIs
-
8.1 Web Scraping with BeautifulSoup
- Extracting data from web pages
- Parsing HTML
-
8.2 Working with APIs
- Making API requests using requests
- Parsing JSON responses
-
8.3 In-class Project
- Web Scraper for a News Website (scrape headlines and article summaries from a news site)
-
8.4 Test Project (Group)
- Weather App (fetch real-time weather data using a weather API, display it with current and forecast conditions)
9. Introduction to Web Development
-
9.1 Basics of Flask
- Setting up a Flask server
- Creating routes and templates
-
9.2 Building a Web Application
- Handling form submissions
- Connecting Flask with a database
-
9.3 In-class Project
- Simple Blog Website (create and manage posts, display them on a webpage)
-
9.4 Test Project (Individual)
- Task Management Web App (create tasks, assign due dates, and track progress using Flask and a database)
10. Final Full-Stack Project
-
10.1 Full-Stack Application
- Frontend with HTML/CSS/JavaScript
- Backend with Flask or Django
- Database Integration (SQLite or MySQL)
-
10.2 In-class Project
- Full-Stack CRUD App (create a basic app where users can register, log in, and manage their personal data)
-
10.3 Final Test Project (Group)
- E-commerce Platform (build a small online store with product listings, shopping cart, and user authentication)
11. Advanced Python Concepts
-
11.1 Multithreading & Multiprocessing
- Concurrency and parallelism in Python
- Working with threads and processes
-
11.2 Generators and Decorators
- Using generators for memory-efficient iteration
- Applying decorators for code modification
-
11.3 In-class Project
- Build a Multithreaded File Downloader (download multiple files simultaneously)
-
11.4 Test Project (Individual)
- Optimize an Image Processing Pipeline (use multiprocessing to speed up image manipulation tasks)
Additional Real-life Problem-Solving Projects
-
Real-life Data Science Problem
- Build a house price predictor using real estate data and machine learning
-
Automating Repetitive Tasks
- Write a script to automate sending emails with attachments