Unlock a universe of possibilities in scientific computing, AI, and quantum computing. Enroll now and let Python be your catalyst for success in the exciting world of science, industry and beyond.
Embark on a transformative journey into Python programming tailored for chemists, biochemists and scientific enthusiasts. This course equips you with the tools to harness Python's power in solving real-world problems and advancing your research.
Programming is everywhere nowadays, and programmers and in high demand. AI was the topic of 2023 and will be on the top for many years. Quantum Computing will be the next wave.
You could be surfing the next wave of ultra-high salaries and solving problems for big tech companies or leading the next unicorn.
Who will be the best candidate to make and design applications for AI and Quantum Computing? Yes, you, who learn how to write code, design applications and solve new problems by applying the knowledge of chemistry and physics in the real world.
Master Python fundamentals, scientific libraries, data science, and algorithms. Delve into artificial intelligence, machine learning, and their groundbreaking applications in chemistry and physics. Culminate your journey with quantum computing, mastering quantum mechanics, algorithms, and their implementation using Python.
-
Introduction to Python for Chemists
- Setting up the Python (environment, IDE, and Jupyter Notebook)
- Basic programming concepts
- Variables, data types, and operators
- Control structures (if-else, loops)
- Functions and modules
-
Scientific Python
- Jupyter Notebook for Interactive Computing
- Matplotlib for Data Visualization
- NumPy for Numerical Computing
- SciPy for Scientific Computing
- SymPy for Symbolic Computing
-
Data Science for Chemists
- Pandas for Data Manipulation and Analysis in Chemistry
- File I/O and data serialization
- Advanced Excel processing with Python
- Big Data and Data retrieval and processing (ETL)
-
Data Structures and Algorithms in Python
- Lists, tuples, and dictionaries
- Sets and strings
- Time complexity and Big O notation
- Searching and sorting algorithms
- Recursion and dynamic programming
- Algorithm design techniques
-
Best Practices for Scientific Computing
- Testing and debugging
- Coding style and documentation
- Version control with Git and GitHub
- Reproducibility and data management
-
Chemical Informatics and Computational Chemistry
- Introduction to Cheminformatics
- RDKit for Cheminformatics
- Chemoinformatics with Python
- Molecular Modeling and Visualization
-
Bioinformatics and Computational Biology
- Introduction to Bioinformatics
- BioPython and BioPandas
- Bioinformatics with Python
-
Advanced Topics
- Regular-expressions and list-comprehensions
- Lambdas, map, filter, and reduce
- Decorators, context managers, iterators, and generators
- Object-Oriented Programming in a nutshell
- Building a Python package
- Packaging and distribution with PyPI
- CI/CD with GitHub Actions
- Web Documentation with Sphinx
-
Introduction to Artificial Intelligence and Machine Learning
- Overview of AI and ML concepts
- Supervised and unsupervised learning
- Popular ML algorithms (e.g., linear regression, decision trees, neural networks)
- Training and evaluating models
-
AI Applications in Chemistry and Physics
- Molecular property prediction
- Drug discovery and design
- Materials science and computational chemistry
- Quantum chemistry and electronic structure calculations
-
Introduction to Quantum Computing
- Quantum mechanics fundamentals
- Qubits, quantum gates, and quantum circuits
- Quantum algorithms (e.g., Shor's, Grover's)
- Quantum error correction and fault tolerance
-
Quantum Computing with Python
- Quantum computing libraries (e.g., Qiskit, Cirq, Q#)
- Implementing quantum algorithms in Python
- Quantum machine learning
- Quantum chemistry and quantum simulation
-
Introduction - Setting Up Your Python Environment
- Basic requirements for accessing the course materials
- Python presentation
- Install Python on your computer
- Using Python environments
- Set up an Integrated Development Environment (IDE)
- Jupyter Notebook and Google Colab
-
Module 1 - Data Type and Operators
-
Data types and properties
-
Binary operators over simple data
-
Binary operators over structure data
-
Comparative operators
-
Logic operators
-
Belong and identity operators
-
for
loop -
while
loop -
if
-elif
-else
conditional -
functions and arguments
-
Input and output: open, read and write files
-
Modules and packages:
import
andfrom
-
Jupyter Notebook for Interactive Computing
Workshop 1
- Program 1.1: the atomic mass percentage from molecule formula
- Program 1.2: calculate quantities of ideal gases from its equation
- Program 1.3: pH titration
- Program 1.4: Oxidized and reduced substance in redox reaction
- Program 1.5: Signs number and their intensities relation in a spin-spin coupling spectrum
- Program 1.6: made structured data from CSV file
-
-
Module 2 - Scientific packages
-
Matplotlib
for Data Visualization Matplotlib -
NumPy
for Numerical ComputingWorkshop 2
- Program 2.1: Balancing a chemical equation
- Program 2.2: Balancing a Redox reaction
- Program 2.3: Equilibrium constant of a reaction
- Program 2.4: Evolution of the concentrations in the time
-
SciPy
for Scientific ComputingWorkshop 3
- Program 3.1: Scientific constants and rule of three
- Program 3.2: Number of Hs associated with H-NMR sign
- Program 3.3: Pressure vapor minimum
- Program 3.4: Physical or chemical property statistical
-
Sympy
for Symbolic ComputingWorkshop 4
- Program 4.1: Formation or decomposition rate
- Program 4.2: Concentrations from simultaneous chemical reactions
-
-
Module 3 - Molecular Modeling and Visualization
Py3DMol
andNGLview
in Jupyter NotebookPyMol
for Molecular Visualization
-
Module 4 - Chemical Informatics and Computational Chemistry
RDKit
for CheminformaticsChemFormula
for Chemical FormulasChemlib
for Chemical LibrariesChemPy
for Chemical PropertiesMendeleev
for Periodic TablepyEQL
for Chemical Equilibrium
-
Module 5 - Bioinformatics and Computational Biology
BioPython
for BioinformaticsBioPandas
for Biological Data
Prior programming experience is not strictly required, as the course will start with the fundamentals of Python programming.
It's important to note that while these prerequisites provide a solid foundation, the course is designed to be accessible to a wide range of learners with varying backgrounds. If you're passionate about chemistry, programming, or both, you're in the right place!
-
Motivation and dedication to learn: Learning Python programming and its applications in chemistry requires a strong commitment and consistent effort. Students should be motivated to invest time in practicing coding, exploring new concepts, and working on projects to reinforce their understanding.
-
Access to a computer with Internet: To follow along with the course materials, complete assignments, and run Python code, students will need access to a computer with a stable Internet connection. The course will provide instructions on setting up the necessary software and tools.
-
Basic understanding of chemistry concepts: As this course is tailored for chemists and scientific enthusiasts, a foundational knowledge of chemistry principles and terminology is essential to grasp the course content and its applications.
-
Familiarity with computer basics: Students should be comfortable using a computer, navigating the operating system, and performing basic tasks such as creating folders, managing files, and installing software.
-
High school level mathematics: A solid understanding of high school level mathematics, including algebra, trigonometry, and basic calculus, is necessary to comprehend the mathematical aspects of the course, such as data analysis and algorithm implementation.