Programming in Python

Dr. Aamir Akbar
https://aamirakbar.com


Course Overview

This course introduces students to the fundamentals of Object-Oriented Programming (OOP) using Python. It covers Python basics, control structures, functions, data structures, and gradually progresses to OOP concepts like classes, objects, encapsulation, inheritance, polymorphism, abstraction, and exception handling.

Week-by-Week Plan

  1. Week 1 (Introduction to Python):

    • Installing necessary tools (VS-code, Python interpreter).
    • Overview and history of Python.
    • Setting up the development environment.
  2. Week 2 (Basics of Python):

    • Variables and data types in Python.
    • Basic operators and expressions.
    • Printing output to the screen.
  3. Week 3 (Python Program Execution):

    • Understanding how Python programs run.
    • Problem-solving approach and logical thinking in Python.
  4. Week 4 (Control Flow):

    • Conditional statements (if-else) in Python.
    • Looping structures (for and while loops).
    • Flow control and decision-making in programs.
  5. Week 5 (Functions and Modules):

    • Functions in Python: defining functions, local and global scope.
    • Working with modules and libraries in Python.
  6. Week 6 (Data Structures):

    • Introduction to data structures: lists, dictionaries, tuples, and sets.
    • Operations and use cases for different data structures.
  7. Week 7 (Introduction to OOP):

    • Basics of Object-Oriented Programming (OOP).
    • Understanding classes and objects in Python.
  8. Week 8 (Creating Objects):

    • Creating instances of classes.
    • The workflow of objects and methods.
  9. Week 9 (Encapsulation):

    • Encapsulation and information hiding.
    • Public, private, and static members in Python.
  10. Week 10 (Inheritance):

    • Inheriting properties and methods from parent classes.
    • Implementing inheritance in Python.
  11. Week 11 (Polymorphism):

    • Polymorphism and dynamic binding.
    • Method overriding and method overloading.
  12. Week 12 (Abstraction):

    • Abstraction and abstract classes.
    • Implementing abstract classes in Python.
  13. Week 13 (Exception Handling):

    • Handling exceptions and errors in Python.
    • Using try, except, and finally blocks.
  14. Week 14 (Unit Testing):

    • Discussion of Unit Testing in software project development.
  15. Week 15 (Functional Programming):

    • Python Lambda functions, decorators, generators, zip, map, reduce.
    • Reviewing key concepts and topics from the course.