+91-9952009545 | +91-9884386075 contact@slashprog.com

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.


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 via
    Google 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:
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 and match...case
    • Loops – for and while
    • 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() and filter() 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 vs bytes 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 and envelopes
    • Reading emails using pop3 and imap 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

    Kindly fill in the following details to enroll to this training class.

    Kindly select your preferred payment method from below