Download Tool Support for Introductory Software Engineering Education
Transcript
The major change in teaching now as we enter the 00’s is the change to object orientation and the emergence of software engineering skills in introductory courses. The shift from teaching procedural programming languages to objectoriented programming languages, and the emergence of software engineering as a separate discipline, has meant that other skills now need to be introduced to first year students to best support the new paradigms. The introduction of object-oriented programming has mandated some changes. For instance, code reuse is now an integral part of programming and the use of class libraries is a required skill for any competent programmer. Time must now be set aside for the introduction of these standard class libraries. In fact, some of the time that once may have been spent learning how to implement certain data structures may now need to be spent learning how to use standard implementations of these data structures. Other changes have been enabled through the introduction of object-orientation. Modern graphical user interface toolkits and testing frameworks have a simplicity and clarity now that was not obtainable in the world of procedural languages. This clarity now makes it feasible to introduce these topics to students in an introductory course. The software engineering skills that are being introduced flow on from the change to object-orientation. Reasonably complex programs can be constructed and presented to students with an appropriate level of modularity, such that they are only required to modify one class, yet perhaps understand the design of three or four other classes. It is finally possible to have students work on “large” programs without overwhelming them with complexity, and yet not requiring too much hand waving to explain away the advanced classes. Other important software engineering skills such as teamwork are better supported because there can be a much clearer separation of concerns between component groups within the team. Similarly, testing is more effective with object-oriented 14