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

The Little Wizards Coding Camp: Level 1

A journey into computer programming using microcontrollers and micropython

Duration: 48 hours (6 months  @ 2 hours per week – Saturday/Sunday)

Course Track: Beginner

About the Course

This training program aims to get young minds to learn the very basics of how a computer works at its core – providing a solid foundation on the fundamentals while attempting to spark the curiosity to explore, experiment and learn computer programming – as a hobbyist/enthusiast.
This course aims to introduce coding in python for children in the most basic yet intuitive manner while guiding them to understand how computers work by using simple experiments and projects using  microcontroller development boards (based on ESP8266/ESP32/RaspberryPi Pico) running micropython.

Target Audience

Children studying 5th grade and above. Parental guidance / accompaniment is advised for children aged below 15. 
Though this training program is tailored for young audience, there is no age cap – elder people with enthusiasm to learn are gladly welcome.

Prerequisites

Attendees should meet the following pre-requisites:
  • Basic understanding of numbers and arithmetic (addition, subtraction, multiplication and division).
  • 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.
  • Ability to understand and converse in  English (instructor will speak in Indian accent).
  • Have the microcontroller development kit (detailed in section below).

Electronics Bill Of Materials

The following items will be used for practice sessions, exercises and mini-projects. Attendees are requested to purchase them either via online retailers or from local hobby electronics shops. The instructor can also arrange for this list to be shipped to attendees shipping address based on the feasibility. Kindly get in touch after enrollment for further guidance.

Note: the Reference links shared above are only for guidance. The part might be available at a cheaper price in alternative sources.

 

Training Mode

  • This training program is designed to be an online live master class conducted via Google Meet.
  • All communication related to training materials, assignments and Meeting Links will be via email and WhatsApp group (details will be shared upon enrollment).
  • Children below the age of 15 are advised to be accompanied with elderly siblings / parents / grand-parents during the training classes.
  • Each module is planned for a one-hour session, but can spill-over multiple sessions based on overall wavelength of attendees.
  • Though the entire course is planned for six months, it can stretch by one or two more months based on the pace of the training sessions and topic coverage.

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 Thonny for Windows on my YouTube channel via this link: https://www.youtube.com/watch?v=nwhYQzAYFvA
And for Linux setup, you can watch my YouTube video via this link:  https://www.youtube.com/watch?v=zyuljJVxIXc 

Part 1: Computer sub-basics

Module 1: History of computers and their evolution

  • Background and History
  • How computers evolved
  • Mechanical computers and electric computers of the early era
  • The digital electronic computers
  • Hard-wired solutions Vs Programmed Logic
  • History of Vacuum tubes, Transistors and Integrated Circuits

Module 2: Parts of a computer

  • The Von Neumann architecture
  • The role of CPU, RAM, Storage and I/O devices
  • Different forms of computers
  • The Microprocessor, Microcontroller and SoC

Module 3: The number system

  • The Decimal number system vs Binary number system
  • An overview on binary number system
  • Counting in the binary number system

Module 4: Other useful number systems

  • The hexadecimal number system
  • The octal number system

Module 5: Conversion between number systems

  • Conversion between binary numbers and decimal numbers
  • Conversion between binary to octal and hexadecimal numbers

Module 6: Binary number math

  • 1’s complement and 2’s complement of a binary number
  • Adding binary numbers
  • Subtracting binary numbers

Module 7: Boolean logic operations – Part 1

  • The NOT, AND, OR and XOR operations
  • Truth Tables for logical NOT, AND, OR and XOR operations

Module 8: Boolean logic operations – Part 2

  • The XOR, XNOR, NAND and NOR operations
  • Logic Gates and their symbolic representations

Part 2: Basic digital electronics

Module 9: Basics of Electricity – Part 1

  • The very basics of electricity and electrical circuits (demonstrations and experiments)
  • Conductors and insulators

Module 10: Basics of Electricity – Part 2

  • Electrical power sources and power loads
  • Open circuits and closed circuits
  • Voltage, Current and Resistance (in simplest terms and analogy)
  • Safety measures for handling electrical devices
  • Creating a simple continuity tester

