Advanced Python Programming

Course Outline Download
Introduction Download
DayModulesSharing
1
  • Python refresher
  • Common idioms
  • Data types
  • Conditionals
  • Loops
  • Sequences
  • Mapping types
  • Useful types from collections
  • Program structure
  • Files and console, I/O
  • Functions, Modules, and packages
  • Lambda functions
  • Variable scope
  • List comprehensions
  • Generator expressions
  • Creating modules
  • Using the import statement
  • Module search path (PYTHONPATH)
  • Documenting modules
  • Built-ins
  • The OS module and Date Time module
2
  • Anology
  • Termination Condition
  • Stack Overflow
  • Case Study #1: Magic 3x3
  • Case Study #2: 8 Queens
  • Introduction
  • First-class Everything
  • A Minimal Class in Python
  • Attributes
  • Methods
  • The __init__ method
  • Data Abstraction
  • Data Encapsulation and Information Hiding
  • __str__ and __repr__ method
  • Public Private and Protected Attributes
  • Destructor
  • Class and Instance Attributes
  • Instance Methods
  • Class Methods
  • Properties - Getters and Setters
  • Introduction
  • Syntax Inheritance
  • Generalization
  • Constructor Chaining
  • Multiple Inheritance
  • Diamond Problem
  • Specialization
  • Polymorphism
3
  • Introduction
  • Method of Operation
  • Using a 'return' in a Generator
  • Send Method / Coroutines
  • The throw Method
  • Decorating Generators
  • Yield from
  • Recursive Generators
  • A Generator of Generators
  • Introduction
  • Functions inside Functions
  • Functions as Parameters
  • Functions returning Functions
  • A Simple Decorator
  • Syntax for Decorator
  • Use cases for Decorator
  • Decorators with Parameters
  • Classes instead of Functions
  • Implicit properties
  • Global and Local variables
  • Closures
  • Working with object attributes
  • The inspect module
  • Callable classes
  • Decorators
  • Monkey patching
  • Regular Expressions
  • RE Objects and Pattern matching
  • Parsing data
  • Subexpressions
  • Complex substitutions
  • RE tips and tricks
  • Analysing programs with Pylint
  • Using the debugger
  • Profiling code
  • Testing speed with benchmarking
  • Unit test
  • Creating a Test cases
  • Writing tests
  • Running tests
Iterators
Iterator Reference
1 Exercise #1
2 Exercise #2
3 Exercise #3

Generators
Generator Reference
1 Exercise #1
2 Exercise #2
3 Exercise #3
4 Exercise #4
5 Exercise #5
6 Exercise #6
7 Exercise #7

Decorators
Decorator Reference
1 Exercise #1
2 Exercise #2
3 Exercise #3
4 Exercise #4
5 Exercise #5
6 Exercise #6

Closures
Closures Reference
1 Exercise #1
2 Exercise #2
3 Exercise #3
4 Exercise #4

Regular Expression(RE)
Python RE Official Reference
1 Exercise #1
2 Exercise #2
3 Exercise #3
4 Exercise #4
5 Exercise #5
6 Exercise #6
7 Exercise #7
8 Exercise #8
9 Exercise #9

Pylint
1 Exercise #1
2 Exercise #2

Benchmarking
Benchmarking Reference
1 Exercise #1
2 Exercise #2

Profiling
Profiling Reference
1 Exercise #1

Unit Test
Unit Test
1 Exercise #1
2 Exercise #2
3 Exercise #3
4
  • Working with XML
  • XML modules in Python
  • Getting started with Element Tree
  • Parsing XML
  • Updating an XML tree
  • Creating a new document
  • About JSON
  • Reading/Writing JSON
  • Reading/Writing CSV files
  • Reading/Writing Excel data
  • The DB API
  • Available Interfaces
  • Connecting to a server
  • Creating and executing a cursor
  • Fetching data
  • Parameterized statements
  • Using Metadata
  • Transaction control
  • ORMs and NoSQL overview
Day4.zip
CSV
CSV Reference
1 Exercise #1
2 Exercise #2
3 Exercise #3
4 Exercise #4
5 Exercise #5
6 Exercise #6
7 Exercise #7

