Meeting 01: Course Introduction

The goal today is to give you a sense of what the course is about, how I teach, and what is expected of you. We will also go through the setup of the software needed for the course as our "Exercise" of the day.

Be sure to read the main syllabus page! There is important information there about course administration.

About the course

This course is the third in the software sequence for computer engineering students. It is a technical course, meaning there is very little theory and a lot of technique. It is also a grab-bag of topics, so there is little unification across the course. About a third of the material is related to design and testing. Another third is related to event-driven programming, typically motivated by GUI programming. The last third covers concurrency, which you need for ECE 4534 (Embedded System Design).

We will be covering the following core topics.

Like most courses there is a hidden agenda as well. You will gain experience writing larger programs that require non-trivial design, get exposure to tools other than the compiler, and learn how to use third-party API documentation.

Exercise-01: Setup

In this exercise you will install the required software for the course and setup the development environment assumed by these exercises.

The exercises assume you have a favorite text editor and know how to use it, and that you know how to use the command line for your system, powershell on Windows and bash on Linux or Mac OSX. If this is not the case then you should go through this crash course first.

GitHub Account (all platforms)

In this part of the exercise you will create a GitHub user account. GitHub is a collaborative coding website that is based on git, the version control tool we will use this semester. GitHub is how all assignments will be distributed and how we will obtain your code for grading. More details will be provided in meeting 2. For now we need to ensure you have a GitHub account and can map your VT PID to your GitHub username.

  1. Visit github.com and signup for a free account on the landing page. If you already have a GitHub account you can skip this step.

  2. Go to Exercise 1: GitHub Account on Canvas. Enter your GitHub username in the text entry box that appears after you select Submit Assignment. Enter just the username with no other text or spaces.

The remainder of this exercise depends on which platform you will be using.

Windows (7,8,10)

First, turn off both "hidden files and folders" and "hiding extensions" -- These settings are meant for novice users.

  1. Install VS2015 or later. If you already have it installed, skip this step.
  1. Install git.
  1. Install cmake. Visit www.cmake.org.
  1. Install VirtualBox. Visit www.virtualbox.org.
  1. Install Vagrant. Visit www.vagrantup.com. Click Download. Download and install the Windows version.

To verify everthing is setup properly, open up Powershell and type

git --version
cmake --version
vagrant --version

You should see the expected version numbers reported.

Mac OSX

  1. Install XCode. Visit developer.apple.com/xcode. Click Download. You will have to create an Apple ID if you do not have one.
  2. Install git. Visit www.git-scm.com. Download and install the latest version for Mac.
  3. Install cmake. Visit www.cmake.org/download. Download and install the Binary distribution for Mac OSX 10.6 or later.
  4. Install VirtualBox. Visit www.virtualbox.org. Download and install VirtualBox 5.2.10 platform packages for OS X hosts.
  5. Install Vagrant. Visit www.vagrantup.com. Click Download. Download and install the Mac OSX version.

To verify everthing is setup properly, open up Terminal.app and type

git --version
cmake --version
vagrant --version

You should see the expected version numbers reported.

Linux

If you are using Linux then I will assume you know how to install software for your specific distribution. You might need to install a newer version than that provided by your package manager.

  1. Install a compiler (g++ version >= 4.8 or clang++ version >= 3.3)
  2. Install git version >= 2.8
  3. Install cmake version >= 3.5
  4. Install VirtualBox version == 5.2.10
  5. Install Vagrant version >= 1.9