IT'S THE WEB, STUPID!
William Mitchell
Department of Computer Science
LSU-Shreveport
Wmitchel@pilot.lsus.edu
This tutorial will address four topics presently facing undergraduate computing programs about how to teach with the web and what to teach about the Web. In approximately twenty minute segments we will address the nature of the Internet 101 course, the opportunities which the web brings for more effective instruction, the academic education of a webmaster, and the melding of the technologist orientation with the computer science curriculum. Material supporting the positions taken in the outline below will be distributed and explained as a motivation for group discussion. The expectation is that the audience will bring a great deal of insight and experience.
1. Computer Literacy and the World Wide Web
A. Overview of the Internet 101 course content (textbook survey)
(1) Relation to the desktop tools course
Although the Atools@ textbooks have all added an Internet unit, there is ample justification for two different courses. The tools course is focused upon the desktop and the productivity tools which are housed there. After an introduction to computer hardware technology, the tools course concerns how to use a wordprocessor, a spreadsheet, and a database, and often introduces graphics and desktop publishing. This course has as its goal the empowerment of the individual to control a pc and accomplish personally useful processing. To the extent that various disciplines, business, composition, mathematics, etc., incorporate a focus on specific software packages, the general tools course adjusts with units on computer ethics, business and societal uses of computers, and previews of new technologies and applications. The next generation of desktop software will incorporate XLM, and HTML documents will become the cross-platform office standard. In the meantime, the topic of conversion to HTML format will need to be addressed in the tools course.
(2) Topics and exercises
The Internet course focuses on accessing material on servers (Internet and intranet), and it must deal with a different collection of technology and concepts from the desktop (bandwidth, routing, DNS, WANs, ISPs, etc.). We have several years before the desktop and the net are merged. The Internet course must deal with browsers, addressing, E-mail, ftp, searching, societal issues, and web page technology. Building and publishing a web page is a standard exercise, so HTML, Javascript, and even Java are introduced. Finding information on the web is a critical emphasis which involves exploring search engines, listservs, and newsgroups. Transmission of information across the net motivates consideration of censorship, privacy, security, E-commerce, and societal issues. There is too much material here with too little overlap with the tools course to do an effective job in a single course. The hope that pre-college exposure to computing will obviate the need for college-level literacy offerings persists, but so far students come with uneven exposure and skills and usually with mechanical rather than comprehensive understanding of the technical and application issues. Therefore a leveling course continues to be in demand.
B. Facilities for offering Internet 101
(1) Access from lab and home
Internet usage assumes convenient access like the telephone. The Internet provides information, communication, commercial services, and entertainment. It is difficult to ration and it may be addictive. Campuses must provide lab and library access and will find that their high-speed access encourages non-academic usage (even non-student users). Unlike the utilitarian desktop, the Internet promotes a culture which transcends its utility and must be addressed in the Internet course (netiquette). Students without convenient (24x7) access to the Internet will not prosper in the Internet course.
(2) Hardware and software compatibility
The Internet is multi-platform and multi-browser, and the big three browsers, Netscape, Iexplorer, and AOL are multi-platform. The similarities in browser interfaces are greater than the similarities in spreadsheets. While it may seem important to have everyone in the class use the same browser, I alternate browsers in class and encourage students to use whatever software suits them. Details of browser customization are not part of the course, but awareness of HTML display differences is.
2. Building web pages for instruction
A. Publishing course materials on the web
(1) Minimal knowledge for building a course web page
Course page templates are becoming popular at different institutions, but downloading and modifying any colleague=s page is easy. Course pages are mostly text, so only simple formatting is needed. Course pages are also non-interactive and static (they do not have to be maintained--I prefer to duplicate and modify last semester=s offering in a new directory for the next semester). HTML tools built into the latest browsers and word processors are adequate for constructing course pages, and knowledge of at most a dozen HTML tags is sufficient, <table> being the most complicated.
(2) Publishing tools and conversion of text materials
More sophisticated web page editing tools are readily available but the transition from overhead transparencies and word processed handouts to HTML is relatively painless providing that you do not care that the web document is not identically formatted. Cleanup can be done in a word processor or an editor, but faculty have to adjust to the reality that web documents will not appear identically formatted in all browsers or even in all windows. Developing a feel for the effective use of hypertext must also be factored into the transition from paper documents.
(3) Maintaining a website
Although website software is available it is focused on managing changes and, for course pages, the changes are very predictable. Design a course page in a directory and make liberal use of sub-directories for different categories of materials. Maintain a copy of the website on your desktop and ftp that copy (or one of its subdirectories) to the publication site (any continuously Internet-connected computer). If you want to run your own website from a department server or you own desktop, a variety of free software is available (Netscape=s FastTrack server software for one).
B. Utilizing existing web resources
(1) Lecturing from the web page
Transparencies or Powerpoint slides can be viewed from the web. Once published, the slides can be reviewed by students. Whiteboard capture allows publication of the handwritten work done in class. Even extemporaneous surfing can be retraced by simply placing the history file on the web page after each class. For those without wired classrooms, prepared HTML presentations can be published before or after the lecture is done off-line. If more of what transpires in class is documented by faculty on the web, students can devote more attention to what transpires in class instead of to documentation.
(2) Appropriating web pages and links
Lecturing from the web can be sabotaged by network congestion or failure. Developing a local copy of the lecture materials, including downloading all referenced pages from external servers is time-consuming because frames and graphic references do not get saved with pages and relative addressing is common. A coping strategy is to annotate fully all external links so that if the link is not readily available it is summarized and the flow of the presentation is not lost. There is a steadily growing amount of material on any subject you choose, but especially on the topics of the Internet 101 course. Tutorials, dictionaries, textbook publishers, and trail-blazing instructors have posted explanations, examples, and exercises which may be freely incorporated into lectures or assignments. The instructor will have better control over the course content and class questions if she surfs ahead of time and builds a list of sites that students should visit rather than assign students to study whatever they happen to come across.
(3) Multimedia presentations
The incorporation of sound and video in presentations (guest speakers) is possible with at least a campus T1 connection to the Internet. I have played press conferences and computer chronicle streaming video segments to classes using an LCD projector. Editing tools are available for capturing and modifying video files archived on external servers but I simply muted the segments I didn=t want to view and did something else with the class until a desired portion streamed in.
(4) Publishing student work
Students should be encouraged to publish web pages, and there are several sites which will provide space free if circumstances are not conducive to hosting the pages on campus computers (the same is true of E-mail). I require students to review each other=s efforts and thereby encourage dissemination of good ideas and the sharing of expertise. I also require students to submit assignment via E-mail and I edit and post the work. Many times the assignment is to find URLs and the compiled result is a valuable (though transitory) resource.
C. Interactive web instruction
(1) Discussion forums
Both listserv and chat room formats can be set up with threaded, moderated discussion software in between. Used for increasing student interaction and for communicating efficiently the answers provoked by individual students. Forums can substitute for personally monitoring the lab when students are involved in assignments. A class E-mail account can be used to more clumsily accomplish the same purpose. I post student questions and my answers to the course web page.
(2) Testing
Java and CGI programs make testing over the Internet feasible. Automated grading and reporting is being done.
(3) Homework submission
Students can E-mail or publish homework assignments on their web pages or in their directories in a folder known to the instructor. Work could also be delivered to a ftp server (write but not read student access).
D. Distance Learning!!?
3. Non-major web-centered curriculum: training web masters.
A. The "narrow tech" approach and certifications
The Internet 101 course opens the door to a new kind of computer concentration that addresses those who are inspired by the creative potential of the Internet medium. There is a large body of concepts and practical knowledge which must be learned by the proficient webmaster. Although there are many ways in which web specialists mature, consider a very technical orientation which moves toward network engineering and ends up managing a corporate intranet and extranet:
(1) web writing knowledge base includes
Languages: HTML, CGI, Javascript, Java, Active X, Visual Basic
Software Packages: FrontPage, PageMaker, Paintshop, etc.
Page layout (document object model), Graphics Design, Navigation principles
(2) site building knowledge base includes
Languages: Perl, SSI, servelettes, CGI, ODBC(SQL)
Software Packages: Pagemill, Website
DCOM, Page Security, link management, configuration control
(3) server administration knowledge base includes
IIS, Exchange, RAS, (or comparable packages)
User administration, rights, proxy servers, LAN essentials
B. Skill sets, tools, and career prospects for the web master
(1) Human/computer Interface technologies
Training in GUI design, use of component libraries, management of tasks and users.
(2) Characteristics of the tools
Object paradigm, linkage and property editing, parameter controlled. Applications knitted into environments which are layered on computer systems. Focus on a few of the layers, and depend on technical assistance to cope with other layers. Trouble-shoot anomalous behavior between components and layers. Some scripting but little programming (low-level algorithm analysis, design and implementation) required.
(3) Employment prospects of toolsmiths
Pick any major package: NT, Novell, Unix, IIS, Oracle, etc., and there is a demand for a specialist in that package. Prospect for experts in the construction and administration of websites (webmasters) is excellent both from the point of view of growth in E-commerce and in intranets.
4. Web technology and Computer Science
A. The perspectives of Scientists, Engineers, and Technologists
Our goals for a well educated computer professional certainly encompass training in the acquisition and evaluation of new knowledge, skill in problem solving and analysis, and experience with relevant and representative contexts for computer applications. The emphasis or weight placed on these various attributes and the breadth of techniques which are presented tends to distinguish where we fall on the continuum from scientist to technologist. Faculty and programs make choices concerning theory and application, the immediate (today=s details) and the foundational (principles), and the big picture versus practical skill (characterize operating systems or master a job control language). Rigorous computing programs can be designed with differing stress on the areas of:
(1) Undergraduate research (discovery and exploration of fundamental problems in the discipline--training in analysis and synthesis)
(2) Undergraduate project exposure (experience putting principles into practice--training in the process of computing applications)
(3) Initial job preparation (practical skill--acquiring the specific knowledge and skills relevant to current problems and today=s technology)
B. Skill sets, tools, and career prospects for computer science graduates.
(1) Fundamental basis of technologies
Computer Science is straining to maintain a perspective which incorporates the hardware, the software, and the application. More and more the hardware is being relegated to black box status, and a choice is being made as to whether the discipline trains tool builders or application builders. In truth, the choice is between becoming systems integrators, building limited context applications from available components or becoming component builders, which are simply systems integrators at a different level. Changes in device technology spurs the invention of new algorithms which will control the new devices and the evolution of new applications which can use the devices in ways that revolutionize previous computational strategies (such as the transition from sequential to random access).
(2) Breadth of environments (embedded, distributed, computational, application-specific, etc.)
The tools and character of the exercises in each of the above categories of computation are quite distinct. In order to do justice to the increasing number of tools and concepts within the specialization areas, less time can be apportioned to common, unifying or transcending concepts (common tools are rapidly diminishing).
(3) Change of scale
The web focuses on at least two major branches of computing: telecommunications and graphics. It touches several other areas tangentially: database, OS, Theory (graphs), etc. Undergraduate majors in telecommunications already exist.
C. Separating and overlapping the tracks
(1) Algorithms vs. outcomes
A
Is it more fun making them or eating them?@--tortilla company slogan. Some students obtain more satisfaction from the end result than they do from generating the solution. They adopt tools readily, have little curiosity as to why the tool works the way it does, and focus on quickly implementing a solution. Conventional wisdom has said that professionals should know the merits and limitations of their tools and should be expert both in selecting and applying tools. Computer Science has held that professionals should understand the mechanical (algorithmic) details of a solution else the merits or limitations of the solution will be learned only with experience. The complexity of today=s computer applications and environments, layers of software built on layers of hardware and firmware makes this ideal unattainable. It now becomes necessary to consider whether there is only one effective path to comprehending computer applications (via programming in the small).(2) General-to-specific vs. specific-to-general
To learn about computing and using computing environments today one starts in the middle and moves up or down depending upon the interest in the topic being considered. Students can learn about browsers, the Java Virtual Machine, or even Active X components without mastering the internals of Windows. On the other hand, you cannot design websites without a detailed understanding of the operation of TCP/IP at the level of domain addressing and bandwidth. The Abreadth first@ introduction to computing responded to the perception that starting with programming, while it might select those with the algorithmic and clerical sensibilities to prosper in the computing field, did little to motivate students as to what computer science was (and no one liked to give the impression that computer science == programming). Can students be motivated to study computing by learning successively more sophisticated or arcane tools in an effort to produce increasingly more sophisticated applications? Can they be coaxed from a focus on ends to an interest in means? Why not?
(3) Web programming and software engineering
There are many similarities between the webmaster and the software engineer because both are involved in computer applications which affect many people and therefore must accommodate many needs. Both are responsible for a practical product which will enjoy a life-cycle. Both must build their applications using current technology but with the sure knowledge that the technology will improve during the life of the product. Both may build network applications. However, the webmaster=s application domain is much more specified, his choice of tools is much more limited and the tools themselves are less powerful, and most of his knowledge will not transfer to new domains. The webmaster may well grow within his domain and adjust to new technology, but he has not been forced to make the abstractions that occur in a software engineering education, and may not easily distinguish detail from principle. However, in view of the fact that the domain of the webmaster encompasses significant computer science and electrical engineering theory and practice, the reason for the webmaster=s technology perspective may simply be that the industry and academia are satisfied with this perspective and ask no more.
The traditional CS curriculum begins bottom-up with what makes software applications tick. The web curriculum begins top down with how to accomplish things on the web, and moves to how to do them better. CS deals with low-level tools and simple abstract exercises which intend to teach the tool (language and programming environment) and suggest how much more wonderful things could be accomplished. The web curriculum begins with sophisticated tools (the Internet and a browser) and easily and simply performs a large variety of wonderful things (right-mouse-click and appropriate whatever you like). As CS majors rise through the background details they are introduced to the theory of various application areas, a theories which they can readily understand how to apply (graphics primitives, two-stage commit, normalization, forward chaining, semaphore, etc.). The web curriculum quickly exposes the limitation of the stock tools and has to peel back a layer and tweak the underlying languages before original ideas can be consummated. In the sophomore-junior courses the web curriculum turns to Java and Visual Basic to gain more control than scripting. Traditional networking concepts must be introduced, leading in the junior year to courses in Unix and NT which will supply the knowledge to manage server functions. In the senior year the specific to general transition can occur and standard OS, database, AI, etc. courses can be shared with CS majors. Since CS majors want to learn the web themselves, the Java and Visual Basic courses, and well as the Unix and NT certification courses will be popular electives.
Dr. Mitchell has extensive experience teaching software engineering, programming, and computer literacy (with publications in each area). Recently he has focused on networking, server administration, and use of the world wide web. He is presently funded by NSF to explore instructional applications of video conferencing (http://www.nsf.gov/cgi-bin/showaward?award = 9851282), and he is a partner in a company specializing in the delivery of virtual expertise via video conferencing. This tutorial is based on the specific experiences of teaching introductory Java, Internet 101, and Web Programming, a non-major introduction to the programming languages of the Web.