Introduction to Python: motivation for learning Python in scenarios like rapid prototyping.
Installing Python: basic syntax, interactive shell, editing, saving, and running a script.
The concept of data types: variables, assignments; immutable variables; numerical types; arithmetic operators and expressions; comments in the program; understanding error messages;
Conditions, boolean logic, logical operators: ranges; Control statements: if-else, loops (for, while); short-circuit (lazy) evaluation
Working with text files: manipulating files and directories, os and sys modules; text files: reading/writing text and numbers from/to a file; creating and reading a formatted file (csv or tab-separated).
Lists, tuples, and dictionaries: basic list operators, replacing, inserting, removing an element; searching and sorting lists; dictionary literals, adding and removing keys, accessing and replacing values; traversing dictionaries.
Design with functions: hiding redundancy, complexity; arguments and return values; formal vs actual arguments, named arguments. Recursive functions.
Use of popular Python packages for scientific computing: Exercises to understand usage of libraries like Numpy, SciPy, Pandas, Scikit-learn in interpreted and script modes.
Use of libraries like gpiozero, mraa, paho-mqtt, and requests for IoT applications and hands-on exercises.