The Iliad and the WHILE Loop:
Computer Literacy in a Liberal Arts Program

David Arnow
Department of Computer and Information Science
Brooklyn College City University of New York
Brooklyn, New York 11210
e-mail: arnow@sci.brooklyn.cuny.edu
Abstract. A required computer literacy course whose design and implementation were greatly influenced by that of required courses in classics and other liberal arts is described. The course is an instance of the new trend of principles-based courses, but does not take the survey approach. Topics are chosen selectively on the basis of importance to the field, usefulness in demystifying the computer itself, and their ability to be compatible with a hands-on, exercise-oriented pedagogy. Topics include sentential logic, digital circuit design, information representation, a Pascal subset, program hierarchies and software engineering principles. The course has been successfully run in over 30 sections with over 1000 students.

Publication Information: This Brooklyn College Technical Report was presented at the SIGCSE Technical Symposium during ACM Week 1991 and appeared in the conference proceedings for that symposium: The Iliad and the while loop. Proceedings of the 22nd SIGCSE Technical Symposium, San Antonio, Texas. (March, 1991).

Introduction

For the past three years Brooklyn College has been steadily expanding an experimental computer literacy program which takes its inspiration from required courses in classics, history, music, political science and other liberal arts courses. The experimental program is an attempt to find an appropriate design for a required and historically problematic freshman computer and math literacy course in Brooklyn College's nationally recognized Core Curriculum, a set of general education courses required of all students at the college [2]. The program currently involves seven sections of roughly 35 freshmen and sophomores studying topics in propositional logic, circuit design, programming and software engineering principles. The focus of this paper is on the computer science part of the course.

The key problem in this effort was to identify the goals, in terms of skills, content and sensibility, that such a course could reasonably have, given a number of constraints. One constraint was that all non-science students were required to take the course. As a consequence there would inevitably be students who are reluctant or poorly prepared or both. Another consequence was that because the course is required of all students, it must be worthwhile for all students. Another constraint was that the course had to be common for all students. Hence there could be no tailoring of the course for particular majors. A third constraint was that the course was to be a semester-long course without extra laboratory credit. Fourth, since students were required to complete the course in their first two years of college study, the course had to be accessible to and palatable to freshmen. Finally, in addition to the above college-imposed constraints, the designers of the program wanted the course to attract students, particulary women and minority students, to the fields of mathematics and computer science.

The Brooklyn College Context. The Brooklyn College students are an ethnically heterogeneous group of working-class students. Many students are immigrants or members of minority groups. Many enter college with significant skills deficits in mathematics, reading and writing and are required to take remedial courses. For a large number of students English is not their native tongue.

The course in question is offered by the Math and Computer Science departments. The latter, even with the nation-wide drop in computer science majors is still understaffed with respect to its undergraduate and graduate programs. Although the original mandate for the Brooklyn College Core Curriculum demanded that only full-time faculty from an appropriate department teach the course, fiscal and personnel realities force the department to staff the course with adjunct instructors, graduate students and faculty from other departments as well.

The Core Approach


A significant aid to the development of the pilot program was the example of other Core courses, particularly those in classics, social science and history. These courses successfully introduced freshmen with analogous deficits (difficulty in reading demanding text, weak writing skills, general knowledge deficits, etc.) to Plato, the Iliad, Weber, Marx, Locke and other classic writers. This success itself was important because it demonstrated that advanced material can be made accessible to beginning Brooklyn College students. In addition, the details of the designs of those courses taught a number of important lessons that were critical in developing the pilot. First, it is essential to have material that is new to the student and relatively advanced- material that is not a repetition at a slightly higher level of high school work. Second, good material is its own reward- if the material is fundamentally profound then it can be taught to and appreciated by students. Third, selectivity is extremely important. Attempts at broad coverage will end in failure; success comes not from "reaching for the stars" but from "reaching for a star". For example, in the classics course, students do not read all of the Iliad - but they do read several chapters and go through a careful line-by-line exegesis.

The most important effect that the Brooklyn College Core approach had was that it forced a reconsideration of the idea of computer literacy.

Rethinking "Literacy"


The term "literacy" has come to have many different meanings when qualified with words like "computer". What I mean by (and what I believe everyone else means by) "X literacy" is whatever I want those who are outside the field of "X" to know about the subject. As a result, the definition of particular technical literacies is determined by social values.

As a starting point, I pose the question, "do we want our students to be trained as consumers or producers?" This can be extended to one's vision for America- are we to be a nation of consumers and service-oriented workers where the fastest growing segment of the workforce flip hamburgers and where technology is imported or do we want to continue our role in world-wide technical leadership? The answer to this question in part determines definitions of technical literacy. Consumers need to be able to use technology in relatively superficial ways. Producers need to understand technology.

