5. Interaction between computer and learner: An overview

5.1 How do they interact
5.2 User data collection
5.3 Data processing

Interaction between computer and learner takes place when a learner is engaged in some language learning activities on their own, i.e., without real time intervention from an instructor. For example, students can practice with a set of multiple-choice questions and the computer will evaluate his answers as soon as he turns in his 'answer sheet'. 

(Placeholder: if you are familiar with basic web programming, you can skip this section.)

5.1 How do they interact

In simplified terms, interaction between a computer and a user involves the following process:

  1. A user inputs some data using a web form and submits them to a computer;
  2. The computer receives the data, processes them and then returns some feedback to the user;
  3. The user takes further actions based on the feedback he/she receives.
  4. The process repeats itself until the interaction terminates at the user's will or the program's will.

In a web-based setting, a user can interact with the local machine and/or a remote machine (where the web server resides) at the same time.

5.2 User input data

There are two types of user data on the web: 1) Data entered by a user into a web form. We will call this type of data text data; 2) Data collected based on user action within a web browser. We will call this type of data event data.

5.2.1. Text data

A web form is simply a web page with any of the following elements in it:

Name Form Notes
One-line Text Box:   
Scrolling Text Box:   
Check Box:  Checked: Unchecked:  
Radio Button:  Selected: Unselected:  
Drop-down Menu:   
Push Button:   

Note that form data can be discrete (textfields) or open (checkbox, radio button and drop-down menu).

5.2.2 Event data

When a user moves the mouse or click on a hyperlink or image within a browser, we say an event takes place. We can design our webpages so that such user initiated events can be monitored and put into interactive use. To see how this works, simply moves the mouse over the following image:

What you have seen is a swapping event between two images. When you move the mouse onto 'CALL', you will see 'Computer-assisted Language Learning'. When you move the mouse away, 'CALL' will be restored.

5.3 Data processing

User input data can be sent to two locations for further processing: 1) A remote computer where a web server resides. (It is not necessarily the same web server where the particular webpages are hosted.); 2) The computer that the user is using. We will simply refer the former as server and the latter client. To process user data on a server is called server-side processing, whereas to process data on the user's own machine is called client-side processing.

5.3.1 Server-side processing

Server-side processing takes place when a user sends in some data to a web server. Once the data reaches the server, it will first call up some scripts/programs to process them and then generate send some feedback to the client browser. The most common method for server-side processing is known as CGI, which is a standard which specifies how data are handled when they reach the (web) server. On WindowsNT, ASP is yet another name for something similar.

Any full-fledged programming language can be used for server-side scripting, though the best known is Perl. Other scripting languages such as PHP and VisualBasic are also used on a wide basis.

More details will be discussed in the Server-side design page.

5.3.2 Client-side processing

Client-side processing takes place within the web browser window on the user computer itself. Both types of data (i.e., text data and event data) can be collected and processed. Client-side processing is done through such scripting languages as JavaScript, Java and ePerl, etc.. For more information, see the Client-side design page.

5.3.3 When to use what

Other things being equal (i.e., within the limitations of both server-side and client-side technologies), you will use server-side processing when the same set of data are to be used either by others or at a later time. Otherwise use client-side processing.

Next topic ==>