9
Mastering Object-Oriented Technology Using a Self-Learning and Self-Assessment System AHMED SEFFAH, MICHEL DESMARAIS, RAMZAN KHUWAJA Computer Research Institute of Montreal, 550 Sherbrooke West, Suite 100, Montreal, Quebec H3A 1B9, Canada Received 13 October 1998; accepted 10 June 1999 ABSTRACT: In this article, we describe a Web-based approach that defines training needs for object-oriented developers by identifying the strong and the weak areas of their knowledge. Our system is based on the use of two tools, Guide d’Auto-Apprentissage, Self-Learning Guide (GAA) and User Knowledge Assessment Technology (UKAT) devel- oped at the Computer Research Institute of Montreal. UKAT uses a state-of-the-art user knowledge assessment method to create a user profile of the proficiency in a subject domain. GAA is a Web-based training system that uses the UKAT to personalize a training course to facilitate self-learning. As an exemplar, we are using a Java development envi- ronment. © 1999 John Wiley & Sons, Inc. Comput Appl Eng Educ 7: 162–170, 1999 Keywords: Internet technology-based training; intelligent training systems; object-ori- ented technology; knowledge assessment systems; self-learning; just-in-time training; in- telligent learning resources DIFFICULTIES IN LEARNING OBJECT- ORIENTED TECHNOLOGY Training is a major challenge facing software devel- opment organizations in their effort to migrate toward object-oriented (OO) technology [1]. Theoretical classroom presentations introduce concepts and present simple case studies in an attempt to facilitate understanding of these concepts. Textbook case stud- ies are also limited and restricted in their scope to reflect true-life experiences. According to Lato and Dreschler [2], what must be learned are not only concepts and skills, but also the mindset that will facilitate an effective and efficient transition toward OO technology and its practice. To achieve this, the following difficulties must be overcome: Difficulties in learning an OO programming lan- guage. Evidence gathered from our day-to-day experiences demonstrates that the OO program- ming language structures must be arranged in a specific order to program effectively. Several arrangements are possible; their effectiveness de- pends directly on the user’s level of skill regard- ing the language and the acquired experience and knowledge of OO programming principles. Correspondence to A. Seffah ([email protected]). © 1999 John Wiley & Sons, Inc. CCC 1061-3773/99/030162-09 162

Mastering object-oriented technology using a self-learning and self-assessment system

Embed Size (px)

Citation preview

Page 1: Mastering object-oriented technology using a self-learning and self-assessment system

Mastering Object-OrientedTechnology Using aSelf-Learning andSelf-Assessment SystemAHMED SEFFAH, MICHEL DESMARAIS, RAMZAN KHUWAJA

Computer Research Institute of Montreal, 550 Sherbrooke West, Suite 100, Montreal, Quebec H3A 1B9, Canada

Received 13 October 1998; accepted 10 June 1999

ABSTRACT: In this article, we describe a Web-based approach that defines trainingneeds for object-oriented developers by identifying the strong and the weak areas of theirknowledge. Our system is based on the use of two tools, Guide d’Auto-Apprentissage,Self-Learning Guide (GAA) and User Knowledge Assessment Technology (UKAT) devel-oped at the Computer Research Institute of Montreal. UKAT uses a state-of-the-art userknowledge assessment method to create a user profile of the proficiency in a subjectdomain. GAA is a Web-based training system that uses the UKAT to personalize a trainingcourse to facilitate self-learning. As an exemplar, we are using a Java development envi-ronment. © 1999 John Wiley & Sons, Inc. Comput Appl Eng Educ 7: 162–170, 1999

Keywords: Internet technology-based training; intelligent training systems; object-ori-ented technology; knowledge assessment systems; self-learning; just-in-time training; in-telligent learning resources

DIFFICULTIES IN LEARNING OBJECT-ORIENTED TECHNOLOGY

Training is a major challenge facing software devel-opment organizations in their effort to migrate towardobject-oriented (OO) technology [1]. Theoreticalclassroom presentations introduce concepts andpresent simple case studies in an attempt to facilitateunderstanding of these concepts. Textbook case stud-ies are also limited and restricted in their scope toreflect true-life experiences. According to Lato and

