To IDE or Not to IDE
There is some interesting discussing in Ask Slashdot about whether to use an IDE or not in teaching programming classes. This is a common question amongst instructors teaching programming courses. Some prefer using an IDE to allow greater productivity amongsts students and to have them focus on essentials instead of the nitty gritty of coding. Some prefer plain text editors to teach students programming “the hardway” and to allow them to easily adapt to an IDE later. Hard way first easy way later. The Slashdot crowd is obviously biased towards using “raw programming” or the non-use of IDEs. It is also interesting to note that most of them use emacs or vi. The consensus seems to be teach programming raw first and then teach software development (IDE, build systems, source control) as a separate subject. There are many more reasons to use one over the other. For me, it really depends on the circumstances.
I always prefer to teach introductory programming languages using a simple text editor. Since, it is the first programming language a student learns, it is important that they do not get “IDE-Bias”. “IDE-Bias” is a condition where students get so used to programming with a particular IDE that when they are moved to another programming language they fail to adopt. This is typically what happens to Visual Basic and Foxpro programmers. The IDE is so tightly coopled to the development process that the students do not learn to program. They simple learn to use the IDE. In the end, the programming skills are non-portable. However, I will always insist on having them use the proper build tools such as Make and Jakarta Ant from the onset. This I feel is hard to introduce later on. I have seen many students who code in Java with just one source file and use a MS Windows batch file to build. I have seen C programmer with on really large source file and no build system at all. I believe it is best to start them young.
However, if this is not an introductory programming course, such as teaching J2EE (which is not introductory here at the Ateneo), then I would introduce them to an IDE immediately. Maybe initially as just as a glorified text editor then a project and build manager. This is particularly true with J2EE where there are a lot of things simplified and expedited when working with an IDEs such as Netbeans and Eclipse. Using an IDE allows me to gently introduce certain concepts. In the case of J2EE, it is difficult to jump straight to explaining all the XML while while teaching them JSP and Servlet concepts. So, I prefer starting with the JSP and Servlet concepts and maybe later the XML stuff. In most cases, I never get to that point. Bad me.
Then again, this is still an open ended question.
