PROFESSIONALIZING COMPUTER SCIENCE

Dr. William Mitchell

LSU-Shreveport

Shreveport, LA 71115

wmitchel@pilot.lsus.edu

 

ABSTRACT

The various disciplines which have grown up around the digital computer have been challenged to seek a professional world-view which focuses on solving client problems rather than classifying client populations. The challenge is serious because a pragmatic society will not be satisfied with piecemeal solutions rendered by badly coordinated "experts." This paper rehearses the merits of the challenge and presents an outline of a second computing degree which has been planned by a department already offering an accredited computer science program. The novel approach to computer education incorporated in the new degree illustrates the kind of creativity which the challenge to professionalize requires.

 

INTRODUCTION

Computing disciplines have proliferated and threaten to tear computer science into many discrete disciplines, each with its own application focus. Older sciences have survived the separation of theory from practice in great measure because applications grew slowly. The theoretical discipline was firmly established when daughter disciplines developed a following. It was thus easy to identify the relationship of the daughter to the parent, and to understand what subset of theory was being exploited. Today the sub-disciplines spring up so rapidly that they devise their own guiding principles and seem to owe no debt to computer science. As a consequence, individualized vocabulary and notations develop that obscure the connections to computer science theory and re-invention abounds. It is clearly in society's interest to have the computing disciplines organized with root and branches logically defined. However, economics drives the development of specialized applications--the meeting of human needs with technological innovations--and there is no reward for backfilling concepts and approaches so as to connect innovations to the coherent whole. The dearth of computing scholars and the reliance on bachelor-level practitioners for innovation impedes the attainment of a broad view of computing.

While we must suffer through this chaotic time, we can be contributing to the eventual solution. Computer Science cannot ignore the demand for applications expertise--for to do so is to abdicate the development of applications expertise to other communities that will accomplish the task by trial and error. Computer Science can continue to attract students to study fundamental principles and techniques of computing machines, but if this is all that its students learn then they will find themselves far from the applications action when they graduate. Computer Science could join Economics as a graduate discipline which OUGHT to matter, but which is so removed from practical activities that most business people survive with only a general introduction.

In his recent call for a computing profession [1], Peter Denning claims that computer science's focus on the phenomena surrounding computation and computing machines is too narrow. He points to the pragmatism of our society that calls for seamless solutions and cares not for the disciplinary boundaries that academics use to create departments. Indeed, Denning argues for creating Colleges of Computing or Schools of Information Technology. "This organizational unit would accommodate a significant subset and range of the specialties making up the profession--which include traditional computer science, information systems, library science, information science, software engineering, computer engineering, database engineering, network engineering, systems engineering, software architecture, human-computer interface design, computational science, computational statistics, and numerical modeling. It would offer a common intellectual core and training in the practices of each specialty. It would offer certifications at several levels of professional competence in each specialty and would be dedicated to the ongoing support of the education needs of professionals.."[2]

In today's universities this goal is thwarted by entrenched cultures that view themselves as serving specific user communities. Software engineers within Colleges of Engineering and Information Systems experts within Colleges of business make clear distinctions between themselves and Computer Science. For example, the curriculum document IS'97 notes [3]: " There is a close relationship between Information Systems and Computer Science. In some schools, students in both areas may take common courses. However, Information Systems is unique in that its context is an organization and its information systems. This leads to important differences with Computer Science in the context of the work to be performed, the types of problems to be solved, the types of systems to be designed and managed, and the way the technology is employed. Information Systems concentrates on the organizational mission and objectives and the application of information technology to further these goals. Information Systems and Computer Science are distinct areas of study, but they both require a common subset of technical knowledge." [I can only speculate if Denning's solution for administratively unifying these cultures will be achieved in very many universities in the near future, but I note that Metropolitan State College of Denver has recently moved the CS program from Mathematics to the College of Business where it will co-exist with the Information Systems Department (and can begin serious work on the common core). ]

In smaller institutions, however, all the specialties of computing are supported, to the extent possible, by a single department. That has tended small colleges and non-research universities to offer an amalgam of tracks within the computing major (including independent studies and individualized majors). However, the professionalizing of computing requires that the faculty in these institutions also re-examine their admitted applications-orientation to understand the new motivation which Denning has identified. A generic computing program developed because there were neither the students nor the resources to make the program more specialized is not therefore a professional program. Denning is arguing that a profession is larger than a discipline, and that the artificial distinctions made to justify the discipline (such as quoted above) are of interest only to disciplinarians, not to the pragmatic society they serve. To attain a professional orientation, disciplinarians, including computer scientists, must become reconciled with six basic truths and begin acting on them [4]:

Like every other profession, IT is based on a set of durable human concerns for taking care of others, for seizing opportunities, and for removing blockages to progress; the need for a profession will not soon disappear.

Practices are as important a part of knowledge as discourses, mental models, conceptual frameworks, processes, and rules.

Concerns and practices first show up when technology is applied in real circumstances: applications domains are the front lines of the profession.

Innovation is the ultimate reward of research; R&D portfolios must expand to include innovations in ideas, in teaching practices, in products, and even in business designs.

Much innovation occurs at the boundaries between fields; the practices of one appear at the margins of the other, moving eventually to the center.

In addition to the traditional formal degrees, the system of higher education must accommodate professional practice, continuing professional education, certification where appropriate, the full spectrum of professional specialties and involvement with customers.

It is perhaps easier for computing faculty in small colleges to say that our goals for a well educated computer professional 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 explore applications of a job control language). Rigorous computing programs can be designed with differing stress on the areas of:

