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