(3.0-orientation)=
# 🧩 3.0 Orientation

```{contents}
:depth: 3
```

## 🔰 Getting Started

First, open up the following quiz in Canvas that corresponds to your enrolled term.

::::{tab-set}
:sync-group: category

:::{tab-item} Sp/Su 2024
:sync: w2024

https://q.utoronto.ca/courses/370069/quizzes/419636
:::

:::{tab-item} Sp/Su 2025
:sync: sp2025

https://q.utoronto.ca/courses/393350/quizzes/444618
:::

::::

You will record your GitHub username and GitHub Classroom Student Identifier (obtained after accepting the GitHub Starter Tutorial below), which will be used later in the course. You can refer back to these quiz answers if you forget. See below for information on these two.

```{warning}
Your GitHub Classroom Student Identifier is not necessarily the same between each course. If the same GitHub Classroom Student Identifier from a previous course is still available, you may select that one. Please keep track of which one corresponds to which course to avoid confusion.
```

### GitHub Account

These courses are integrated with coding exercises via GitHub Classroom, so you will need to [create a GitHub account](https://github.com/join) if you don't already have one. Take note of your GitHub username since you will enter this as a quiz response.

```{tip}
Two typical naming conventions for GitHub usernames are as follows:
- John H. Smith → `jhsmith`
- Jane M. Doe → `jane-doe`

If you already have a GitHub account and you have used it infrequently, you may consider [renaming your GitHub account](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/changing-your-github-username) to adhere to one of the conventions above. This is completely optional.
```

### GitHub Starter Tutorial

```{warning}
The student identifier that you choose on the next page **will appear only once** (e.g., `quirky-zebra`). Please record this somewhere safe and enter it into the corresponding Canvas quiz, since you will be using this at various points throughout the course. If you forget or lose your student identifier, please send a message to [sterling.baird@utoronto.ca](mailto:sterling.baird@utoronto.ca).
```

Click on the 🔗 [GitHub starter tutorial](https://classroom.github.com/a/wJK4mQL4), ensure you're logged in to GitHub, link to a student identifier of your choice (write this down), and accept the assignment. See below for a walkthrough of this.

<video width="700" height="394" controls>
  <source src="../../_static/intro-gh-classroom-walkthrough.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video>

<!-- <iframe style="width: 700px; height: 394px; display: inline-block;" title="Video player for github-starter-tutorial-select-accept.mp4" data-media-type="video" src="/media_attachments_iframe/31726637?embedded=true&amp;type=video" allowfullscreen="allowfullscreen" allow="fullscreen" data-media-id="m-49uHHDJPuMSZGb2RheoEbnm8NtVvuFMV" data-mce-fragment="1"></iframe> -->

```{margin}
There is a pre-populated list of student identifiers, none of which have been claimed! You may choose any of these.
```

Use this tutorial to familiarize yourself with git and GitHub terminology. Then, complete the following quiz:

::::{tab-set}
:sync-group: category

:::{tab-item} Sp/Su 2024
:sync: w2024

https://q.utoronto.ca/courses/370069/assignments/1402329/
:::

:::{tab-item} Sp/Su 2025
:sync: sp2025

https://q.utoronto.ca/courses/393350/assignments/1499701?display=full_width_with_nav
:::

::::

## 📄 GitHub Classroom Assignment

Now that you're familiar with basic git and GitHub terminology, we can show you how to use GitHub Classroom for an autograded assignment.

👉 **Second step**: This time, you will use an interactive development environment (IDE) called "Codespaces", with compute resources provided by the Acceleration Consortium through the GitHub Education program. Similar to the format before, click on the new assignment link 🔗 [Intro to GitHub Classroom](https://classroom.github.com/a/By_d8qwE), ensure you're logged in to GitHub, accept the assignment, click the "Open in Codespaces" button, and follow the directions in the README.md file. Spinning up a new Codespace may take a minute or two, and a preview of the README.md file will automatically open up after a few seconds. A number of dialogue boxes and messages will appear during the loading process. Ensure that you sign into GitHub; use of Copilot is optional. The URL in your browser should be of the form `https://<some-funny-phrase>-<unique-id>.github.dev/` which is autogenerated and distinct from your course ID. For example, your URL might be `https://fuzzy-space-spork-9wggxx444g6h7rxq.github.dev/`. You can try the assignment as many times as you like, and you will self-report your autograded score on the next page. See below for a complete walkthrough of these steps.

<video width="700" height="394" controls>
  <source src="../../_static/run-the-demo-walkthrough.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video>

<!-- <iframe style="width: 700px; height: 394px; display: inline-block;" title="autograding-codespaces-python-walkthrough.mp4" data-media-type="video" src="https://q.utoronto.ca/media_attachments_iframe/31726639?embedded=true&amp;type=video" allowfullscreen="allowfullscreen" allow="fullscreen" data-titletext="autograding-codespaces-python-walkthrough.mp4" data-media-id="m-4qfTw9UDxLo8XrZpxMwCLDoT16FfTikf"></iframe> -->

Report your autograded score using the self-report assignment below:

::::{tab-set}
:sync-group: category

:::{tab-item} Sp/Su 2024
:sync: w2024

https://q.utoronto.ca/courses/370069/assignments/1402331
:::

:::{tab-item} Sp/Su 2025
:sync: sp2025

https://q.utoronto.ca/courses/393350/assignments/1499702?display=full_width_with_nav
:::

::::

Additional resources:

- [How students complete assignments](https://youtu.be/ObaFRGp_Eko?si=JMxjdheVKVc3Zwr8)
- [What is Codespaces?](https://youtu.be/sYJ3CHtT6WM)
- [Student developer pack](https://education.github.com/pack)

```{tip}
If you're eligible, consider signing up for the [student developer pack](https://education.github.com/pack) so that **you can have free access to GitHub Copilot (and GitHub Copilot Chat)**, among other perks. **GitHub Copilot is also free for teachers**.

If you're not eligible, you may consider a paid subscription (~$10 USD/month). It's kind of like having a personal coding assistant to bounce ideas off of and have it look at your code. At the same time, it can become a crutch, and there are still times where plain-old Google searches, reading stack overflow posts, and searching through a GitHub repository's issues and documentation is better. The Acceleration Consortium does not benefit from you signing up for GitHub Copilot, and it is not required for the completion of this course.
```

## 📄 Python Refresher Assignment

Optionally, you may try out the [Python refresher assignment](https://classroom.github.com/a/jBlyuWHQ). This is ungraded.
