Extended Unix and Computer Science Skills Tutorial

Fall 2015

General Information

TA Tyson Kendon Office ICT 716
Tutorial Times Monday, Wednesday, Friday - 1pm Location MS 239

Notes

Overview

When learning thing, in computer science, in software development, and in life, often you have to learn by doing. This tutorial is designed to help you learn by doing.

There are many skills that are important to learn while you are learning about computer science. Here, we've chosen to focus on five (and a half) of them that are useful for computer science at the University of Calgary. These are the *nix command line (both basic and advanced), debugging, version control, regular expressions and bash scripting.

Each tutorial is focused on one of these topics and there is a workbook that provides material to help you learn and questions that will prompt you to practice each othe topics discussed. In tutorial I'm there to help you work through the problems you run into. That being said, the workbooks are designed to allow you to work at your own pace, so you should feel free to tackle them on your own and free to contact me with any questions you have.

The tutorial is not mandatory. You should only do the tutorial for your own benefit. I can tell you that it should make it easier to do work in your other courses, give you a head start on problem solving skills and possibly give you a jump in the work place. At the end of the day though, it's up to you.

Although! We do want to offer you a way to show off that you've picked up good skills. We are doing that the the University of Calgary Badges Microcredentialling system. So if you'd like a badge to put on your webpage or on your LinkedIn all you need to do is submit a plain-text file with your answers to all the questions for each workbook to the appropriate dropbox in the Tutorial's D2L site.You can sign up for the D2L site by searching for Unix and Computer Science Skills in D2L. You can also get updates on the Tutorial through the site.

Below are outlines of the six tutorials and the topics they cover. I encourage you to pick the ones that are most relevant to your interests and that you think will benefit you the most and join us.

Tutorials

Tutorial 1 - January 18

Introduction to *nix Command Line

  • How to get started, get around, manage files and get things written.
  • Covers Topics Including:
    • man pages
    • Unix File Hierarchy
    • How to Create, Manage, Read and Write Files
  • Find workbook 1 in the handouts section.
  • There is a link to linuxcommand.org to the Resources section.

Tutorial 2 - January 20

*nix Command Line Tips and Tricks

  • How to be more efficient, more organized and more awesome.
  • Covers Topics Including:
    • Tab Completion
    • Command History
    • Wildcards
    • I/O Redirection
    • Aliases
    • Remote Access (with SSH)
    • Department Webpages
  • Find workbook 2 in the handouts section.

Tutorial 3 - January 22

Debugging

  • How to figure out what's gone wrong with your program.
  • Covers Topics Including:
    • What is a bug?
    • How do we avoid bugs?
    • How do we find bugs
    • How do we use a debugger to help find bugs (with pdb and jdb)
  • Find the workbook in the handouts section.

Tutorial 4 - January 25

Version Control

  • How to keep track of your stuff and play nicely with others.
  • Covers Topics Including:
    • Philosophy of Version Control
    • Introduction to git
    • Using Version Control on Your Own
    • Using Version Control with Others
  • Find the workbook in the handouts section.

Tutorial 5 - January 27

Regular Expressions

  • How to figure out which strings look like the strings we like!
  • Covers Topics Including:
    • Introduction to General Regular Expressions
    • grep (how to find things in files)
    • find (how to find files)
  • Find workbook 5 in the handouts section.

Tutorial 6 - January 29

The Shell and Shell Scripting

  • How to make the shell do your work for you!
  • Covers Topics Including:
    • Bash Scripting (It's a big topic)
    • Using Commands from Inside a Script
    • Bash Flow of Control Commands
  • Find workbook 6 in the handouts section.