languages (HTML, XML), a scripting language
(e.g., Javascript, ECMAScript), one or two server
programming languages (e.g., Perl, Java, JSP, C#),
and a database manipulation language (SQL).
Students were also required to learn to configure and
control operating system and server components
(e.g., Linux, Apache, Tomcat, ASP/.Net). Mastery
of all of these is an unreasonable objective but some
practical level of understanding of each is necessary
for completing a Web development project.
Many of the authors reported difficulty in
keeping the course current with respect to the
development tools. Given that the course touches on
a Web client, client scripting language, operating
system, Web server, server programming language,
and database, there are at least six software products
to keep up with. This course is typically taught once
per year, which is the same approximate frequency
for major upgrades to all six products, and so the
instructor must complete a significant research and
revision project every time the course is taught. If
additional tools and languages beyond a core set are
taught the problem becomes more severe. The
problem can be addressed in part by simplifying the
set of topics. For example, Tomcat can serve as both
a Web server and servlet container; the languages
taught can be reduced to Javascript, Java or Perl, and
SQL.
Several authors reported having a problem with
the diversity of student backgrounds with respect to
programming experience and knowledge of Web
technologies. For example, a course might include
lower level students who have completed only
introductory programming courses as well as
experienced upper level students and possibly part-
time students with professional experience.
Teaching HTML, for example, is at the same time
necessary for the lower level students and boring for
the others. One solution is to provide tutorials and/or
labs covering introductory material and require
inexperienced students to learn them independently.
This seems to work well for topics such as HTML or
basic Linux commands, which are not very complex
and not totally foreign. Another practical solution is
to group students into teams such that experience is
complementary and allow students to get help from
team-mates as needed.
Management of the laboratory development
environment took an excessive amount of time for
some instructors, as much as 50 hours for one
instance of the course. This problem is likely
attributable to immaturity of the software
components being used and inexperience with using
the software to support this course. As the software
improves and experience is gained maintenance
should be less of a burden.
Most of the authors reported being unable to find
a suitable textbook for the course. The available
books failed to provide adequate and complete
coverage of the course material individually. In
some cases, more than one book was assigned. This
may be a reflection of the fact that this course is
implemented in very different ways by different
instructors, making it difficult for authors to produce
a generally useful text. It is also likely that textbook
production has required some time to catch up with
curriculum development, and that there are now
more good textbook candidates available than when
these papers were written. For example
Programming the World Wide Web (Sebesta 2005)
and Java Web Development Illuminated (Qian,
Allen, Gan and Brown 2007) are relatively new
books targeting this topic.
4 MODEL CURRICULUM
The primary impetus for increased interest in
teaching Web-based development has been the
continuing growth in economic and social
significance of the Web. The Web has become a
significant medium in commerce, communication,
education, etc., and has spawned entirely new
business and information sharing models, such as
Google and Wikipedia.
This growth has been reflected in Computing
Curriculum 2001, which is a widely accepted
standard model for computer science education that
was developed jointly by the IEEE Computer
Society and ACM. The CC2001 report recognizes
the significance of Web-based systems to the
computing curriculum in Chapter 3, “Changes in the
Computer Science Discipline”.
Today, networking and the web have become the
underpinning for much of our economy. They
have become critical foundations of computer
science, and it is impossible to imagine that
undergraduate programs would not devote
significantly more time to this topic.
Fifteen hours of the CC2001 core curriculum are
related to Net-Centric Computing, including three
hours focused directly on Web-based systems (NC4.
The web as an example of client-server computing).
Web-based systems also appear as an elective topic
within the Net-Centric Computing group (NC5.
Building web applications). In the five years since
TRENDS IN TEACHING WEB-BASED DEVELOPMENT - A Survey of Pedagogy in Web Development Courses
363