Python Programming Introduction Class

Course Overview

This four-lesson series provides a structured introduction to Python programming, starting from absolute basics and progressing to practical scientific computing applications. The course is designed for beginners who want to build a solid foundation in Python programming with a focus on applications in data analysis and visualization.

Each lesson builds on previous concepts, offering hands-on examples and practical exercises that reinforce learning. By completing this course, you will gain the skills needed to write Python scripts, organize code effectively, and create visualizations of scientific data. This course emphasizes hands-on learning with practical examples drawn from scientific computing. Each lesson includes:

  • Clear explanations of core concepts
  • Executable code examples you can run and modify
  • Practical exercises to reinforce learning
  • Real-world applications of programming concepts
  • References to official documentation for further exploration

The course structure follows a logical progression from language fundamentals to applied scientific computing, ensuring you build a comprehensive understanding of Python programming.

Prerequisites and Tools

This course assumes no prior programming experience. The only requirements are:

  • A computer with internet access
  • Basic computer literacy (file management, web browsing)
  • Ideally a small software project

Recommended tools: Miniconda or Mambaforge for environment management, a text editor (VS Code, Sublime Text, or similar), and a modern web browser for accessing Jupyter notebooks.

Access each lesson directly using the links below:

All lessons open in a new tab for convenient reference while working through the course material.

Lesson Content

Lesson 1: What is Python

Core Topic: Language fundamentals, modules, and environment setup

This foundational lesson establishes what makes Python a powerful programming language for rapid development and scientific computing. You'll learn about Python's interpreted, object-oriented nature with dynamic semantics, and how to set up your development environment using Miniconda or Mambaforge for effective package management.

Key concepts covered include:

  • Understanding Python as an interpreted, high-level language
  • Working with modules and packages (with hands-on Torino.py example)
  • Setting up Python environments with Conda/Mamba
  • Introduction to Jupyter Notebook and essential keyboard shortcuts
  • Basic package installation and management

Access Lesson 1

Lesson 2: Python Structures

Core Topic: Core data types, objects, sequences, and mutability

This lesson explores Python's core philosophy that "everything is an object." You'll learn about different data types, understand the concept of mutability, and work with Python's built-in data structures for effective data manipulation.

Key concepts covered include:

  • Understanding mutable vs. immutable objects
  • Working with standard data types: NoneType, Booleans, numbers, strings
  • Sequence types: lists, tuples, and their operations
  • Common operations like slicing, concatenation, and iteration
  • Object identity vs. value equality

Access Lesson 2

Lesson 3: Programming is Managing Information Flow

Core Topic: Functions, conditionals, loops, and control structures

Learn how to make your code dynamic and powerful with programming logic structures. This lesson covers the essential building blocks that allow you to create responsive, efficient programs that can make decisions and repeat operations.

Key concepts covered include:

  • Defining functions with def and lambda expressions
  • Using conditional statements: if, elif, else
  • Implementing loops: for and while
  • Control flow with break, continue, and else clauses
  • Iterating with range() and enumerate()
  • Recursive problem-solving approaches

Access Lesson 3

Lesson 4: NumPy and Plotting

Core Topic: Introduction to NumPy arrays and data visualization with Matplotlib

Apply your Python skills to scientific computing with this lesson on numerical operations and data visualization. You'll learn to work efficiently with numerical data and create informative visualizations to analyze and present your results.

Key concepts covered include:

  • Working with NumPy's efficient ndarray objects
  • Array attributes: shape, dtype, size, and dimensions
  • Vectorized operations and broadcasting
  • Creating plots with Matplotlib: plot(), scatter(), bar()
  • Customizing plots with colors, markers, and styles
  • Creating multi-plot figures with subplot()
  • Introduction to curve fitting with lmfit

Access Lesson 4

Practical Skills You Will Gain

By completing this four-lesson course, you will be able to:

  • Set up a robust Python development environment using Conda/Mamba
  • Write and organize Python code in scripts, modules, and Jupyter notebooks
  • Work effectively with Python's core data structures and understand object mutability
  • Design programs using functions, conditional logic, and loops to manage information flow
  • Perform basic numerical computations with NumPy arrays
  • Create clear, customized static plots to visualize your data
  • Apply Python programming to scientific data analysis tasks

Next Steps After Completion

After completing this introductory course, you'll be well-prepared to:

  • Tackle more advanced Python topics like object-oriented programming
  • Explore specialized libraries for your field (Pandas for data analysis, SciPy for scientific computing, scikit-learn for machine learning)
  • Begin working on your own Python projects
  • Participate in online Python communities and forums
  • Consider more advanced courses in specific Python application areas

Python's versatility means the skills you learn in this course can be applied to web development, data science, automation, scientific research, and many other domains.

Course References

This course is based on the Python Introduction lessons by Prestipino, available on GitHub. For additional learning resources: