Week 1: Python Basics and Core Concepts

  1. Objectives:
    • Understand Python syntax and foundational concepts.
    • Write basic programs with variables, loops, and conditionals.
  2. Things to Learn:
    • Variables, data types, and operators.
    • Input/output operations.
    • Control flow (if, for, while).
  3. Homework:
    • Solve 10 basic coding problems on a platform like HackerRank.
    • Write a BMI calculator program.
    • Write an RPI Calculator
  4. Summary of Week:
    • You’ve set up your Python environment and built a strong understanding of the basics, including:
      • input/output
      • loops
      • conditionals.

Week 2: Functions and Modular Programming

  1. Objectives:
    • Write reusable and modular code using functions.
    • Understand the importance of function arguments and return values.
  2. Things to Learn:
    • Defining and calling functions including:
    • Modular programming with custom modules.
      • *args
      • **kwargs
      • lambda functions.
  3. Homework:
    • Create a unit converter program using modular functions.
    • Solve 5 function-related challenges on LeetCode.
  4. Summary of Week:
    • You’ve gained confidence in writing reusable code and breaking problems into smaller, manageable pieces.

Week 3: Data Structures and Algorithms

  1. Objectives:
    • Understand and use Python’s built-in data structures.
    • Apply sorting and searching algorithms to solve problems.
  2. Things to Learn:
    • Lists
    • tuples
    • sets
    • dictionaries.
    • Common algorithms (e.g., sorting, searching).
  3. Homework:
    • Implement a to-do list manager using dictionaries.
    • Write a program to sort a list of numbers using bubble sort.
  4. Summary of Week:
    • You’ve learned how to use and manipulate data structures and apply basic algorithms to real-world problems.

Week 4: Object-Oriented Programming (OOP)

  1. Objectives:
    • Use OOP principles to design and implement Python programs.
    • Understand classes, objects, and inheritance.
  2. Things to Learn:
    • Classes and objects.
    • Inheritance, polymorphism, and encapsulation.
  3. Homework:
    • Create a library management system using OOP.
    • Solve 5 class-related challenges on Codewars.
  4. Summary of Week:
    • You’ve mastered creating structured programs with OOP, making your code more organized and scalable.

Week 5: Working with Files and Error Handling

  1. Objectives:
    • Read and write files in various formats.
    • Handle errors gracefully in programs.
  2. Things to Learn:
    • File operations (text, binary, CSV, JSON).
    • Exception handling (try, except, finally).
  3. Homework:
    • Build a program to analyze word frequency in a text file.
    • Write a program that gracefully handles file read/write errors.
  4. Summary of Week:
    • You’ve gained skills in file manipulation and error handling, essential for data processing tasks.

Week 6: Intermediate Python: Libraries and Packages

  1. Objectives:
    • Leverage Python libraries to perform data analysis and visualization.
    • Use APIs to retrieve data programmatically.
  2. Things to Learn:
    • NumPy, pandas, Matplotlib.
    • Using requests to interact with APIs.
  3. Homework:
    • Fetch weather data using an API and visualize it with Matplotlib.
    • Analyze and plot data from a CSV file.
  4. Summary of Week:
    • You’ve started working with Python’s powerful libraries, enabling you to analyze and visualize data.

Week 7: Databases and Web Development Basics

  1. Objectives:
    • Store and retrieve data using databases.
    • Build simple web applications with Flask.
  2. Things to Learn:
    • SQLite and SQLAlchemy for database operations.
    • Flask basics (routes, forms, templates).
  3. Homework:
    • Create a budget tracker with a Flask interface and SQLite backend.
    • Write SQL queries to manage database records.
  4. Summary of Week:
    • You’ve built your first full-stack application, combining a database with a web interface.

Week 8: Testing and Debugging

  1. Objectives:
    • Write unit tests to ensure code reliability.
    • Debug programs using Python’s debugging tools.
  2. Things to Learn:
    • Writing tests with unittest or pytest.
    • Debugging tools like pdb.
  3. Homework:
    • Refactor and write tests for your to-do list program.
    • Debug and optimize any previous project.
  4. Summary of Week:
    • You’ve enhanced your ability to write reliable, maintainable code through testing and debugging.

Week 9: Advanced Topics

  1. Objectives:
    • Explore advanced Python features to enhance efficiency.
    • Understand multithreading and concurrency.
  2. Things to Learn:
    • Decorators, context managers, and generators.
    • Multithreading and multiprocessing.
  3. Homework:
    • Build a multithreaded file downloader.
    • Implement a custom decorator to log function execution times.
  4. Summary of Week:
    • You’ve tackled advanced Python features, giving you tools to write efficient and sophisticated programs.

Week 10: Portfolio Project

  1. Objectives:
    • Apply all skills learned to create a polished, portfolio-worthy project.
  2. Homework:
    • Develop a complete application (e.g., expense tracker or weather app).
    • Document the project and deploy it online (e.g., GitHub or Heroku).
  3. Summary of Week:
    • You’ve completed a project that demonstrates your Python proficiency and is ready to showcase to employers.

Course Conclusion: What You Should Be Able to Do for an Employer

  • Write clean, maintainable Python code for various tasks.
  • Create and manipulate databases, automate workflows, and build web applications.
  • Analyze and visualize data using Python libraries.
  • Debug, test, and optimize code for production readiness.
  • Contribute to team projects by understanding and applying modular and scalable design principles.

This comprehensive approach ensures you’re ready for part-time Python programming roles!