Printer Friendly

Adaptivity through the use of mobile agents in web-based student modelling.

THE CONTEXT OF WEB-BASED SYSTEMS

The proliferation of computers, the advent of Internet and the steady gain in the popularity of distance education greatly influence our educational environment. Educational information on the Web has increased exponentially, and web-based learning is currently an important research-and-development area. Web-based learning environments are becoming mainstream applications for the educational community. However, they have a number of common deficiencies, such as limited or non-existent adaptivity for individual students, low-bandwidth connection, resulting in slow access to the course. A number of attempts have been made to circumvent these problems, but a solution to one problem often impedes solutions to the remaining problems. Emerging intelligent mobile agents have huge potential to address these deficiencies.

INTELLIGENT AGENTS AND MOBILE AGENTS

An intelligent agent is a computational entity that acts on behalf of other entities in an autonomous fashion, performs its actions with some level of proactivity and / or reactiveness and exhibits some level of the key attributes of learning, cooperation and mobility The concept of agents occurred in mid 1970s (Hewitt, 1977). However, only recently--with the strong trends in the Internet technology and distributed systems--agent technology has become one of the hot topics in information systems research and development, with particular focus on mobile agents. Their emergence occurring in the mid 1990s, mobile agents have the ability to move from one computer to another.

Mobile agent technology has been focus of research for many large research groups, for example, Telescript (White, 1996); AgentTCL (Gray, 1997); Aglet system (Chang & Lange, 1996); Bee-gent and Plangent (Toshiba, 2001); and Hive (Minar, 2000). There are various benefits that mobile agents provide over static agents, such as: a) their potential to address problems of latency and bandwidth in client-server applications, and the vulnerability of network disconnection--to fit into the coming dynamic and mobile age of computing. They are bringing together telecommunications, software and distributed system technologies to create new ways of building computing systems. The mobile agents appear to be an excellent option to address the problems of web-based learning environments.

BENEFITS OF MOBILE AGENTS

Although it is possible to propose an alternative, based on existing technology, to almost every mobile agent-based function (Chess, Harrison, & Kershenbaum, 1995), mobile agents have significant advantages over conventional approaches at the design, implementation and execution stages in most cases. The motivation for using mobile agents stems from a number of anticipated benefits:

* Efficiency and reduction in network traffic. Mobile agents consume fewer network resources since they move the computation to the data rather than vice versa. Also, mobile agents can package a conversation and ship it to a destination host, where interactions can take place locally, hence, reducing the network traffic (Figure 1).

* Asynchronous autonomous interaction. Tasks can be encoded into mobile agents and then dispatched. The mobile agent can operate asynchronously and independent of the sender program.

* Interaction with real-time entities. Real-time entities require immediate responses to changes in their environment. Controlling these entities from across a potentially large network will incur significant latencies. Mobile agents offer an alternative to save network latency.

* Local processing of data. Dealing with vast volumes of data when it is stored at remote locations, the processing of data is inefficient over the network. Mobile agents allow processing to be performed locally, instead of transmitting data over a network.

* Support for heterogeneous environments. Both the computers and networks on which a mobile agent system is built are heterogeneous in character. As mobile agent systems are generally computer and network independent, they support transparent operation.

* Convenient development paradigm. The design and construction of distributed systems can be made easier by the use of mobile agents. Mobile agents are inherently distributed in nature and hence are natural candidates for such systems.

NEED OF MOBILE AGENTS IN WEB-BASED LEARNING

Institutions with long-standing involvement in distance education, such as the Open University in the United Kingdom, are incorporating web-based elements in their instruction. Although web-based course materials have obvious advantages over conventional textbooks and lecture notes, they also pose a number of problems:

* slow access to course materials, because the Internet connection bandwidth limitations, in particular for home users or remote area students;

* inadequate adaptation to individual students, because the interactions between client and server normally take place using hypertext transfer protocol (HTTP). HTTP is a stateless protocol, which makes it difficult to track the students progress and, hence, analyse the mental processes of the student (Kinshuk & Patel, 1997); and

* hard-to-achieve, continuous, real-time interaction between student and system, because of the connection unreliability and bandwidth limitations, or the student may not be able to maintain continuous online connection.

