A complete series for programming in Python aimed to suffice simulation and visualization requirements in Physics.
Python is an interpreted, high-level, general-purpose language supporting object-oriented programming with more emphasis on code-readibility and extensibility. It has a wide range of applications and is the backbone of widely-used scientific computing libraries like TensorFlow, and even stand-alone applications like Blender.
This series gradually traverses from basic to advanced topics of Python for numerical simulations, deriving analytical expressions and visualizing results pertaining to the area of physical sciences. These tutorials and their corresponding notebooks are clubbed into different modules based on the topics covered in the modules folder.
The course starts with setting up Python with a brief introduction to the ecosystem and the development environment in Module 01 - Getting Started. Next, the basic data-types of python as well as looping and function representations are covered in Module 02 - Fundamentals of Python. Module 03 - Visualizing Data introduces the powerful library Matplotlib and Module 04 - Scientific Computing illustrates the working of numerical libraries Numpy and SciPy. Finally, usage-oriented practices that speed up and help in debugging are hinted in Module 05 - Best Practices. The individual topics covered in this level are:
Topic ID | Topic Name | Tutorial | Notebook |
---|---|---|---|
M01T01 | Setting Up Python | link | |
M01T02 | The Python Interpreter | link | |
M01T03 | The Spyder IDE | link | |
M01T04 | Jupyter Notebooks | link | |
M01T05 | Python in VSCode | link | |
M02T01 | Constants and Variables | ||
M02T02 | Tuples and Lists | ||
M02T03 | Dictionaries and Sets | ||
M02T04 | Strings and Formatting | ||
M02T05 | Conditional Statements | ||
M02T06 | For and While Loops | ||
M02T07 | List Comprehension | ||
M02T08 | Functions and Lambda Expressions | ||
M03T01 | Matplotlib | ||
M04T01 | Numpy | ||
M04T02 | SciPy | ||
M05T01 | Importing Modules | ||
M05T02 | Logging Events |
With the basics covered, the course jumps into a few more plotting and computational libraries in Module 03 - Visualizing Data and Module 04 - Scientific Computing. Next, Module 05 - Best Practices introduces object-oriented programming, exception handling and ways to parallelize and speed up the code. Module 06 - Machine Learning and Module 08 - Quantum Computingthen highlights two rapidly growing areas, introducing crude learning paradigms and concepts pertaning to quantum computing. The individual topics covered in this level are:
Topic ID | Topic Name | Tutorial | Notebook |
---|---|---|---|
M03T02 | Plotly | ||
M03T03 | Seaborn | ||
M04T03 | Pandas | ||
M04T04 | SymPy | ||
M05T03 | Objects and Classes | ||
M05T04 | Handling Scenarios | ||
M05T05 | Parallelism | ||
M05T06 | Speeding Up | link | |
M06T01 | Bayesian Probability | ||
M06T02 | Regression Analysis | ||
M06T03 | Classification | ||
M06T04 | Clustering | ||
M06T05 | Dimensionality Reduction | ||
M06T06 | Support Vector Machines | ||
M08T01 | CBits to QBits | link | |
M08T02 | Circuits and Gates | ||
M08T03 | Measurements | ||
M08T04 | Algorithms | ||
M08T05 | The Qiskit SDK | link | link |
With all the stages set, the course dives into deep learning in Module 07 - Deep Learning and further engrossing topics in Module 08 - Quantum Computing and Module 09 - Quantum ML. The individual topics covered in this level are:
Topic ID | Topic Name | Tutorial | Notebook |
---|---|---|---|
M07T01 | Neural Networks | ||
M07T02 | TensorFlow and Keras | ||
M07T03 | Principal Component Analysis | ||
M07T04 | Feedforward Neural Networks | ||
M07T05 | Recurrent Neural Networks | ||
M07T06 | Boltzmann Machines and Autoencoders | ||
M07T07 | Reinforcement Learning | ||
M08T06 | Grover's Algorithm | link | |
M09T01 | Quantum Machine Learning | ||
M09T02 | Quantum Generative Adversarial Networks |