Steve McKean Web Programming Pages: Introduction to Web Programming - Online experiments

-------Perception Code Index------

Session 5: Web perception application

Introduction

How to present a visual message to the public in such a way that it will be correctly perceived and remembered? This is a task of great importance for politicians, information agencies, product promoters, news media, educators and many more. It is an essential task for an information agency with the responsibility to disseminate facts to the public about local and global events as a background for democratic decisions expressed by an election or a referendum.

A news promotor may have several options for a fact presentation, for example, it may be:

  • discussed in a text form
  • displayed in a table
  • expressed in a graphical chart
  • read from an audio recording
  • played as a video

The problem is that we have little knowledge about the relative effects on the public of the different multimedia options.

One approach to learn more about the impacts of the different alternative fact representations on the public opinion, can be to design and carry out an experiment using the web. A web experiment must satisfy the general principles for experimental designs and will be a highly dynamic web application. In this session, we shall study the design and implementation of such an experiment limited to the 3 first presentation forms listed above.

The first step is to create a system which simulates the alternative presentations to the public. As already pointed out, such a system can be designed and implemented as a dynamic web application. The next step is to recruited participants to participate in the experiment.  Ideally, the participants should be a representative sample of the population, which we want to inform. This can, however, be both expensive and difficult, and frequently we recruit volunteers, a strategy, which may decrease the representatively of the sample. The perceptions of each participant from the exposed presentations are measured and recorded, and will finally be tested for significant differences.

As an example in this session, we illustrate the experimentation on the net by a set of 25 socioeconomic facts which we present in alternative ways and observe haw the participants perceive the different presentations. The recruited participants are recorded by their individual attributes, which permit to classify their expressed perceptions according to participants categories.

A keyword distributed to each recruited participant gives access to the experiment and serves to keep input from participants separated. Each participant in the experiment will be presented with a random sequence of the facts. The representation of each fact is also randomly determined. The presentation is displayed for each participant for a period of random length. Following each presentation, the participant will receive a form for reporting his perception of selected characteristics connected to the fact. The purpose of the randomization of presentations and time is to avoid any systematic influence on the results.

The experiment has been carried out with several groups. A published paper in .pdf format with some results is available in Nordbotten & Nordbotten .

[TOP]

Outline of the design

Figure 1 gives an outline of the experiment. We implement a CFMX application system with a databas e as a back-end component for keeping references to a gallery of presentations and for storing the feedback from participants.

We focus our discussion to the web application dimension of the experiments and assume that the participants are recruited by other professionals. The participants will work with their browsers on client computers connected to our server by the WWW. Between each client and the server, there are 4 streams of messages, two in each direction. From the client, requests for participation and responses to forms will be moving to the server. From the server, presentations and related forms for responses will be sent to the clients.

The experiment is based on a set of 25 international facts from the socio-demographic domain. Each fact is represented in 3 alternative presentations, textual , tabular and graphical , in the gallery of images. Other representations, such as voice and animation , can be added.

Each participant who completes the experiment will have seen all 25 fact each presented in one and only one of the 3 alternative presentation. Following each presentation, the participant is asked to complete a standard form about perceived characteristics of the fact presentation.

With a satisfactory number of participants, the recorded data will permit analysis of perception characteristics of the 3 representational forms subject to background factors expressed by individual demographic characteristics, fact and representation types, position in sequence and display time.

[TOP]

Design of the database

The starting point for the design of the experiment is a database . Several database systems can be used including Microsoft Access and MySQL. The requirement to the database is that there exist a JDBC driver for the server platform used. In this session, MS Access is used as a simple solution.

The database is a collection of tables with columns corresponding to variables. Each table row is a recording of an event, and each column contains the event values for the variable represented in the particular column and for the particular row.

Four tables are used for the experiment:

  1. calls(participant,fact)
  2. charts(chart,fact,type,url)
  3. form1(participant,day,hour_minute,host,gender,age,subject,resident, keyword)
  4. form2(participant,chart,wait,fact,type,unit,topic,measure,tid,category,startform2,endform2)

