Skip to content

Course authoring guide for QDK Learning courses - #3655

Open
Dhairya Patel (HABER7789) wants to merge 5 commits into
mainfrom
HABER7789/course-authoring-guide-v2
Open

Course authoring guide for QDK Learning courses#3655
Dhairya Patel (HABER7789) wants to merge 5 commits into
mainfrom
HABER7789/course-authoring-guide-v2

Conversation

@HABER7789

Copy link
Copy Markdown
Contributor

Updates the previous course authoring guide to match the current codebase.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates and adds documentation for authoring QDK Learning courses within the VS Code extension tree, and ensures the new authoring guide is excluded from the shipped extension package.

Changes:

  • Add a new “Authoring a QDK Learning course” guide describing course layout, course.json, exercise tagging, and validation.
  • Document environment/dependency setup and workflow tips for updating published courses.
  • Exclude the new guide from VS Code extension packaging via .vscodeignore.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 3 comments.

File Description
source/vscode/authoring-courses.md New course authoring documentation (structure, metadata, exercises, validation, environment, and workflow).
source/vscode/.vscodeignore Excludes the new authoring guide from the packaged extension.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread source/vscode/authoring-courses.md
Comment thread source/vscode/authoring-courses.md Outdated
Comment thread source/vscode/authoring-courses.md Outdated
Comment thread source/vscode/authoring-courses.md
Comment thread source/vscode/authoring-courses.md Outdated
Comment thread source/vscode/authoring-courses.md Outdated

`_course_lib.py` and `_check_env.py` aren't supplied by the extension, so copy them from an existing course when starting a new one.

_Note_: The folders in this example are numbered, but that's not required - the order comes from `course.json`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
_Note_: The folders in this example are numbered, but that's not required - the order comes from `course.json`
_Note_: The folders in this example are numbered, but that's not required - the display order comes from `course.json`

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied your suggestions.

Comment thread source/vscode/authoring-courses.md Outdated
Comment thread source/vscode/authoring-courses.md Outdated
- `requirements.txt` lists course dependencies; each unit's first cell has a commented-out `%pip install -r ../requirements.txt` for the learner to run
- The `QDK: Create a Microsoft Quantum Python virtual environment` command sets up an environment and prompts for the packages to install
- `course.json` lets you list imports you expect to work so they can be checked before the student starts the unit (e.g. in case they've selected the wrong notebook kernel), which the course's `_check_env.py` reads
- The course infrastructure depends on the Python and Jupyter VS Code extensions, so they'll be prompted if those are absent

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I find "they" ambiguous here - consider "the learner"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

## Trying it out

Open a workspace folder in VS Code and navigate to the Microsoft Quantum extension panel (indicated by a Mobius strip).
If you've never used it before, it'll offer you a `Start Learning` button.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"To return to this state, you can delete qdk-learning.json" (with more details, probably)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied it

Comment thread source/vscode/authoring-courses.md Outdated

Open a workspace folder in VS Code and navigate to the Microsoft Quantum extension panel (indicated by a Mobius strip).
If you've never used it before, it'll offer you a `Start Learning` button.
The Microsoft Quantum Katas are the default course, so you'll need to explicitly Switch Course to your new content in the tree view.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not as true as it used to be

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dropped it, now it just says SwitchCourse.

Comment thread source/vscode/authoring-courses.md Outdated

When you switch to your course, temporary working copies of all the notebooks will be created (indicated by the `.workbook.ipynb` file extension).
These copies omit all the exercise hints, solutions, and explanations and give the learner a notebook they can edit freely without worrying about overwriting anything important.
An existing working copy is never overwritten, so if you based your course on a sample you'd previously run, `git clean` it first to clear out any working copies left behind.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally, I find "never overwritten" too strong.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, changed it with "isn't replaced when the course is copied"

Comment thread source/vscode/authoring-courses.md Outdated

When you switch to your course, temporary working copies of all the notebooks will be created (indicated by the `.workbook.ipynb` file extension).
These copies omit all the exercise hints, solutions, and explanations and give the learner a notebook they can edit freely without worrying about overwriting anything important.
An existing working copy is never overwritten, so if you based your course on a sample you'd previously run, `git clean` it first to clear out any working copies left behind.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

git clean is a dangerous thing to recommend if you're not confident the author has their course files checked in.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, thanks for the catch. Instead mentioned about deleting the leftover *.workbook.ipynb files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants