What is Computer Science






 * "The Holy Grail of computer science is to capture the messy complexity of the natural world and express it algorithmically." (Teresa Marrin Nakra. See http://www.tcnj.edu/~nakra/publications.html.)

Introduction
Humans have a very long history of developing tools to aid and extend their physical and mental capabilities. Reading, writing, and arithmetic (math) are examples of such tools. The history of mechanical aids to computation is quite long. The abacus was (still is) a wonderful aid to calculation. A nice summary of the history of calculators is available in the Wikipedia. Mechanical calculators, math tables, the slide rule, electromechanical calculators, and then electronic calculators are all, in some sense, extensions of the abacus.

A computer can automatically, rapidly, and with great accuracy follow a step by step set of instructions specifying a sequence of calculations and other manipulations of numerical and alphabetic characters. While initially conceived of mainly as an automated calculator, it soon became evident that a computer could be used to solve or help solve a wide range of problems in many different disciplines. For example, a computer can store the types of material that are stored in a library, and can aid in the processing and retrieval of such digitized materials. The Web is one of the major success stories of telecommunications and computers.

This wide range of uses and potential uses of computers led to the development of programs of study, and then degree programs, in the field of computer science. At the time this was occurring, relatively few people thought about whether computer science is a science, or whether an academic department and a field of research should be built around a machine.

Perhaps part of the issue is just the choice of a name for the discipline or disciplines such departments focused on. If the new department was mainly business oriented, it might have be called a Department of Business Data Processing. If the new department was mainly engineering oriented, it might have been called the Department of Computer Engineering. If formed under the bailiwick of liberal arts, it might have been called the Department of Computer Science or the Department of Computer and Information Science.

Computer Science
The business-oriented, engineering-oriented, and liberal arts-oriented types of departments approached the disciple from different points of view. A business-oriented computer science discipline of study integrated the computer and its capabilities into the overall discipline of business. Computers can be used to represent and to solve or help solve a wide range of business problems. The spreadsheet is an example of a business-oriented computer tool that is exceedingly useful in business, but also useful in many other disciplines. While initially conceived of as mainly an aid to automating bookkeeping operations, it soon became clear that it could be used to develop computer models for a wide range of business problem situations.

This approach to computers is now common throughout all academic disciplines. For example, consider computers and music or computers and the graphic arts. Both music and the graphic arts existed as major disciplines in their own rights long before electronic digital computers came on the scene. Both continue as major disciplines of study—but both have been significantly influenced by computers.

We also see this in each of the sciences and in mathematics. We now have major subdivisions of each of these disciplines that are called "Computational" as in Computational Physics or Computational Mathematics.

"Computational" has gained additional credibility through the Computational Thinking work of Jennette Wing and others. Students in each discipline of study are faced by the challenge of deciding what and how much to learn about computers.

Computer engineering focuses on the theory and practice of designing and building computer hardware components and entire computer systems. This discipline has been very successful and has brought us a steady stream of major improvements in the cost effectiveness and reliability of computer systems.

Computer and Information Science Departments have prospered. A discipline was developed that was far more than computer programming and solving application problems in various other disciplines.

Some Definitions
Here is a short definition from a 1985 article written by Peter J. Denning:

Denning, Peter J. (September 1985). What is Computer Science. American Scientist 73 No. 1 (Jan-Feb 1985). Learn about Peter Denning at http://en.wikipedia.org/wiki/Peter_J._Denning.


 * Computer Science is the body of knowledge dealing with the design, analysis, implementation, efficiency, and application of processes that transform information. The fundamental question underlying all of computer science is, “What can be automated?” This discipline was born in the mid-1940s with the invention of the stored-program electronic computer and has grown rapidly ever since.

The key issues is, what can be automated. We are used to the idea of automating physical activities. Thus, we had automated factory equipment long before we had electronic digital computers. One way to think about computers is in terms of how they aid in the automation of physical activities and how they aid in the automation of mental activities. Nowadays, when we talk about factory automation, we generally mean use of computerized equipment, including a wide range of robots. That role of computers in automation is well established and is a clear extension of factory automation that came before the existence of electronic digital computers.

The automation of mental activities is, in some sense new. Sure, we had aids to mental activities. A math table is a example. But, it was a person and the table working together that accomplished the desired task.

Now, we are automating mental tasks that are beyond what a human brain can do, and in many cases the computer functions without human intervention.

Some Other Definitions
Here are a few of the definitions produced from a Google search on define: computer science.


 * Organizations that conduct research in the area of science that addresses the study of data and information storage and processing systems including hardware, software, basic design principles, user requirements analysis and related economic and policy issues. nccs2.urban.org/ntee-cc/u.htm


 * The study of computers, including both hardware and software design. Computer science is composed of many broad disciplines, including artificial intelligence and software engineering. Most universities now offer bachelor, master, and doctorate degrees in computer science. www.faxswitch.com/Definitions/telecom_dictionary_c.html


 * Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ... en.wikipedia.org/wiki/Computer science

Is Computer Science Science?
Over the years, people have argued whether Computer Science deserves to be called a science. The following article by Peter J. Denning addresses this issue:: Denning, Peter J. (April 2005. Is Computer science Science?. Communications of the ACM. Retrieved 2/16/08: www.cs.gmu.edu/cne/pjd/PUBS/CACMcols/cacmApr05.pdf.

This article discusses various aspects of the disicpline of computre science and certainly helps to give a definition of the field. The article is written in the form of an interview (in essence, the author interviewing himself). Here is the beginning of he article:

What is your profession?


 * Computer science.

''Oh? Is that a science?''


 * Sure, it is the science of information processes and their interactions with the world.

''I’ll accept that what you do is technology; but not science. Science deals with fundamental laws of nature. Computers are man made. Their principles come from other fields such as physics and electronics engineering''.


 * Hold on. There are many natural information processes. Computers are tools to implement, study, and predict them. In the U.S. alone, nearly 200 academic departments recognize this; some have been granting CS degrees for 40 years.

…

''Has computer science already made all the big discoveries it’s going to? Is incremental progress all that remains? Has computer science bubbled up at the end of the historical era of science?''


 * I think not. Horgan argues that the number of scientific fields is limited and each one is slowly being exhausted. But computer science is going a different way. It is constantly forming relationships with other fields; each one opens up a new field.

Computer Science Degree and Jobs
Marsan, Carolyn Duffy (2/22/2010). Want a job? Get a computer science degree. Network World. Retrieved 2/24/2010 from http://www.networkworld.com/news/2010/022210-computer-science.html. Quoting from the article:


 * Leading universities report that enrollment in computer science and engineering courses is up significantly this year among   students pursuing computer science majors as well as those studying other subjects, particularly science or business.


 * "I think the job market is what's driving the growth," says Professor Bruce Porter, Chair of the Department of Computer Sciences   at the University of Texas at Austin, which has seen its enrollment increase more than 5% this year. "The government has made    it clear that computer science is a growth field, and I think that message is getting back to students and their parents."


 * Corporate recruitment of top computer science grads has remained steady throughout the economic downturn. Last spring, at   the height of the recession, Georgia Tech's College of Computing had the highest job placement rate of any major on campus    and the highest starting salary.

Teaching Computer Science

 * "It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail, and learning to be self-critical?" (Alan Perlis; American Computer Scientist; 1922–1990.)

What constitutes good teaching of computer and information science, and what can be done to improve teaching in this field?

First note that this same type of question is applicable in every discipline. Indeed, each discipline of study puts some effort into helping people learn about the discipline.

Consider the challenge this places on teacher who teach a number of different disciplines, such a the typical elementary school teacher. If it is difficult to have the knowledge, skills, and experience to be a good teacher in a single discipline such as computer science, imagine trying to be a good teacher over the full range of disciplines that a typical elementary school teacher faces. Moreover, think about the fact that this elementary teacher is laying the foundations for a student's future learning in each of the disciplines that he or she teaches.

Back in the "good old days, there was quite a large push to teach BASIC and/or Logo programming to elementary and middle school students. I (David Moursund) remember the stories that came out of Texas. There, quite a few physical education teachers were given two weeks of instruction on computer literacy and then put to work as computer literacy teachers. That approach did a major disservice both to the teachers and to their students.

Each academic discipline includes a focus on representing and solving the types of problems and challenges that are part of the discipline. That is, problem solving is core to each discipline. Research on problem solving identifies domain specific and domain independent ideas relevant to problem solving. To a large extent, it takes considerable domain-specific knowledge in a disincline to be a good problem solver within the discipline.


 * And, as an aside, consider the challenge of transfer of learning of one's domain-specific problem solving expertise to other disciplines. This challenge is particularly severe in disciplines such as computer science and math that have widespread applicability and a relatively deep vertical structure.

Here is an article that some readers will find useful:


 * AMEInfo (2/10/2009). Researcher calls for new approach in computer education. Retrieved 2/11/2009: http://www.ameinfo.com/184306.html. The following quoted material is from the introduction to the paper.


 * Dr. Uma Gunasilan, senior lecturer in the School of Engineering and Information Sciences at Middlesex University Dubai, was honoured for presenting best paper at the Seventh Worldwide Conference on Education and Culture, held recently in Rome, Italy.


 * The paper entitled 'Towards Improving the Teaching and Learning Experience in Computer Programming: A Case Study in Middlesex University Dubai' won much acclaim at the international conference, which was organised by the Worldwide Conference on Education and Culture series, based in Virginia, USA.




 * In her paper, the researcher stated that students should be allowed to 'construct knowledge' rather than to acquire, apply and retain knowledge that is given by educator. Although this is acknowledged and works effectively in science and mathematics education, there is a discrepancy, specifically in computer science.


 * Dr. Gunasilan was appreciated by academics from across the world, for her effort in highlighting the problems and arguments in the pedagogy of computer programming in the Middle-Eastern region and outlining active elements that play a significant role in teaching and learning in the UAE.

Computer Programming
A computer program is a step by step set of instructions that can me interpreted by a carried out by a computer. Computer programmers draw on four skill sets:

1. Problem solving—with special emphasis on problem solving within the discipline or disciplines that encompass the problem to be solved.(Think in terms of designing a method to solve a general class or problems or accomplish a general class of tasks, and then designing a computer system than can effectively implement the design.)

2. Relatively detailed knowledge of and skill in using both programming languages in general and the specific programming language being used in the project one is addressing.

3. The ability to work individually and in team environments.

4. The ability to learn new programming languages, new programming ideas, new problem-solving ideas, and new problem areas.

As you can see, computer programming (sometimes called software engineering) is a very challenging discipline. The capabilities and productivity of "professional" programmers vary widely.

The discipline of computre programming has made considerable progress over the years. A Google search of waterfall programming Wikipedia returns a number of intersting hits. Quoting from the Wikipedia:


 * The waterfall model is a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance.


 * The waterfall development model has its origins in the manufacturing and construction industries; highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development.


 * The first formal description of the waterfall model is often cited to be an article published in 1970 by Winston W. Royce,[1] although Royce did not use the term "waterfall" in this article. Royce was presenting this model as an example of a flawed, non-working model (Royce 1970). This is in fact the way the term has generally been used in writing about software development—as a way to criticize a commonly used software practice.[2]

Modern approaches to computer programming place a very high emphasis on maintainability and modifiability of a computer program.

Precollege Computer Science Education
A number of states have local and state organizations that foster and promote students learning computer and information science. Oregon provides a good example. The following segments are quoted from an email message set by /Ron Tennison to David Moursund on 3/16/2009.


 * I still am interested in trying to do some work with you – particularly the oral history project that we discussed. Right at the moment, I have gotten myself so involved in the Oregon CS Taskforce /OCSTA?TechStart projects that my wife wonders if I am actually retired.


 * I included a copy of the OCSTA newsletter (below) that I write so you can see what I am/have been up to. It is not as elegant as yours,[the Information Age Education Newsletter]  but it gets the communication done.  By the way, OCSTA traces its lineage back to OCCE, so in a way you are partly responsible for this too.


 * The Oregon Game Programming Challenge (OGPC) is a competition for your students and is currently scheduled for May 16, but you need to be forming teams and starting now. The challenge problem for the year will be announced this weekend.  All the details, registration information, and extensive materials are available on the website at http://www.techstart.org/ogpc.


 * We hear that nationally, Oregon is the “hot spot” when it comes to CS activity. OCSTA is the longest running state CS teacher’s organization, and was the first official chapter in the National CSTA.  We are reported to have more competing robotics teams than any other state.  Our annual SuperQuest summer institute has been running 14 years.  All of this activity is due to a unique combination of OCSTA, TechStart, and OPAS/ETIC CS Taskforce, but it all runs on volunteers.

Here is a reference about declining opportunities for precollege students to learn about Computer and Information Science:

Crawford,Amy (2/20/2011). Few students make time to study computer science. Pittsburgh Tribune-Review. Retrieved 2/23/2011 from http://www.pittsburghlive.com/x/pittsburghtrib/news/pittsburgh/s_723777.html.

Quoting from the article:


 * As computers have become ubiquitous in Americans' daily lives, computer science is declining in public schools. It's an irony that troubled the authors of a recent report, "Running on Empty," published by the Association for Computing Machinery, a membership organization for people who work in the industry, and the Computer Science Teachers Association.


 * "As the digital age has transformed the world and work force, U.S. K-12 education has fallen woefully behind in preparing students with the fundamental computer science knowledge and skills they need for future success," the study's authors wrote.


 * The authors found that between 2005 and 2009 the number of secondary schools offering introductory computer science courses dropped by 17 percent. The number of high schools offering Advanced Placement computer science plummeted by 35 percent

What is Artificial Intelligence?
For an insightful interview of Ed Feigenbaum, one of the AI pioneers, see Shustek (2010).

The following references are suitable for use with middle school students and were provided by Dr. Art Farley, an AI researcher in the Department of Computer and Information Science, University of Oregon 3/6/08.

Overview for students: http://library.thinkquest.org/2705/

Interesting Q&A style by McCarthy, one of AI "fathers": http://www-formal.stanford.edu/jmc/whatisai/whatisai.html

Wikipedia: http://en.wikipedia.org/wiki/Artificial_intelligence

AAAI Topics page for references: http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/HomePage

Author or Authors
The original version of this document was developed by David Moursund.