Python Programming Course Lebanon

Python 2 Data Science, OOPs, and UI - Training Course

Advance your Python programming skills by learning data science, object-oriented programming (OOP), and user interface (UI) development through practical projects and hands-on training at ETC Lebanon.

Duration: 36 hours

Teaching Methodology: Hands-on

Course Schedule: Schedule

Fees: $400

Course Mode: Blended – Face-to-face or online via Zoom



COURSE DESCRIPTION

This advanced Python course at ETC Lebanon is designed to take your programming skills to the next level.

1. You will master data handling and processing techniques including iteration, functional programming, error handling, and working with Python's time and datetime modules.

2. Explore essential data science libraries like NumPy and Pandas for array operations, data manipulation, and visualization with Matplotlib and Seaborn.

3. Learn advanced programming concepts such as object-oriented programming, recursion, and inheritance, empowering you to write modular and reusable code.

4. The course also dives deep into graphical user interface (GUI) development using Tkinter, covering widgets, event handling, multi-window management, and integrating advanced features like image processing with Pillow and live video capture using OpenCV.

5. You'll also gain experience in connecting Python with PostgreSQL for database management, loading and analyzing CSV data, and performing SQL-style queries within Pandas.

6. Finally, learn to package and deploy your Python applications as standalone executables for easy distribution.

LEARNING OBJECTIVES

What's covered in this course:

1. Data Handling and Processing

  • 1.1 range() For iteration and indexing
  • 1.2 enumerate()Looping with index
  • 1.3 zip() Combine multiple iterables
  • 1.4 map(), filter(), reduce() Functional programming for transforming/aggregating data
  • 1.5 Lambda functions
  • 1.6 any(), all(), and isinstance()
  • 1.7 try / except blocks for error handling
  • 1.8 The time, datetime, and calendar modules

2. Using Arrays

  • 2.1 What is an Array?
  • 2.2 Creating Arrays with NumPy
  • 2.3 Array Properties
  • 2.4 Indexing and Slicing
  • 2.5 Array Operations
  • 2.6 Reshaping and Transposing
  • 2.7 Filtering and Conditions
  • 2.8 Combining and Splitting Arrays

3. Object-Oriented Programming

  • 3.1 Object-oriented programming basics
  • 3.2 Classes and instances
  • 3.3 Instance methods
  • 3.4 Overloading operators
  • 3.5 Using modules with classes

4. Recursion

  • 4.1 Recursion basics
  • 4.2 Simple math recursion
  • 4.3 Recursion with strings and lists
  • 4.4 More math recursion
  • 4.5 Using recursion to solve problems

5. Inheritance

  • 5.1 Inheritance basics
  • 5.2 Attribute access
  • 5.3 Methods
  • 5.4 Hierarchical inheritance
  • 5.5 Multiple inheritance and mixin classes

6. Data Science Applications

  • 6.1 Introduction to data science
  • 6.2 NumPy in practice
  • 6.3 Pandas for structured data
  • 6.4 Exploratory data analysis
  • 6.5 Data visualization

7. PostgreSQL and Data Manipulation

  • 7.1 Installing PostgreSQL
  • 7.2 Connecting Python to PostgreSQL
  • 7.3 Loading CSV Data into PostgreSQL - student_database_fixed.csv
  • 7.4 Interactive File Selection with tkinter
  • 7.5 Data Analysis and Manipulation in Pandas
  • 7.6 Visualizing Data with Matplotlib and Seaborn
  • 7.7 SQL-Style Queries in Pandas
  • 7.8 Modifying DataFrames: Add, Edit, and Delete Records
  • 7.9 Persisting Changes and Data Export

8. Graphical User Interfaces with Tkinter

  • 8.1 What is Tkinter
  • 8.2 Creating Your First Window
  • 8.3 Creating and Formatting Label Widgets
  • 8.4 Setting Window Size and Creating Buttons
  • 8.5 Handling Events with Buttons
  • 8.6 Working with Entry Widgets
  • 8.7 Basic GUI Application
  • 8.8 Placing and Formatting Buttons
  • 8.9 Adding Labels and Entry Fields
  • 8.10 Combo Boxes, Check Boxes, and List Boxes
  • 8.11 Event Handling Overview
  • 8.12 Simple Calculator using Classes
  • 8.13 Using Bind to Handle Events
  • 8.14 Using Bind and Pack to Display Windows
  • 8.15 Tkinter Multiple Windows

9. Tkinter Widgets and Basic GUI Programming

  • 9.1 Overview of Tkinter Widgets
  • 9.2 Using Frame, Label, and Button Widgets
  • 9.3 Working with Entry, Text, and Combobox Widgets
  • 9.4 Radiobuttons, Checkbuttons, and Listboxes
  • 9.5 Scrollbars, Sizegrip, and Progressbar Widgets
  • 9.6 Container Widgets: Labelframe and PanedWindow
  • 9.7 Canvas and Treeview Widgets for Custom and Hierarchical Data
  • 9.8 Scale, Separator, and Spinbox Widgets
  • 9.9 Building a Number Incrementor Without Classes
  • 9.10 Simple Real-Time Clock Without Using Classes
  • 9.11 Simple Real-Time Clock with Sounds Without Using Classes
  • 9.12 Summary and Best Practices for Tkinter GUI Design

