Skip to Content

Facilitator’s Guide: Python Essentials

Overview

Welcome to Python Essentials! This guide provides course-level information, instructional strategies, and facilitation suggestions to help you deliver content effectively. Please read through this guide to gain context for the lessons, assignments, and projects included in the curriculum.

Course Syllabus

For a detailed breakdown of the course content, assignments, and assessments, please refer to the course syllabus. Ensure you review the syllabus before beginning the course to align your instruction with course expectations.


General Facilitation Notes

  • Preparation:
    Utilize designated professional development time during the week to review lesson materials, labs, and assessments for the upcoming sessions. Familiarize yourself with the interactive activities and examples to facilitate student engagement.

  • Daily Agenda:
    Use Canvas announcements to publish a daily agenda that includes a time breakdown for lessons, activities, breaks, and any motivational notes. Publish these agendas consistently at the same time each evening using delayed publishing if available.

  • Lesson Familiarity:
    Review each lesson’s content before class. Understand the underlying concepts and be prepared to lead both instructor-driven and student-driven activities.

  • Emphasize Active Learning:
    The course contains hands-on coding exercises and interactive labs. Encourage pair programming, group work, and independent problem solving. Remind learners that self-guided exploration is crucial for mastering the material.

  • Encourage Self-Learning:
    Emphasize that the course builds foundational skills which learners will continue to develop throughout their careers. Guide them to use additional resources and validate information independently.


In-Class Activities

  • Interactive Labs:
    Some lessons include hands-on labs and coding exercises. Use these labs as opportunities to conduct code-alongs, facilitate pair programming, or initiate group discussions.
  • Open-Ended Challenges:
    Some activities are intentionally open-ended to foster creativity. Adapt the tasks based on learner progress — if students are struggling, provide additional guidance; if they are excelling, encourage further exploration.
  • Discussion and Q&A: Integrate time for discussion and troubleshooting. Use prepared discussion questions to encourage learners to articulate their understanding and share problem-solving strategies.

Emphasize Self-Learning

  • Foundational Skills:
    Remind learners that the course teaches essential, foundational skills. Emphasize that continuous learning and the ability to research independently are critical for success in technology.
  • Resource Sharing:
    Encourage learners to use the curated additional resources provided at the end of each lesson, and explore further materials to deepen their understanding.
  • Problem-Solving:
    Challenge learners to find solutions to issues they encounter, reinforcing the importance of persistence and self-improvement.

Technologies

Canvas

  • Navigation:
    Familiarize yourself with the course layout on Canvas. Use Canvas to post announcements, assignments, and feedback.
  • Consistency:
    Maintain consistency in course communication. If issues arise, contact the course delivery team early.

Development Tools

  • Python Environment:
    Ensure learners have a properly configured Python environment (e.g., using VS Code, PyCharm, or other IDEs). Encourage them to explore debugging and code formatting tools.
  • Git & GitHub:
    Review Git commands and workflows with your learners. Ensure they understand how to clone repositories, commit changes, push to GitHub, and manage branches.
  • Version Control Practice:
    Provide hands-on activities that involve creating repositories, managing branches, and resolving merge conflicts. Emphasize best practices for commit messages and repository organization.

Additional Tools

  • Terminal/Command Line:
    Basic proficiency with the command line is required. Ensure learners are comfortable navigating directories and using command-line Git.
  • Integrated Development Environments (IDEs):
    Recommend tools like VS Code for an enhanced coding experience and integration with Git.

Module Information

This course consists primarily of Cisco Networking Academy content, located at https://www.netacad.com/. These materials are provided through the LMS, and learners can access them at any time. All NetAcad material contains solutions by default. Therefore, custom assessments have been developed for this course at Per Scholas.

Module 302 - Introduction to Version Control

This module serves as a primer on git, GitHub, and the command line. It is intended to help learners understand the importance of version control and how to use git to manage their codebase. They will then utilize these skills to push their code to GitHub and collaborate with others on projects, as well as submit assignments and assessments.

This module is shared among many of our programming courses, and uses very simple HTML examples to demonstrate version control. You may leverage these examples if desired, or use your own Python examples specific to your course.

Module 351 - Introduction to Python

This module is one NetAcad as Python Essentials 1. It is intended to help learners understand the basics of Python and how to use it to write simple programs. It covers topics such as variables, data types, control flow, functions, and more.

At the end of each NetAcad “module,” learners will be assessed through a graded lab activity that cooresponds to the module. This lab activity will be used to evaluate learners’ understanding of the module’s concepts. Learners will receive feedback on their work, which will help them identify areas for improvement and adapt their approach to the module’s content.

At the end of this module, the NetAcad “course” Python Essentials 1, learners will be given a Skills-Based Assessment (SBA) and a Knowledge-Based Assessment (KBA) to assess their ability to apply the concepts they have learned and demonstrate their understanding of Python.

Module 352 - Advanced Python

This module, which contains NetAcad’s Python Essentials 2 course, is intended to help learners master advanced Python concepts. It covers topics such as object-oriented programming, modules, and advanced data structures.

The module follows the same pattern as above, with a lab activity at the end of each module and a Skills-Based Assessment (SBA) and a Knowledge-Based Assessment (KBA) at the end of the course.

💡
Tip

Code Reviews: Incorporate code reviews and peer feedback sessions to simulate workplace scenarios and foster collaborative learning.


Conclusion

As a facilitator, your role is to guide learners through the technical content, encourage active participation, and nurture self-learning and problem-solving skills. Utilize the provided guides and resources, and do not hesitate to reach out for support if needed. Your feedback and insights are invaluable to improving the course material and learner experience.

If you have any questions or suggestions regarding this facilitator’s guide or the course material, please contact the curriculum coordinator.

Happy teaching, and best of luck in helping learners succeed in Python Essentials!