Another question concerns immediate social gratification. Is it essential that the results of technical literacy education manifest themselves within a few years of graduation (in the form of a job perhaps)? If the answer is "yes", then technical literacy will focus on immediately useful skills that may be quaint or irrelevant in a decade at the expense of concepts and skills of long-term utility. Like Van Dyke [5], at Brooklyn College, we believe that an education for the non-technician must have the broadest, long-term perspective possible.

Exorcising alienation from technology and an avoiding uncritical reliance on mechanical procedures was another concern. Eliminating technology-alienation requires demystifying the technical. Is this to be accomplished by demonstrating the utility of technology ("you and computers", "you and nuclear energy", etc.) in the absence of an understanding of its principles? My answer, as can be surmised from the framing of the questions, is "no''.

Principles are paramount. The college's social values demand a concept of technical literacy that will lead to a population of technological leaders, that will serve students fifteen and thirty years after graduation as well as one year after graduation and which eliminates alienation from technology through understanding rather than through a Pavlovian acquisition of a mindless, however useful, procedure. To define this kind of technical literacy, one must identify the fundamental, enduring principles in the subject and find an approach that makes these principles accessible to the non-technical student.

Computer Literacy: Demystification. In the pilot program, computer literacy means knowing what a computer is, concretely and abstractly. That requires, then, an understanding of how the hardware works and experience with the techniques by which the digital circuits which comprise a computer are designed. This also requires an understanding of what a program and experience with some techniques for constructing programs. Finally, the concrete conception of a computer demands that students understand how complex systems are constructed out of simpler ones, both in the hardware and software media. This in turn leads to the idea of a universal machine and the essential abstraction of a computer.

Course Organization


The first half of the course is a study of elementary propositional logic which emphasizes the connections and differences between logic and "everyday" reasoning, the significance of language and language issues such as ambiguity, the utility of symbolic and formal methods, and the distinction between form and content. Though that constitutes the mathematics component of the course, these themes are repeated in the second half of the course, the computer science component.

The treatment of computer literacy commences with an informal discussion of information and information representation. A very brief review of the requirements of digital electronics then directs that discussion to the machine representation of information which leads into a thorough discussion of numeral systems, the binary in particular.

Logic gates are introduced, along with circuits and various tools that are useful to their design and analysis. The students have no difficulty whatsoever with truth tables and logic expressions, having already encountered these in the mathematics component of the course. To guarantee this, and because parsimony was a design principle in the course, only AND, OR and NOT gates were used.

A pleasant surprise was that the students also had no difficulty understanding and using Disjunctive Normal Form as a means of methodically designing circuits. By the end of that unit, most students could take an informal description of an operation and construct a truth table, DNF logic expression and a circuit that would carry out the operation. This helped achieve one of the broad goals of the course, the illustration of the construction of complicated systems from very few, simple elements.

Architecture in general is not discussed in the course. The students do not learn about memory implementation, buses, program counters, functional units and other fundamental components of computer systems. Nonetheless, the students definitely do leave the unit with a clear idea of how a physical machine can manipulate the physical manifestations of symbols in an apparently intelligent fashion. Although many mysteries may remain, a fundamental one has been resolved for the students.

In the second and last unit of the computer literacy component, the students are taught a tiny subset of the Pascal language: integer variables, READLN, WRITELN and WHILE loops. This subset is taught in a rather formal fashion. The tokens and token classes are first introduced. After this, the syntax is introduced, and then the semantics of the subset are explained.

This approach is taken first of all because many students are weak on language-consciousness altogether and an exercise in considering language structure is generally useful to them and second because this approach allows mastery of the subset language at a certain level before the student is asked to develop programs on his or her own. This approach is feasible only because the subset is so tiny. Expressions are limited to at most a single operator. Only two relational operators are used. The READLN operation is restricted to a single operand. WHILE statements always use BEGIN END. The conditional, FOR loops, procedures, etc. are not introduced.

Once the language issues have been addressed, the next focus is the development of two iteration paradigms- counting and testing, both using the WHILE statement.

Finally, a number of programs which build on the theme of achieving complexity by repetition of simple operations are developed. These invariably include addition by repeated counting, multiplication by repeated addition, etc. Since the student already has seen how hardware can add, he or she has a vision of how operations as complicated as logarithms and exponents can be carried out and how they ultimately are based on a few very elementary primitives.

The course can then be concluded with a discussion of universal machines and software engineering principles.

Course Implementation


A good topic list is insufficient for the success of a course like this with this student population. A viable implementation is essential. Because students tend to be passive it was essential that the course not be a narrative one. There was virtually no topic or sub-topic covered which did not demand active involvement on the part of the student. This involvement also had to go beyond the assignment of homework problems. In-class exercises, workshop style group discussions, extensive faculty interaction were vital to the course's success. Because this style of teaching differed from the usual lecture/homework/computer lab approach that is used in most of the other computer science courses, faculty were called upon to change their teaching methods. Although that is a non-trivial demand, accomplishing this at Brooklyn College was in part facilitated by a series of summer faculty development seminars which were conducted to review the entire Core program and which clarified the approach of this and other courses. These seminars introduced faculty who had been using traditional pedagogical methods to the techniques that are crucial to the program's success.

