- Description
- Learning Outcomes
- Course Contacts
- Pre-Course Work
- Design
- Schedule
- Prerequisites
- Expectations
- Policies
- Folder Structure
- Acknowledgements
This section of the course will start by introducing the fundamental language of Unix shell, covering topics such as file and directory navigation and manipulation. Following this, students will gain proficiency in various commands, script creation, and the development of basic functions utilizing pipes, filters, and loops.
Throughout this section of the course, participants will acquire problem-solving skills through live coding sessions. Additionally, they will explore the concept of reproducibility and its integration into their work.
After completing this section of the course, the students will:
- Comfortably access the terminal and write scripts using basic commands, variables, pipes, filters and loops. This will be assessed in Assignment 1.
- Self-problem solve by identifying issues, researching, or properly formulating questions using components of reproducibility. This will be assessed in Assignment 1.
Questions can be submitted to the #questions channel on Slack
- Instructor: Kaylie Lau (she/her). Emails to the instructor can be sent to kaylie.lau@mail.utoronto.ca.
- Instructor: Simeon Wong (he/him). Emails to the instructor can be sent to simeonm.wong@mail.utoronto.ca.
- TA: Tong Su (she/her). Emails to the teaching assistant can be sent to tong.su@mail.utoronto.ca.
- TA: Julia Gallucci (she/her). Emails to the teaching assistant can be sent to julia.gallucci@mail.utoronto.ca.
Before the first class please get your computer set up by following these instructions: https://github.com/UofT-DSI/Onboarding
The course runs synchronously over Zoom. The Unix section consists of four classes over one week. Classes are 6:00 PM - 8:30 PM EDT on weekdays, and 9:00 AM - 11:30 AM EDT on Saturday. Being mindful of online fatigue, there will be one or two breaks during each class where students are encouraged to stretch, grab a drink and snacks, or ask any additional questions.
Tutorial sessions with a TA will also be offered over Zoom. These will take place from 5:30 PM - 6:00 PM EDT and 8:30 PM - 9:00 PM on weekdays, and 8:30 AM - 9:00 AM EDT and 11:30 AM - 12:00 PM EDT on Saturdays.
The schedule is tentative and may be modified as needed. Learners will be notified of schedule changes.
- Day 1 (Tuesday, January 16, 6:00 PM - 8:30 PM): Unix Shell I (introducing the Shell, introductory commands)
- Day 2 (Wednesday, January 17, 6:00 PM - 8:30 PM): Unix Shell I (files and directories)
- Day 3 (Thursday, January 18, 6:00 PM - 8:30 PM): Unix Shell II (input/output and pipes/filters)
- Day 4 (Saturday, January 20, 9:00 AM - 11:30 AM): Unix Shell III (shell scripts, shell functions, parameters, flow control)
Learners are expected to know how to operate a computer. No prior programming knowledge is required.
The course is a live coding class. Learners are expected to follow along with the coding in their own shell. Learners should be active participants while coding and are encouraged to ask questions throughout. Although slides will be available, they should be referenced before or after class, as the class will be dedicated to coding with the instructor.
- Learners must have a computer and an internet connection to participate in online activities.
- Learners must have set up their computer using this link.
- Accessibility: We want to provide an accessible learning environment for all. If there is something we can do to make this course more accessible to you, please let us know.
- Course communications: Communications take place over email or on Slack. If communicating over email, please include "DSI-Shell" or similar in the subject line, e.g. "DSI-Shell: mv question"
- Camera: Keeping your camera on is optional.
- Microphone: Please keep microphones muted unless you need to speak. Please indicate your name before speaking as some Zoom configurations make it hard to tell who is talking!
- Assessment: There will be homework which is not graded, but highly recommended, and there will be an assignment which is graded.
- 01-slides: Course slides as Markdown and PDF files
- 02-homework: Homework to practice concepts covered in class as Markdown and PDF files
- 03-assignments: Graded assignments as Markdown and PDF files
- 04-guides: Instructions related to configuring a Windows environment for specific tasks
- README: This file!
- LICENSE: Copyright information for these materials
- .gitignore: Files to exclude from this folder, specified by the instructor
-
Class attendance: To ensure everyone actively participates in class activities, attendance is mandatory and will be monitored. If you are unable to attend class, it is your responsibility to make up the work that was covered.
-
Homework: Homework is not graded but it is highly recommended.
| Format | Details | Submission Instructions |
|---|---|---|
| Homework | Can be submitted on the day of the next class | Submit homework via your Google Drive. Upload your files using the convention LASTNAME_FIRSTNAME_shell_homework_DAY. |
- Assignment 1: This assignment is graded.
| Format | Details | Submission Instructions |
|---|---|---|
| Assignment 1 | Due on Monday, January 22 at 11:59pm | Submit assignment via your Google Drive. Upload your shell script file using the convention LASTNAME_FIRSTNAME_shell_assignment1.sh |
Course materials were originally developed by Rachael Lam under the supervision of Rohan Alexander. Materials have been modified by Delaram Pouyabahar, Kaylie Lau, and Simeon Wong for 2023, and 2024.