Dreschler [2], what must be learned are not onlyconcepts and skills, but also the mindset that willfacilitate an effective and efficient transition towardOO technology and its practice. To achieve this, thefollowing difficulties must be overcome:

● Difficulties in learning an OO programming lan-guage. Evidence gathered from our day-to-dayexperiences demonstrates that the OO program-ming language structures must be arranged in aspecific order to program effectively. Severalarrangements are possible; their effectiveness de-pends directly on the user’s level of skill regard-ing the language and the acquired experience andknowledge of OO programming principles.

Correspondence to A. Seffah ([email protected]).© 1999 John Wiley & Sons, Inc. CCC 1061-3773/99/030162-09

162

Page 2: Mastering object-oriented technology using a self-learning and self-assessment system

● Difficulties in learning OO fundamental princi-ples. It has been observed that students often donot distinguish and are sometimes confused be-tween object-oriented principles and their use ina development environment and/or in the lan-guage. Hohmann [3] observed that students findit easy to differentiate conceptually among inher-itance, aggregation, and association relation-ships. However, students find it extremely diffi-cult to create solutions that will correctlyintegrate these relationships.

● Difficulties in using OO development tools. Inmost cases, an OO development environmentoffers a wide array of powerful but complex toolsand services. An effective teaching strategywould demonstrate how to use the environmenttools and explicitly highlight their relationshipwith OO fundamental concepts and OO designtechniques. For example, browsers that show in-heritance relationships will help students under-stand the difference between inheritance, aggre-gation, and association.

● Difficulties in learning OO design and tech-niques. Rosson and Carroll [4] observed that theproblem of learning OO design and program-ming techniques is compounded by the fact thatexpert developers are highly confident in theirability to learn new programming languages andtechniques. They also find the learning curveinvolved in learning OO design steep, and theprogramming techniques frustrating and demor-alizing.

The following observations make these difficultieseven more critical. According to Gehringer andManns [5], taking an OO analysis and design courseand an OO programming course does not appear to berecommendable. Teaching programming before de-sign will lead to bad design practices, which wouldrequire effort to unlearn. Teaching design before pro-gramming could result in a sterile course where stu-dents are unable to fully apply what they learn.Whitelaw and Weckert [6] observed that at least someof the problems associated with learning OO pro-gramming occur because we do not usually think ofeverything as an object, and objects are not all of thesame type.

This situation justifies not only the incipient exis-tence of continuing education, but also the need todesign and develop a innovative on-the-job trainingapproach. Our opinion is that an innovative approachcan be obtained by combining the two following

computer-based training approaches into a systemavailable upon demand:

● Intelligent training systems (ITS). ITS can indi-cate the best way to solve a problem and/ororganize course content [7] and/or motivate andencourage the learner during a learning session.An ITS is also able to establish a review of thelearner’s interaction and/or criticize the learner’ssolutions [8] and/or cooperate and compete withthe learner during problem solving [9].

● Internet technology-based training. Internet tech-nology can provide learners and educators withnew tools and innovative means to communicateand disseminate information, as well as developresourceful, constructive and outcome-driventraining strategies [10]. Internet-based traininghas the potential to be used either internally bycompanies developing their own corporate Intra-net [11] or externally with an Extranet targetingtheir client base.

In this article, we show how this combinationaddresses some issues related to the difficulties listedabove. To illustrate our approach, we consider acourse on learning Java as an object-oriented pro-gramming language for Internet-based software de-velopment. We will focus on the knowledge structurethat is responsible for organizing the course content.This organization is one of the major factors whenpersonalizing a course for different types of learners.It also directly influences the reusability and sharingof subject content between overlapping courses thatare tailored for use in diverse learning scenarios.

GAA: A WEB-BASED INTELLIGENTTUTORING AND ASSESSMENT SYSTEM

The Power of Internet-Based Training

