"Teaching Technical Applications in a Text Environment: the Case of Teaching Cold Fusion Online"
Robert C. Fulkerth
Many current discussions of teaching and learning in online, distributed environments focus on the question What's Next? Discussants are interested in moving newly developed skills to a hypothetical next level, which is often thought to incorporate more bandwidth and multimedia elements such as video, sound, simulations and other highly interactive (and bandwidth-intense) activities, to engage students more than we are able to do now.
This paper considers another challenge being faced by many people who teach in online environments. The University's history (and success)lies in delivering management-oriented programs to students. Increasingly, however, most students expect to develop sometechnical skills, either in standalone degree programs such as Software Engineering or in our Web Development certificate program, as a complement to traditional management skills.
The particular challenge under consideration is teaching a technically-oriented course in an existing online environment. To do this well doesn't necessarily require the use of audio/video tools, but instead the creation of a realistic development space for students, that combines the existing online teaching/learning environment (called Cybercampus; www.ggu.edu) with a true online development environment, consisting of distributed HTML and database servers, databases, and the expectation that students will interact with the instructor, the course material and each other using these distributed tools.
The course, titled "Developing and Deploying Databases on the World Wide Web", is one of 6 in Golden Gate University's Web Development Certificate, a highly popular program in the School of Technology and Industry.
What is Cold Fusion? How do databases and the World Wide Web interact?
One of the most important changes in the use of the World Wide Web has been the movement toward data-driven presentation of information at the user's computer screen. What does this mean?
Static pages often have the many engaging interactive features we've come to expect, such as hypertext links, tables, frames, animation and blinking or moving text, but these are created when the page is designed. For these features to change, the files that create the page(s) must be manually changed.
Now consider this situation. You work in the Human Resources department of a medium sized business with 75 employees, and must keep a database of employees, consisting of different pieces of information about each of them. For ease of access, you want to be able to ask for and view information in a World Wide Web/browser environment.
In a static environment, you must create this database using HTML. Each time there is a change, you are required to alter the underlying HTML to keep the page current. Worse, you're not able to call to your screen subsets of data. You can't, for example, call to the screen a list of all people who work at the Peoria, Illinois, plant.
Dynamic and Data-Driven
Enter data-driven (and dynamic) information presentation. Dynamic in this context means that the user is able to request particular information, and have that information returned to the screen; the information is not driven by the underlying structure of the page, but instead by the user's request. Data-driven means that the information returned resides on a database, which can be updated; if the database is maintained, the user will always have updated information.
Now, the Human Resources person can ask for subsets of information, and have that information returned to the screen from the database. It is now possible to generate a screen with the names of all employees who work in Peoria, in management, and who make over $55,000 a year. As long as the underlying database is kept current, the information at the user's screen is current, too.
What does a dynamic, data-driven page look like?
Real-world examples can be found by visiting commercial sites such as Amazon.com. Let's assume that you visit Amazon and search for an audio CD. First, you might do a search for the artist or the CD by title. When that CD appears on your screen, it's accompanied by other information and choices: reviews of the CD written by users, other material by the same artist, a list of other purchases by users who've also purchased the CD, sound snippets, and so on. At the "back end", or the business's servers, this information is generated and returned to the screen each time a user searches or makes some other choice. What the user sees is unique to that instance and that particular online session. If another artist or title is chosen, other information under the headings noted above is generated anew, specific to the new artist or title now being viewed. The user can even provide input to the underlying database by perhaps writing a review, which becomes one piece of dynamically-generated output for others who choose the artist or CD of interest.
Teaching Cold Fusion in an online environment
Cold Fusion (Allaire Corporation) is a software development environment that enables users to create applications that are dynamic and data-driven, such as are described above. For most of us who are used to programs and applications that do a particular thing, such as a word processor, Cold Fusion may be a bit confusing, because it is not an application as such; instead, Cold Fusion is a coding language and support applications that rely on HTML and cgi (Common Gateway Interface) scripting to create the language that mediates between a user's screen, an HTML server, a database and a database server.
The following text figures demonstrate how Cold Fusion files are created, what they return to a browser, and how they work.
(The code represented here is found in Ben Forta's "The Cold Fusion 4.0 Web Application Construction Kit, 3rd edition", published by Que. The actual code shown here was created by a student.)
Figure 1: This template allows a user to query a database:
Figure 2: Here is a text representation of that file on the user's screen:
In Figure 3 below, we see the template that does the actual work of querying the database and returning the requested information. This template combines HTML, SQL and CFML (Cold Fusion Markup Language) to return information.
In this example, the form is not sophisticated. If the user asks for Smith, all Smiths will be returned. If the user asks for Joanna, all will be returned. In this template, if the user "submits" without entering search criteria, the entire database will be returned:
The Teaching Challenge
The above examples create an extremely simple application; Cold Fusion files that perform in the real world are much longer and more complex.
The reader can see that the process of creating a dynamic interaction between user's browser page and a database requires the creation and testing of several template files, some containing CFML, HTML and SQL. Thus, a Cold Fusion application will consist of a number of files, each performing a different operation.
In addition to creating the files, here's how a student has to manage mounting and testing them. The student has to:
1. Create a text file that combines HTML and Cold Fusion tags, to perhaps create a forms input page.
2. Upload the file to the remote directory.
3. Test the result in a browser, if appropriate.
4. Create the text file that allows the representation of the output from the text file in #1. Upload it as in #2.
5. Test the final result in a browser.
6. If there are errors at any point, review the text example, the HTML, the SQL, the CFML.
This multi-step (and multi-layered) process can be both complex and confusing. People with technical and programming backgrounds have fewer problems. Students from a management background who are used to working with, say, word processing /database/spreadsheet applications will probably be challenged, at least in the beginning of the course.
The following section details some suggestions for transitioning such a course to an online environment:
1. First and perhaps most important, structure and understand the electronic environment. Specific to this particular class, an already configured Cybercampus conference environment is used, and a development server with a folder (or directory) for the class is running.
Understand how these systems work, who's responsible for maintaining them, and who will fix them when they break, particularly after working hours or on weekends.
Maintenance is not the teacher's responsibility, but the teacher will suffer when the systems don't function. Student do coursework after working hours and on weekends; this is when system crashes frequently occur, and support people tend not to be on site to solve problems or to reboot machines at these times.
In general, if you cannot have reasonable technical support, reconsider teaching the course, particularly if student evaluations play a part in your retention/tenure progress. Your course evaluations will reflect student frustrations with the technology!
2. Be clear as to technical expectations, and what technology the student must have. Clearly note in course materials and in interactions with students what is expected. Here's an example:
In the CF online environment, students are expected to have access to and be familiar with a number of things:
a. a computer equipped with an Internet connection, and a WWW browser
b. a File Transfer Protocol (FTP) program
c. the ability to use the FTP program to upload/download files from and to a remote server
d. a working knowledge of HTML and an understanding of databases
e. some knowledge or exposure to Structured Query Language
f. most important, some curiosity and Tolerance for Ambiguity".
3. Be clear as to the teacher's expectations for student performance. Students must understand that to be successful in ambiguous environments, they must be dedicated, disciplined, and comfortable in situations where subsequent steps or outcomes may not be as immediately evident as they might be in a face to face classroom. Students are expected to be curious, and not easily frustrated.
Proofreading is a highly important skill. Students create files by following examples, so programming knowledge is not required at the beginning of the course. Virtually all problems student have with template files are the result of simple errors in coding. The ability (and patience) to proofread are of paramount importance for the student, and for the instructor's sanity. Put simply, if a template does not function, the student has not done the work properly, and the file must be carefully proofread. In HTML, This closing tag (</CFOUTPUT) doesn't work, and this one (</CFOUTPUT>) does. When a page has 50 or so such tags, the opportunity for errors grows almost exponentially.
4. Structure and mount course materials in their entirety before the course begins. In our environment, students expect to have access to both micro and macro course information. In addition to enabling them to work ahead, this may help them understand both the applications they are expected to create and the role of the software.
5. Provide quizzes that test at several levels. One use of quizzes is to determine if students have done the reading and understand the material at surface level; used this way, they are the traditional quick-check policing tool.
Another higher-level use of quizzes is to determine if students are able to connect information to new situations. This skill is vital in software development. Quiz questions used in this way might read like this: "Based on Example (), write the CF code that will query (different database) and provide (new and different outcome)".
This way, the quiz becomes a check for understanding, and allows the teacher to structure teaching, reviews and subsequent learning opportunities.
6. Require a project that asks student to apply knowledge gained to a real world situation, one that they understand. Students are interested in creating a range of things, from home pages to ecommerce sites. These projects should be noted early in the course, perhaps during the first third, so that they have a personal interest in learning and applying course material.
7. Communication between teacher and student is a must in any online environment. The teacher must be willing to interact with students via conference, email, phone and office visits. However, the constraints of this communication should be clear: the teacher is not a tech support person, nor is he/she on call constantly. A reasonable environment with understood parameters should be created and observed.
8. Particular to this class, we differentiate between "Web development" and "Web administration." This means that one decision to be made is the extent to which the complexity of the underlying system is a part of the classes. The Cold Fusion curriculum and classwork for this particular course is intended to position it in the "Web developer" arena.
This means that some of what is considered to be the administrative and management aspects of the system are created and maintained by the instructor. For example, configuring the relationship between the software and the database is an administrative task that is completed before the course begins. In the real world, Web administrators will also deal with technical matters such as access, security, setting up and maintaining datasources and managing database and HTML servers. As part of the knowledge base for the students, these matters are referred to and discussed, but in this particular class are not part of the evaluated course content.
Instead, we assume that the student Web developer will create user- oriented, data-driven content applications, that will be then mounted and managed by technical-side personnel. This approach limits the course content to skill areas more directly related to those found in the development arena of the world of work, while still providing some degree of familiarity with administrative realities.
Teaching such a course in an online environment presents unique challenges. One is conceptual: to define and describe Cold Fusion to students, many with non-technical backgrounds and non-technical career objectives. The notion of teaching something that is both software and development environment requires a leap for both teacher and students.
Students continue to have ever higher expectations of their educational experience, and teachers in both online environment and traditional environments have to move quickly to meet those expectations. In education as in theme parks, the fantastic becomes commonplace after just one ride. Students who perhaps a year ago were hesitant to take an online course now regularly say "Can't you offer more courses online? With my work schedule, taking online courses is just about the only way I can complete my degree."
This paper has described an attempt to put a traditional computer lab- oriented face-to-face course with technical features into an online environment, to manage it in such a way that it works, and to provide a satisfactory learning experience for students. As such, this effort is an attempt to address the need to not only place more courses online, but to demonstrate how a technical course not thought suitable for being taught online can be transitioned to electronically mediated teaching-learning environments.
Forta, Ben. (1998). The Cold Fusion 4.0 web application development kit, 3rd Edition. Que. Indianapolis, Indiana.
Robert C. Fulkerth, Associate Professor
TCC Online Conferences