Table of Contents
Environment Setup
The easiest way to set up the development environment is using VSCode configured for running a Docker environment. We have built a Docker image for you in advance that contains all the necessary tools to compile, run, and debug the assignments. This docker image has been tested on Mac (intel chip), Mac (apple chip), Windows, and Linux.
Installing Prerequisites for CSC4103
We will use Visual Studio Code as our development environment for everything related to writing and debugging code. Please follow the instructions on how to install Visual Studio Code and all other prerequisites as outlined below.
There are two ways for you to use VSCode to finish the assignments:
- Install all prerequisites on your local machine and work there
- Use Github codespaces, which is a way of working fully online without the need to install anything locally at all
For all of those you will need to apply for an account on github.com
You can skip this step if you already have an account for this website. Simply follow the instructions, the website does a good job at guiding you through the process. Please take note of your login name so you will be able to login later, if needed.
Install all prerequisites on your local machine and work there
While the list of things below might seem to be quite long, you will have to go through these steps only once. You will be able to use the installed software for all future assignments, projects, and exercises. I suggest that you go through the videos linked in those sections as they contain important information for finishing the homework assignments over the semester.
Step 1: Install Git
Since all of our code will be maintained on github.com, you will need to install the git command line tool that is used as the main means of communicating with this website behind the scenes. You can download the installer for your platform here. The installation documentation for git can be found here. While there is plenty of introductory material about Git available online, a good starting point to learn more can be found here. There is also some introductory material on how to use Git from inside VSCode.
Step 2: Install Docker
First, you need to install docker on your computer. Go to the docker download page for help.
To verify that your installation works as expected, pull the docker image and run it, just type the command below into your favorite shell (you can run docker run --help
to find out what this command means in detail):
docker run -it stellargroup/pintos:latest bash
This image is about 2GB (it contains a full Ubuntu 20.04), so it may take some time at its first run. If everything goes well, you will enter a bash shell. We will use this docker image for all subsequent assignments, thus you will have to download it only once.
- Type
pwd
you will find your home directory is under/pintos
. - Type
ls
you will find that the home directory is empty.
Now you own a tiny Ubuntu OS inside your host computer, and you can shut it down easily by Ctrl+d
. You can check that it has exited by running docker ps -a
.
Step 3: Install Visual Studio Code (VSCode)
Visual Studio Code is a nice and lightweight development environment that can be used on all major platforms. Please download and install it from here.
There is extensive documentation available on how to install and work with Visual Studio Code here.
Step 4: Install the Development Environment for VSCode
Please follow the instruction on how to prepare VSCode for the development of C++ code here. Especially the tutorial section on Get started with C/C++ and VS Code provides a wealth of information. Please note that on different platforms you might have to follow platform-specific instructions.
This step also involves installing more VSCode extensions that will help you to work more conveniently. There is documentation available if you need more information on how to install VSCode extensions in general here. The following is a list of suggested VSCode extensions to install:
If you run into trouble installing any of the above, don’t panic! The easiest way to get answers is to go to our Course Discord Server and ask questions there. Alternatively, please send an email and we can help you out.
For all of this to work as expected, please make sure you have selected “Visual Studio Code” as the editor of your choice (NOTE: NOT “Visual Studio Code for the Web”). You can do this by following these instructions.
Use Github codespaces to work fully online
As an alternative to all of the above, all of the repositories we will use for the lectures and assignments will be enabled for using Github codespaces. Once your own repository has been created during the process that is described below, you can simply follow the instructions to spin up a virtual machine online with a web version of VSCode connected to it. Easy!
Please note that you will have a maximum of two Codespaces instances available to you at any point in time across the whole semester. You may want to explicitly delete any instances you don’t need anymore.
For all of this to work as expected, please make sure you have selected “Visual Studio Code for the Web” as the editor of your choice (NOTE: NOT “Visual Studio Code”). You can do this by following these instructions.
Creating your Initial Assignment 0 Clone using Github Classroom
Congratulations, at this point you are ready for working on the assignment!
Over the course of this semester we will rely on Github Classroom to manage assignments. For more information on Github Classroom please see here.
In this course, we will manage assignments in repositories hosted on Github. The moment you accept an assignment on Github Classroom, you will get access to your own repository that is a clone of the original repository containing the starter code. Your clone of this repository is private by default. This means that nobody except yourself and the course staff is able to see it.
You are responsible to keep the visibility of the repository and its content private. If you change your repository’s visibility to public or make the content of your repository available to others in any way, then you make yourself vulnerable to allegations of plagiarism - with all related consequences.
Please be also aware that by accepting an homework assignment you agree on sharing your name and your LSU email address in the context of this course with Github. Please be aware that the work you turn in for this course, along with the respective student identifiers will be submitted to Github for review, for providing feedback, for performance analysis, and for grading purposes.
Here’s what to do next:
- Open a browser and navigate to this url.
- If asked, select your name from the list
- Click the “Accept this assignment” button.
You should see a new page which says “You are ready to go!” The page will provide the link to your assignment 0 repo, e.g., https://github.com/hkaiserteaching/csc4103-spring2025-assignment0-your-name
. Click on that link.
You will now see the homepage for your assignment 0 repo.
At this point, you’ve created a clone of the starter repository on Github.
Next, if you are working on your local machine, you’ll want to create a clone of the assignment starter repository on your local machine as well. For that step you need to have all prerequisites for this course installed on your local computer (CMake, Git, Visual Studio Code).
If you click on the blue “Open in Visual Studio Code” now, you should see VSCode open a window on your local machine with the repository cloned. Use this only if you are working based on a local installation of the prerequisites.
If you prefer working fully online using codespaces, follow the instructions here to create a new Github Codespaces instance and attach a fully online version of VSCode to it.
Open the Repository in the Docker Container
The starter repository has been set up in a way that allows to seamlessly run project in an docker environment. For this:
- Again, make sure Docker, VSCode, and the VSCode Remote Development Extension Pack are installed
- Choose
Reopen in Container
in VScode. For details refer this tutorial - Wait for the Docker container to be pulled.
- After the new VSCode window pops out you are good to go.
Next up: Tools.