|
| 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 `` to `` |
| 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 `` |
| 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). |
0 commit comments