A number of attempts have been made to circumvent some of these problems. However, as stated before, the solution to one problem often impedes solutions to the remaining problems. For example, InterBook (Brusilovsky, Schwar, & Weber, 1996) supports adaptivity and authoring, but all adaptation and page generation takes place at the central server, risking access delays. QuestWriter (Bogley, Dorbolo, Robson, & Sechrest, 1996) supports authoring and has built-in client-side and servers side interactivity. However, it does not adapt presentations to individual students. ADE (Shaw, Ganeshan, Johnson, & Millar, 1999) uses an animated pedagogical agent, Adele, who guides and assesses students. The Adele agent basically belongs to an intelligent interface agent, which still concentrates on providing help to students. In particular, a number of efforts have been made to implement the concept of adaptation in learning systems (Crampes 1999; Oppermann & Specht 1999). However, there have been no significant attempts to s olve the above-mentioned problems in adaptive, web-based learning environments.

The emerging mobile agent technology can not only address these problems, but also facilitate better interaction opportunities among students and teachers, and adapt to the needs of individual students.

MOBILE AGENTS AND WEB-BASED LEARNING

After examining the benefits of mobile agents--and considering the limitations of web-based learning environments--it becomes clear how mobile agent technology is capable of addressing those limitations. We will now discuss how mobile agents can improve web-based learning environments.

* In a web-base learning environment, mobile agents can be used to pre-fetch the domain content that, based on the student model, the student would most likely request in the near future (Figure 2). Mobile agents can then report the student's performance to the central server. This pre-fetch process is based on real-time analysis of the student's behaviour and calculation of the probability of a request. Each student's behaviour, as each one works through the web-based learning system, can be monitored and recorded by an intelligent interface agent, which runs on the student computer. Depending on the state of the network, an immediate request or a reservation can be made with the help of a mobile agent. In this way, end-to-end quality of service can be improved for the delivery of distributed multimedia material, such as that represented by distance education. This mobile agent technology avoids unnecessary networking delays, copes with the bandwidth limitation and adapts the representations to students base d on student performance.

* With the continuous increase in the number of mobile users, the access to web-based learning environments is increasing through portable-computing devices such as laptops, palmtops and electronic books. These devices have unreliable, low-bandwidth, high-latency telephone or wireless network connections. A mobile agent can be an essential tool for increasing the efficiency of such access.

* Mobile agents offer application developers a new programming paradigm with higher-level abstraction and a unified process and object. In terms of scalability of the system and easy authoring, these features of mobile agents offer a flexible and effective philosophy on learning environment development, design and scalability.

* In the future, web-based learning environments can share resources through different systems (Figure 3). Both the computers and networks on which web-based systems are built are also heterogeneous in character. As mobile agent systems are generally computer and network independent, they provide excellent support for distributed systems and resources sharing.

* From the perspective of emerging mobile agent technology, web-based learning environments are the ideal test beds for this technology. Until now, electronic commerce has been treated as the only important target for mobile agent technology. Money is involved, therefore, security is a key factor for agent technology. There are three types of security: agent-agent security, host-agent security and agent-host security. Existing techniques can be successfully applied to protect agents from malicious agents and hosts from malicious agents. Currently, however, it is difficult to protect the agents from malicious hosts. This is due to the possibility of the host changing the programming code of the agent for vested interests. This factor is one of the main obstacles affecting mobile agent applications in the commercial sector. However, in the education sector, agent-host security is not as vital. This makes the web-based learning environments the most suitable test bed for mobile agents technology.

A prototype, web-based intelligent tutoring system (WBITS) was built to exploit student adaptivity in a web-based environment by using traditional client-server technology (Han, 2001). This system benefited from collaborative learning on the Web by having two separate student models: individual student models for each student, and group student models for generalizing a group of students' attributes. However, the potential of the individual student and group student models' mechanisms in the WBITS was not exploited fully, and it also had the common deficiencies of web-based learning systems. Therefore, the system was redesigned using mobile agent technology In the following section, we provide a brief description of the original system and then discuss the mobile agents-based architecture and implementation.

ARCHITECTURE OF WBITS

The WBITS system was implemented with a three-tier, client-server architecture (Figure 4) (Han, 2001).

* Client tier: a web browser runs on the student computer. This tier is mainly responsible for handling the adaptive presentation of course materials and dynamically tracking student working process.

