Course Outline
Python Fundamentals – Part 1
- Installing and setting up Python environment
- Variables, data types, and type conversions
- Working with Python strings and string methods
- String formatters and escape sequences
- Operators (Arithmetic, Comparison, Logical, Assignment, Boolean, Membership)
Assignment #1
Python Fundamentals – Part 2
- Conditional statements (if, if-else, if-elif-else, nested conditions)
- Loops in Python (for loop, while loop, nested loops)
- Break, continue, and pass statements
- Python’s built-in data structures (Lists, Tuples, Sets, Dictionaries)
- Indexing, slicing, and negative indexing
Assignment #2
Functions and File Handling
- Defining and using functions in Python
- Function arguments and recursion
- Lambda expressions (anonymous functions)
- File handling (opening, reading, writing files)
- Exception management (try-except, try-except-else, try-except-finally)
Assignment #3
Modules, Packages & OOP Basics
- Modules and packages (creating and using)
- Built-in modules (e.g., datetime)
- Using pip and PyPI
- Object-Oriented Programming: Classes, objects, and methods
- Inheritance, polymorphism, constructors, and destructors
Assignment #4
Git, GitHub & SQL Fundamentals – Part 1
- Introduction to Git and GitHub
- Creating repositories and basic bash commands
- Overview of RDBMS and database normalization
- SQL statements: SELECT, WHERE clause, filtering
- Sorting data with DISTINCT, TOP, LIKE keywords
Assignment #5
SQL Fundamentals – Part 2 & NumPy Introduction
- Different types of joins in SQL
- Modifying data using SQL syntax
- Introduction to NumPy library
- Working with NumPy arrays and built-in methods
- Indexing, slicing, and broadcasting in NumPy
Assignment #6
Data Analysis with NumPy & Pandas – Part 1
- Array methods, attributes, and Boolean masking
- Arithmetic operations and universal functions (ufuncs)
- Array aggregations and statistical operations (sum, mean, std, min, max)
- Introduction to Pandas library
- Pandas data structures: Series and DataFrames
- Creating DataFrames from dictionaries, lists, and arrays
- Basic DataFrame operations (head, tail, info, describe)
- Selecting columns and rows in DataFrames
- Conditional selection and filtering
Assignment #7
Working with Pandas – Part 2
- Hierarchical indexing in Pandas (MultiIndex)
- Handling missing data (isna, dropna, fillna)
- Data wrangling with Pandas (merge, join, concatenate)
- Groupby operations and aggregations
- Pivot tables and cross-tabulation
- Sorting and ranking data
- Useful Pandas methods and operations (apply, map, applymap)
- Practical data manipulation techniques
- Working with dates and time series data
- String operations in Pandas
Assignment #8
Data Analysis Project
- Project: Download a CSV file from Kaggle
- Perform comprehensive data analysis using NumPy and Pandas
- Data cleaning and preprocessing
- Exploratory data analysis (EDA)
- Drawing insights from data
Assignment #9
Introduction to Statistics
- Quantitative analysis and frequency distribution
- Data presentation: Bar graphs vs histograms
- Central tendency measures (Mean, Median, Mode)
- Dispersion measures (Range, Variance, Standard Deviation)
- Quartiles, percentiles, box plots, coefficient of variation
- Correlation coefficient and standard scores (Z-score, T-score)
- Normal distribution and hypothesis testing (Z-test, T-test)
Assignment #10
Data Visualization with Matplotlib
- Creating multiple plots on a single canvas
- Matplotlib’s object-oriented approach
- Creating figures, subplots, and inset plots
- Saving and enhancing figures
- Built-in data visualization in Pandas
- Creating area plots, bar charts, histograms, line charts
- Scatter plots, box plots, hexagonal bin plots, pie charts, and KDE plots
Assignment #11
Data Visualization with Seaborn
- Introduction to Seaborn: Distribution Plot, Lmplot
- Jointplot, Pairplot, and Kdeplot
- Stripplot, Swarmplot, and Boxplot
- Violinplot and Pointplot
- Axis Grids, Matrix Plot, and Heatmap
- Understanding Seaborn figure styles
Assignment #12
Machine Learning Fundamentals
- Introduction to machine learning: Definition and importance
- Applications of machine learning
- Understanding supervised learning
- Introduction to unsupervised learning
- Overview of machine learning models
- Data splitting: Training and test sets
- Understanding K-fold cross-validation
- Handling underfitting and overfitting
- Confusion matrix metrics: Precision, recall, and F1 score
Assignment #13
Feature Engineering with Scikit-learn
- Understanding feature scaling
- Hands-on with feature scaling techniques
- Introduction to Principal Component Analysis (PCA)
- Working with PCA in real-world examples
- Practical exercises with label encoding
- Hands-on with ordinal encoding
- Working with one-hot encoding through practical examples
- Removing outliers in real-world datasets
Assignment #14
Linear Regression vs Multiple Regression in Scikit-learn
- Theory of linear regression
- Applying a simple linear regression model
- Theory of multiple linear regression
- Applying a multiple linear regression model
- Project 01: Overview of a data project
- Project 01: Solutions to the data project
Assignment #15
K-Nearest Neighbors and Logistic Regression with Scikit-learn
- Theory behind binary logistic regression
- Algorithm of binary logistic regression
- Hands-on with a binary logistic regression model
- Understanding K-Nearest Neighbors (KNN) theory
- Algorithm of K-Nearest Neighbors
- Pen-and-paper exercise for K-Nearest Neighbors
- Hands-on with K-Nearest Neighbors
- Project overview: K-Nearest Neighbors
- Solutions to the K-Nearest Neighbors project
Assignment #16
Naive Bayes Classification using Scikit-learn
- Saving and Loading Trained Machine Learning Models
- Implementing K-Fold Cross Validation
- Introduction to Kaggle Platform
- Introduction to Google Colab
- Naive Bayes Classification Theory
- Naive Bayes Classification Algorithm
- Pen & Paper Exercise for Naive Bayes Classification
- Hands-on with Naive Bayes Classification
Assignment #17
Scikit-learn: Decision Trees, Random Forests, and Ensemble Learning
- Theory of Decision Trees: Entropy, Information Gain
- Hands-on with Decision Trees
- Introduction to Ensemble Learning: Bagging, Random Forests, Boosting
- Hands-on with Bagging
- Hands-on with Random Forests
Assignment #18
Scikit-learn – Support Vector Machines (SVM)
- Utilizing Grid Search CV for Finding the Best Model and Hyperparameter Tuning
- Theory of Support Vector Machines
- Algorithm for Support Vector Machines
- Hands-on with Support Vector Machines (SVMs)
- Project Overview: Support Vector Machines
- Solutions for Support Vector Machines Project
Assignment #19
Scikit-learn – Clustering with K Means
- Theory of K-Means Clustering
- Algorithm for K-Means Clustering
- Modified Algorithm for K-Means Clustering
- Pen & Paper Exercise for K-Means Clustering
- Hands-on with K-Means Clustering
- Projects Overview: K-Means Clustering
- Solutions for K-Means Clustering Project
Assignment #20
Natural Language Processing (NLP)
- What is Natural Language Processing?
- Practical Uses of Natural Language Processing (NLP)
- Practical Uses of Natural Language Processing (NLP) Overview
Assignment #21
Deep Learning
- Understanding Neurons
- Biological Neural Networks (BNNs)
- Artificial Neural Networks (ANNs)
Assignment #22
Python with Data Science and Machine Learning Course Overview & Career Path
Discussion
- Overview the Course
- Writing CV
- Job Searching
Final Course Completion