Course Overview and Course Description
- This course will take you deeper into the Python programming language and its ecosystem.
- This course provides a solid overview of the Python language including some low level details essential to working confidently and fluidly with Python.
- The focus is on practical programming and the skills learned here can be applied in any field where Python is used.
- Become an expert on the Python language and ecosystem.
Pre-Requisite
- Python Basics
- Recent Version of Python Installed
- Any IDE (like visual studio code)
Duration
- 32 hours
Course Outline
Day 1 (4 hours)
Module 1 – Python Numbers, Strings, Lists, Dictionaries, Tuples, Sets
- Introduction to Python
- Mathematical Functions
- Built-in string methods
- List Operations
- Tuple Slices
- Dictionary methods
Hands-on – Hands-on with Python basics, data manipulation, and Mathematical Problems
Expected Learning Outcome – Build foundational Python skills
Sample Use Case/ Project Description – Practical: Polished notation conversions
Lab / Software / Tool Requirement – Python, VS code
Assessment Checkpoint Type – Practical exercise submission
Remarks – Focus on fundamentals
Day 1 (4 hours)
Module 2 – Advanced Object Orientation
- Classes
- Inheritance
- Mixins
- Metaprogramming
Hands-on – Hands-on with Oops (Inheritance and Composition)
Expected Learning Outcome – Understand Oops in python
Sample Use Case/ Project Description – Practical: A simple Abstract factory and Builder Design
Lab / Software / Tool Requirement – Vs Code and Jupiter notebook extension on vscode
Assessment Checkpoint Type – Practical exercise submission
Remarks – Focus on Oops Design Skills
Day 2 (4 hours)
Module 3 – Functional Programming
- Higher order functions Closures
- Lambdas
- Partial application
- Map-reduce
Hands-on – Hands-on with nested function and local resource capture
Expected Learning Outcome – Learn to write closures and lambda
Sample Use Case/ Project Description – Practical : Data manipulation of collections
Lab / Software / Tool Requirement – Python, VS code
Assessment Checkpoint Type – Practical exercise submission
Remarks – Strong data foundation
Day 2 (4 hours)
Module 4 – Advanced Language Features
- Decorators
- Iterators
- Comprehensions
- Generators
- Coroutine
- References and mutable objects
Hands-on – Hands-on with Comprehension, generators and Coroutine
Expected Learning Outcome – Understand collection memory use and yield operations
Sample Use Case/ Project Description – Practical : dictionary, list and set comprehension and generators
Lab / Software / Tool Requirement – Jupyter notebook extension for vscode
Assessment Checkpoint Type – Data Conversion between files
Remarks – Data Conversions
Day 3 (4 hours)
Module 5 – Threads and Concurrency
- Synchronization amongst threads
- Using Lock and RLock for mutual exclusion.
- Using Condition and Event for wait/notify patterns.
- Using Semaphore and BoundedSemaphore for bandwidth management.
- Implementing Producer/Consumer patterns using Queue.
- Implementing thread pool
Hands-on – Hands-on with Async Operation and Data Exchange Between Threads
Expected Learning Outcome – Use of Async Operations and locking mechanism
Sample Use Case/ Project Description – Practical : Threading and Concurrency
Lab / Software / Tool Requirement – Python, VS code
Assessment Checkpoint Type – Synchronization to handle resources
Remarks – Resource Acquisition and release
Day 3 (4 hours)
Module 6 – Multiprocessing using Python
- Pipe and Queue
- Value and Array
- Using Manager for shared list and dictionaries
- Memory-Mapped Files (mmap module)
Hands-on – Implementing RPC using multiprocessing.manager module
Expected Learning Outcome – Understanding Process Vs Thread: performance and design implications.
Sample Use Case/ Project Description – Practical : Using multiprocessing.Pool for parallel map algorithms
Lab / Software / Tool Requirement – VS code
Assessment Checkpoint Type – A Simple Communication between processes
Remarks – Interprocess Communication
Day 4 (4 hours)
Module 7 – Marshalling and Data Persistence
- Marshalling and Unmarshalling objects using pickle
- cPickle and json modules
Hands-on – Parsing, processing and storing with standard file formats
Expected Learning Outcome – Understand Data Persistence
Sample Use Case/ Project Description – CSV using csv module, XML using ElementTree, JSON using json module, YAML using PyYAML module, INI/CFG parsing using configparser module
Lab / Software / Tool Requirement – Jupyter notebook extension for vscode
Assessment Checkpoint Type – Data persistence using shelve module
Remarks – Object and Collection Momento
Day 4 (4 hours)
Module 8 – Networking
- Making requests
- REST APIs and the requests library
- An overview of the socket module
Hands-on – Creating network servers and clients using socket module
Expected Learning Outcome – Understanding http request-response cycle
Sample Use Case/ Project Description – Creating asynchronous Socket server and clients using asyncore module
Lab / Software / Tool Requirement – VS code
Assessment Checkpoint Type – Client Server Communication
Remarks – Types of Listeners