* Middle tier: it resides in the server side, where it handles the student model initialisation and update logic. It is responsible for receiving client requests, processing the data contained in the requests, applying student model initialisation and update logic to the data, and generating a client response based on the updated student model.

* Database tier: the backend database resides on the server side and stores the data including the student model, which is required by the middle tier.

ADAPTIVITY AND COMMUNICATION IN WBITS

To implement the adaptivity within the system, the WBITS used two types of student models: the individual student model and the group student model.

* Individual student model: it is represented by an overlay model, in which the current state of a student's knowledge level is described as a subset of the domain model. The domain-independent data within the individual model is initialised by explicit questioning, while the domain specific data is initialised by using the default values. Students can modify their domain-independent data, but the domain-specific data is updated by tracking students' progress.

* Group student model: it is constructed by averaging corresponding values in the individual student models within a group. The statistical data for the group student model is produced dynamically from individual model databases.

Both the individual student and group student models reside on the server.

The communication between client and server was primarily implemented with HTTP socket techniques. When clients send a request to the server, an HTTP socket connection is opened and the request is sent. Then the client waits for the response from the server.

THE ADAPTATION MECHANISM

Although a number of attempts have been made to implement the concept of adaptation in learning systems, no significant attempts have been made to provide adaptation in web-based learning. This circumstance largely limits dynamic interaction in web-based learning systems, and it is one of the main reasons why they have not yet exploited their full potential.

Kinshuk, Oppermann, Patel arid Kashihara (1999) observed that improving the dynamic adaptation in systems requires consideration of following criteria:

(a) adaptation with respect to the current domain competence level of the learner;

(b) suitability with respect to domain content; and

(c) adaptation with respect to the context in which the information is being presented.

Moving the adaptation mechanisms from standalone intelligent tutoring systems to the web-based learning systems, a suitable mechanism was developed to: a) capture interactions over the Internet, and b) provide a continuous interaction pattern for a given student, even m offline mode or with an unreliable connection. The high-level architecture of adaptation in the system is presented in Figure 5.

As seen here, the system uses two separate student models:

1. Individual student model serves an individual student and contains detailed information about students' domain competence levels, preferences, interaction information and other relevant details. A partial individual student model resides on the central server, and the remainder of the individual student model is on the user's machine (local server).

2. Group student model, which generalises various attributes over a number of students and attempts to classify students in various categories (according to various stereotypes attributes), resides on the central server.

This two-step modelling mechanism has largely improved the capturing process of interactions of a given student in the web-based learning environment. This mechanism has also enabled the system to provide adaptation at various granularity levels by having the following advantages:

* It allows the system to be much more flexible, particularly in the web-based environment, where connectivity between host and client is not always guaranteed and the quality of the connection often suffers from traffic congestion.

* It facilitates offline adaptation with intermittent updates of the server-side student model when possible.

* Students can access their models and courses online from other computers, with intermittent updates of the client-side student model when possible.

* The central server-side student model allows adaptivity based on new information available from the domain experts and better adaptation procedures resulting from group student model.

The inference engines are employed at both the client and server sides to enable two-way update of information. The engine at the server side is also used to extract common attributes from individual student models and process advisements and initialisations for individual student.

Although such a two-fold student modelling proved useful, the system was still suffering from the common deficiencies of web-based learning environments discussed earlier. Therefore, we redesigned the system using the mobile agents technique.

ARCHITECTURE OF THE SYSTEM USING MOBILE AGENTS TECHNOLOGY

The mobile agents technology has been used in the system to implement the adaptation mechanism. Figure 6 describes the implementation of mobile agents technology in the system.

As seen here, the mobile agent basically interacts with the client-side inference engine to pick up data, which relies on the individual student model on the client side. Then, the mobile agent moves to the server side. Here, the agent performs all the processes needed, such as updating the partial individual student model based on the summary of the client-side student model brought by a mobile agent, interacting with the group student model to update it, if required. After the mobile agent finishes all updated tasks on the server side, it gathers all the information it needs to update the client-side model and return to the client side. Then, it updates the client-side individual student model. The mobile agent approach even works when there is intermittent connectivity between the client and server because a mobile agent can be dispatched and work autonomously.

SYSTEM DESIGN USING BEE-GENT FRAMEWORK