JSON
JSON Reference
1 Exercise #1
2 Exercise #2
3 Exercise #3
4 Exercise #4

XML

Basic XML Refrence
1 movies.XML
2 SAX-Based XML Access
3 DOM-Based XML Access

Excel
1Exercise #1"
2Exercise #2"
3Exercise #3"

Database Access
SQL Reference
1Exercise #1
2Exercise #2
3Exercise #3
4Exercise #4
5Exercise #5
6Exercise #6
7Exercise #7
8Exercise #8
9Exercise #9

5
  • The threading module
  • Sharing variables
  • The queue module
  • The multiprocessing module
  • Creating pools
  • About async programming
  • Running external programs
  • Parsing arguments
  • Creating filters to read text files
  • Logging
  • Built-in classes
  • Using requests
  • Grabbing web pages using BeautifulSoup
  • Sending email
  • Working with binary data
  • Consuming RESTful services
  • Remote access(SSH)
  • Introduction
  • Downloading and Installing PyQt and Qt Designer
  • Qt Architecture
  • Preparing the Development Environment
  • Navigating Qt Designer
  • Creating a UI in Qt Designer
  • Using designer
  • Standard widgets
  • Event handling
  • Writing the Application Logic in PyCharm
  • Running the Application
  • Expanding the Application
  • Adding Widgets, Charts, etc.
  • Developing GUI application accessing a Database
  • Creating a Project
  • Apps Life Cycle
  • Admin Interface
  • Creating Views
  • URL Mapping
  • Template System
  • Models
  • Page Redirection
  • Sending E-mails
  • Generic Views
  • Form Processing
  • File Uploading
  • Apache Setup
  • Cookies Handling
  • Sessions
  • Caching
  • Comments
  • Django – RSS
Day5.zip Day5.xlsx
Network Programming
1Exercise #1
2Exercise #2
3Exercise #3
4Exercise #4
5Exercise #5

MultiProgramming
1Exercise #1
2Exercise #2
3Exercise #3
4Exercise #4
5Exercise #5

PyQT
1Exercise #1
2Exercise #2
3Exercise #3
4Exercise #4
5Exercise #5
6Exercise #6
7Exercise #7
8Exercise #8
9 PyQT5 MySQL Example

Django
1 What is Django?
2 Setting up a Django development environment
3 Tutorial Part-1 - The Local Library website
4 Tutorial Part-2 - Creating a skeleton website
5 Tutorial Part-3 - Using models
6 Tutorial Part-4 - Django admin site
7 Tutorial Part-5 - Creating our home page
8 Tutorial Part-6 - Generic list and detail views.docx
9 Tutorial Part-7 - Sessions framework
10 Tutorial Part-8 - User authentication and permissions
11 Tutorial Part-9 - Working with forms
12 Tutorial Part-10 - Testing a Django web application
13 Tutorial Part-11 - Deploying Django to production

GitHub
GitHub Python Reference Introduction to Git and GitHub for Python Developers