From the manager perspective, the successful experi-ences with Internet-based training for software engi-neering in general [12] and for OO technology inparticular [13] show that Internet tools can provide aless costly and more efficient alternative to traditionaltraining and continuous education approaches. Web-based performance systems can also actively supporttoday’s demanding workforce by integrating informa-tion systems, job aids, as well as anchored instructioninto unified systems that are available upon demand.

From a learner perspective, the Internet platformhas the potential to support highly up-to-date, just-in-time, media-rich content and modify it whenever

MASTERING OBJECT-ORIENTED TECHNOLOGY 163

Page 3: Mastering object-oriented technology using a self-learning and self-assessment system

needed. It also offers a flexible structure allowingself-directed, self-paced instruction on any topic thatis capable of being supported by adaptive remedialand assessment strategies. Internet technology is alsopresented as an ideal vehicle for helping softwaredevelopers perform their jobs, share expertise on howto develop well, and at the same time learn throughseveral kinds of resources, such as real-life, “best-use” case studies, demonstrations, courseware, etc.

A Brief Overview of the GAA Architecture

The long-term goal of GAA has been to develop ageneric self-learning guide that could provide userknowledge assessment and pedagogical feedback fora number of domains. We especially focused on do-mains that require the user to master a number ofconcepts and/or skills to achieve a satisfactory level ofcompetence in the domain [14].

The GAA architecture is based on the typical In-ternet client/server infrastructure and the intelligenttraining/tutoring system (ITS) architecture. It is com-posed of the following four components (Fig. 1):

● The intelligent training system● Web server (HTTP)● The Web manager generates an HTML page

based on the pedagogical engine decisions andthe information contained in the subject database.The Web manager is a set of common gatewayinterface scripts

● A Web browser–based user (learner) interface

The ITS used in GAA includes four main components[14]:

● The knowledge network contains knowledgeunits (KUs) or domain entities such as OO prin-ciples and Java programming techniques. KUsare connected via multiple domain relationships(e.g., prerequisite). A course designer using acurriculum development language (see “TheKnowledge Network”) creates the network. Theknowledge network is the basis for the domainintelligence in our system.

● The subject database includes the domain entitiesthat are communicated to the user. For example,the various question items are part of the data-base.

● The user knowledge assessment tool is the cen-tral component of the GAA. It is responsible foridentifying strong and weak points. The nextsection describes in detail the theoretical back-ground and how it works.

● The pedagogical engine is responsible for inter-preting the knowledge state of the student, anddepending on the currently selected goals and thestate of interaction with the user, it determineswhat should come next in a session.

The Assessment Process

The user knowledge assessment module is responsiblefor providing a user profile of the knowledge net-work’s state of mastery. Based on the information itreceives from the pedagogical engine about whichknowledge unit is mastered by the user, the knowl-edge assessment module will infer the likelihood thatevery other KU is mastered.

The knowledge assessment tool adopts the overlayapproach to defining the whole domain knowledge. It

Figure 1 The GAA overall architecture.

164 SEFFAH, DESMARAIS, AND KHUWAJA

Page 4: Mastering object-oriented technology using a self-learning and self-assessment system

assigns a state, which is a collection of numericalattribute values attached to the each knowledge net-work. Each value indicates the likelihood (i.e., prob-ability) of a user knowing a specific KU. In theknowledge structure, implication (precedence) rela-tionships connect KU. An implication relationship is agradation constraint that expresses whether a certainconcept must be understood before another difficultone or whether a certain skill must be acquired priorto an advanced one. These implication relationshipsare what enable the inferences about the mastery ofKU.

The KU state is built and updated as soon as a fewobservations are made (e.g., questions and exercisesare answered). Each observation can be viewed as apiece of evidence. This new bit of information may bepropagated to other KU in compliance with the gra-dation constraints (inference structure).

In contrast to other work that adopted similar ap-proaches to knowledge assessment, the knowledgestructure is induced entirely from empirical data com-prising samples of knowledge states. Further detailsabout the knowledge assessment method are given inDesmarais et al. [15].

THE KNOWLEDGE NETWORK:REPRESENTING A COURSE CURRICULUM

Course Example: Building a SoftwareApplication Using Visual J11

In this section, we describe the organization of theknowledge network by using the Building a SoftwareApplication Using Visual J11 (J11_BApp) courseas an example.

To detect the strong and weak areas of a develop-er’s knowledge about a course, the fundamental con-cepts that make up the body of the course and a list ofquestions that can assist in testing the knowledgeabout these concepts must be identified. Table 1shows two questions about applet capabilities andrestrictions.

A question is always linked to one or more lessons.Lessons are at the lowest level of the knowledgenetwork hierarchy. A lesson can have multiple ques-tions linked to it. Some of the lessons in theJ11_BApp course are:

Lesson 5: Overview of Applets

Lesson 6: Creating an Applet User Interface

Lesson 7: Communicating with Other Programs

Lesson 8: Understanding Applet Capabilitiesand Restrictions

Lesson 9: Completing an Applet

Lesson 10: Common Applet Problems andTheir Solutions

Lessons in the knowledge network can be con-nected through prerequisite relationships. For in-stance, the Overview of Applets lesson is a prerequi-site to Lessons 6–10. Besides lessons, the knowledgenetwork can have additional levels to further organizethe course hierarchy. In the J11_BApp course, wehave three additional levels that are connectedthrough the part-of relationship. These levels are de-scribed as follows.

● Chapter level: Lessons are grouped into chapters.For example, Lessons 5–10 are parts of the Writ-ing Applets chapter. A lesson may be linked toone or more chapters. A example list of thechapters in the J11_BApp course is providedbelow:

Chapter B1: Getting Started

Chapter B2: Writing Java Programs

Chapter B3: Writing Applets

Chapter B4: Using the Core Java Classes

Chapter B5: Creating a User Interface

Chapter B6: Custom Networking and Security

Chapter B7: Integrating Native Methods intoJava Programs

Table 1 Questions from the J11_BApp Course

Question 1: Current browsers impose some restrictions onapplets that are loaded over the network. Which of thefollowing is not a restriction (An applet can:)

A. Load libraries or define native methodsB. Read or write files on the host that is executing itC. Make network connections to hosts other than theone it originated fromD. Start any program on the host that is executing itE. Read certain system propertiesF. Invoke public methods of other applets on the samepageG. I do not know

Question 2: Applets can find other applets and sendmessages to them. However, all applets must be running:

A. On the same pageB. In the same browser windowC. On the same page and in the same browser windowD. On the same page or in the same browser windowE. No conditions are requiredF. I do not know

MASTERING OBJECT-ORIENTED TECHNOLOGY 165

Page 5: Mastering object-oriented technology using a self-learning and self-assessment system

● Module level: At this level, chapters are groupedinto modules. We have divided the J11_BAppcourse into the following four modules.

Module 1: Object-Oriented Programming Fun-damentals Concepts. This moduledescribes the important ObjectTechnology concepts, such as class,instance, generalization-specializa-tion, inheritance, and polymor-phism.

Module 2: Java Programming Language. Thismodule addresses the language as-pects of Java.

Module 3: Development Environments andTools (in our case, Visual J11):This includes the Java API, resourcetools, etc.

Module 4: Object-Oriented Programming andDesign Techniques. Once the stu-dents have a solid understanding ofobject technology, how to expressthem in the Java language and howto use the development environ-ments and tools, this module pro-vides case studies. A case study is aset of easy-to-follow guidelines, il-lustrations, and sample programsthat can give the students an oppor-tunity to engage in object-orientedprogramming and design.

This breakdown is based on the four difficultiesidentified in the first section. Many practitioners sug-gest the same breakdown, especially for developerswho are making the transition to object-technology[3].

● Course level: This is the highest level in theknowledge network. Each course node at thislevel can have multiple models linked to it. Ex-amples at this level are Building Applicationsusing Visual J11 (J11_BApp), Developing aGraphical User Interface with Visual J11(J11_GUI), and Connecting a Database to Ap-plets Using JDBC (J11_BD). Note that thesecourses are not totally independent of each other.Each requires some aspects of others to be com-prehensive in its coverage.

