These instructions will help you choose a development environment for the programming exercises in this course and later for programming the embedded device in Module 2.
We expect you to have some basic computing skills, such as using a text editor or using a terminal.
NOTE: When compiling the C exercises, use the C99 standard (
-std=c99 with gcc).Main options for programming¶
In the same way that the famous Western The Good, the Bad and the Ugly has three main characters, here we offer at least three different options for programming in this course: the easy, the safe, and the professional.
| Option | Best for | Module 2 |
| The easy: OnlineGDB | Starting immediately with C exercises | No |
| The safe: Course virtual machine | Using a ready-to-use environment tested for the course | Yes |
| The professional: Visual Studio Code | Learning a development environment useful beyond this course | Yes, with additional extensions |
The easy: OnlineGDB¶
The easiest way to start is OnlineGDB. It runs directly in your browser, so you do not need to install a compiler or development environment on your computer.
This is a convenient option for the C programming exercises in Module 1. However, it cannot be used for programming the embedded device in Module 2.
The safe: Course virtual machine¶
The course virtual machine contains the software required for the course and has been tested with the course exercises and hardware development tools.
It is a good choice if you want an environment that works without having to configure the development tools yourself. The main disadvantages are that the virtual machine requires around 15 GB of disk space and cannot be used on modern Macs.
See Using the course virtual machine for instructions.
The course virtual machine can also be used for Module 2.
The professional: Visual Studio Code¶
Visual Studio Code is the most useful option if you want to learn a development environment that you are likely to encounter again in later courses or professional work.
VS Code is available for Windows, Linux, and macOS. Setting up the C compiler and debugger can require more configuration, especially on Windows.
For Module 2, you will install additional extensions for programming the embedded device.
See Setting up VSCode for instructions.
Other development environments¶
You are not limited to the three options above. You can also use other development environments, including:
- other online C programming tools
gccdirectly from the command line- Code::Blocks and other C IDEs
See Other development environments for these alternatives.