Introduction to Tools and Techniques in Computer Science

Introduction

Franklin Bristow

Introduction

Right now building a program doesn’t really seem like a hard problem: you hit the Compile and/or Run buttons (whatever they look like for you), your program runs and does stuff 🎉.

When your program consists of a single file, it can and should be that easy to build your code. But as the size of your code grows beyond one single file, building your program can become difficult and tedious. This week we’re going to spend some time looking at tools for building software from source code, and look at building source code for different programming languages.

As your programs grow in complexity, you’re also going to want to rely on source code and programs that have been developed by other people. We’ll take a look at some approaches to downloading and using third-party libraries of code that aren’t included as part of the language itself (I’m looking at you incredibly huge JDK!).

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

  • Download and run a program that requires you to install dependencies.
  • Create a Makefile to accomplish a task (building software, running commands).
  • Create a new empty software project that includes a build and dependency management tool.
    • Add and use a new dependency in a software project.

Languages

This isn’t a programming course™.

While this isn’t a programming course, we’re kind of required to look at the topics we’re looking at this week in the context of programming languages:

  • Installing dependencies with Python.
  • Using make with C (but also other stuff).
  • Build and dependency management with Maven and Java.

While you almost certainly know some dialect of Java, the examples we’re going through are less about knowing the language, and more about knowing how to get a program already written in that language up and running.