Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assignment #35

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 33 additions & 112 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,137 +19,58 @@
This module explores version control with Git and GitHub, and how it connects to the ethical discussions of reproducibility. Participants will set up Git and create and use repositories, including recording, viewing and undoing changes. You will also learn how to create branches and collaborate with others with shared branches. This module also introduces more advanced commands such as de-bugging and history editing.

Throughout the entire module, participants will learn how to problem solve through live coding. You will also learn about reproducibility and how to centre it within your work.

## Learning Outcomes

By the end of the module, participants will be able to:
ants will be able to:
* Use Git to collaboratively save, restore, and update work through version control
* Explain the difference between Git and GitHub

## Activities
This module has two types of activities.
1. Assignments are mandatory, and form part of your evaluation.
1. Homework is not assessed, but are provided to you for extra practice. We encourage you to check each other's homework solutions during Work Periods or ask a Learning Support!
earning Support!

### Assignments
Participants should review the [Assignment Submission Guide](https://github.com/UofT-DSI/onboarding/blob/main/onboarding_documents/submissions.md) for instructions on how to complete assignments in this module.

Assignments are typically due on the Sunday following the module's live learning session.

1. [Git Assignment](./02_activities/assignments/git_assignment.md)
1. [Git Assignment](./02_activi
[email protected]
* **Pedram Asli*


### Homework
1. [Git Homework](./02_activities/homework/git_homework_1.md)
# Git Assignment - <keyuancy>

## Questions and Answers

## Contacts
### a. What is an issue?
An issue is a way to track tasks, enhancements, bugs, or other requests in a GitHub repository. It allows users to discuss and manage project work.

**Questions can be submitted to the _#cohort-4-help_ channel on Slack**
### b. What is a pull request?
A pull request (PR) is a request to merge code changes from one branch into another. It allows for code review, discussion, and automated testing before integration.

* Technical Facilitator:
* **Simeon Wong** (he/him)
[email protected]
### c. Describe the steps to open a pull request:
1. Push your branch with changes to GitHub.
2. Go to the repository on GitHub.
3. Click on the "Pull requests" tab.
4. Click "New pull request."
5. Select your branch and compare it with the base branch (e.g., main).
6. Add a title and description, then click "Create pull request."

* Learning Support Staff:
* **Emma Teng** (she/her)
[email protected]
* **Sidra Bushra** (she/her)
[email protected]
* **Pedram Asli**
### d. Describe the steps to add a collaborator to a repository (share write permissions):
1. Go to the repository on GitHub.
2. Click on the "Settings" tab.
3. Click on "Collaborators & teams."
4. Under "Collaborators," type the username of the person you want to add.
5. Click "Add collaborator" and then confirm.

 
## Delivery of the Learning Module
### e. What is the difference between git and GitHub?
Git is a version control system used to track changes in code. GitHub is a platform that hosts Git repositories online, allowing for collaboration and sharing.

This module will include live learning sessions and optional, asynchronous work periods. During live learning sessions, the Technical Facilitator will introduce and explain key concepts and demonstrate core skills. Learning is facilitated during this time. Before and after each live learning session, the instructional team will be available for questions related to the core concepts of the module. Optional work periods are to be used to seek help from peers, the Learning Support team, and to work through the homework and assignments in the learning module, with access to live help. Content is not facilitated, but rather this time should be driven by participants. We encourage participants to come to these work periods with questions and problems to work through.

Participants are encouraged to engage actively during the learning module. They key to developing the core skills in each learning module is through practice. The more participants engage in coding along with the instructional team, and applying the skills in each module, the more likely it is that these skills will solidify.
### f. What does git diff do?
The `git diff` command shows the differences between changes made in the working directory and the index or between two commits.

## Schedule
### g. What is the main branch?
The main branch (often named `main` or `master`) is the default branch where the stable and production-ready code is usually maintained.

The schedule is tentative and may be modified as needed. Learners will be notified of schedule changes.
### h. Besides our initial commit if it is a new repository, should we directly push our changes directly into the main branch?
It is generally a good practice to create separate branches for different features or fixes and use pull requests to merge changes into the main branch to ensure code review and maintain stability.

||Day 1|Day 2|Day 3|Day 4|Day 5|
|---|---|---|---|---|---|
|Week 1|Live Learning Session 1 ([Shell](https://github.com/UofT-DSI/shell))|Live Learning Session 2 (Shell)|Live Learning Session 3 (Git & Github)|Work Period 1|Work Period 2|

## Requirements

* Participants are not expected to have any coding experience; the learning content has been designed for beginners.
* Participants are encouraged to ask questions, and collaborate with others to enhance their learning experience.
* Participants must have a computer and an internet connection to participate in online activities.
* Participants must not use generative AI such as ChatGPT to generate code in order to complete assignments. It should be used as a supportive tool to seek out answers to questions you may have.
* We expect learners to have completed the [onboarding repo](https://github.com/UofT-DSI/onboarding/tree/main/onboarding_documents).
* We encourage participants to default to having their camera on at all times, and turning the camera off only as needed. This will greatly enhance the learning experience for all participants and provides real-time feedback for the instructional team.

## Resources

Feel free to use the following as resources:

### Cheat sheet

- [Atlassian](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet)
- [GitHub](https://education.github.com/git-cheat-sheet-education.pdf)

### Videos
- [Most common git commands](https://www.youtube.com/watch?v=PSJ63LULKHA)
- [Git explained in 100 seconds](https://www.youtube.com/watch?v=hwP7WQkmECE)
- [Git vs GitHub: What's the difference?](https://www.youtube.com/watch?v=wpISo9TNjfU)

### How to get help
#### 1. Gather information about your problem
- Copy and paste your error message
- Copy and paste the code that caused the error, and the last few commands leading up to the error
- Write down what you are trying to accomplish with your code. Include both the specific action, and the bigger picture and context
- (optional) Take a screenshot of your entire workspace

#### 2. Try searching the web for your error message
- Sometimes, the error has common solutions that can be easy to find!
- This will be faster than waiting for an answer
- If none of the solutions apply, consider asking a Generative AI tool
- Paste your code, the error message, and a description of your overall goals

#### 3. Try asking in your cohort's Slack help channel
- Since we're all working through the same material, there's a good chance one of your peers has encountered the same error, or has already solved it
- Try searching in the DSI Certificates Slack help channel for whether a similar query has been posted
- If the question has not yet been answered, post your question!
- Describe your the overall goals, the context, and the specific details of what you were trying to accomplish
- Make sure to **copy and paste** your code, your error message
- Copying and pasting helps:
1. your peers and teaching team quickly try out your code
1. others to find your question in the future

#### Great resources on how to ask good technical questions that get useful answers
- [Asking for Help - The Odin Project](https://www.theodinproject.com/lessons/foundations-asking-for-help)
- [How do I ask a good question? - Stack Overflow](https://stackoverflow.com/help/how-to-ask)
- [The XY problem: A question pitfall that won't get useful answers](https://xyproblem.info/)
- [How to create a minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example)

#### Getting help: A summary
<img src="steps_to_ask_for_help.png" width="700">

<hr>

## Folder Structure

```
.
├── .github
├── 01_materials
├── 02_activities
├── 03_instructional_team
├── 04_this_cohort
├── .gitignore
├── LICENSE
├── README.md
└── steps_to_ask_for_help.png
```

* **.github**: Contains issue templates and pull request templates for the repository.
* **materials**: Module slides and interactive notebooks (.ipynb files) used during learning sessions.
* **activities**: Contains graded assignments, exercises, and homework to practice concepts covered in the learning module.
* **instructional_team**: Resources for the instructional team.
* **this_cohort**: Additional materials and resources for this cohort.
* **.gitignore**: Files to exclude from this folder, specified by the Technical Facilitator
* **LICENSE**: The license for this repository.
* **README**: This file.
* **steps_to_ask_for_help.png**: Guide on how to ask for help.
Loading