The Bee-gent mobile agent framework (http:// www2.toshiba.co.jp/beegent/index.htm) is used to implement the mobile agent in the system. The wrapper agents are used to wrap the client- and server-side systems, and the mediation agents are used to perform the communication and exchange information with the wrapper agents (Figure 7). There are three main processes within the system.

(A) At the server side, the inference engine interacts with the group student model and partial individual student model through the database interface. The inference engine also checks whether something has been updated within the database and if the update has been sent to the client, periodically. If something needs to be sent to clients, the inference engine notifies the wrapper agent with the information that needs to be sent. The wrapper agent then creates a mediation agent carrying the information and related program and launches the mediation agent. If the mediation agent cannot find the target clients, it comes back to notify the failure of the update process and keeps monitoring the path to the target client. If the mediation agent reaches the target client, it communicates and exchanges information with the client's wrapper agent. In turn, the client's wrapper agent communicates with its inference agent to transmit the data. The inference agent processes the data to update the client side student m odel.

(B) To update the group student model at the server side, the server side engine extracts the information from all partial individual student models available at the server side.

(C) From the client side, the procedure is similar as those described above, except that the inference engine only interacts with the partial individual student model.

Mediation agents

The functionality of mediation agents--whether they are created by the server or client--is the same.

* They communicate with destination servers and exchange information with servers.

* They notify their creator when the connection is not available and/or the update processes fail.

* They move to different servers.

* Once launched, they are not affected by the status of their sender, whether the sender is online or offline.

Wrapper Agents

Both server-side and client-side wrapper agents are simply the interfaces between mediation agents and inference engines. When wrapper agents receive visiting mediation agents, they act as translators that pass the information back and forth between the mediation agents and the inference engines. When wrapper agents receive requests from inference agents to send mediation agents, they create mediation agents and launch them.

Inference Engines

The inference engines are the core components of the system. They initialise most processes and control the process flow.

The main functions of the client-side inference engine are as follows.

* It periodically checks the update information in the individual student model and determines whether the update of the server-side individual student model should take place. If yes, it passes the data to the wrapper agent for creation of mediation agents.

* If updates fail because of the connection problems or unavailability of the server for any reasons, the inference engine informs the student model database.

* It receives information from its corresponding wrapper agents and updates the student model.

The server-side inference engine includes the functionality of the client-side inference engine, plus the following features:

* It periodically extracts and generalises the attributes from all partial individual student models--available at the server side--within a group to dynamically update the group student model.

* It initialises a new student model based on the group student model by sending a mediation agent to client.

* It classifies students to various groups within the group student model.

Individual and group student model databases

The client-side partial individual student model stores extensive information about students such as their domain competencies, interaction with the system, personality attributes as recorded by the system and so forth. The server-side, partial individual student model contains only the summarised information that has been brought and updated by the mediating agents from time to time.

The group student model contains the groups created by assessing common attributes of the students and classifying them accordingly. It can dynamically add more groups and attribute within the groups depending on the results received from the inference engine.

IMPLEMENTATION

Services between Client and Server

* Figure 8 represents the services that take place between the client and the server when a client intends to update the partial individual student model on the server. A timer has been set up for this purpose to fire the notification event for the inference engine to check the individual student model on the client. The basic algorithm is described in Table 1.

* When the server-side partial individual student model needs to update the client-side corresponding student model, the mechanism and procedure are identical to the above procedure of updating the server-side model by the client side.

* Initialisation of the new student's profile. In the WBITS system, the individual student model database consists of domain-independent data and domain-specific data. The domain-independent data is initialised by explicit questioning--or default values when the student chooses not to specify preferences. Using the generalised domain-independent data of an individual student model within a group, the new student's domain independent data is initialised with the individual's student model (Figure 9). The basic algorithm for initialising the new student's model is presented in Table 2.

Interaction protocols in the system

Interaction protocols for individual student model update

Interaction protocols define the behaviours of the different parties within the system. This means system functionality is based on the interaction protocols and achieved by message exchanges between parties. Thus, the communication and how to perform the tasks within the system is programmed based on the interaction protocols.

The interaction protocols are presented by state transition diagrams. These diagrams for each wrapper agent and mediation agent--when the client intends to update the individual student model on the server--are shown in Figure 10.

For the server-side partial individual student model to update the client-side corresponding student model, the state transition diagram is similar to the one from the client side to the server side, except from the other direction, from server to client.

Interaction protocols for individual student model initialisation from group student model

When a new student chooses not to define personal preferences for domain-independent data, the corresponding domain-independent data within group student model, generalised from students' common preferences, initialises the student's preferences. Figure 11 is the state transition diagram of each wrapper agent and mediation agent.

CONCLUSIONS

In this research, we exploited the benefits of two major technological solutions: two-fold student models, and mobile agents. Although formal evaluation of the system has not taken place, informal assessment has shown evidence of the enhancement in the quality of adaptation. We have also been able to address common deficiencies found in web-based learning environments. The main contributions of this research are described in the following section.

Improving Adaptivity in Web-based Learning Environments

Improvement in adaptivity for the student has been the main focus of this research. It is achieved in two ways:

A) Dividing the student model into three parts: local and central individual student models and central group student model (Figure 5).

