cIDEE :: C++ IDE for Education
About cIDEE
Broadly speaking, there are two approaches taken toward programming environments in education. The first involves having students use professional grade, highly integrated development environments such as Microsoft's Visual Studio, Borland's C++ Builder, or Bloodshed Software's Dev-C++. The second approach eschews integrated development environments entirely and has students use general-purpose text editors for developing code and command-line tools for compiling, and linking and debugging programs. Each approach has its pros and cons.
A primary benefit of using professional-grade integrated development environments is the tight coupling of the write->compile->link->execute/debug cycle, resulting in greater coding convenience and productivity. However, one problem associated with this convenience is the masking of the write->compile->link->execute/debug process. The ever-present "Build-and-debug" button used to automatically compile, link and debug applications shields the developer from the stages between writing and execution. While this can be a tremendous convenience for the experienced programmer, it tends to leave new programmers with misunderstandings regarding the underlying structure of the program building process.
Another problem associated with professional IDEs for new programmers is the complexity involved in configuring and maintaining projects. The learning curve can be long, frustrating, and a distraction from the process of programming education. In addition, the requirements of a given IDE's project management are sometimes confused with the programming language's code management requirements. Finally, most professional IDEs are highly featured and very configurable, which leads to interfaces that are at best distracting to a new programmer and at worst to "Oops, what happened?" experiences from which the programmer cannot find a return path.
The biggest benefit of using the "text editor plus command-line tool" approach is the clear delineation of the individual phases of the write->compile->link->execute/debug cycle. However, this clarity comes at a cost. For most, typing commands is far less convenient than pointing to and clicking on GUI entities, and errors in command-line syntax or semantics are very common. Both of these lead to significant frustration, discouragement, and loss of time and motivation on the part of the student.
cIDEE attempts to provide a development environment that combines the best of both worlds for first year computing courses. It has been designed to be an easy to install and use IDE that reveals the underlying structure of the code development process. The heart of cIDEE is a file and tool manager that functions as a wrapper around the open source Notepad++ text editor and MinGW compiler tools. We envision that after a developing programmer uses cIDEE for one or two semesters, the fundamentals of code development and project management will have taken root, and she or he will be ready for a full-fledged IDE.
cIDEE's has two deliberate but significant limitations:
- Project directory structures must be flat (i.e., exactly one directory is allowed for each project).
- It has been designed only for the development of command-line (i.e., "console") projects.
Both of the above reflect decisions made to keep the environment "as simple as it needs to be, but no simpler." You may be able to use cIDEE to develop complex GUI programs, but it was not really intended for that applicaiton.
At the present time no support for a debugger is available; however we hope to add GDB support in a future release.