The Advantage of the Logic Component


The presence of the mathematics part of the course, though mandated by the structure of the Brooklyn College Core Curriculum is not viewed as a drawback by the computer science faculty teaching the experiment. On the contrary, we view it as essential and would teach logic in the course even if it were strictly a computer science course. There are several reasons for this.

First, like Myers [4] and others, we recognize the special role that logic has in computer science. Sharing that perception with students, even at this level, yields two benefits with regard to recruiting potential computer science majors from would-be nonmajors. One benefit is allaying a fear of mathematics. Including at this level a presentation of the branch of mathematics that is most closely associated with computer science (logic), reduces that fear. The student sees that he or she can master that material and apply it to computer science. The second benefit is that students who are recruited as majors from this course approach the discipline with the proper attitude. They know the importance of careful reasoning, formal treatment and mathematics before they take the introductory course (for majors).

Second, as was mentioned, the study of elementary logic is very useful in the discussion of the design of digital circuits.
Finally, much of the work in the logic portion of the course involves formalizing and evaluating informal arguments. We believe that the intellectual skills involved in examining an informal argument and identifying the relevant propositions while discarding the irrelevant phrases followed by symbolizing the argument are closely related to the skills needed to develop a program from an informal specification. Hence, these are skills that we are only to glad to foster in potential majors.

Results


So far the pilot program has been very visibly successful. The course is very teachable- full-time computer science faculty who avoided it in its previous incarnation as an elementary BASIC programming or LOTUS course now find it an enjoyable contrast to their graduate or advanced undergraduate courses. At the same time, the course has been successfully taught by graduate students, adjunct instructors and even instructors "borrowed" from other departments. Students no longer view the course as the most feared or disliked of the required Core courses, and many openly express their appreciation of it. The failure rate (Fs, Ds, or withdrawals) has fallen from 45% to 20%. Grade distributions have changed as well. Instead of the bimodal distribution of the past, there is a uniform distribution of As, Bs and Cs with a decidedly smaller numbers of Ds and Fs. Faculty report that they no longer have to use any "curving" in order to have socially acceptable pass rates.

Discussion


The pilot program has demonstrated that a principles-based approach to computer literacy is viable for an urban working-class student population. It has also shown that success is predicated on the concurrent development of faculty, curriculum, course material and teaching methods.

For the most part, the course may be viewed as an example of a new trend in computer literacy courses [1,3]. The new trend emphasizes principles rather than familiarity with utilities or watered-down programming courses. In several important ways, however, this course differs from these new proposals. The course is limited in breadth. However disappointing that may be to some, such a limit is vital to making this approach viable for the Brooklyn College population. Because of this limit, great care is involved in selecting the topics to be treated. Furthermore, this course rejects the narrative approach that a survey of the important ideas of computer science must inevitably use. Instead, the hands-on character of the earlier types of computer literacy courses is preserved, by developing new teaching techniques and by selecting the topics covered to be those for which rich sets of exercises, in-class and as homework, can be generated.

The course is a work in progress and much remains to be done. There are two major omissions from the course that need to be addressed. One is the absence of functions from the programming component. Although the course takes a decidedly minimalist approach, the benefits of including functions far outweigh the disadvantages of additional syntactic and semantic clutter. The other is a digital logic lab so that students can have a hands-on experience with the circuit design material.

The Iliad


It is worth emphasizing the lessons that the designer of this course drew from the Brooklyn College Core classics course.
Acknowledgments. The course was developed by the author of this paper and Naomi Bushman of the Department of Educational Services (Brooklyn College). The impetus for its development and many of the discussions concerning it took place at Core Faculty Development Seminars that were originally organized by then-Provost Ethyle Wolfe and funded by the Mellon Foundation.

References


[1] Alan W. Bierman, "An Overview Course in Academic Computer Science: A New Approach for Teaching Nonmajors", The Proceedings of the Twenty-first SIGCSE Technical Symposium on Computer Science Education, (March, 1990).

[2] Lynne V. Cheney, "50 Hours- A Core Curriculum for College Students", National Endowment for the Humanities, (October, 1989).

[3] J. Paul Myers, Jr., "The New Generation of Computer Literacy", The Proceedings of the Twentieth SIGCSE Technical Symposium on Computer Science Education, (February, 1989).

[4] J. Paul Myers, Jr., "The Central Role of Mathematical Logic in Computer Science", The Proceedings of the Twenty-first SIGCSE Technical Symposium on Computer Science Education, Louisville, Kentucky, (March , 1990).

[5] C. Van Dyke, "Taking 'Computer Literacy' Literally", Comm. ACM, 30, 5, (May, 1987).


Back to David Arnow's CS Education Page.



tc