This two-step modelling mechanism largely improves the capturing of interactions of a given student in the web-based learning environment, even in offline mode, and enables the system to provide adaptation at different granularity levels.

B) Applying mobile agents technology as the communication channel between client and server, instead of traditional client-server approaches.

The Bee-gent mobile agent framework of Toshiba is used in the prototype. Since mobile agents are inherently distributed in nature and have certain qualities--such as pre-fetching data, local processing of data and autonomous procedures--these agents possess the ideal technology to implement the mechanisms of the local and central individual student model and central group student model built in this research.

Hence, in this prototype, the mechanism of student models implemented by mobile agent technology addresses the problem of inadequate adaptation to individual students commonly found in the web-based learning environments.

Providing a flexible framework for maintenance and scalability

Mobile agents, in particular the Bee-gent framework, are implemented with higher-level abstraction and unified object. Therefore, they enable the prototype to provide a flexible and effective environment for future scaling and maintenance of the systems. For example, to bind the existing systems into this prototype will not affect the whole architecture because that would require only the creation of another wrapper agent to wrap the existing system and mediation agents to exchange the data.

Support for heterogeneous environments

Ideally, the development of web-based learning environments should share the existing resources available on different systems and different platforms. The prototype built with mobile agents fulfils that requirement because they have the capability to execute the processes in different environments. In particular, the Beegent mobile agents framework is built on Java, which is, for the most part, a platform-independent language.

Support for mobile students

Mobile users experience problems--such as unreliable, low-bandwidth, high-latency telephone or wireless network connections--while accessing web resources through portable computing devices. Essentially, the two-fold student model architecture and mobile agents technology facilitate the web-based learning systems to be used efficiently through these devices.
Table 1

Basic algorithm


If the inference engine receives an event
 from the timer
Then check the new data flag within the
 student model
If the new data flag is No
Then do nothing
Else get the new data and set the new data
 flag to No send request to agent
 wrapper asking to create mobile agent
 agent wrapper creates and launch a
 mediation agent with the new data
If client is offline
Then notice inference to set the new data
 flag back to Yes
Elseif server not found
Then notice inference to set the new data
 flag back to Yes
Else update is done
If more than one server
Then mediation agent moves to next server
If server wants to send data to client by
 the agent
Then the mediation agent get the data and
 back home
End If
Table 2

Basic algorithm for initialising the new student's model


If the new student does not
 define preferences in domain
 independent data

Then send a request by mobile agent
 from client to server to
 retrieve the domain
 independent data from group
 student model, which is
 generalized from the
 individual student model
 within the group

If more than one server

Then mediation agent moves to next
 server until finished

End If


REFERENCES

Bogley, WA., Dorbolo, J., Robson, RO., & Sechrest, JA. (1996). New pedagogies and tools for web-based calculus. In H. Maurer (Ed.), WebNet 96: World Conference of the Web Society Proceedings (pp. 33-39). Charlottesville, VA: Association for the Advancement of Computing in Education.

Brusilovsky, P.L., Schwar, E., & Weber, G. (1996). ELM-ART: An intelligent tutoring system on World Wide Web. In C. Frasson, G. Gauthier, & A. Lesgold (Eds.), Intelligent tutoring systems: Lecture notes in computer science, Vol. 1086 (pp. 261-269). Berlin: Springer-Verlag.

Chang, D., & Lange, D. (1996). Mobile agents: A new paradigm for distributed object computing on the WWW Paper presented at the OOPSLA'96 Workshop: Toward the integration of WWW and distributed object technology, San Jose, CA. Retrieved from the World Wide Web July 10, 2002, from Massachusetts Institute of Technology website at http://www.mit.edu/~yandros/doc/mobileagents.html.

