Skip to content

Commit d7e56a6

Browse files
Initial commit
0 parents  commit d7e56a6

File tree

110 files changed

+12906
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+12906
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2022 Rachael
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# DSI Course for Bash, Git and GitHub
2+
3+
## Contents:
4+
1. [Description](https://github.com/rachaellam/dsi-workshop#description)
5+
2. [Learning Outcomes](https://github.com/rachaellam/dsi-workshop#learning-outcomes)
6+
3. [Logistics](https://github.com/rachaellam/dsi-workshop#logistics)
7+
4. [Marking Scheme](https://github.com/rachaellam/dsi-workshop#marking-scheme)
8+
5. [Policies](https://github.com/rachaellam/dsi-workshop#policies)
9+
6. [Folder Structure](https://github.com/rachaellam/dsi-workshop#folder-structure)
10+
7. [Acknowledgements and Contributions](https://github.com/rachaellam/dsi-workshop#acknowledgements-and-contributions)
11+
12+
## Description:
13+
The course was created by the University of Toronto's Data Science Institute. The beginning of the course will introduce the basic language of Unix shell including how to navigate and manipulate files and directories. Learners will then learn certain commands, how to create scripts and write basic functions using pipes, filters and loops.
14+
15+
The next portion of the course will be dedicated to getting started with version control and GitHub, and how it connects to the ethical discussions of reproducibility. Learners will learn how to set up Git and initialize and utilize repositories, including recording, viewing and undoing changes. They will also learn how to create branches and collaborate with others with shared branches. This course will put it all together and introduce some more advanced commands such as de-bugging and history editing.
16+
17+
Finally, learners will determine how to problem-solve by identifying where the issue is and how to search with Google and Stack Overflow. This will then lead to the topic of reproducibility and how to contribute by commenting code and writing documentation.
18+
19+
This course is designed for those who have a degree in something other than Computer Science/Statistics who are looking to enhance their data science skills for their career.
20+
21+
## Learning Outcomes
22+
Students will know how to...
23+
1. Access the terminal and write scripts using basic commands, variables, pipes, filters and loops. This will be assessed in Assignment 1.
24+
2. Use version control to preserve personal work, access and edit pervious code versions, collaborate with others, and find and debug errors. This will be assessed in Assignment 2.
25+
3. Solve problems independently by identifying issues, researching, or properly formulating questions using components of reproducibility. This will be assessed in both Assignment 1 and Assignment 2.
26+
4. Synthesize all work within wider discussions of ethics and inequity. Students will actively scrutinize who is and isn't in our datasets and develop knowledge of past abuses of power to better engage their work with ethical considerations. This will be assessed in Assignment 2.
27+
28+
## Logistics
29+
30+
### Course Contacts
31+
* Instructor: [**Name**] [Pronouns] [degree]. hyperlinked email
32+
* Email etiquette
33+
* Other comments
34+
* TA: [**Name**] [pronouns] [degree]. hyperlinkedEmail
35+
36+
### Delivery instructions
37+
The workshop will be held over three weeks, three days a week. Two of the three days will be 2-hours long and the last day will be 3-hours. Being mindful of online fatigue, there will be one break during each class where students are encouraged to stretch, grab a drink and snacks, or ask any additional questions.
38+
39+
### Technology Requirements
40+
1. Camera is optional although highly encouraged. We understand that not everyone may have the space at home to have the camera on.
41+
42+
43+
### Lesson Schedule
44+
| Lesson | Topic | Assignments | Resources |
45+
|--------|----------------------------------------------------------------------------------------------|------------------|------------|
46+
| 1 | Unix Shell I <br>(introducing the Shell, introductory commands, files and directories) | [Assignment 1]() | [Slides]() |
47+
| 2 | Unix Shell II<br>(input/output and pipes/filters) | [Assignment 1]() | [Slides]() |
48+
| 3 | Unix Shell III<br>(shell scripts, shell functions, parameters, flow control) | [Assignment 1]() | [Slides]() |
49+
| 4 | Version Control and GitHub I<br>(introducing version control and GitHub, basic Git commands) | [Assignment 2]() | [Slides]() |
50+
| 5 | Version Control and GitHub II<br>(remote repositories; branching) | [Assignment 2]() | [Slides]() |
51+
| 6 | Version Control and GitHub III <br>(collaborating, dealing with conflicts) | [Assignment 2]() | [Slides]() |
52+
| 7 | Problem solve, reproducibility, ethics, inequity | [Assignment 1]() <br> [Assignment 2]() | [Slides]() |
53+
| 8 | Professional Skills - Industry Case Study | [Assignment 2]() | [Slides]() |
54+
| 9 | Data Science Foundations - Review and Practice | | [Slides]() |
55+
56+
## Marking Scheme
57+
| Assessment | Weight | Description | Due Date |
58+
|------------------|--------|-------------|----------|
59+
| [Assignment 1]() | | | |
60+
| [Assignment 2]() | | | |
61+
| | | | |
62+
63+
## Policies
64+
The course is a live-coding class. Students are expected to follow along with the coding, creating files and folders to navigate and manipulate. Students should be active participants while coding and are encouraged to ask questions throughout. Although slides will be available for students to reference, they should be referenced before or after class, as during class will be dedicated to coding with the instructor.
65+
66+
**How to submit assignments, late policy, academic integrity.**
67+
68+
## Folder Structure
69+
Below are the folders contained in this repo with a description of what they contain and information on how to use them.
70+
71+
### 1 *assignments*:
72+
This folder contains the assignments for the workshop. Students are expected to complete them one week after the content has been delivered.
73+
74+
### 2. *homework*:
75+
This folder contains homework for students to practice Unix and Git/GitHub workshops. Please complete the Unix Shell homework in the first week, and the Git/GitHub homework in the second.
76+
77+
There are pdf copies of the homework and markdown files, which can be edited. The homework can change based on the amount of content that was completed each day.
78+
79+
Homework is just a suggestion but will help students throughout the workshop, as content is cumulative and will only get more difficult. Unfortunately, there is not enough time to review previous content each class so while this homework is **not** graded, it is highly recommended.
80+
81+
### 3. *lessons*:
82+
This folder contains the pdf and html version of the slides. Either the pdf slides or the html slides can be used when teaching. If slides are edited to contain any gifs, the instructor will need to use the html slides so that the gifs are active.
83+
84+
pdf slides should be referenced before class to prepare or after class to review. During class will be live-coding, therefore, there is no need to follow them during class. They contain all information that was discussed in class and are a great resource in the future if students need to reassess their knowledge.
85+
86+
### 4. *post-course*:
87+
This folder contains the exit surveys for students to complete. It holds both the md and docx versions of the survey.
88+
89+
### 5. *slides-resources*:
90+
This folder contains all editable slides. To edit, download the entire folder, including the *pics* folder as this folder contains the pictures which are relationally referenced in the markdown files.
91+
92+
To change a photo, edit the markdown where photos are referenced.
93+
94+
Example:
95+
96+
Change `![w:1150 center](pics/github.png)` to `![bg](pics/github.png)`
97+
98+
To add a photo, add photo to the *pics* folder and reference it within the markdown file.
99+
100+
Example:
101+
102+
Added photo labelled "git_commit.png" will be referenced in markdown file as `![w:1000 left](pics/git_commit.png)`
103+
104+
## Acknowledgements and Contributions
105+
## Achnowledgements
106+
* Who helped make theses slides
107+
* We wish to acknowledge this land on which the University of Toronto operates. For thousands of years it has been the traditional land of the Huron-Wendat, the Seneca, and most recently, the Mississaugas of the Credit River. Today, this meeting place is still the home to many Indigenous people from across Turtle Island and we are grateful to have the opportunity to work on this land.
108+
### Contributions
109+
* `bash-git-github` welcomes issues, enhancement requests, and other contributions. To submit an issue, use the [GitHub
110+
issues](https://github.com/anjalisilva/bash-git-github/issues).
56.8 KB
Binary file not shown.

assignments/01-Unix-Assignment.pdf

59.2 KB
Binary file not shown.

assignments/02-Git-Quiz.pdf

66.1 KB
Binary file not shown.
43.4 KB
Binary file not shown.

homework/git-homework.md

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
marp: true
3+
theme: uncover
4+
_class: invert
5+
paginate: true
6+
7+
---
8+
<style>
9+
p {
10+
text-align: left;
11+
font-size: 35px
12+
}
13+
ul {
14+
margin: 0;
15+
font-size: 35px;
16+
}
17+
table {
18+
font-size: 35px;
19+
}
20+
ol {
21+
margin: 0;
22+
font-size: 35px;
23+
}
24+
</style>
25+
26+
27+
# **Git/GitHub Homework**
28+
```console
29+
$ echo "Data Sciences Institute"
30+
$ echo "by: Rachael Lam"
31+
```
32+
33+
---
34+
##### **Expectations**
35+
The goal of this homework is not to grade the competancy of what was learned, but to give students an opportunity to practice. This will help students remember the content and prepare for the next class.
36+
37+
Because each class builds upon the last, it's important to review the content, as time is too limited for a full in-class review.
38+
39+
---
40+
<!--_color: white -->
41+
<!--_backgroundColor: #f4a534 -->
42+
## `Day 1`
43+
44+
---
45+
##### **To Review:**
46+
Please practice the following commands. You can either work with a new repo, or one that you are currently working on.
47+
1. initialize a new repo `git init`
48+
49+
2. clone a new or existing repo `git clone`
50+
3. see status of files in repo `git status`
51+
4. add files to be staged `git add`
52+
5. see changes between files `git diff`
53+
6. remove files `git rm`
54+
7. move files `git mv`
55+
56+
---
57+
- Remember to practice with different options.
58+
- You can make test files and folders if you don't want to delete anything.
59+
- Continuously practicing will drill these commands into your memory so it will become easier with time.
60+
61+
---
62+
<!--_color: white -->
63+
<!--_backgroundColor: #f4a534 -->
64+
## `Day 2`
65+
66+
---
67+
##### **To Review:**
68+
Please practice the following commands. Attempt to move around your commits (forwards and backwards).
69+
1. see history of commits `git log`
70+
71+
2. changing a commit `--amend`
72+
3. unstage a file `git reset`
73+
4. revert to original file and to previous commit `git checkout`
74+
75+
---
76+
5. add remote repo `git remote`
77+
78+
6. fetch new changes from remote repo `git fetch` / `git pull`
79+
7. push changes to remote repo `git push`
80+
8. create new branch `git branch`
81+
9. change working branch `git checkout`
82+
10. merge branches `git merge`
83+
84+
Also practicing pushing and pulling to remote branches.
85+
86+
---
87+
<!--_color: white -->
88+
<!--_backgroundColor: #f4a534 -->
89+
## `Day 3`
90+
91+
---
92+
##### **To Review**
93+
There are several GitHub Skills courses that will help you practice collaborative processes. Please review the following:
94+
95+
1. [Pull Requests](https://github.com/skills/review-pull-requests)
96+
97+
2. [Merge Conflicts](https://github.com/skills/resolve-merge-conflicts)
98+
99+
3. [Markdown](https://github.com/skills/communicate-using-markdown)

homework/git-homework.pdf

106 KB
Binary file not shown.

homework/unix-homework.md

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
marp: true
3+
theme: uncover
4+
_class: invert
5+
paginate: true
6+
7+
---
8+
<style>
9+
p {
10+
text-align: left;
11+
font-size: 35px
12+
}
13+
ul {
14+
margin: 0;
15+
font-size: 35px;
16+
}
17+
table {
18+
font-size: 35px;
19+
}
20+
ol {
21+
margin: 0;
22+
font-size: 35px;
23+
}
24+
</style>
25+
26+
27+
# **Unix Shell Homework**
28+
```console
29+
$ echo "Data Sciences Institute"
30+
$ echo "by: Rachael Lam"
31+
```
32+
33+
---
34+
##### **Expectations**
35+
The goal of this homework is not to grade the competancy of what was learned, but to give students an opportunity to practice. This will help students remember the content and prepare for the next class.
36+
37+
Because each class builds upon the last, it's important to review the content, as time is too limited for a full in-class review.
38+
39+
---
40+
<!--_color: white -->
41+
<!--_backgroundColor: #f4a534 -->
42+
## `Day 1`
43+
44+
---
45+
##### **To Review:**
46+
Please practice the following commands.
47+
1. current directory `pwd`
48+
2. set working directory `cd`
49+
3. list contents of working directory `ls`
50+
4. create directory `mkdir`
51+
5. create file `touch`
52+
6. copy `cp`
53+
54+
---
55+
<!--_color: white -->
56+
<!--_backgroundColor: #f4a534 -->
57+
## `Day 2`
58+
59+
---
60+
##### **To Review:**
61+
62+
Continue to practice commmands that we learned last week in addition to the new ones. You can upload different datasets relavent to your work to play with.
63+
1. move and rename `mv`
64+
2. remove `rm`
65+
3. concatenate `cat`
66+
4. extract columns from output `cut`
67+
5. sort lines of text `sort`
68+
6. report or omit repeated lines `uniq`
69+
70+
---
71+
7. print lines matching a patter `grep`
72+
8. search directories and subdirectories for files `find`
73+
9. ouput the first part of a file `head`
74+
10. output the last part of a file `tail`
75+
<br>
76+
77+
Try each commmand with different...
78+
- `-options`
79+
- Wildcards
80+
- Expansions
81+
- Quoting and backslashing.
82+
83+
---
84+
Create any script using functions. Try to include:
85+
- Global variables
86+
- Local variables
87+
- Positional parameters
88+
89+
---
90+
<!--_color: white -->
91+
<!--_backgroundColor: #f4a534 -->
92+
## `Day 3`
93+
94+
---
95+
##### **To Review:**
96+
It's time to put everything we've learned together!
97+
98+
Please complete assignment 1 by October 30th. Submit assignment by email to your TA by 11:59 PM.
99+

homework/unix-homework.pdf

109 KB
Binary file not shown.

lessons/week_1/unix_slides.html

+2,007
Large diffs are not rendered by default.

lessons/week_1/unix_slides.pdf

2.39 MB
Binary file not shown.

lessons/week_2/git_slides.html

+4,432
Large diffs are not rendered by default.

lessons/week_2/git_slides.pdf

7.66 MB
Binary file not shown.
23.3 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# DSI Upskilling Pilot Course Exit Survey
2+
## Course Name: Data Science Foudations
3+
### _Course Instructor: Rachael Lam_
4+
### _Ta: Delaram Pouyabahar_
5+
\
6+
Thank you for joining the DSI upskilling pilot courses!
7+
8+
We would like to get your thoughts on your experiences with this course and how we can design our full course offerings. We would appreciate it if you could take the time to fill out and submit this short survey.
9+
10+
### Scale questions:
11+
- 1 - Not at all
12+
- 2 - Somewhat
13+
- 3 - Moderately
14+
- 4 - Mostly
15+
- 5- A great deal
16+
17+
## 1. About the Curriculum.
18+
- I found the course intellectually stimulating.
19+
- The course provided me with a deeper understanding of Unix shell, version control, and GitHub.
20+
- The course is set up to fully onboard someone without prior technical experience.
21+
- The course design, including live coding and examples, provided an opportunity for me to demonstrate an understanding of data science skills.
22+
- The course inspired me to think further about the subject matter outside of class.
23+
- The course material is helpful for me to enhance my data science skills for my career.
24+
- I would recommend this course to other students.
25+
- Overall, the quality of my learning experience in this course was good.
26+
27+
## 2. About the Instructor.
28+
- The course instructor (Rachael Lam) explained concepts clearly.
29+
- The course instructor (Rachael Lam) encourages learners to ask questions about the course material.
30+
31+
## 3. About the TA.
32+
- The TA (Delaram Pouyabahar) was readily available during the class.
33+
- The TA (Delaram Pouyabahar) was helpful when I had difficulties or questions.
34+
35+
### Short Answer Questions.
36+
37+
#### 4. How would you rate the pilot course sequence and flow?
38+
39+
##### 4.1 How do you feel about the course materials? Was there too much material? Would you prefer less material but more in-depth? Or did you enjoy how high-level the material was?
40+
41+
#### 5. Please comment on the in-class support model.
42+
43+
#### 6. What were the top 2 things you liked about this pilot course.
44+
45+
#### 7. What were 2 things you do NOT like about this pilot course.
46+
47+
#### 8. Please tell us about other data science topics that would of interest and helpful in your career.
48+
49+
### Thank you so much for your feedback!

0 commit comments

Comments
 (0)