Undergraduate research (discovery and exploration of fundamental problems in the discipline--training in analysis and synthesis).

Undergraduate project exposure (experience putting principles into practice--training in the process of computing applications).

Initial job preparation (practical skill--acquiring the specific knowledge and skills relevant to current problems and today's technology).

Each of these programs can be classed professional if they keep a focus on addressing human concerns and on inculcating appropriate practices (eschewing the false distinction between education and training).

OBSERVATIONS ON THE CURRENT STATE OF COMPUTER EDUCATION

With the proliferation and diversification of computing and the renewed interest of students in computing majors, we are seeing a greater variety of students having widely differing expectations of computing study. Many students obtain more satisfaction from the end result than they do from generating the solution. They adopt tools readily and have little curiosity as to why the tool works the way it does. They focus on quickly implementing a solution and display a lack of patience for extended tasks. 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 (that begins with programming in the small).

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 web sites without a detailed understanding of the operation of TCP/IP at the level of domain addressing and bandwidth. A "breadth 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 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?

There are many similarities between the webmaster and the software engineer because both are involved in computer applications that affect many people and therefore must accommodate many needs. Both are responsible for a practical product that 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, her choice of tools is much more limited and the tools themselves are less powerful, and most of her knowledge will not transfer to new domains. The webmaster may well grow within her domain and adjust to new technology, but she 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 computer engineering theory and practice, the reason for the webmaster's limited technology perspective may simply be that the industry and academia are satisfied with this perspective and ask no more.

 

THE TOP-DOWN CURRICULUM

The traditional CS curriculum begins bottom-up with what makes software applications tick. The breadth-first introduction is inserted merely to motivate and sustain the subsequent bottom-up development of foundational ideas and techniques. It is easy to design a web curriculum that actually proceeds top down, first accomplishing things on the web, and then moving 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. A web curriculum could begin with sophisticated tools (the Internet and a browser) that easily and simply perform 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, theories that they can readily understand how to apply (graphics primitives, two-stage commit, normalization, forward chaining, semaphore, etc.). A 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, as well as the Unix and NT certification courses will be popular electives.

The top-down curriculum addresses the interests and motivations of a different class of students. It satisfies the need for an immediate sense of accomplishment by using powerful tools first. It offers a stronger motivation for continued study than a mere breadth-first introduction because the student is immediately empowered but can be challenged to gain greater control and refinement. Moreover, the skills that are developed by the study of Internet tools are in great demand and are largely absent from the current Computer Science degree. Because academia chooses to focus its students on more foundational issues, industries with Internet applications that must be implemented look elsewhere for expertise. "Why aren't computer science majors graduating with database or Web expertise? Educational institutions simply aren't equipped to met the technological needs of today's businessesY.To begin to address the needs of the corporation, FedEx convened a task force called the Internet Curriculum Consortium, which includes representatives from Hewlett-Packard, Informix, Netscape, Sun Microsystems, Sybase, and the University of Memphis" (from a November 1997 Datamation article entitled "The 21st Century Work Force [6]. The FedEx white paper on the Internet Curriculum is on their web site [7] ).

The feasibility arguments presented above clarify the focus of an outside-in computing program that resonates with the need to connect with societal problems. They have convinced our computer science department to propose a second degree. The two degrees will intersect, but will not appeal to the same pool of students up front. Together the two degrees will begin to give structure and visibility to how to educate for the computer profession.

 

A NEW DEGREE OPTION INSIDE A COMPUTER SCIENCE DEPARTMENT

The Bachelor of Science in Applied Computer Science will offer local students preparation for an alternative career path which is also greatly in demand by local industry, but for which no higher education programs exist. This program will not have at its core the training of programmers. Instead, this program will prepare workers who will be focused on critical commercial software packages and their applications. Such a program will be attractive to a significant pool of students for whom the internals of computer hardware and software offer little interest, who do not have the constitution to devise, code, and debug thousands of lines of custom software, but who are interested in making things happen with computers. Employers want networks installed or upgraded, they want web sites created and maintained, they want employees who can interact with commercial database packages and enterprise software systems which come already constructed but in need of configuration. At the present time the employer has no choice but to utilize his software engineers as software technicians, a task for which the engineers are not prepared and frequently an assignment that they are not enthused about.

The Bachelor of Science in Applied Computer Science needs to be a new degree because its requirements will differ substantially from those of the accredited Computer Science degree. The accreditation requirements permit clearly distinguished alternative degrees to be offered alongside accredited programs, but they do not allow the accredited degree to be re-focused. The computer technologies emphasis is relatively new to higher education, being born out of the sudden and astonishing growth of the Internet and the commercial opportunities which it presents. In a decade there may well be a new set of accreditation standards available to measure this newly evolved computing area, but today we must follow our own instincts in developing and promoting the kind of educational opportunities that will support the economic growth of our region and our state.

The proposed new major will consist of 37 hours of computing course work but will make use of many courses that have been offered by the department to give "non-majors" education in computing. These courses are used in part to decrease the number of new courses which must be developed and in part because the "new majors" that we want to attract are not interested in "programming," but are interested in the topics that we developed for our service audience who had interest in doing things with computers. Our goal is to entice the practical student to become a power user and then to transition to what is under the hood. We are also interested in incorporating as much of the content pertinent to industry-sponsored certifications as we can. The major has a six course core (course titles underlined) and two initial tracks (six courses must be elected from the track offerings): webmaster and network specialist.

CSC101 Introduction to the Internet, 3 credits. Introduction to the fundamentals of the Internet as well as a survey of data communications. Student will learn to use the Internet for research and communication, including publishing materials on the World Wide Web.

CSC111 Introduction to Computing, 3 credits. A survey of computing terminology and a variety of computing applications. Hands on activities using an integrated software package for word processing, spreadsheets and database management. Focus on the structure and operation of the desktop computer.

CSC 205 Introduction to Computer-based Multimedia, 3 credits. Introduction to the fundamentals of computer-based multimedia technologies and to the use of authoring applications and the tools for creating and manipulating multimedia content. One application area covered will be the creation of sophisticated Web pages. (prerequisite CSC 101)

CSC242, L Computer Architecture and Organization, 4 credits. The organization, functions, and structuring of the major components of computer systems, introduction to the mechanics of information transfer and fundamentals of logic design. (prerequisite Math 201 [discrete mathematics] and either CSC 111 or CSC 112 [CS 1])

CSC270 Web Programming, 3 credits. A survey of the various languages for the web: HTTP, DHTTP, CGI, Java, and Java Script, Visual Basic, Active X, and ISAPI. Attention will be paid to client-server interaction mechanics, the document object model, the Java virtual machine, and the browser engine's multimedia capabilities. (prerequisite CSC 101)

CSC276 Java Programming, 3 credits. An introduction to the Java programming language with particular emphasis on the use of the language in applets and on its database interface. (prerequisite CSC 242 and either CSC 212 or CSC 270)

CSC 305 GUI Applications , 3 credits. An explorations of various windows applications focusing on the characteristics of the user interface. The role of controls, property sheets and the mechanics of how applications interact and exchange data will be highlighted and advanced features of MS Office such as macros will be developed. (prerequisite CSC 111)

CSC 330 Computer Networks, 3 credits. The fundamentals of data communications and computer networking. Topics include data encoding and transmission methods, as well as network architecture and protocol. The OSI reference model will be used as the basis of study. (prerequisite CSC 242,L)

CSC 335 Intranet Design and Administration, 3 credits. A survey of the server software which provides web, mail, directory, DNS, FTP, RAS, ODBC and other similar services delivered via intranet. Installation, configuration, and user management of these services. (prerequisite CSC 270, CSC 330, and CSC 305)

CSC 382 Systems Programming II, 3 credits. The study of the structure and organization of a multitasking operating system. An in-depth investigation of the policies and mechanisms used to implement its management of system resources. An introduction to multiprocessor and distributed systems. (prerequisite CSC 282 and CSC 345 [data structures], or CSC 276 and CSC 305)

CSC 415 Introduction to Database Management, 3 credits. The study of data base systems including construction and maintenance of file structures for storage allocation and collection. (prerequisite CSC 345 or CSC 305)

CSC 431 Advanced Multimedia Applications, 3 credits. (prerequisite CSC 205 and CSC270)

CSC 433 Practical Network Operating Systems, 3 credits. Focus is on Windows NT Server and Workstation as used in a (mostly) LAN environment. Planning, administration, maintenance and troubleshooting. (prerequisite CSC 330)

CSC 434 Client/Server Computing in the Enterprise, 3 credits. Focus on MS Back office products and how they work under Win NT Server. Details of very specific client-server computing . (prerequisite CSC 430)

CSC 437 Internet Architecture, 3 credits. Study of TCP\IP and related protocols, including UDP, ARP, RARP, DNS, RIP, BOOTP, UDP, SNMP, SMTP, FTP, TELNET, HTTP. Also, PPP and PPTP. Routing protocols and routers. Role of WANS and MAN backbones. Mbone. (prerequisite CSC 330)

CSC 460 Rapid Applications Development, 3 credits. A study of tools and techniques used in the rapid development of applications that run in current operating system environments. The object-oriented and visual programming paradigms will be emphasized. (prerequisite CSC345 or CSC 276 and CSC 305)

CSC 490 Selected Topics, 3 credits. Topics to be announced by the department for students of advanced standing. May be repeated for credit for a maximum of six semester hours. (prerequisite consent of the department.)

 

 

Prerequisite Tree (core courses in bold)

101

 

 

111

 

Math 201

  /

 \

                 /

         \

    /

 

205

270

305

 

242, L

 

|

  /   |   \

        /   |   \  \

 

  |

 

|       /

|       \

   /       |     \    \

 

330

 

|     /

      |

\  /        |       \

415

/  |       \

 

431

276

/    \       |        |

/

433

437

 

      |      \

/       \    |       |

/

 |

 

 

    \    /

\           |   \    |

/

434

 

 

382

    \       |     335

 

 

 

 

 

460

 

 

490

CONCLUSION

The profession of computing concerns the role and effect that computation and computational devices (including those used in communication systems) play in society. As such, the profession encompasses the devices, their design and control, the systems in which they participate, and the process by which these systems are created and maintained. The profession is concerned with the limits of computation, the efficiency of various computational devices, and the development of theories that explain the characteristics of computation. The profession is also concerned with the interaction of human beings with computational systems and with the innovative use of automata. Given this broad charter, educational institutions must organize the appropriate knowledge and develop effective programs for educating computing professionals. These professionals must be well trained in their specialties and oriented to the responsibilities of their role in society. At present the academic community is highly Balkanized in its approach and trapped in disciplinary world-views that pretend that the solving of the real problems which seldom fit entirely within one province is somebody else's job.

Denning [5] asserts that academe must respond to the following propositions:

Most of those who use computers and communications do so through hardware, software and networks whose inner workings are mysteries to them.

People in business and their clients, people at home, people in science and technology, and people depending on large software systems have concerns about the design and operation of reliable hardware, software and network systems to help them do their work.

These people seek professional help in taking care of their concerns. They expect computing professionals to be responsive, competent, ethical and able to anticipate future breakdowns.

The Profession of Computing is coming into existence to provide that help.

The education of computing professionals must account for practices as well as descriptive knowledge. It must include training as well as general education. It may not reside in any single university department, being distributed among computer science, software engineering, computational science, computer engineering and related departments such as astronomy, physics, chemistry, biology, management science, linguistics or psychology--each of which contributes important specialties to the profession.

Individual computing professionals should embrace boundaries between their specialties and others in the profession. As a whole, the computing profession must embrace its boundaries with other fields to assure a constant stream of life-giving innovations.

The transition to a professional point of view will occur in small steps, but the current growth of the computing industry provides a lot of opportunity for computing departments to broaden their purview. The Computer Science Department at LSU-Shreveport has accepted the challenge posed by differently motivated students and demands for new skills and has devised a second degree program which gives a "non-programming" option to students while still focusing on hardware and software. The structure of the new degree anticipates other non-programming tracks which could in the future provide graduates in computer-based manufacturing or e-commerce.

 

 

References

1. Denning, Peter J., Keynote Address to the Thirtieth SIGCSE Technical Symposium on Computer Science Education, March 25, 1999, New Orleans.

2. Denning, Peter J., "Computing the Profession," Educom Review (33, 6), November/December 1998, p. 26-30,46-59.

3. Appendix II, IS'97 Model Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems , AITP, 1997.

4. Denning, Peter J., "Computing the Profession," SIGCSE Bulletin (31,1), March 1999, p. 2.

5. Op. Cit. Educom Review

6. www.datamation.com/PlugIn/issues/1997/November/11over.html

7. www.fedex.com/us/careers/whitepaper.html

8. Mitchell, William, "It's the Web, Stupid" [abstract of Tutorial Presentation], Journal of Computing in Small Colleges Vol 14, n.1, (November 1998) pp. 34-42.