Besides these major levels, there are several otheritems linked to the objects in these levels. One of themajor reasons for all these items is to enhance the

system’s pedagogical capabilities. Two of these itemsare solutions and Note-Box.

Solution objects are attached to questions in theknowledge network. Each solution can have a de-scription and a justification for the question it repre-sents. Table 2 shows a solution to Question 1.

The GAA displays a solution for a question after atest or quiz. Our experience with GAA and othertraining systems shows us that the solution for aquestion is sometimes incomplete, ambiguous, and/orincomprehensible to the learner.

For this reason, we have attached Note-Box objectsin the knowledge network to supplement the learner’sunderstanding of the subject matter. A Note-Box ob-ject can be attached to any object in the knowledgenetwork. A Note-Box helps to achieve a greater un-derstanding of the domain knowledge by dispensingfurther information about a lesson. These objects canpoint to a book, journal, or URL, and/or provide amail address of an expert that can be contacted forhelp. Table 3 shows a Note-Box attached to the Un-derstanding applets capabilities and restrictions les-son.

Developing a Course Structure:Difficulties, Issues, and a Solution

Our past experience in designing training systems fordifferent educational settings led us to address three

Table 2 Example of a Solution

SolutionThe correct answer to this question is F. An applet can

find another applet either by looking it up by name(using the AppletContext and GetApplet¼ methods) orby finding all the applets on the page (using theAppletContext and the GetApplets¼ methods). Bothmethods, if successful, give the caller one or moreApplet objects. Once the caller finds an Applet object,the caller can invoke methods on the object.

Comments: Be careful with applets restrictions andcapabilities

The java.applet package provides an API that givesapplets some capabilities that applications do not have.For example, applets can play sounds, which otherprograms cannot yet do. However, every browserimplements security policies to keep applets from doingdamage. The implementation of the security policiesdiffers from browser to browser. Also, security policiesare subject to change. For example, if a browser isdeveloped for use only in trusted environments, then itssecurity policies will likely be much more lax thanthose described here.

166 SEFFAH, DESMARAIS, AND KHUWAJA

Page 6: Mastering object-oriented technology using a self-learning and self-assessment system

main software engineering issues while designing ITSKnowledge structure. For the GAA, they are as fol-lows.

First, the course structure for J11_BApp (seeabove) has clearly demonstrated the potential reuse ofcertain parts of a course in others courses. For exam-ple, a course on designing graphical user interfacesusing Visual J11 needs to have a module on object-oriented principles. This means that a course designershould be able to reuse items of a knowledge networkwithout any modification or by specializing them forspecific needs when constructing new courses. Thiscan increase designer productivity and reduce theoverall cost of developing a new course.

Second, a knowledge network is likely to be reus-able and flexible when its construction does not relyon the details of a specific context in which it is goingto be used. When the architecture has laid out thisseparation correctly, the interface can be customizedto each user’s characteristics and goals. This meansthat the semantics and use of each knowledge networkitem should be adjustable according to the coursecontext at hand.

Third, each learner has a different background andknowledge level about the course. Their needs andrequirements for feedback/guidance vary. To meetthese diverse requirements, the knowledge networkshould contain a set of generic items that the coursedesigner could use to provide multiple learning re-sources.

These reasons led us to design an organization ofthe knowledge network that is flexible and genericenough to be useful in designing courses for differentcontexts with relative ease. We have developed anobject-oriented language that takes full advantage ofthis flexibility in the architecture of the knowledgenetwork and makes the course development processmuch simpler and more powerful. This language sup-ports the three characteristics listed below:

● Reusability of network parts when developingother networks

● Modifying the number of network levels andtheir meaning to meet demands for differentkinds of training contexts and developer needs

● Enabling the use of a generic item in the knowl-edge network to contain varying learning re-sources for different types of users. The Note-Box object is an example of this type of genericitem that enables the course designer to plug inmultiple learning resources.

A first version of this language was developedusing the Lex, Yacc, and M4 tools on UNIX. TheJ11_BApp course is implemented using this lan-guage. Annex A and B show some parts of theJ11_BApp implementation using this language.

