.. _IDE: Integrated Development Environments ===================================== Most students find programming easier to learn when they use an integrated development environment (IDE). An IDE provides an editor designed for programming and tools to compile, run, and debug programs. Several IDE's are available for programming C code. The following have been used for this class. #. **Microsoft Visual Studio** has so many features that it is difficult for beginners. It is also not free. #. A program **jGrasp** is free and easy to use, but it is really intended for use with Java and thus, the debugging capability is lacking for C programs. It can also be harder to install since the C compiler is installed separate from the IDE. #. This semester, we will try **Code Blocks**. A single download from http://www.codeblocks.org will install both the IDE and C compiler. For Windows based computers, download the `codeblocks-xx.xxmingw-setup.exe` file, `xx.xx` is for the version number. .. Installing it .. ---------------- .. Since jGRASP is an open source program, you can install it on your computer at no cost. You should be able to easily find it using the Google search engine. It is actually a Java program, so will need to have Java already installed, which it likely already is on your computer. You will need to add the path to the Java program to your `PATH` environment variable. .. To use jGRASP for C programming, you also will need the gcc compiler, which is also an open source program. When you search for gcc, you may find multiple distributions of gcc for Windows computers. I recommend the MinGW distribution. Make sure that the path to gcc is also in your `PATH` environment variable. .. _debugging: Using the Debugger ------------------- The gdb source code debugger is integrated into Code Blocks. The graphical interface makes it easy to set breakpoints to stop the program at certain points, examine variables and step through your program. Search the Internet for tutorials on using gdb debugger with Code Blocks. Native gdb commands may also be used. The commands are fairly simple. A summary of the commands may be found on `this web page `_.