Module 11: Switches, Relays and Transistors

  • Mechanically operated Electrical switches
  • Electromagnetic relay switches
  • Transistors (pratical usage example)

Module 12: Introduction to the logic gates – Part 1

  • Introduction to logic gates
  • The basic gates: AND, OR and NOT gates
  • Creating basic logic gates using switches, relays and transistors

Module 13: Logic gates – Part 2

  • Truth tables for AND, OR and NOT gates
  • The NAND, NOR, XOR and XNOR gates
  • Creating simple logic gate circuit diagrams

Module 14: Adders and Comparators

  • Demonstration of adders using logic gates
  • Demonstration of a full-adder
  • Demonstration of a comparator

Module 15: Latches, Flip-Flops and Capacitors

  • Demonstration of latches and Flip-Flops using logic gates
  • How latches/flip-flops act as memory for a computer
  • Using capacitor to store charge and their limitations

Module 16: How computers work

  • What’s inside a CPU
  • The static RAM, dynamic RAM and ROM in a computer
  • The concept of Integrated Circuits (ICs) and microprocessors
  • I/O peripherals and bus architecture
  • Storage devices – hard drives, SSDs, Flash storage devices
  • Type of computers
    • Laptops, PCs, Smartphones
    • Single-board computers and microcontroller development boards (demonstrations)

Part 3: Introduction to Programming

Module 17: Hardware and Software

  • An overview on standard computer architecture
  • Hardware, Software and Firmware
  • How programs are loaded and executed by a computer

Module 18: The Software Stack

  • Firmware and Boot Loaders
  • Operating Systems
  • User Interface – Shell, Desktops and Home Screens
  • Applications and Utilities
  • Development Tools

Module 19: Computer programming – basics

  • The concept of machine instructions and machine level language
  • Assemblers and assembly language
  • Demonstrations of simple assembly language programs

Module 20: High-level Programming languages

  • An overview of high-level programming languages
  • Compilers, Interpreters and Development Toolkits
  • General-purpose programming vs Domain-Specific programming languages
  • An overview demonstration of programs in a few popular high-level languages

Module 21: Introduction to Python programming language

  • Overview and history of Python programming language
  • Uses and applications
  • Benefits of learning python
  • Python vs MicroPython

Module 22: Python programming setup

  • Installing python on your computer
  • Running python code online
  • Example programs to demonstrate python code
  • Setting up micropython on microcontrollers (ESP8266 and RaspberryPi Pico)
  • Using Thonny IDE for Python development

Module 23: Getting started on Python

  • An overview of Python REPL
  • Using Python as a calculator
  • Simple arithmetic expressions
  • Using print() and input() to interact with the user

Module 24: Python variables, values and types

  • Defining variables
  • Literal representation of numbers and strings
  • Conversion between numbers and strings

Part 4: Basic MicroPython Programming

Module 25: Ingredients of a Python program

  • Statements and Expressions
  • Loading python modules and using their members
  • Functions, Classes and Objects – an overview
  • Demonstration on few micropython modules and classes

Module 26: Writing simple MicroPython programs

  • An overview on Python language syntax (grammar)
  • Storing python code into a file and running them
  • Using Thonny Editor for writing and running micropython code

Module 27: Controlling an LED using MicroPython

  • An overview on GPIO pins on ESP and RaspberryPi Pico development boards
  • Connecting an LED to development board
  • LED polarity, operating voltage and the need for dropping resistor
  • Using a bread-board to create basic circuits
  • Tips and techniques to use jumper wires and connectors
  • Programmatically turning ON and OFF an LED
  • More about the Pin object and its construction parameters

Module 28: Loops in MicroPython

  • Creating a blinking LED using while loop
  • Creating a blinking LED using for loop
  • A simple LED chaser project

Module 29: Interfacing a light sensor

  • An overview on LDR and light sensor with demonstrations
  • Connecting a light sensor to development boards
  • Configuring Pin object as input and reading the light sensor

