As a discipline
Peter J. Denning (Chair) Douglas E.COMER, DAVID GRIES,
Michael C. Mulder, A11EN Turner, A.joe Turner, And Paul R. Young
Abstract: This is the final report of the computer scientific core research group. It gives a new knowledge framework for computer disciplines, and a new foundation for calculating courses. This report has been approved and approved by the US Computer Association (ACM) Education Committee.
1 Introduction
The US Computer Association (ACM) has been established for 42 years, but the debate of an old problem is still going on. Computer science is a science or engineering discipline? Or is it only a technology, a research person and seller of a calculation product? What is the intellectual essence of the discipline? It will continue to rise or go in our next generation? Computer Science and Engineering Does the core course reflect this area? How to integrate the work of the theory and laboratory in calculation courses? Does the core courses have been calculated?
We recommend a technology-oriented discipline description, which is based on mathematics and engineering. For example, we regard the algorithm as the most basic research object, while program design and hardware design are regarded as a correct research activity. It is considered that "computer science is equal to program design" is very windy in many of our courses. The guiding course is program design, programming technology arrangements in each core course, and science is in the elective course. This view prevents the progress of reorganizing each course, making the best students of the heart to go away from us. It rejects a unified way to integrate the experiment's and theory of computer science into a course of organic components.
Today, this area is already mature enough to describe its knowledge essence in a new water to a channel. This is discussed in July 1984 in July 1984 in July, 1984. This discussion and other similar discussions promote the ACM and IEEE computer learning to form a new way to create a new way. In the spring of 1985, the ACM President Adele Goldberg and the ACM Education Committee Chairman Robert Aiken appointed the computer scientific core research group under the IEEE computer learning. At the same time, the computer learns to form a computer experiment work research group under the enthusiastic cooperation of ACM.
We hope that the work of the core research group reflected in this report can produce more benefits than scheduled. With the common understanding of the core of this discipline, it will be able to coordinate the development of these two sub-disciplines and topics. This report can be further discussed as a professional basis for computer science and engineering, and the improvement of middle school calculation courses has led to a greater science to recognize computational science.
Our goal is to create a new ideological method in the art. Xijing integrates general discussion into the nature of the discipline, seek a frame, but not a list, a guidance, not a command. We hope that you will adopt this framework and make it right for you. We are pleased to introduce new knowledge frameworks for this discipline and the new foundation of each course.
2 task of the officer
The project team accepted three tasks:
(1) The description of computer science is given to emphasize basic problems and existing important achievements. This definition must be confirmed that in the field is constantly changing, now it is just a lens that grabs the shot during the continuous progress process.
(2) The teaching specification of computer science is proposed. This specification is in line with traditional scientific standards, emphasizing the cultivation of this discipline, and closely combines theory and experimentation.
(3) An example of a computer scientific guidance course series is performed based on course model and discipline description.
We immediately extended our tasks to include computer science and juice, as the core materials in these two areas have no basic difference. The difference is true to deal with these core materials: computer scientific focus on analysis and abstraction; computer engineering focuses on abstraction and design. Here, the word discipline of computing is used to include computer science and engineering.
There are two important things that are not included in the task of the research group. First, this report recommendation only lists the guidance course sequence, which involves the design of the entire core course - a major issue. In fact, if there is no new design for the rest of the core, the recommended guidelines are not much significant. Second, the purpose of the guided course is to bring students to the entire discipline in a rigorous and challenging manner. What we listed is just this way - an example, or is our "existential certificate" on the definition of calculation. We want each department to apply this framework to determine their own guidelines to meet their needs. 3 subject form (paradigms)
The conditions for the three main forms, or cultural methods, or cultural methods are provided in the art.
The form is theory, based on mathematics, based on unified reasonable theoretical development process. Contains the following four steps:
(1) Characterization of research objects (definition);
(2) Assume that there is a possible day system (theorem);
(3) Determine if these relationships are correct (proof);
(4) Explanation results.
Mathematics believe that the above process should be repeated when the errors and contradictions are found.
The second form is abstraction, or modeling modeling, based on experimental science methods. According to the objective research process, the following four steps are included:
(1) form a hypothesis;
(2) Construct the model and make predictions;
(3) Design experiments and collect data;
(4) Analysis results.
Scientists hope that these steps should be repeated when the prophecy is inconsistent with the experimental results. Although this form can also be called "modeling" or "experiment", we still use the word "abstract" because it is more common in discipline.
The third form is Design, based on the project, according to the process of forming a system or device in order to solve a problem, including the following four steps:
(1) Narrative requirements;
(2) a given technical conditions;
(3) Design and implement the system:
(4) Test the system.
The engineer hopes that when the test indicates that the system does not satisfy the technical conditions, the above steps must be repeated.
Theory is the fundamental of mathematics science: Application mathematicians believe that scientific progress is based on pure mathematics. Abstract (modeling) is the fundamental of natural science: scientists believe that the process of scientific progress is basically forming a hypothesis, then use modeling processes to try themselves. Similarly, the design is the fundamental of the project: engineers believe that engineering progress is basically proposed, and then design to construct the system to solve problems. Regarding Mathematics, Science, Engineering, many of the more important arguments are substantially based on a hypothesis: one of the three processes (theory, abstract or design) is the most basic.
However, carefully examine the calculation discipline can find that these three processes calculated are intertwined together, so that it is uncomfortable which is more basic. There are many examples show that there is theoretical in the abstraction and design phase; the theoretical and design stages require model type, and the theory and abstract stages, always inseparable.
Although these three forms are closely related, it is three different forms after all because they represent different fields of competence. Theory concerns is to reveal and demonstrate the ability of the objects. Abstract care is the ability to apply these relationships to make predictions on the real world. Design is concerned about certain specific implementations of these relationships, and applying them to complete useful tasks. Applying mathematicians, calculating scientists and design engineers generally have different expertise.
Also, people in the calculation are to study the calculation tool to support people's information transformation process. For example, from the design, the complex VLSI design and analog system we can perform the effective and correct design of the microcircuit, and the program design environment allows us to effectively perform software design. From modeling. The supercomputer can evaluate mathematical models and make prophesies to the real world, and the network helps to spread the results of science experiments. In theory, the computer can do the agencies, check the compatibility of technical conditions, check the alternative, demo testing. Calculate the intersection of the three things in applying mathematics, science and engineering. These three processes are equally important and basic in this discipline, which is the intersection of the theory, abstraction and design. Maintaining their power is common interest in experiments and designs as information converters, and interested in calculation support from each of these processes, interested in effectiveness.
4 role in programming
Many live work in the field is not program design - for example, hardware design, architecture, operating system structure, database application and model verification - Therefore, "computer science is equal to programming" is wrong. So, what is the role of programming in this discipline? Where is the status in the course?
Obviously, programming is part of the practice of this discipline standard, and each calculator must have the ability to design. But this does not mean that this discipline does not mean that the guidance course must be a course in programming. It is also obvious that the characteristics involving any field must pass the language, and the characteristics of the discipline are mostly in the programming symbol. The programming language is a tool involved in this field. therefore. We recommend that the program is designed as part of the core course and uses the programming language as a useful medium that is involved in computational discipline.
5 calculation description
Computational science as a discipline contains four parts: (1) requirements; (2) short definition; (3) divided into branch fields; (4) content in the branch field. Our description is scanned four times, and every time it is very detailed - step.
We are just a changing dynamic field. It is a "live definition" that can be modified at any time to reflect the maturity and variation in the art. We hope that the contents of each branch can be modified frequently, and the branch fields can occasionally modify, and short definitions are rarely modified.
5.1 requirements
There are many ways to form a definition. We put forward five requirements:
(1) Defining should be understood by those other than those in the art.
(2) Defining should be the focus point of people within the art.
(3) The definition must be clear.
(4) It must clarify the history of mathematics, logic, and engineering of this discipline.
(5) It must specify the basic problems of this discipline and existing important results.
During the formation of the description. We consider the original definitions, and conclude that the description of these requirements must be taken in complex degree. Here, you will simply review other definitions. 1967. NEWELL, Perlis and Simon [5] advocated that computer science is a science of research on computers and focusing on its main phenomenon, and saying that it is nothing to show that other science is not scientific. But no matter how argued, many people think that this is a loop definition, and the foreign pedestrians are too simple. However, it is still a good starting point.
Because our definition can be seen as the main phenomenon around the juice computer.
Cultural Scientific Qualification Board, CSAB, carefully modified the above idea, using a definition: "Computer science is the overall concern about computer and calculation. It has three parts: theory, experiment and design, including (1) Understand the theory of computing devices, procedures, and systems; (2) experiments for the development and testing of the concept; (3) Design methodology, algorithm and implementation tools; and (4) Verify that these implementations meet the requirements of analysis "The third definition says" Computer Science is the science of research knowledge and its implementation. " This definition is too abstract, and few people can understand the same understanding of knowledge. Another definition with the same problem is that "computer science is about abstract and complex control." It is also a definition that is also applicable to physical, mathematics or philosophy.
Abelson and Sussman said, "Computer Revolution is the revolution of thinking methods and thinking methods." The essence of this change is the so-called process of process-study - it is a structure of knowledge from a command-based point of view, rather than using statement of the statement like classic mathematics. Mathematics presents a framework for exactly handling "What is", and calculation provides a framework for accurately handling "how to do" [1].
5.2 Short definition
Calculation discipline is a systematic study on the algorithm process of describing and transforming information, including its theory, analysis, design, effectiveness, implementation and application. The basic problem of all computing science is "What can (effectively) automatic?
5.3 Division into branch field
We spend considerable strength and divide the entire discipline into a number of branches. At first, we want to try less than some branches. For example, modeling and implementation, or algorithms and machines. However, the various branches we propose are too abstract, and the boundaries are also very vague. I am afraid that most people can confirm them smoothly.
Then, we realize that the foundation of the discipline is included in three basic processes - theory, abstraction and design. Each branch also uses these basic processes to complete their own purpose. Thus, each branch field and its description thereof will be useful in the relationship between these three basic processes. The following four conditions must be met to calculate a branch field.
(1) Coordination of subject content;
(2) substantial theoretical part;
(3) meaningful abstraction;
(4) Important design and implementation.
Also, each class must be confirmed by a group that studies the branch or several associated studies.
Theory includes the process of developing a mathematical foundation of this branch. These processes are supported by the theory of other fields. For example, algorithm and data structural branches include complexity theory, which itself needs to be supported. Abstract treatment of potential realization modeling. These models are ignored - some technical details, while maintaining essential characteristics, obeying the needs of the analysis, providing the tools required to calculate the prediction of modeling system behavior. The process of design is a given question, transforms the problem into design technical conditions, then repeatedly envisaged and examines a variety of solutions until a reliable, maintenance, detailed information, verified, pay The cost size is also in line with the requirements of the requirements.
We believe that this area can be divided into several branches:
(1) Algorithm and data structure
(2) Programming language
(3) Architecture
(4) Calculation of values and symbols
(5) Operating system
(6) Software methodology and engineering
(7) Database and information retrieval system
(8) Artificial intelligence and robotics
(9) Human machine communication
Further research in the field of 5.4 branch
In order to identify the contents of each branch, we found that it is useful to use the 9 × 3 matrix shown in Figure 1.1. Each row corresponds to a branch field, each of which defines its theory, abstraction, and design. Each grit is filled in the corresponding sentence to describe the relevant matters and meaningful achievements.
Theoretical abstract design
Figure 1.1 Calculation Discipline Definition Matrix Courses Setting Mode
Some of the common groups of scientific literatures have not been seen as a branch field, and they are basic to them throughout the subject. For example, parallelism penetrate into all branches (including parallel algorithms, parallel languages, parallel structures, etc.), also spread through theory, abstraction and design. Similar situations include security, reliability, and performance assessment. Computer scientists care about the first two columns of matrices, and computer engineers care about two columns. All of this given the computing discipline is hereby here to see the appendix. 6 course model
6.1 Cultivation of Discipline Ability
The purpose of education is to cultivate work ability in a certain field. Working ability, is effective activity capabilities, is the standards for evaluating a level of independent practice activities in this field. This evaluation criterion is based on history in the art. The education process of cultivation has five steps: (1) causing motives to learn a certain field; (2) shows what can do in this area; (3) reveal the characteristics of the art; (4) Historical roots of these features; Practice these features [4]. This - model implies some interesting questions in the course settings. The first question is, what skill should be made? There are two types of capabilities:
1. The ability to think about discipline: Discover the ability of new features in the art. These features lead to new activities and new tools to make these features can be utilized by others.
2. The ability to use tools: Use tools in the art to effectively perform activities in other fields.
We recommend that the idea of discipline is the main purpose of calculating professional curriculum. At the same time, computing professional workers must be fully familiar with tools to effectively cooperate with people of other disciplines to conduct design activities of those disciplines.
A survey of capabilities indicate that the core calculation courses currently set in some areas are inappropriate. For example, historical content in the field is often not emphasized, so many graduates ignore the computational discipline history and repeat the original mistakes. Many students who calculate professional students enter commercial data processing, and their courses they learn do not pay attention to cultivating this capacity. This ability should be cultivated by the calculation system, or is trained by the business class is a long-term dispute. The ability to discipline must be based on a solid mathematical basis, and theory has not yet become the organic component of most calculation courses. Typical practice activities in the field include setting and experiment, contributing to large collaborative issues, and exchanges with other disciplines so that they can effectively use computing disciplines. However, most courses ignore laboratory operation, collective projects and cross disciplines.
The previous discussion has not been fully understood, what results should be made by calculating the courses. We are here, nor intended to make a thorough analysis. We hope that this issue is preferred when designing new core computing courses.
6.2 Lifelong Learning
A course should be designed to make graduates feel that they need their life. Many courses are in the form of teachings, giving "answers", rather than emphasizing the process of seeking all learning bases. We recommend that the subordinate committee consider changing teaching norms, so that students can be good at planning, and check the calculation of scientific literature and prepare for a lifetime.
7 Guideline Course Series
In this course setting mode, the purpose of learning and showing the present invention must be teegrant and practical in the field. The purpose of the latter series is here. Those major calculations to cultivate students' ability must fully and strictly teach students. Make them to understand the power of the discipline to obtain the benefits that can be brought about by independent work capabilities in these disciplines. The course then introduces the field, exposing new concepts and new nature, and makes students practice.
Therefore, we recommend that the guiding course contains regular teaching and closely related experiments. Teaching emphasizes the basic principles, how to do the laboratory technology.
This approach is the same as in the past physics and engineering. Teaching emphasizing the principles and concepts of long-term constant, and the laboratory emphasizes the temporary material and the skills related to the current technology. For example, the design and analysis of the grancies, or organizations of the functional layer network protocol. In the corresponding experimental class, students will write procedures for classrooms, and measure their travel time, or install and test network interfaces, and measure their package throughput. According to this opinion, the first class of computer science will not only introduce the program design, algorithm and data structure, but also introduce the materials of other branch disciplines. Mathematics and other theories are also integrated in a suitable place. We hope that the guiding course can include strict and challenging reviews throughout the discipline. Feynman's physical lectures are examples of the guiding course we want.
If we simply emphasize the re-design of the guideline course, it will be a serious mistake. The experience of the physics has included many lessons worthy of the calculation department.
7.1 Preparatory knowledge
We assume that students have a certain foundation in the following aspects: programming for some language, some of the experience of computer-based tools, such as word processing, expandsheet [Note] and databases. Because the computer is widely used in high school and families, it seems that most of the students who have entered the university have already founded this. And just a trachery course for providing programming for other students. However, we have found that the assumption that the programming for programming in high school is a great controversial. In fact, there are very few preparations. Therefore, we recommend that the calculation is the first-class tutorial for programming and computer tools before the guideline course. And the recommendation is allowed to prepare for the preparation of the course in high school.
The official preparation knowledge and public basics of mathematics are more difficult to clear, but must be appropriate. However, calculating the scientific qualification review department requires considerable mathematical knowledge, including discrete mathematics, calculus, probability, and statistics. These requirements are some. In our primary calculation course, the mathematical knowledge required for these nine branches is given. We also give the mathematical foundation required for each course module as much as possible. In this way, each department can take themselves to balance their courses they have opened and the requirements for mathematical knowledge. Sometimes, for a particular calculation issue, it is necessary to introduce appropriate mathematical foundations. In general, students should be made as soon as possible to see the process of learning.
Relevant mathematics needs to be used.
[Note]: The translation is to expand the film, the actual refers to the spreadsheet
7.2 Module Organization
The guiding course should be able to give a unified foundation in the field, and can be turned from the next topic by the flexible and natural way to the next topic. Therefore, this course is divided into nine parts, and each part corresponds to a branch field. This simple correspondence will make the course become a mass, and it is difficult to connect between parts. The order in which this requirement is to meet:
Basic algorithm concept
Computer organization ("von Noyman")
Mathematics programming
Data structure and abstraction
Configurable limit
Operating system and security
Distributed computing and network
Artificial intelligence model
Document and database system
Parallel Computing
Human interface
We divide the topic into 11 modules, each module includes representative and challenging materials of the subject, rather than a piece of skin into every part of the material. Each module extracts the material from several blocks of the definition matrix. Thus, many modules will not correspond to each line of the definition matrix. For example, we give the first module of the course entitled basic algorithm concept. It is limited to research timing algorithms, including the role of formation and theory, programming methods, programming concepts, validity, and specific algorithms. It draws information about the first, second, fourth and sixth lines of the definition matrix. The backpoints of distributed computing and networks and modules for parallelization are promoted to the material of the first module, and new materials are extracted from the third and fifth rows of the defined matrix.
In general, each module includes the desired theory and most of the abstract classes. Theory is generally only introduced when needed. Each module is closely combined with the experimental class, and the type of experimental job is included in the module specification. Our draft specification is a series of courses in three semesters, and 35 experiments were conducted in each semester. This specification is not listed herein, but the income report is reported. We reaffirm that this specification is just an example of an instance of the corresponding relationship from the discipline to the leader of the catcher, is not a list of all guestrics. Other ways can refer to some colleges and university existing guidelines.
8 laboratory
We describe a course that separates the principles and technologies, but maintains the unity of both. We have recommended that the principle of teaching, laboratory training techniques, make it closely combined.
There are three objects in the laboratory:
1. Laboratory workpieces should indicate how the principle of teaching in class is applied to actual software and hardware design, implementation and testing. The laboratory must provide specific experience to help students understand abstract concepts. These experiences are extremely necessary to refine students' intuitive knowledge about the actual calculation, is extremely necessary to emphasize the brain labor required to build a correct and effective computer program and system.
2. The laboratory should emphasize how to do it can lead to a good calculation process. The programming must be emphasized, not the light is the program itself. It must emphasize the understanding of laboratory technology, hardware capabilities, the correct use of software tools; the correct use of documents and the appropriate documentation of the experiments and programs. Many software tools require many software tools to contribute to experiments on additional subsystems. The laboratory teaches students how to use these tools properly.
3. The laboratory should introduce the test method, including the use and design, software and hardware monitor, the statistical analysis of the results, and the appropriate statement of the research results. Students must learn to distinguish between carefully and carelessly observe. To achieve these purposes, you must carefully plan and manage the work of the laboratory. Students must arrive at the laboratory on time. Generally a week. Experimental master operations must be planned in advance and give each student written experimental purpose and method. The depth of this web material should be adapted to the experimental experience of the students. For the initial experiment, this material needs more detail. The laboratory operation should be carried out under the guidance of the experimental church to ensure that each student uses the correct way. The experiment of the guiding course requires careful counseling, and the test steps are required. Therefore, the number of laboratory staff required for each student should be more than the advanced laboratory.
The test should be coordinated with the materials taught by the classroom. Personal experiment topics generally explore the combination of hardware and software. Some laboratory homework emphasizes the technology and tools for simplifying software development processes; some emphasize analysis and measurement of existing software or more known algorithms; some emphasize the development of procedures based on the principles learned in class.
The laboratory homework must be self-contained. That is, the medium-level students should be completed within the specified time. Laboratory homework should encourage students to discover and learn something. Students should be required to have a test record, to record test, observation and data. At the same time, students are required to save their software and establish a software library to prepare for the use of experimental topics.
We hope that experiments should be like classrooms, to leave home homework, and require a computer outside the laboratory. In other words, organized experimental courses are complementary, not replaced usual programming operations and written homework.
In a considerable number of program development labs, the job is a modified or completed an existing procedure given by the teacher. This enforces students to read the procedures written, and provide software integration experience, resulting in larger, and makes students satisfied.
Computational technology is constantly changing. Therefore, it is difficult to give a detailed technical requirements for the hardware systems, software systems, instruments and tools that should have in the laboratory. The choice of laboratory equipment and personnel should follow the following principles:
1. The laboratory must be equipped with systems and languages with the times. The programming language has an important impact on students' views on computing. The laboratory should use systems that make students develop good habits. It is especially important that avoiding the use of time-only systems (hardware and software) in the core course.
2. Hardware and software should strengthen maintenance. Failed equipment will make students feel frustrated and interfere with their learning. Suitable staff must maintain the hardware and software of the laboratory. This is similar to the laboratory of other disciplines. 3. Function is complete (this includes the appropriate response time of the time-time system). When students have just started to contact the system, restrictions on a small subset of language or systems may be useful, but when students have improvements, these restrictions should be canceled.
4. Good programming tools are needed. The compiler is very valued, but other programming tools are also commonly used. For example, in UNIX systems, students must use editors like Emacs and learn to use tools such as shell, grep, awk, and makers. Software tools for storage and processing must be sufficient to use these tools at any time in the laboratory.
5. The necessary support must be provided with hardware and instruments. Some topics require students to connect the line of the hardware unit, perform signal measurement, monitor data pathways, and the like. Widgets, connectors, cables, monitoring devices, and test instruments should be fully provided.
The IEEE Computer Society's purpose-oriented laboratory research team has conducted in-depth research. Their report discusses the resources required for various levels of laboratories in this course (ie, human and equipment).
9 qualification review
The qualification review of this course is completed under the standard guidance of the Calculative Scientific Qualification Review Department (CSAB). How to adapt to the Details of the CSAB standard beyond the scope of this committee.
10 conclusion
This report attempts to propose new ideas for calculating science as a discipline, emphasizing the basic concept, principles, and characteristics when discliring content. At the same time, it is also recommended to redesign the core courses of this discipline in accordance with the education model of other disciplines. First explain the existence of useful characteristics, and then carry out practice of cultivating capacity. This method uses a rigorous guiding course as an example to explain how to teach concepts and principles in classrooms, adviser with the relevant public experiments.
The system cannot simply replace the existing guidelines in new classes, and the lesson must be redesigned to make new guides become part of the unified overall. Therefore, we recommend ACM to set up a committee to continue to work and redesign the core course. In order to make new courses a part of the organic components in the art, many practical problems have to be studied. E.g:
1. Based on new concepts, teachers need to redesign their courses.
2. There is no textbook or textbook based on this framework.
3. In order to the educational mission recommended by this paper, most of the laboratory, equipment and materials are small in general.
4. Take teaching and teachers are not familiar with this new point of view.
5. There is not much to calculate the scientific preparation in the high school stage.
We know that many of our suggestions are challenging, and there is still a long way to go. However, we believe that efforts to improve computing science teaching in accordance with this recommendation are valuable. You are welcome to work with us.