The names within the parentheses are the column variables of the respective tables. Table 1 , 3 and 4 have all the variable participant which means they can be combined to give a wide empirical description of the participant and his/her demographic attributes as well as his/her interaction with the experimental system.

Table 1 is used to keep track of the facts presented for each participant to avoid that he/she is exposed to the same fact more than once. Each participant is identified by an internal identifier, participant, which is kept during the session in order to make the presentations and responses connectable during the analysis.

The second table is a listing of all fact presentations in the gallery. Since there are 25 facts, all represented by 3 different presentations, the table has 75 rows, each with a distinct chart number, reference to the fact represented, the type of presentation, and a pointer to the chart images in the gallery. This table is the basis for random drawing representations and a link to the gallery with the image files to be presented. Note that the gallery is not part of the database, but a collection of image files in a separate directory.

Form 1 is used for recording when a participant joined the experiment (date, hour and minute) as well as his/her demographic data values for the attributes gender, age group, professional background (in work/studies),country of residence and keyword.

The last table is the main table in which the feedback from the participants for each presentation is saved. The table variables reflect the participant, the chart reported on, the time it was displayed for the participant, the fact presented in the chart, the chart topic perceived by the participant, perceived measure used in the chart, if the presentation refereed to a single/multiple time(s). category, start times and end times are variables used to measure the times needed for completing the forms.

A table containing the 'correct' values for each fact also exists for use during the subsequent analysis of the experiment. Since we are not discussing the analysis in this course, this table is not included in the listing above.

[TOP]

Design of the dynamic web process

The design of the web process to be implemented has 6 main templates of which some have attached templates for background processing:

  1. Opening page explaining the application and a login form
  2. Demographic form
  3. First chart display
  4. Perception report form
  5. Next chart display
  6. Thanks for participating

In addition to these templates, an Application.cfm template setting the session management must be created for specification of persistent session variables. The variable session.datasource is also set in this template.

[TOP]

Opening page

The first template, index.cfm , opens the experiment for the participant. It explains the application and ask the participant for his/her keyword . As indicated above, the keyword is not a password, but simply a means for recording to which recruitment group the participant belongs.

The opening template contains a small form which is used to record the participants key (in the application example, you can use the key="CF"). When the form is submitted, the control is transferred to template form1.cfm (Line 3).

1. <--- index.cfm --->

2. <p>(There is a relative long introduction of the application which has little relevance for the implementation. You can read the full text in the application example.)</P>

3. <FORM ACTION="form1.cfm" METHOD="post">

4. <p>If you wish to participate, please type your keyword: <INPUT TYPE="TEXT" NAME="KEYWORD" VALUE=" "></p>

5. <p>and click the button,</p>

6. <p> <INPUT TYPE="SUBMIT" NAME="response" VALUE="Participate"></P>

<p>else go to your preferred URL.</p>

After reading about the experiment as indicated in Line 2, the visitor is offered the option to cancel his/her participation as indicated in Figure 2 .

[TOP]

Demographic form

Before starting to record the demographic data, it is important to give the participant an identification permitting to recognize him/her each time he/she returns a feedback. One option is use of cookies as we did in the Market research application. Since some people do not permit their browsers to accept cookies, we use another technique in this experiment.

As soon as a visitor has decided to become a participant, control goes to template form1.cfm . According to Line 2, the participant is assigned an internal identifier , #session.participant# , computed from the time the form was processed by the server. A simpler time identifier can be used, but in this session we compute the identifier from scratch to demonstrates the principle in detail. There is a microscopic risk that 2 or more participants can be assigned identifiers within the same second. A few other variables are also set to last through the session in Line 3-6, including the day, time, IP number of the client, and the keyword which all is required saved in the database.

Then follows the demographic form in Line 11-64 displayed for collecting the background data about the participant. Even though advantage is taken of the HTML form possibilities including menus to check the relevant option, the template is long, but does not introduce any new CFMX features.

1. <--- form1.cfm --->