Module 30: Conditions and Boolean expressions

  • Boolean expressions and truthiness
  • True and False values
  • Using the if statement
  • Controlling LEDs based on ambient light – automatic night light

Module 31: Interfacing Seven Segment LED

  • An overview on Seven Segment LEDs – pinouts and how they work
  • An overview on the TM1637 Seven Segment Display module
  • Connecting the TM1637 Seven Segment Display module
  • Using time module to display current time – a simple digital clock

Module 32: Interfacing temperature sensors

  • An overview on temperature sensors (DHT11 / DHT22 / AHT10 / BMP280)
  • Connecting DHT11 temperature sensor to development boards
  • Reading temperature and humidity measurements
  • A simple weather station project

Part 5: Python features

Module 33: Python builtin data types – an overview

  • Numbers – int, bool, float and complex
  • Sequences – str, tuple and list
  • Sets and Mappings – set, dict

Module 34: Working with numbers

  • Arithmetic operators, expressions and helper functions
  • Simple python programs based on math
  • Find out area of a square given the length
  • Find out area of a rectangle given length and breadth
  • Find out area of a circle given the radius
  • Convert temperature between celsius to fahrenheit
  • Convert length between centimeters to inches, meters to feet, kilometers to miles

Module 35: Working with strings – Part 1

  • String operators and methods
    • String concatenation and repetition
    • String case conversion
    • Searching for substrings in a string
    • Validating string contents

Module 36: Working with strings – Part 2

  • More string methods
    • Splitting and joining strings
  • String formatting
    • Using the string format operator
    • Using the string format method and f-strings
  • Raw-literal-strings (r-strings) and bytes object

Module 37: Working with tuples and lists – Part 1

  • Tuples Vs Lists
  • The concept of immutability
  • Creating lists, concatentation and repetition
  • Indexing and Slicing operations

Module 38: Working with tuples and lists – Part 2

  • Iterating a list / tuples
  • Interesting List methods

Module 39: Working with sets

  • Sets vs Lists
  • Creating sets and their common use-cases
  • Set operations: union, intersection, difference, subset and superset
  • The concept of hashability and set rules

Module 40: Working with dictionaries

  • An overview on dictionaries
  • Creating dictionaries and their common use-cases
  • Common dictionary operations with examples

Part 6: Programming Practices and more…

Module 41: Functions in Python

  • Defining custom functions
  • Functions as reusable entities
  • Function prototypes

Module 42: Modules in Python

  • Creating custom modules
  • Good design practices and conventions
  • Using custom modules in python projects
  • Understanding the importance of modularity and reusability

Module 43: Interfacing an OLED display

  • An overview on OLED display modules
  • The SPI and I2C interfaces
  • Connecting the OLED display to development board
  • Displaying messages on the OLED display
  • A simple OLED dashboard project that displays current time and room temperature

Module 44: Interfacing a matrix 4×5 keypad

  • An overview on 4×5 keypad
  • The keypad scancode
  • Connecting the keypad to the development board
  • Detect keypresses on the keypad

Module 45: A simple digital calculator project

  • Interfacing the 4×5 matrix keypad and OLED display
  • Design and development of code for the digital calculator

Module 46: A simple digital visitor counter project

  • Interfacing IR sensor
  • Counting the number of visitors

Module 47: Interesting Python builtin functions and features

  • Iteration helpers: range(), zip(), enumerate(), sorted(), reversed()
  • Reduction functions: sum(), min(), max(), all(), any()

Module 48: Micropython – interrupts and timers

  • The concept of hardware interrupt
  • Handling sensor events using interrupt driven mode (with example)
  • Scheduling activities using Timers
  • Ending notes: how to explore further into programming and learning new concepts

    Interesting small project ideas

    • A simple countdown timer
    • A simple pin-code lock
    • A simple RPM counter
    • A toy electronic voting machine
    • A simple guess the number game
    • A simple number jackpot game

    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