Recommanded Books
TitleSerious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More
ISBN978-1-593-27878-6
AuthorJulien Danjou
Year2019
Publisher No Starch Press
TitlePython Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries
ISBN978-1-801-07726-2
AuthorSteven F. Lott, Dusty Phillips
Year2021
Publisher Packt Publishing
TitlePython re: A magical tool for text processing
ISBN
AuthorSundeep Agarwal
Year2019
Publisher Sundeep Agarwal
TitleNumpy Programming, For Beginners, Quick Start Guide: Numpy Language Crash Course Tutorial & Exercises
ISBNB09446DZQH
AuthorYao, Ray
Year2021
Publisher In Easy Step By Step, Teach Yourself eBook & Book
TitlePython Data Analytics: Mastering Python for Effective Data Analysis and Visualization
ISBNB0CW28VQJ4
AuthorFloyd Bax
Year2024
Publisher FLOYD BAX; 1st edition
TitlePandas for Everyone: Python Data Analysis
ISBN978-0-137-89115-3
AuthorDaniel Chen
Year2023
Publisher Addison-Wesley Professional
TitleData Analysis with Python: Introducing NumPy, Pandas, Matplotlib, and Essential Elements of Python Programming
ISBN978-9-355-51065-5
AuthorRituraj Dixit
Year2023
Publisher BPB Publications
TitlePython for Data Analysis: Data Wrangling with pandas, NumPy, and Jupyter
ISBN978-1-098-10403-0
AuthorWes McKinney
Year2022
Publisher O'Reilly Media
TitlePandas 1.x Cookbook: Practical recipes for scientific computing, time series analysis, and exploratory data analysis using Python
ISBN978-1-839-21310-6
AuthorMatt Harrison, Theodore Petrou
Year2020
Publisher Packt Publishing
TitleNumerical Python: Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib
ISBN978-1-484-24245-2
AuthorRobert Johansson
Year2019
Publisher Apress
TitlePython Data Analytics: With Pandas, NumPy, and Matplotlib
ISBN978-1-484-23912-4
AuthorFabio Nelli
Year2018
Publisher Apress
TitlePython GUI with PyQt: Learn to build modern and stunning GUIs in Python with PyQt5 and Qt Designer
ISBNB0CPJ3DBM6
Author Saurabh Chandrakar, Dr. Nilesh Bhaskarrao Bahadure
Year2024
Publisher BPB Publications
TitlePython GUI Development with PyQt: Mastering PyQt
ISBNB0CN6B976R
AuthorWilliams Asiedu
Year2023
Publisher Ouereila Publishing House
TitleCreate GUI Applications with Python & Qt6: The hands-on guide to making apps with Python
ISBN979-8-829-98555-4
AuthorMartin Fitzpatrick
Year2022
Publisher Independently published
TitleA Beginner’s guide to PyQt6
ISBNB0968B6RMK
AuthorEdward Chang
Year2021
Publisher
TitlePython Programming For GUI Development: A Beginner's Manual to Building Intuitive User Interfaces with Python using Tkinter, PyQt, and Beyond
ISBN
AuthorUlias, Joseph
Year2024
Publisher Independently Published
TitleBeginning PyQt: A Hands-on Approach to GUI Programming with PyQt6
ISBN978-1-484-27998-4
AuthorJoshua M Willman
Year2022
Publisher Apress
TitleDjango for Beginners: Build websites with Python & Django
ISBN
AuthorWilliam S. Vincent
Year2022
Publisher Leanpub
TitleWeb Development with Django: Learn to build modern web applications with a Python-based framework
ISBN978-1-839-21250-5
AuthorBen Shaw, Saurabh Badhwar, Andrew Bird, Bharath Chandra K S, Chris Guest
Year2021
Publisher Packt Publishing
TitleDjango Made Easy: Build and deploy reliable Django applications
ISBNB08RXZ6JPP
AuthorVought, Peter
Year2021
Publisher
TitleDjango 3: For Beginners
ISBN979-8-571-46247-1
AuthorAndrey Bulezyuk
Year2021
Publisher
TitleBuilding Websites with Django: Build and deploy professional websites with Python programming and the Django framework
ISBN978-9-389-32828-8
AuthorAwanish Ranjan
Year2021
Publisher BPB Publications
TitleMastering GUI Programming with Python: Develop impressive cross-platform GUI applications with PyQt
ISBN978-1-789-61290-5
AuthorAlan D. Moore
Year2019
Publisher Packt Publishing
TitleQuerying MySQL
ISBN978-9-355-51267-3
AuthorAspin, Adam
Year2022
Publisher BPB Publications
TitlePython Parallel Programming Cookbook: Over 70 recipes to solve challenges in multithreading and distributed system with Python 3
ISBN978-1-789-53373-6
AuthorGiancarlo Zaccone
Year2019
Publisher Packt Publishing
TitleNetwork Programming in Python: The Basic: A Detailed Guide to Python 3 Network Programming and Management
ISBN978-9-355-51257-4
AuthorJohn Galbraith
Year2022
Publisher BPB Publications