A SCENARIO INVOLVING GAA

The GAA interacts with the learner for multiple ses-sions. Each login with the GAA invokes a new ses-sion. At the first login, the system recommends thatthe learner take a pretest. An initial user profile isthereby created. If the learner ignores this recommen-dation, a default profile is used to initialize the system.Each test or quiz taken by the learner causes a changein the user profile that drives the training and assess-ment process. Learners can also start their interactionwith the system at the point where they left off (thelast session).

The GAA provides two principal modes of inter-action: free learning and Test/Diagnosis. No restric-tion is placed on interacting between these modes ofinteraction. Students are left in charge of their trainingand assessment processes.

The free-learning mode makes available the coursecontents through a hierarchical browser that presentsthe course structure into an easy-to-internalize format.In addition to presenting the course contents, thismode also provides the user with a list of learningresources. This list includes for a course item (e.g.,How to write an applet) links to the relevant URLsavailable through the Internet or Intranet, a list ofselected examples and tutorials, etc. The kind andnumber of learning resources are limited only by theimagination of the course designer who, dependingupon the objectives of course item, can make avail-able a set of complementary learning resources thatcan foster internalizing the knowledge for the student.

The test/diagnosis mode provides learners withopportunities to obtain an evaluation of their knowl-edge of the course. This diagnosis is presented in avariety of ways so that an overall and a detailed view

Table 3 Example of a Note-Box Object

Note-Box: To learn more about applets restriction andrestrictions, consult:

● The Java tutorial: Object-oriented programmingfor the Internet,M. Campione and K. Walrath,Addison-Wesley, New York, 1996

E-mail to [email protected] on Java restrictions

http://www.coopere.com/discussion

MASTERING OBJECT-ORIENTED TECHNOLOGY 167

Page 7: Mastering object-oriented technology using a self-learning and self-assessment system

of the progress learning the course material are madeclear to the learner. The test phase is what uses thestrength of the assessment tool to provide knowledgeassessment effectively and efficiently to the learner.The results of the assessment are available via ahistogram (Fig. 2). When the student double-clicks onhis or her particular column, a pop-up menu appearson the screen to display a list of a value added re-sources that will reinforce the students’ apprentice-ship.

CONCLUSIONS

In this article, we presented a self-assessment andself-learning approach to deal with the difficulties ofproviding effective OO training and continuing edu-cation. Our system has the capability to assess thelearner’s knowledge state and then suggest resourceswhich can promote cognitive learning by OO devel-opers. We note the following advantages and benefitsof our approach. First, the system is able to identifythe real difficulties of software developers and high-light their strong skills. This can be very helpful for aproject manager when identifying the best developerfor a certain task. Second, by using this system, de-velopers can get their learning profile periodically.This self-monitoring places learners in charge of theirlearning rate. This empowerment can cause the learn-ing curve to become less steep, frustrating, and de-moralizing.

Compared to paper manuals and traditional train-ing in the classroom, the system holds the opportunityto implement an open and a distributed approach forsoftware engineering distance continuing education.The system offers the following advantages:

● Searching and retrieval functions of on-linelearning resources and information

● Integration of multimedia material (image, video,sound)

● Using material available on the World WideWeb, such as online bibliographies, technicalreports, and remote courseware

● Integration with the company-wide informationsystem (locations, dates, staff, lecture informa-tion)

However, the system’s potential is highly depen-dent on the quality of the course content. We havesuggested a solution to some fundamental issues thatare essential to designing an effective and usefulcourse. This solution includes the potential reuse of acourse or part of a course and makes the contenthighly relevant in various contexts.

APPENDIX A

The overall Java course includes four modules. Thecourse organization is inspired from the Java tutorial[16]

Module A: Object-Oriented Programming Funda-mentals Concepts

Chapter A1: Class, Methods and Attributes

Chapter A2: Instance and Object

Chapter A3: Inheritance

Chapter A3: Functions and Operators Overload-ing

Chapter A4: Generic Classes

Chapter A5: Exceptions and Assertions

