The dominant theme in computer history has been the rapidly increasing access to computer power by more and more people. When the first commercial computer became available in 1951, computer literacy had a simple definition — being able to program in assembly language on a Univac. In the fifty years since then, the field has grown in such a way that only science fiction writers seem to be able to make accurate forecasts.
At one time, an activity such as balancing your checkbook would have required writing a computer program with file access. Today with a spreadsheet, the casual user needs no skills beyond the knowledge of how a checkbook. With packaged software available today, a small businessperson can buy a program that will not only balance a checkbook but also print out the checks and keep a record of expenses for tax purposes. The skills required would be those needed to keep and interpret records for tax and other purposes. The programmer (creator) of such a package, however, needs to have not only strong programming skills (including analysis, design, coding and testing) but also the full knowledge of the businessperson in keeping records.
As a person who has studied the discipline of
education at the college level, I have seen the importance of clearly
articulating a philosophy supporting what I am doing in the classroom. College
teaching is not an inborn skill nor is it a skill which can only be developed
by experience. The design of a course, the method of presentation in the
classroom, the difficulty of examinations, all contribute to a coherent whole
only when they are carefully planned with a definite goal in mind. That goal
depends upon the nature of the course, the needs and capabilities of the
students, and, very importantly in the case of computer science, the resources
available.
While the department, not the individual
instructor, sets the syllabus of a course, there are many other factors
governing the design of a course that are the responsibility of the instructor
and must be carefully planned. In all of my courses, I assume that the students
will read the book and I teach accordingly. The amount of time in class
precludes giving students complete notes if enough material is to be covered.
The notes should guide the reading, reinforce important concepts, clarify what
is difficult, and serve as a guide for studying for tests. The student should
work two hours outside the classroom for each hour within (Carnegie unit
definition).
As an experienced instructor, I can usually
predict what students will find hard. This is augmented by frequent homework to
allow the students to see if they really understand a concept and to alert me
if a large number do not. Tests cannot replace homework and projects as each
test is so limited in time that it must stress concepts that admit reasonably
short answers.
Of course, any assigned work must be collected,
graded, and returned. I attempt to return homework at the next class meeting, a
major project at the second class meeting. When returned, an assignment must be
gone over or it fails to be a learning experience. Mistakes common to many
members of the class can be reviewed in class but writing programs or documents
requires, as in developing writing skills in general, individual attention.
Facts are not ends in themselves. In computer
science, we are not producing students who know what we know. They would be
obsolete within a few years. We are producing students who understand the
concepts behind what they are doing so that when new concepts come in, they
will learn them. In computer science, learning must be a lifelong
obsession. Fifty years ago, the first commercial computer appeared. In the next
fifty years, what changes must we expect? Our current students will be active
in the field during this time but the field will have changed so that we cannot
even guess what it will be like. It is our obligation to start them understanding
the "whys" behind what they are doing and to insist that they have
the base upon which to grow.
You cannot predict the future in a field in which you cannot keep up with the present.