← All courses

Training

Advanced Python Programming

Advanced Python Programming

3 days of Machine Learning, Deep Learning and deployment

Welcome to the Advanced Python Programming training course! This comprehensive 3-day course is designed to elevate your Python programming skills to the next level. Our focus will start with essential libraries such as NumPy and pandas, explore complex topics like recursion and memoization, and then transition into the realms of machine learning and deep learning using TensorFlow. Additionally, we will delve into using Teachable Machine by Google to create custom machine learning models with ease.

Your trainer for this course is an industry veteran with over 30 years of programming and development experience. With multiple local and international awards and features in various media outlets, including the BBC, he brings a wealth of knowledge and expertise to this training.

Learning Outcomes

By the end of this course, participants will be able to:

  • Utilize advanced features of NumPy and pandas for efficient data manipulation and analysis.
  • Understand and implement recursion and memoization techniques in Python.
  • Develop and evaluate machine learning models using popular libraries.
  • Build and deploy deep learning models with TensorFlow.
  • Create custom machine learning models using Google's Teachable Machine.
  • Apply advanced Python programming skills to real-world problems.

Prerequisites

To ensure a successful learning experience, participants should have:

  • A strong foundation in Python programming, including:
    • Understanding of data types and structures (lists, dictionaries, sets, tuples).
    • Proficiency in writing and understanding functions and modules.
    • Experience with file handling and exception management.
  • Basic knowledge of object-oriented programming in Python.
  • Familiarity with basic concepts in linear algebra and statistics.
  • Basic understanding of machine learning principles (optional but beneficial).

Course Outline

  1. Introduction to Advanced Python Libraries
    1. Overview of NumPy
      1. Creating and manipulating arrays
      2. Array operations and broadcasting
      3. Universal functions (ufuncs)
      4. Working with matrices and linear algebra operations
    2. Overview of pandas
      1. Series and DataFrame objects
      2. Data indexing and selection
      3. Data cleaning and preparation
      4. Merging, joining, and concatenating datasets
      5. Grouping and aggregation
  2. Recursion and Memoization
    1. Understanding recursion
      1. Base case and recursive case
      2. Examples of recursive functions (factorial, Fibonacci, etc.)
      3. Benefits and drawbacks of recursion
    2. Implementing memoization
      1. Introduction to memoization and dynamic programming
      2. Using dictionaries for memoization
      3. Examples of memoized recursive functions
  3. Collaborative Filtering
    1. User based collaborative filtering
    2. Item based collaborative filtering
    3. Data munging and wrangling
    4. Similarity matrix and decision patterns
    5. Creating a recommendation engine
  4. Introduction to Machine Learning
    1. Overview of machine learning
      1. Types of machine learning (supervised, unsupervised, reinforcement)
      2. Key concepts: features, labels, training, and testing
    2. Data preprocessing
      1. Handling missing values
      2. Feature scaling and normalization
      3. Encoding categorical variables
    3. Building machine learning models
      1. Linear regression
      2. Decision Trees
      3. Support Vector Machines (SVM)
      4. k-Nearest Neighbors (KNN)
      5. Principal Component Analysis (PCA)
      6. k-Means Clustering
    4. Model evaluation metrics
      1. Accuracy, precision, recall, F1-score
      2. Confusion matrix and ROC curve
    5. Practical exercises using scikit-learn
  5. Introduction to Deep Learning with TensorFlow
    1. Overview of deep learning
      1. Difference between machine learning and deep learning
      2. Neural network basics: neurons, layers, activation functions
    2. Getting started with TensorFlow
      1. Installing TensorFlow and setting up the environment
      2. Understanding TensorFlow's computation graph
      3. Building and training a simple neural network
    3. Advanced deep learning concepts
      1. Convolutional Neural Networks (CNNs)
      2. Recurrent Neural Networks (RNNs)
      3. Transfer learning and fine-tuning
    4. Practical exercises using TensorFlow and Keras
  6. Using Teachable Machine by Google
    1. Introduction to Teachable Machine
      1. Overview and applications of Teachable Machine
      2. Setting up and using Teachable Machine
    2. Creating custom machine learning models
      1. Image classification models
      2. Audio classification models
      3. Pose classification models
    3. Exporting and integrating models into Python projects
      1. Exporting models to TensorFlow
      2. Using exported models in Python applications
  7. Practical Projects and Case Studies
    1. Real-world case studies
      1. Data analysis and visualization project using NumPy and pandas
      2. Developing a machine learning model for a specific use case
      3. Building and deploying a deep learning model with TensorFlow
      4. Creating a custom machine learning model using Teachable Machine
    2. Collaborative project
      1. Group project on a complex problem
      2. Applying all learned concepts to develop a comprehensive solution
  8. Wrap-up and Q&A
    1. Summary of key concepts and techniques covered
    2. Discussion on further learning resources and next steps
    3. Open Q&A session to address any remaining questions and clarify doubts

This 3-day training is designed to provide an immersive and interactive learning experience, ensuring that you leave with a strong command over advanced Python programming and its applications in machine learning and deep learning. We look forward to an engaging and productive training session with you!

Practical, connected learning

My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.