Course Outline
This two-day workshop will provide a comprehensive education on GitHub Copilot, providing attendees with the understanding of:
- What GitHub Copilot is
- How it works
- The good, the bad, and the ugly of working with an AI assistant
- How to use it across multiple frameworks and languages
- How to work around its shortcomings
- How to use it after the code is written to review, optimize, and document
- How to administer it
- The differences between the various plans
- Scaling and administering Copilot
Day 1 Outline
Speaker introduction, workshop goals and logistics, group discussion on goals, questions, Copilot background, etc.
i. Basics: This section will introduce Copilot and discuss what it is, how it works, and why it is useful. Topics covered will include
- An overview of Copilot and its main features
- The benefits of using Copilot for code generation and completion
- Basic Copilot usage
- Hands-on lab: Learning how to create good prompts for Copilot
ii. Navigation and utilizing the assistance from Copilot Chat. This section will help participants get comfortable and familiar with navigating suggestions from the tool and utilizing some key features of Copilot with its Chat functionality. Topics covered will include
- Understanding Copilot's suggestions and interface
- The additional features of Chat
- Using Copilot to simplify and fix code
- Learning how to work with code suggestions, completions, and examples
- Hands-on lab: Using Copilot to simplify and explain code
iii. Other ways to leverage Copilot
Topics covered will include:
- Working with Chat more directly
- Having Copilot explain code
- Having Copilot document code
- Asking Copilot questions in code
- Hands-on lab: - Other ways to get Copilot's functionality
iv. Test generation: In this section, we'll look at how to generate tests using Copilot. Topics will include:
- Various options for generating test cases via Copilot
- Hands-on lab: Using Copilot to generate tests.
v. Copilot and SQL and adding context: This section will show how Copilot can help with SQL parsing, generation, and updates. Additionally, we will highlight how to add context for Copilot to get the best suggestions.Topics covered will include:
- Using Copilot with SQL
- Adding context to get better suggestions from Copilot
- Hands-on lab: Using Copilot to help with SQL
vi. Copilot and updates: In this section, we'll look at why Copilot may not be up-to-date and how to deal with it when it isn't. Topics covered will include:
- Understanding what Copilot's frame of reference is
- What to do when Copilot is not up-to-date
- Hands-on lab: Teaching Copilot about updates: Examples of how to handle it when Copilot does not have the most up-to-date information
Day 2 Outline
vii. Copilot and Kubernetes and APIs: This section will cover how to use Copilot to generate manifests for Kubernetes as well as how to use it to work with APIs like those in Kubernetes. We'll also talk about Copilot's translation capabilities. Topics covered will include:
- Using Copilot to generate Kubernetes manifests
- Getting Copilot to tell us how to execute code
- An example of the 2021 problem with Copilot
- Having Copilot translate between languages
- Hands-on Lab: Kubernetes, YAML generation and the “2021 problem”
viii. Javascript, regular expressions, and auto generating data: In this section, we'll look at ways to have Copilot help with creating regular expressions and generating data mappings. Topics covered include:
- Using Copilot to generate regular expressions
- Generating routine mapping data
- GitHub Copilot at scale - plans, options, considerations, administration, recommendations
- Copilot in the Enterprise: Integration in GitHub and custom docsets
- Optional Activity: Using GitHub Copilot to help develop a simple project from start to finish in your IDE. (If you want to do the optional activity in a particular IDE, have that IDE installed on your laptop - must be one that supports GitHub Copilot integration)