The Little Wizards Coding Camp: Level 2
Python Coding in Practice
Duration: 48 hours (6 months @ 2 hours per week – Saturday/Sunday)
Course Track: Intermediate
About the Course
This training program aims to enrich young minds with the knowledge on practical application of programming concepts using Python – while leveraging various features in the standard library that include – text processing, file I/O, basic graphics and GUI applications, web programming and basic web application development, parsing structured file formats (JSON, CSV, HTML) and network programming.
A couple of popular third-party libraries and frameworks will be covered in an overview for web automation/scraping, basics of data analytics, data visualization, image processing and applied machine learning.
Attendees will learn and practice Object-Oriented-Programming concepts and apply them while building small applications/projects that involve network, web and graphics/GUI.
Overall, this training program is intended to jump-start young minds on applying programming concepts in different areas with a broader perspective.
Target Audience
This training program is intended for attendees who have completed the “Little Wizards Coding Camp: Level 1”. But learners with basic python programming background can also choose to enroll.
Prerequisites
Attendees should meet the following pre-requisites:
- Basic knowledge of using a computer, using the Internet and installing software.
- Have a computer or a laptop equipped with internet connectivity and enough free storage space (above 2 GB) to install Python and relevant third-party software.
- Basic python programming idioms that include statements, variables, expressions, conditions, loops and basic function definition and usage.
Course Objectives
- A quick recap on core python syntax and programming features.
- Learn how to apply OOP when designing and building python projects.
- Learn how to represent and work on complex data-structures.
- Learn how to work with files and basic database (SQLite3).
- Learn how to parse CSV, JSON and HTML data
- Learn how to scrape websites and use web APIs
- Learn how to create GUI applications and learn basics of graphics programming.
- Learn how to use pandas for basic data analytics and visualization.
- Learn how to process and manipulate images.
- Learn the very basics of applied machine learning and explore python frameworks and libraries to leverage the same.
Training Mode
-
This training program is designed to be a live master class conducted viaGoogle Meet.
- Most concepts will be explained by live coding – attendees are expected to learn by interacting with the master and trying out short exercises provided by the master.
Training Requirements
As the training will be a live master-class, each attendee must have a working computer/laptop for practice sessions with the following software installed:
- Anaconda Python 3.11+ installed and configured.
You can download and install from https://anaconda.com/download - Visual Studio Code with Python extensions enabled.
You can download and install from https://code.visualstudio.com/Download
You can follow the procedure for installing Anaconda Python and VSCode from my YouTube video: https://youtu.be/mm0M9kfUvK8
Part 1: Preliminaries
(Recap of core python syntax and concepts)
Module 1: Overview
- Python vs Micropython
- Python features and applications
- A demo on Python development environments:
- IPython, Jupyter and Google Colaboratory
- VSCode, Thonny, IDLE
- Running Python code in command-line
Module 2: Getting started on Python environment
- Setup Anaconda Python and VSCode
- Try out simple python programs
- Using Jupyter notebook and Google Colaboratory
- Try out simple python code snippets in the notebook interface
Module 3: Simple python programs
- Statements and expressions
- Variables and literals
- Objects and types
- Arithmetic operators and expressions
- Boolean operators and expressions
- Simple statements and compound statements
- Comments
Module 4: Flow control
- Conditional statements –
if...elif...else
andmatch...case
- Loops –
for
andwhile
- Small exercises for learning flow control
Module 5: Python exception handling
- An overview on Errors / Exceptions
- Raising exceptions using
raise
- Handling exceptions using
try ... except
Module 6: Modular development
- Function definition
- Function prototypes
- Scope of variables
- Creating python modules and importing modules
Module 7: Interesting builtin functions
- Iteration helpers –
range()
,reversed()
,sorted()
,enumerate()
,zip()
- Reduction functions –
sum()
,min()
,max()
,all()
,any()
- Math helpers –
abs()
,round()
,pow()
,divmod()
- String helpers –
ord()
,chr()
,hex()
,bin()
,oct()
Module 8: Core Python miscellaneous features
- Functional dialects: pure functions and higher-order-functions
- The
lambda
expressions map()
andfilter()
functions- Comprehensions
- Introspection helpers –
id()
,type()
,hash()
,isinstance()
,callable()
,hasattr()
,vars()
,globals()
,locals()
Part 2: OOP using Python
Module 9: Overview on programming styles
- Procedural programming and modular design
- Object-Oriented-Programming
- Imperative and Functional programming dialects
- Understanding the benefits of using different programming paradigms
Module 10: Introduction to OOP
- Classes and Objects
- Attributes and methods
- Three pillars of OOP
- The concept of Inheritance, Composition and Abstraction
Module 11: OOP using Python – an overview
- Python classes and objects
- Exploring various builtin classes in python
- Special attributes (dunder attributes) and their uses
Module 12: Creating custom classes
- Creating custom classes and constructing objects
- The
__init__
method - Class attributes vs instance attributes
- Instance methods, class methods and static methods
- Functions vs methods: understanding similarites and differences
Module 13: Abstraction, Encapsulation and Inheritance
- Implementing inheritance
- Extending and overriding methods
- Implementing abstraction and encapsulation
- Implementing re-usability using composition
Module 14: Special methods – Part 1
- Implementing support for arithmetic operators
- Implementing support for comparison operators
Module 15: Special methods – Part 2
- Creating custom iterable objects
- Creating custom container objects
Module 16: Special methods – Part 3
- Creating custom callable objects
- Helpers for string, int and float representation
- Attribute accessor methods
Module 17: Decorators and AOP – Basics
- An overview on decorator pattern
- Creating simple decorators
Module 18: OOP odds and ends
- Polymorphism
- Abstract Base Classes
- Static methods and Class methods
- Creating custom exceptions
Part 3: Managing data using Python
Module 19: Structured data in Python
- Using dictionaries, lists, sets and tuples
- Modelling nested data-structures for representing data
- Choosing between tuples, lists, sets and dictionaries for modelling data
- Interesting methods and operations on collection data types
Module 20: Managing strings
- The
str
vsbytes
objects - String operators and features
- Interesting string methods
Module 21: Basics of Regular expressions
- Overview on regular expressions
- Regex anchors, character classes, quantifiers, alternators and grouping
- Pattern based search, extraction and substitution
Module 22: Text file I/O
- Reading and Writing to text files
- Context management using
with
clause - Appending to text files
- Using seek and tell operations
Module 23: More on File I/O
- Working with binary files
- Serializing python data-structures using pickle
- Parsing and Storing structured data into files
- Managing file/directory operations using
pathlib
module
Module 24: Basic database management using SQLite3 – Part 1
- An overview on Relational Databases
- Tables, Rows and Columns
- An overview on SQL for managing databases
Module 25: Basic database management using SQLite3 – Part 2
- Creating and managing databases using SQLite3
- CRUD operations on SQLite3 using
sqlite
module
Module 26: Working with CSV files
- Using the
csv
module to parse and store CSV format files (demo) - A basic overview on
pandas
framework - Loading CSV files into pandas DataFrames
- Basic data analytics on pandas DataFrames
Part 4: Network programming using Python
Module 27: An overview on internet protocols
- Communication between computers using network sockets
- A basic socket server and client (demonstration)
- Networking layers (an overview)
- IP addresses and ports
Module 28: Basic networking concepts and terminologies
- Practical overview of Ethernet, WLAN, Switches, Routers and Gateways
- Firewalls, NAT, Proxy Servers, DMZ and port-forwarding (concepts)
- An overview on URL, URI, DNS and IP addresses and ports
- Commonly used Internet Protocols: HTTP, HTTPS, SSH, FTP, SMTP, POP3 and IMAP
Module 29: Sending and Receiving emails
- Sending email using
email
framework andenvelopes
- Reading emails using
pop3
andimap
modules
Module 30: Simple network socket applications
- Implementing a simple time server
- Echo server and echo client
- Interesting project ideas to try out
Part 5: Web development using Python
Module 31: An overview on how websites work
- The Internet and the World-Wide-Web
- An overview on Client-Server architecture
- Exploring technologies that drive the WWW
Module 32: Basics of HTTP protocol
- Exploring interesting HTTP methods
- HTTP servers, clients/user-agents, URLs and request parameters
- HTTP request headers, response headers, cookies and payload
Module 33: Web applications
- An overview on web applications
- Server-side and Client-side technologies overview
- Using the
httpx
library to fetch web pages
Module 34: Parsing common web data formats – Part 1
- An overview on JSON data and parsing JSON formats
- Consuming Web APIs – examples and use-cases
- Interesting projects:
- Get weather report in a given city
- Get news feeds
- Currency converter
Module 35: Parsing common web data formats – Part 2
- An overview on HTML and CSS
- Parsing HTML data using
lxml.html
- An overview on XPath and CSS Selectors
- Scraping data from websites – examples, use-cases and ethical considerations
Module 36: Creating static websites
- Hosting static web pages using
http.server
- An overview on real-world web servers and hosting
Module 37: Creating simple web applications – Part 1
- An overview on Python web application frameworks
- Getting started with
lona
framework - Handling URL routing, user input, events and sessions
Module 38: Creating simple web applications – Part 2
- Create a simple web application frontend to manage a user database
- Allow adding new user records, modifying and deleting existing user records
- Provide a mechanism to authenticate a user
Part 6: Graphics and GUI using Python
Module 39: An overview on GUI applications
- Building command-line applications vs GUI applications vs Web applications
- Best practices and use-cases
- An exploration of popular GUI frameworks:
tkinter
,pydeargui
,kivy
Module 40: Simple GUI applications using tkinter
- Getting started with
tkinter
- Exploring
Tk
widgets and callbacks - Creating simple GUI forms using
Tk
Module 41: Graphics using turtle
graphics
- Getting started with
turtle
- Basic movement and positioning
- Simple algorithmic patterns
- Pen control
- Managing events
- Drawing various shapes
Module 42: Graphics using arcade
framework
- An overview on
arcade
framework - Exploring features and game demos built using arcade
- Getting started with
arcade
- Drawing basic shapes
Module 43: Animation using arcade
framework
- Drawing and moving sprites
- Managing user control (keyboard and mouse events)
- Sound effects
- Physics Engine and Camera control
Module 44: Creating simple games
- TicTacToe
- Nibbles
- Simple shooter game (mimic of para-trooper)
Part 7: Image Processing, Data Visualization and basic Machine Learning
Module 45: An overview on numpy
module
- Basics of numpy arrays
- Matrix and math operations on numpy arrays (overview)
- Representing images as numpy arrays and manipulating them
Module 46: Image Processing and manipulation
- How are images represented in a computer
- An overview of image file formats
- Image processing and manipulation using
pillow
library
Module 47: Data Visualization
- Visualizing data using charts and plots using
pandas
- Basics of matplotlib
- Line plots
- Scatter plots
- Bar charts
- Pie charts
- Exploring various features of matplotlib (Axes, ticks, spines)
Module 48: Basics of Machine Learning and AI
- An overview on Machine Learning
- Classification, Regressing and Clustering
- Mathematical models and Neural Networks
- Generative AI using Transformers and LLMs
- Simple examples for Classification and Regression (using scikit-learn)
- Exploring LLMs using python
llm
framework
Monthly Course fee: ₹3000 INR / $36 USD / £29 GBP / €34 EUR (for six months to be paid by 5th of each month)
Or Total Course fee: ₹18000 INR / $216 USD / £174 GBP / €204 EUR (to be paid in advance for enrollment)
How to enroll ?
In order to enroll to this training class, you can fill in the form below registering your interest with the required details.
You will receive an acknowledgement email from registrations@slashprog.com once you submit the form. In this email, we will provide you with the details for paying the course fee including payment links if you chose “Pay via Stripe” or UPI/NEFT details if you chose UPI/NEFT payment option.
Once we receive the payment, we will reply back with the confirmation of your training registration and provide you links to connect using Google Meet along with the exact schedule for the classes by email.
If you have any further queries, you can email us directly to contact@slashprog.com