10. Object-Oriented GUI Programming with Tkinter

  • 10.1 Introduction to Classes in Tkinter Applications
  • 10.2 Building a Number Incrementor Using Classes
  • 10.3 Understanding the Self Keyword in Python Classes
  • 10.4 Updating Widgets Using Class Methods
  • 10.5 Event Handling in Object-Oriented Tkinter
  • 10.6 The Registration Form Using Classes
  • 10.7 Creating a Simple Calculator
  • 10.8 Assignment: The Scientific Calculator
  • 10.9 Creating a Lottery Random Number Generator
  • 10.10 Experimenting with the Canvas Widget
  • 10.11 Plotting Comma Separated Values in Window
  • 10.12 The Paint App Using Classes

11. Building Multi-Application GUIs with Tkinter

  • 11.1 Organizing Code into Separate Python Files
  • 11.2 Importing Images into Tkinter Projects
  • 11.3 Creating a Master Window to Launch Multiple Applications
  • 11.4 Opening and Managing Multiple Child Windows
  • 11.5 Creating Applications with Menus
  • 11.6 Handling Modal Windows and Window Protocols
  • 11.7 Loading and Displaying Images with PIL (Pillow) in Tkinter
  • 11.8 Adding Menu Bars and Menu Items with Custom Fonts

12. Assignment: Building a Scientific Calculator with Tkinter

  • 12.1 Setting up the project and importing required modules
  • 12.2 Creating a class-based GUI using tkinter
  • 12.3 Designing the calculator layout with grid()
  • 12.4 Adding basic arithmetic operations and buttons
  • 12.5 Extending functionality with scientific functions: sin, cos, tan, log, ln, sqrt, factorial
  • 12.6 Using the math module to handle scientific expressions
  • 12.7 Inserting symbols like π and e into expressions
  • 12.8 Evaluating complex expressions using eval() with try/except for error handling
  • 12.9 Displaying output in the Entry widget
  • 12.10 (Bonus) Adding keyboard bindings for Enter and Backspace
  • 12.11 (Bonus) Showing calculation history in a Text widget
  • 12.12 Final deliverables: Save as scientific_calculator.py and submit via platform or email

13. Advanced Features and Deployment of Tkinter Applications

  • 13.1 Bonus: Capturing Video Using OpenCV and Tkinter
  • 13.2 Displaying Live Video Feed in Tkinter
  • 13.3 Saving Frames from the Video Feed
  • 13.4 Creating Executables with PyInstaller
  • 13.5 Step-by-Step Guide to Packaging Python Apps on Windows
  • 13.6 Running and Distributing Executable Files

14. Getting Started with PyQt5

  • 14.1 Introduction to PyQt5 and GUI design methods
  • 14.2 Installing PyQt5 and pyqt5-tools via pip
  • 14.3 Testing installation
  • 14.4 Configuring PyCharm
  • 14.5 Using QtDesigner to create GUI interfaces
  • 14.6 Running PyQt5 applications in PyCharm

15. Creating a Functional Calculator with PyQt5 and QtDesigner

  • 15.1 Designing the Calculator GUI using QtDesigner
  • 15.2 Configuring widget properties
  • 15.3 Organizing calculator buttons into rows
  • 15.4 Saving the .ui file
  • 15.5 Converting .ui file to a Python file using PyUIC
  • 15.6 Adding functionality
  • 15.7 Connecting button signals to slot functions for interactive behavior
  • 15.8 Testing and running the semi-functional calculator application
  • 15.9 Expanding to a fully functional calculator

16. Final Project: Building a Tkinter-Based Application Suite

  • 16.1 Introduction to the project structure and goals
  • 16.2 Creating the main application window using tkinter
  • 16.3 Loading and displaying an image (logo) with PIL.Image and ImageTk
  • 16.4 Creating a menu bar with submenus and commands
  • 16.5 Linking menu items to separate modules: Form, Calculator, Lottery, Paint
  • 16.6 Using Toplevel windows to open modular apps
  • 16.7 Implementing modal behavior with grab_set()
  • 16.8 Structuring the application with modular files and imports
  • 16.9 Managing child windows and cleanly exiting the program
  • 16.10 Creating an executable model (.exe) using pyinstaller

PROJECT FILES

You need these PY files to do the final project.

FINAL PROJECT

Download main.zip, unzip, and run the main.exe file to see what you will be able to do by the end of this course.

AUDIENCE

This course is ideal for Python programmers who want to develop their expertise.

PREREQUISITES

Python 1 - Essentials course.