Module B: Java Programming Language

Chapter B1: Getting Started

Lesson 1: The “Hello World” Application

Lesson 2: The “Hello World” Applet

Chapter B2: Writing Java Programs

Lesson 3: The Nuts and Bolts of the JavaLanguage

Figure 2 Results of an assessment process.

168 SEFFAH, DESMARAIS, AND KHUWAJA

Page 8: Mastering object-oriented technology using a self-learning and self-assessment system

Lesson 4: Objects, Classes, and Interfaces

Chapter B3: Writing Applets

Lesson 5: Overview of Applets

Lesson 6: Creating an Applet User Interface

Lesson 7: Communicating with Other Pro-grams

Lesson 8: Understanding Applet Capabilitiesand Restrictions

Lesson 9: Completing an Applet

Lesson 10: Common Applet Problems andTheir Solutions

Chapter B4: Using the Core Java Classes

Chapter B5: Creating a User Interface

Chapter B6: Custom Networking and Security

Chapter B7: Integrating Native Methods intoJava Programs

Module C: Development Environment and ToolsModule D: Object-Oriented Programming and De-

sign Techniques

APPENDIX B

The formal description of the course is as follows:/* Course J11_BApp declaration

Module BChapter B2

Lesson {5, 6, 7, 8, 9}End_ChapterChapter {B1, B2, B4, B5, B6, B7}

End_ModuleModule {A, B, C}

End_Course

Lesson 8Resource R_8Question Q_110

Solution SQ_110End_Question

End_Lesson

/* Attributes definition of J11_BApp objectsQuestion Q_110

Definition: question_110.htmlName: Question 110Choice: 6Correct_choice: 1

End_Question

Solution SQ_110Definition: solution_110.html

Name: Solution and ExplanationEnd_Solution

REFERENCES

[1] M. Fayad, W. T. Tsai, and I. Fulghum, Transition toobject-oriented software development, Commun ACM39(2) (1996), 108–127.

[2] K. Lato and A. Drechsler, Effective training in OOT:Learn by doing, J Object-Oriented Programming 9(6)(1996).

[3] L. Hohmann, The first step in training: Analysis anddesign or implementation language, J Object-OrientedProgramming 9(6) (1996), 61–63.

[4] B. Rosson and J. M. Carroll, Scaffolded examples forlearning object-oriented design, Commun ACM 39(4)(1996).

[5] E. T. Gehringer and M. L. Manns, OOA/OOD/OOP:What programmers and managers believe we shouldteach, Object-Oriented Programming 9(6) (1996).

[6] M. Whitelaw and J. Weckert, The humanness of ob-ject-oriented programming, First International Cogni-tive Technology Conference, Hong Kong, August1995, pp. 115–129.

[7] A. Seffah, An object-oriented framework for modelingand designing intelligent training systems, J SoftwarePractice Experience 27(10) (1997).

[8] B. G. Silverman, “Building experts critiquing systems:A situated tutoring alternative,” Proceedings ITS’92,Montreal, 1992.

[9] T. W. Chan and A. B. Baskin, “Learning companionsystems,” Intelligent tutoring systems: At the cross-roads of Al and education, C. Frasson and G. Gauthier,editors, Springer-Verlag, New York, 1990.

[10] P. Capell, Distance learning technologies, CMU/SEI-95-TR-004, Software Engineering Institute, CarnegieMellon University, Pittsburgh, PA, 1995.

[11] K. Kurt Malay, H. Abdel Wahab, M. C. Overstreet, etal., Interactive distance learning over intranets, IEEEInternet Comput 1(1) (1997).

[12] M. Brunner, B. Kuhnapfel, and U. Schroeder, Newmedia in software engineering education, Third Inter-national Workshop on Software Engineering Educa-tion, 18th International Conference on Software Engi-neering, Berlin, Germany, 1996.

[13] J. Alvaraz-Rubio and G. Leon-Serrano, An introduc-tion to a C11 course: On-site and distance teaching,ECOOP’96 Educator’s Symposium, San Jose, CA, 1996.

[14] R. Khuwaja, M. Desmarais, and R. Cheng, Intelligentguide: Combining user knowledge assessment withpedagogical guidance, Proc ITS’96, Springer-Verlag,New York, 1996.

[15] M. C. Desmarais, A. Maluf, and J. Liu, User-expertisemodeling with empirically derived probabilistic impli-cation networks, User-Modeling User Adaptive Inter-action (to appear).

[16] M. Campione and K. Walrath, The Java tutorial: Ob-

MASTERING OBJECT-ORIENTED TECHNOLOGY 169

Page 9: Mastering object-oriented technology using a self-learning and self-assessment system

ject-oriented programming for the Internet, Java Se-ries, Addison-Wesley, New York, 1996.

ADDITIONAL BIBLIOGRAPHY

I. Blake and S. L. Jarvenpaa, Will the Internet revolutionizebusiness education and research? Sloan Management Re-view Spring (1996).

M. Guzdial, J. Kolodner, and C. Hmelo, Computer supportfor learning through complex problem solving, CommunACM 39(4).

M. Glinz, The teacher: Concepts! The student: Tools!—Onthe number and importance of concepts, methods, andtools to be taught in software engineering education,Third International Workshop on Software EngineeringEducation, 18th International Conference on SoftwareEngineering, Berlin, Germany.

H. Hermann and I. Metz, Teaching OO software engineer-ing by example, ECOOP’96 Educator’s Symposium(ECOOP-ES’96), 1996.

K. Lato, Learn to learn: Training on new technology, JObject-Oriented Programming 10(1) (1997).

S. Lilly, Pedagogical design patterns, Object (January 1996).M. L. Manns, Pedagogical patterns: Successes in teaching

object technology, ECOOP’96 Educator’s Symposium,1996.

K. Reed and T. S. Dillon, An undergraduate software engi-neering major embedded in a computer systems engineer-ing degree, Proc Software Engineering Education, Pitts-burgh, PA, L. E. Deimel, Ed., LNCS 423, 1990, pp.49–66.

A. Seffah and R. Bouchard, A discussion of pedagogicalstrategies and resources for software engineering onlinetraining, ED-MEDIA 98—World Conference on Educa-tional Multimedia and Hypermedia, Germany, 1998.

BIOGRAPHIES

Ahmed Seffah is a researcher at the Com-puter Research Institute of Montreal and ad-junct professor of computer science at theUniversity of Quebec at Montreal. He earnedhis PhD in software engineering from theEcole Centrale de Lyon in France. His areasof interest range from software engineeringand human-computer interaction to humanfactors in software development, software

process especially requirements and usability engineering processesand training methods and tools in software development organiza-tions. He is member of the IEEE computer and education societies,ACM, the International Association for Continuing EngineeringEducation (IACEE), and the UNESCO International Centre forEngineering Education.

Michel Desmarais is currently the team leader of the Human–Computer Interaction Group at the Computer Research Institute ofMontreal. He earned his doctorate degree in psychology from theUniversity of Montreal. He has directed a number of R&D projects,from an expert system in meteorology to a computer coach for textediting. His previous work experience includes Xerox PARC, Stan-ford University, and HP Labs. His areas of interest range fromcognitive science and artificial intelligence to human factors, userinterfaces, and performance support systems.

Ramzan Khuwaja is an advisor of perva-sive and nomadic computing in the Comput-ing Technology Lab (CTL), Nortel Net-works. He has been working in theseadvanced technology areas since 1996 and isinvolved with several nomadic and mobilecomputing projects. Dr. Khuwaja was one ofthe original architects of a CTL project, Dis-tributed Network Services Platform (DNSP),

which is currently a flagship product of a Nortel joint venture,Saraide.com. Before joining Nortel Networks, Dr. Khuwaja was aresearcher at the Computer Research Institute of Montreal andworked in creating and making available a smart computer-basedteaching system using Web technologies. Dr. Khuwaja has a PhDfrom Chicago in the field of knowledge engineering.

170 SEFFAH, DESMARAIS, AND KHUWAJA