Chess, D., Harrison, C., & Kershenbaum, A. (1995). Mobile agents: Are they a good idea? (Technical Report No. 19887 (88465)) Yorktown Heights, NY: IBM T.J. Watson Research Center. Retrieved from the World Wide Web July 10, 2002, from http://www.research.ibm.com/massive/mobag.ps,

Crampes, M. (1999). User controlled adaptivity versus system-controlled adaptivity in intelligent tutoring systems. In S.P. Lajoie & M. Vivet (Eds.), Artificial intelligence in education (pp. 173180). Amsterdam: 105 Press.

Gray, R.S. (1997). AgnetTCL: A flexible and secure mobile-agent system. Doctoral thesis, Dartmouth College, Hanover, NH.

Han, B. (2001). Student modelling and adaptivity in web-based learning systems. Master's thesis, Computer Science Department, Massey University, Palmerston North, New Zealand

Hewitt, C. (1977). Viewing control structures as patterns of passing messages. Artificial Intelligence, 8(3), 323-364.

Kinshuk, & Patel, A. (1997). A conceptual framework for Internet-based intelligent tutoring systems. In A. Behrooz (Ed.), Knowledge transfer, Volume 2 (pp. 117-124). London: Pace.

Kinshuk, Oppermann, R., Patel, A., & Kashihara, A. (1999). Multiple representation approach in multimedia based intelligent educational systems. In SR Lajoie & M. Vivet (Eds.), Artificial intelligent in education (pp. 259-266). Amsterdam: IOS Press.

Minar, N. (2000). Hive: Distributed agents for networking things. IEEE concurrency 8(3), 24-33.

Oppermann, R., & Specht, M. (1999). Adaptive mobile museum guide for information and learning on demand. In H.J. Bullinger & J. Ziegler (Eds.), Human computer interaction: Communication, cooperation, and application design (pp. 642-646). Mahwah, NJ: Lawrence Erlbaum Associates.

Shaw, E., Ganeshan, R., Johnson, W.L., & Millar, D. (1999). Building a case for agent-assisted learning as a catalyst for curriculum reform in medical education. Paper presented at the AIEd'99 Workshop on Animated and Personified Pedagogical Agents.

White, J.E. (1996). Telescript technology: Mobile agents. In J. Bradshaw (Ed.), Software agents (437-472). Cambridge, MA: AAAI Press/MIT Press.

Toshiba (2001). Bee-gent[TM]: Bonding and encapsulation enhancement [Software]. Retrieved from the World Wide Web June 19, 2002, from: http://www2.toshiba.co.jp/beegent'index.htm

KINSHUK & HONG HONG, MASSEY UNIVERSITY, PALMERSTON NORTH, NEW ZEALAND E-MAIL: kinshuk@massey.ac.nz

ASHOK PATEL, DE MONTFORT UNIVERSITY, LEICESTER, UNITED KINGDOM E-MAIL: apatel@dmu.ac.uk
COPYRIGHT 2002 Association for the Advancement of Computing in Education (AACE)
No portion of this article can be reproduced without the express written permission from the copyright holder.
Copyright 2002, Gale Group. All rights reserved. Gale Group is a Thomson Corporation Company.

 Reader Opinion

Title:

Comment:



 

Article Details
Printer friendly Cite/link Email Feedback
Author:Patel, Ashok
Publication:International Journal on E-Learning
Date:Jul 1, 2002
Words:4750
Previous Article:Knowledge management through e-learning: an emerging trend in the Indian higher education system.
Next Article:Science and Technology courses via e-learning: an African scenario with lessons from South East Asia.
Topics:


Related Articles
Towards Adaptivity and Agility A Fractal view on Learning Environments.
Database and Network Journal 2001 - Product Reviews.
Special issue on e-learning prospective in Asia Pacific. (Guest Editor's Note).
NetLert releases N-Contact. (New Products).
The role of learning strategies in web-based instruction.
eOn launches Outbound solution.
Computational intelligence in web-based education: a tutorial.
Mobile technology in educational services.
The challenge of content creation to facilitate personalized e-learning experiences.
Cyber-snitching.

Terms of use | Copyright © 2014 Farlex, Inc. | Feedback | For webmasters