2. <CFSET session.participant=Second(#Now()#)+60*Minute(#Now()#)+ 60*60*Hour(#Now()#)+60*60*24*Day(#Now()#)+60*60*24*30*Month(#Now()#) +60*60*24*30*12*(Year(#Now()#)-1999)>

3. <CFSET session.day=#DateFormat(Now())#>

4. <CFSET session.time=#TimeFormat(Now())#>

5. <CFSET session.host=cgi.remote_addr>

6. <CFSET session.keyword=#form.keyword#>

7. <H2>Demographic Form</H2><P>

8. <BR><BR>

9. <p>The information you give on this form is needed for classifying your answers about the presentations in demographic and social categories such as male-female, age group, etc. Your identity will not be revealed by your answers. <p>

10. <b><i>Please click at the arrow symbol at the right hand side of each reply box to get the reply options displayed and make your selection.</i></b> <p>

11. <FORM ACTION="first_chart.cfm" METHOD="POST">

12. <TABLE>

13. <TR>

14. <TD>

15. <I>Is your <font face="" color="Red">gender</font>:</I><P></TD>

16. <TD><SELECT NAME="gender">

17. <OPTION value="0">Unanswered

18. <OPTION Value="1">Male

19. <OPTION Value="2">Female

20. </SELECT></TD>

21. </TR>

22. <TR>

23. <TD><I>Is your <font face="" color="Red">age</font>:</I><P></TD>

24. <TD><SELECT NAME="age">

25. <OPTION value="0">Unanswered

26. <OPTION value="1">19 years or less

27. <OPTION value="2">20-24 years

28 <OPTION value="3">25-29 years

29. <OPTION value="4">30-49 years

30. <OPTION value="5">50 or more

31. </SELECT></TD>

32. </TR>

33. <TR>

34. <TD><I>Are you <font face="" color="Red">studying/working</font> in:</I></TD>

35. <TD><SELECT NAME="subject">

36. <OPTION value="0"> Unanswered

37. <OPTION value="1"> Humanities (incl. religious and humanitarian services)

38. <OPTION value="2"> Social sciences (incl. law and business)

39. <OPTION value="3"> Life sciences (incl. medicine, ontology, psychology)

40. <OPTION value="4"> Natural sciences (incl.engineering, construction)

41. <OPTION value="5"> Agriculture,fisheries, industry

42. <OPTION value="6"> Business

43. <OPTION value="7"> Services (incl.work in the home)

44. <OPTION value="8"> Central and local government

45. <OPTION value="9"> Other

46. </SELECT></TD>

47. </TR>

48. <TR>

49. <TD><I>Are you <font face="" color="Red">living </font>in:</I><P></TD>

50. <TD><SELECT NAME="resident">

51. <OPTION value="0"> Unanswered

52. <OPTION value="1"> Denmark

53. <OPTION value="2"> Norway

54. <OPTION value="3"> Sweden

55. <OPTION value="4"> Other European countries

56. <OPTION value="5"> United States

<OPTION value="9"> Other countries

57. </SELECT></TD>

58. </TR>

59. </TABLE>

60. If you want to continue, click the button

61. <INPUT TYPE="SUBMIT" NAME="submit" VALUE="CONTINUE">,

62. <FONT COLOR="Red">please be patient while the display is compiled</FONT>, <BR>

63. <p>else leave for the URL you prefer.</p>

64. </FORM>

Figure 3 shows how this form appears to the user.When submitted, this template calls upon the template first_chart.cfm .

[TOP]

Displaying the first chart

The template first_chart.cfm has 2 tasks:

  • take care of and save the data submitted by the participant's completed demographic form.
  • prepare for sending the first chart presentation to the participant.

The first task requires the CFQUERY tag in Line 3 followed by an INSERT INTO statement. This statement specify all the variables we want to insert into the table form1 of database #session.datasource# and their values . The first 4 are values of session variables defined in the previous template. The next 4 are values submitted by the participant on the demographic form. Note that we refer to these by preceding their names with the qualifier form. because they were submitted by the last read form. The value of the keyword variable was also defined as a session variable in the previous template. All variables are introduced to the database as texts, i.e. they are surrounded by single quotes.

1. <!--- first_chart.cfm --->

2. <!-- Store answers from Participant's form -->

3. <CFQUERY NAME="ADDFORM1" DATASOURCE="#session.datasource#">

4. INSERT INTO form1 (participant,day,hour_minute,host,gender,age,subject, resident, keyword) VALUES('#session.participant#','#session.day#', '#session.time#', '#session.host#','#form.gender#', '#form.age#','#form.subject#','#form.resident#', '#session.keyword#')

5. </CFQUERY>

6. <!-- Randomize and draw a random first chart number. The parameters must be set 1 and 75 where 75 is the number of facts-->

7. <CFSET random=RANDOMIZE(#session.participant#)>

8. <CFSET session.chart=#RANDRANGE(1,75)# >

9. <!-- Retrieve the first fact number, type and usl corresponding for chart number -->

10. <CFQUERY NAME="SELECT1" DATASOURCE="#session.datasource#">

11. SELECT chart,fact,type,url FROM charts WHERE chart=#session.chart#

12. </CFQUERY>

13. <!-- Set session variable values -->

14. <CFSET session.fact= #select1.fact#>

15. <CFSET session.type=#select1.type#>

16. <CFSET session.url= #select1.url#>

17. <!-- Update calls with the participant identification and the fact number displayed -->

18. <CFQUERY NAME="INSERTCALL" DATASOURCE="#session.datasource#">

19. INSERT INTO calls(participant, fact) VALUES('#session.participant#','#session.fact#')

20. </CFQUERY>

21. <!--- Set the initial value of session.counter --->

22. <CFSET session.counter =1>

23. <!--- The image should be displayed for session.wait sec. --->

24. <CFSET session.wait=#RANDRANGE(10,20)#>

25. <CFOUTPUT>

26. <META HTTP-EQUIV="Refresh" CONTENT="#session.wait#; URL=back.cfm">

27. </CFOUTPUT>

28. <--- first_chart --->

29. <!-- Display first image, and refresh with form2.cfm -->

30. <H2>This is the first presentation of 25:</H2><P><P>

31. <!-- Present the display selected: -->

32. <CFOUTPUT>

33. <IMG SRC="#session.url#">

34. </CFOUTPUT>

35. <BR><BR>

36. <FONT COLOR="Red">The presentation will be removed after a randomly determined time. </FONT>

The second task of the template is preparing for the display of the first chart. This is the core of the application, and rather complex. Be patient, it is not that difficult as it may look at the first glance. There are also some comments included which should help to understand the algorithm.

The first step is to use the RANDOMIZE(#session.participant#) function to provide the system with a seed for the pseudo-random algorithm which will be used. Since the value of the session.participant variable is unique, it is an ideal for use as a seed. Note that this function does not randomize the session.participant variable, it prepares for the use of the following RANDRANGE function. The first chart to be presented is determined by the function session.chart=RANDRANGE(1,75) which provide a random integer in the range 1 to 75 (Recall that the number of different presentations charts in the gallery collection is 3*25=75). To find the location of the chart, the fact it represents and its type, requires a search (Lines 10-12) using SQL statement SELECT in the database #session.datasource# FROM table charts for the row WHERE chart value is #session.chart# . The location of the chart is contained in the variable url . We need to refer to this query and name it select1 .

The 3 variables session.fact , session.type and session.url are set and assigned the values retrieved from the query named select1 in Line 14-16. For future use, the table calls must be updated with the values of #session.participant# and #session.fact# to avoid presenting the participant with the same fact more than once. This we do with a simple CFQUERY with an INSERT INTO statement in Line 19.

session.counter is a variable used to keep track of the number of presentations sent to the participant. At this point it is initialized with value 1 . In Line 24 of the template, the length of the time in seconds the current presentation should be exposed is determined as a random integer between 10 and 20 seconds.

Line 26 contains a particularly interesting HTML statement. The META statement will keep the presentation of the current presentation (not yet presented!) on the client's screen for #session.wait# seconds, before it passes the control to the form2. cfm through a small template, back.cfm , (not reproduced here) with a warning against the temptation to use the back-button. To simplify, you can substitute back.cfm with form2.cfm in Line 26.

We are now approaching the end of the preparations for sending the selected presentation to the client. Line 30 to 36 take care of this final purpose of this template. As you see from Line 33, the presentation image is stored at the location to which the URL #session.url# points. Figure 4 show a random presentation.

[TOP]

Perception report form

By means of the previous template the presentation is displayed for the participants for the randomly determined time period and the control redirected to the template form2.cfm for display of form 2 . The main purpose of form2.cfm is to collect the perception report from the participant. A few other facts are also recorded, for example session.startform2 for recording the start time for working on form2 in Line 2.

1. <!--- Form2 returned to the visitor: --->

2. <CFSET session.startform2=#LSTimeFormat(Now(),"HH:MM:SS")#>

3. <H2>Report Form</H2>

4. <P><P>

5. <STRONG>Please do not get tempted to use your Back button, it may ruin your participation.</STRONG><P>

6. <p>This is your report on the presentation which was displayed for you. Some presentations are intentionally displayed for only a short period in order to test for how long time such a presentation should be displayed, f.ex. on TV. It is not expected that you always can give answers to all questions. If the presentation was not displayed, leave the form blank.</P>

7. <b><i>Click at the arrow symbol at the right hand side of each reply box to get the reply options displayed and make your selection.</i></b> Please take the time you need to complete the report.<P><P>

8. <!-- This is the call for the template to record the answers in the data base and to generate the next display: -->

9. <FORM ACTION="next_chart.cfm" METHOD="POST">

10. <TABLE>

11. <TR>

12. <TD><I>Was the <font face="" color="Red">topic</font> of the presentation within the domain of: </I></TD>

13. <TD><SELECT NAME="topic">

14. <OPTION Value="0">Unanswered

15. <OPTION value="1">Demographic, social and health conditions

16. <OPTION value="2">Education, culture and art, religion

17. <OPTION value="3">Work, employment, professions

18. <OPTION value="4">Production,services, economy

19. <OPTION value="5">Research and development

20. <OPTION value="6">Entertainment, tourism, traveling

21. <OPTION value="7">Environment, climate, natural resources

22. <OPTION value="8">Government,elections,politics

23. <OPTION value="9">Several domains, other

24. </SELECT></TD>

25. </TR>

26. <TR>

27. <TD><I>In which <font face="" color="Red">measure</font> the presented fact expressed by:</I></TD>

28. <TD> <SELECT NAME="measure">

29. <OPTION Value="0">Unanswered

30. <OPTION value="1">Numbers, values (e.g. 3000 persons, 400 dollars)

31. <OPTION value="2">Percentages, fractions, points (e.g. 30%, 1/4 of population, 110.9 (1990:100)

32. <OPTION value="9">Other

33. </SELECT> </TD>

34. </TR>

35. <TR>

36. <TD><I>Were the facts related to a <font face="" color="Red">single</font> or <font face="" color="Red">multiple</font> point(s)/period(s) of time:</I></TD>

37. <TD><SELECT NAME="tid">

38. <OPTION Value="0">Unanswered

39. <OPTION value="1">Single point/period(e.g. Dec.31 1999, Year 2000)

40. <OPTION value="2">Multiple points/periods(e.g. Dec. 31 1999 and 2000, Year 1900 and 2000)

41. </SELECT></TD>

42. </TR>

43. <TR>

44. <TD><I>Were the facts presented in a single or multiple <font face="" color="Red">categories</font>:</I></TD>

45. <TD><SELECT NAME="category">

46. <OPTION Value="0">Unanswered

47. <OPTION Value="1">A single category(e.g.. one country)

48. <OPTION value="2">Several categories (e.g. male/female,age classes, geographical areas)

49. </SELECT>

50. </TD>

51. </TR>

52. </TABLE>

53. <p>Thank you so far!</P>

54. If you want to continue, click the button

55. <INPUT TYPE="SUBMIT" NAME="submit" VALUE="CONTINUE">,

56. <FONT COLOR="Red">(please be patient while the display is compiled)</FONT>,<BR>

57. else go to the URL you prefer.<BR><BR>

58. </INPUT>

59. </FORM>

In general, you find form2.cfm is long but rather trivial. After an introductory text, the starting form tag is on Line 9 specifying next_chart.cfm as the template to be called on when the form is submitted. The form has an ordinary structure with a table tag and ends at Line 59. The form as presented for the participant can be seen in Figure 5 .

[TOP]

Next chart

The next_chart.cfm is similar to the first_chart.cfm template. The main difference is that the first_chart.cfm has to take care of saving the submitted data from the demographic form while the next_chart.cfm must save the data submitted from the perception report form .

The next_chart.cfm template starts by logging the #session.endform2# which is the time at which the form2 is completed and submitted. The CFQUERY block in Line 4 to 6 save the data in the db by a sql statement INSERT INTO

1.<!-- next_chart.cfm. -->

2.<CFSET session.endform2=#LSTimeFormat(Now(), "HH:MM:SS")#>

3. <!-- Store input from form2: -->

4. <CFQUERY NAME="INSERT3" DATASOURCE="#session.datasource#">

5. INSERT INTO form2(participant, chart, wait, fact,type,topic, measure,tid, category, startform2, endform2)

VALUES ('#session.participant#', #session.chart#, #session.wait#, #session.fact#, #session.type#, '#form.topic#', '#form.measure#','#form.tid#', '#form.category#','#session.startform2#', '#session.endform2#')

6. </CFQUERY>

7. <!--- Test if the previous display was the last (no.25) --->

8. <CFIF #session.counter# EQ "25">

9. <--- If the previous display was no. 25 --->

10. <CFLOCATION URL="thanks.cfm">

11. <!--- If not the last fact, continue from here--->

12. <CFELSE>

13. <!--- Select a random chart number and test if fact already displayed: --->

14. <CFSET test="0">

15. <CFLOOP CONDITION =" #test# EQUAL 0 ">

16. <CFSET session.chart=#RANDRANGE(1,75)#>

17. <!--- Get the fact,type and url corresponding to chart number --->

18. <CFQUERY NAME="SELECT2" DATASOURCE="#session.datasource#">

19. SELECT fact,type, url FROM charts WHERE chart= #session.chart#

20. </CFQUERY>

21. <CFSET session.fact = #select2.fact#>

22. <CFSET session.type = #select2.type#>

23. <CFSET session.url = #select2.url#>

24. <!--- Check that fact no is not in calls from previous displays --->

25. <CFQUERY DATASOURCE="#session.datasource#" NAME="call">

26. SELECT fact FROM calls WHERE participant = '#session.participant#' AND fact= #session.fact#

27. </CFQUERY>

28. <CFIF #call.fact# NEQ #session.fact#>

29. <CFSET #test#="1">

30. </CFIF>

31. </CFLOOP>

32. <!-- A new chart number for an unused fact has been found -->

33. <!-- Record in calls that this fact has been used -->

34. <CFQUERY NAME="INSERTCALL" DATASOURCE="#session.datasource#">

35. INSERT INTO calls(participant, fact) VALUES ('#session.participant#','#session.fact#')

36. </CFQUERY>

37. <CFSET session.counter=#session.counter#+1>

41. <!--- The image should be displayed for session.wait sec.--->

42. <CFSET session.wait=#RANDRANGE(10,20)#>

38. <HTML>

39. <CFOUTPUT>

40. <META HTTP-EQUIV="Refresh" CONTENT="#session.wait#; URL=back.cfm">

41. </CFOUTPUT>

42. <CFOUTPUT>

43. <H2>This is presentation no.: #session.counter# of 25:</H2><P><P>

44. <IMG SRC="#session.url#" >

45. <BR><BR>

46. <FONT COLOR="Red">The presentation will be removed after a randomly determined time.</FONT>

47. </CFOUTPUT>

48. </CFIF>

49. </BODY>

50. </HTML>

The CFIF tag in Line 8 tests if the just saved form was the last, i.e. number 25. If so, the control is directed to thanks.cfm .

The selection of a new presentation is more complicated than the first because we now have to check that the display drawn does not represent a fact already presented. Line 15 to 31 is a sequence of CF tags in which a display is randomly selected and tested, if the implied fact has already been used the sequence is repeated. When a presentation of an unused fact is found, the looping is finished and the processing continues for the new display as for the first display

[TOP]

Thanks to the participants

When a participant has responded to 25 presentations , he/she is sent a page generated by the final template tanks.cfm . Again, this is a page without any CF tags and it qualifies as a HTML page including the reference to a mail address in Line 9.

1. <--- thanks.cfm --->

2. <HTML>

3.<BODY>

4. <H1><FONT SIZE="+3" FACE="Times New Roman" COLOR="Blue">

5. <EM>SIS </EM>Statistical Information Systems</FONT></H1>

6. <P>You have completed the applications. Thank you very much for your patience and interest.</P>

7. <P>Please exit to the URL of your choice.</P>

8. If you have any proposals or comments, please send them to:

9. <a href="mailto:svein@nordbotten.com"> Svein Nordbotten</a><br>

10. <!-- The session is terminated -->

11.</BODY>

12. </HTML>

Figure 6 gives the last display for the participant who completes all 25 presentation reports.

The experiment discussed in this session has been carried out several times in different environments, and the experience for this type of experiments is encouraging.

[TOP]

Exercises

a. Read Chapter 10 in RBB about a CFML tag, CFFORM , which extends the functionality of the ordinary HTML tag FORM with a variety of control features.

b. In the application discussed, the focus was on perception of socio-demographic facts. The framework used is general and can for instance be used for investigating the impact on web users from different layouts (background color, font sizes, animation, etc.) of web pages. Choose an aspect in which you have interest, and re-write the templates for an investigation of this aspect.

c. Modify the templates to satisfy another experiment on the net.

d. Consider the changes you must do in the templates if you do not have access to a database and have to rely on the CFFILE tag.

e. There is more advanced solutions to avoid backtracking. Try to see if you can find one. If you succeed, inform the other students about the trick.

Link to the session example.

Link to the session test.

 

 

[TOP]

Other information:

 

 

 

 

 

 

 


[top]

Chapter 5 - Online Experiments

HOME- INDEX - HTM
oreilly EX. 3 -10
OREILLY EX. 11 - 17
OREILLY EX. 18 - 28
OREILLY PAGE INDEX
WACK
WACK EX. 1 - 14
WACK EX. 15 - 25
WACK EX. 26 - 36
WACK PAGE INDEX

 

ADOBE - COLDFUSION TAG REFERENCE
FUNCTION REFERENCE
 
MACROMEDIA LIVEDOCS
 
macromedia help

 

Course Project

MY LINKS- RESOURCES

Steve McKean
UH-Email

CT LOGIN

CT FORUM CF
user - enter

MACROMEDIA FORUM
user - enter

Course Project MY LINKS- RESOURCES Steve McKean UH-Email
 
ADOBE - COLDFUSION TAG REFERENCE
FUNCTION REFERENCE
 
42773
7

 

Course Project

MY LINKS- RESOURCES

Steve McKean
UH-Email

CT LOGIN

CT FORUM CF
user - enter

MACROMEDIA FORUM user - enter

 
TWW

O'Reilly Book Site

Read Me

 

CFMX HISTORY RESOURCES
OBJECTIVES

1.-Introduction to web programming
2. Implementation tool: CFML

Application
Examples

3.- Market research application
4.- Using databases
5.- Online experiments
6.- Search engines
7.-e-learning
8.- e-shops
9.- Agents

Implementation aspects:

10.-Data exchange
11. -Regular expressions
12. -Re-using code
13. -Distributed processing
14 .- CF components
15. -Web services

Course project