Introduction to Tools and Techniques in Computer Science

Introduction

Franklin Bristow

Introduction

We’re getting comfortable with using the command line, managing folders and files, and writing structured text, but all you’ve been doing in your CS courses up to this point has been programming, and the things we’ve been doing in this course haven’t exactly been related to programming.

This week we’re going to switch things up a bit: we’re going to look at how to compile and run code on Linux systems (we’ll do Java, Python, and C).

While it’s cool 😎 to be able to run your code on remote systems and you’re definitely going to have to do this lots in the future, it’s, uh, not exactly a week worth of material.

The bigger topic this week is going to be an introduction to version control. Have you ever copied and pasted big chunks of code, commented one of the chunks out, and edited the other because you were worried about losing your working code? Have you ever copied and pasted entire files for the same reason? Even worse, have you ever had working code that you edited and then it didn’t work anymore and you couldn’t remember what you changed?

Yeah, turns out that everyone does that. Some people do it for longer than others. Some never stop. We’re going to stop. We’re going to use version control software to help us keep track of changes that we’ve made to our code over time. While many different version control software exist, we’re going to be specifically looking at git. This week we’re going to focus on using it locally.

By the end of this week you should be able to:

  • Download a file from the internet on the command-line.
  • Compile and run programs of various programming languages on the command-line.
  • Use version control software on your own code to keep track of changes that you make over time (initializing and adding changes to a repository).
  • Use version control software on your own code to make changes and quickly be able to revert to a working state.
  • Identify files that should not be version controlled and make sure they aren’t included in a repository’s history (.gitignore).