Welcome to INFO 201, Technical Foundations of Informatics. This is a course at the University of Washington's Information School. The purpose of this course is to teach students the necessary technical skills to begin writing code to work with data. While these resources are built for students currently enrolled in the course, they have been structured to be an online resource for anyone hoping to learn to work with information using programmatic approaches.
These materials were adapted originally created by Michael Freeman, and adapted by Joel Ross.
Contents
Given the ever-changing nature of the coding world, students will be responsible for independent learning, both in terms of managing their own pace, and seeking out new skills. These modules have been designed to provide an overview of core concepts necessary for success in the course.
This GitHub organization has a separate repository for each learning module. Each module contains the following:
- A tutorial on the specified skill(s)
- Links to supplementary learning materials
- Exercises for practicing the skills
All exercises provide an instructional template, as well as the completed version of the exercise. More specifically, each learning module with exercises has both master
and complete
branches (more on this later). To view the complete
branch on GitHub, you can easily use the web interface to change branches:
You can also access the code on your computer by checking out the branch via your terminal (more on this in module 4):
# Clone your fork of the repository
git clone https://github.com/USERNAME/REPONAME
# e.g., git clone https://github.com/joelross/module4-git-basics
# Navigate into the downloaded repository
cd REPONAME
# e.g., cd module4-git-basics
# Checkout the `complete` branch:
git checkout complete
The complete
branch of each repo has the completed exercises. While these were included for your benefit, I strongly suggest you complete exercises for topics that you aren't completely comfortable with. Assignments will presume you have mastered the skills of corresponding modules.
If you would like to contribute to this repository by adding an exercise, making an edit, or suggesting a new module, please create an issue, or make the change in a fork of this repository and submit a pull request. We expect these resources to be continually improving.