Bachelor's Knowledge System in Computer Science and Technology

Source: Internet
Author: User

Two days ago, I explained to my primary school the knowledge system that students majoring in computer science and technology need to master. Consciously make sense. sort out and send it. Intended audience: students who have just entered the computer system and have yet to understand the entire Knowledge System of Computer Science and Technology. The benefits of students in this school are especially high.

The whole computer science is like a human, with two legs. One is mathematics (basic) and the other is physics (basic ). Mathematics mainly refers to mathematical logic. Among them, the most important is the formal logic system, the Turing topic and the Churchill topic. Formal Logic systems use logical methods to describe the world and build the entire logic system, number theory system, and computer science on the basis of a few principles and reasoning rules. The Turing topic is the foundation of computer science. It points out the power of a formal logic system: as long as humans can compute, machines can use formal logic rules for computation. In addition, it proposes an implementation method, that is, the Turing machine. The topic of Churchill points out the shortcomings of the Formal Logic System: humans can prove it, and machines may not prove it. More accurately, in formal logic systems, there is no commonAlgorithmCan judge the true and false of all propositions. This is the mathematical foundation of computer science.

The physical basis of computer technology is the digital logic circuit. Here, we will not talk about analog circuits or electromagnetism, because the feeling is not very relevant to "logic. First, the digital circuit provides the logical circuit implementation, such as how to implement such a circuit-only when both inputs are high, the output is high-that is, the gate. Then the design method of the combined logic is given for the digital circuit. This directly makes the design of the arithmetic logical unit (ALU) possible. Finally, the digital circuit provides a time series logic design method. The typical result is the appearance of registers and counters, making time series control possible.

However, mathematics and physics alone are far from sufficient to form a large and complex knowledge system such as computer science and technology. From a historical point of view, the thirst for computing power has directly led to the emergence of computers. What is a computer? A machine that efficiently completes computing. To achieve the goal of using machines for efficient computing, we need to solve at least two problems: first, how to communicate with machines, that is, how to make them understand what they should do, this is the origin of the software knowledge system. Then, how the machine operates is the origin of the hardware knowledge system. Later on, with the further development of the times, many new scientific branches with demands for computing power emerged, so how to apply computer science came into being. The knowledge architecture of computer science and technology will be analyzed from the bottom up in three layers: hardware, software, and application.

The digital circuit has implemented basic components such as ALU and register (memory. The next question is how to use these components to form a machine capable of efficient computing. The architecture of modern commonly used computers is designated by Feng nuoman and called Feng nuoman. The student split the entire computer into five major parts: the recorder, controller, memory, output device, and output device. The computer uses a binary system. Commands and data are stored in memory in the same status. When a computer performs computation, the Controller is responsible for global scheduling. First, it obtains commands from the memory and then calculates a + B According to the command content (for example, a + B) the number of operations (such as retrieving a and B ). Then, the operands (A and B) and Operation classes (addition) are sent to the Inspector. The Inspector calculates and calculates the result (sum of A + B) based on the Controller instructions) return to memory. This is the simplest workflow in the computer. We will introduce how computers work in the course of computer composition principles. This course not only introduces the composition of the entire computer system, but also details the working principle of each component, such as bus and memory. Finally, the CPU design and other issues will be involved.

At HKUST, hardware labs are also an indispensable part of hardware learning. The digital circuit experiment gives students an opportunity to practice the basic circuit design methods. Modern circuit design is not as troublesome as drawing a circuit diagram and then manually etching it. Instead, it uses a hardware description language (HDL. Knock on the computerCode, Tell the computer what kind of circuit you want to design, the computer will automatically integrate, wiring, and finally burn the results into FPGA or CPLD chip can be used directly. The digital circuit experiment is to let the students experience this process and understand the basic usage methods of HDL and FPGA. As for the computer composition principle experiment, the experiment mainly allows students to design various parts of the computer using HDL, such as register heap, timing control components, SRAM,ProgramCounters. Finally, a simple 8-instruction CPU is designed. The design of a more complex CPU, such as a 16-instruction, 32-instruction, or even a CPU compatible with the 8086 instruction set, is left in the course of CPU design and testing.

With the foundation of the Computer composition principle, the computer can be created. A higher level course is to extend the principle to practice-microcomputer principle. This course takes the commonly-used X86 architecture as an example to introduce the typical commands of the 8086 processor, making interaction between people and computers possible in reality. In this course, we will teach you how to communicate with computers at the lowest level through machine language and assembly language, so that computers can perform calculations according to human instructions. It can be said that by the time this science was developed, computers had entered a practical stage.

A science does not involve Quantitative mathematical computation. It is always impossible to claim to be "scientific. The hardware-related top-level courses at the undergraduate level-computer architecture-Give hardware science the foundation. This course introduces the quantitative evaluation method of computer performance from the mathematical perspective, and provides methods to optimize computer performance from different perspectives: rational Design of instruction sets, assembly line technology, and Reasonable Setting of High-speed cache. So far, the hardware courses for undergraduate courses have come to an end.

The following describes the software knowledge. This part is relatively familiar to non-computer science and technology majors, such as computer applications, computer engineering, and even non-computer majors. Before introducing the entire knowledge system, let's take a look at the typical software development process:

To get a software development task, I want to talk about it as an ordinary project. The first step is to analyze the needs: to analyze the input and output of the program, the mathematical relationship between output and input. After the requirements are determined, algorithm analysis is required to analyze how to solve the problem. Based on typical algorithm design ideas and existing common algorithms, we can determine the algorithms suitable for this problem-whether to use the most in-depth search, wide search, dynamic planning, and greed, or more advanced a * search, clause summary, and so on. After determining the algorithm, you need to determine the algorithm implementation base-Data Structure Based on the set algorithm. For example, if an algorithm requires frequent access to adjacent elements but insertion and deletion operations, it is better to use a linked list. If Random Access to linear elements is required, an ordered table or a hash table is required. After determining the data structure, do not forget to verify the entire software architecture: Is the modules divided by algorithm reasonable enough? Can they work properly? Because the architecture of the entire program is difficult to change once it reaches the actual encoding stage, you should pay attention to it before coding. The next step is simple: coding, debugging, testing, and so on. Of course, the order of the above steps can be changed. For example, if thinking in C ++ is used, we recommend that you write the test code before designing the program, software Engineering requires maintenance of development documents throughout the development process.

Starting from the task of software development, we can easily understand the system architecture of software science. First, we need a high-level language to communicate with computers in line with human thinking. On the basis of it, we can implement the data structure to lay a good foundation for the implementation of algorithms. The data structure is based on algorithms. There are some disruptive program design ideas and norms, such as object-oriented and software engineering ideas. Software science seems to be perfect now. But do not forget that there is also a foundation to support advanced languages: compilers and operating systems. These two courses: compilation principles and operating systems have become a bridge between communication software and hardware.

As for computer applications, there are too many fields involved. For example, artificial intelligence, digital signal processing, computer networks, operating systems, and so on. The operating system is also listed as a computer application, because its implementation also uses a lot of computer science knowledge, such as algorithms and graph theory, which also requires the support of lower-level knowledge. Each field has its own mathematics as its foundation: for example, artificial intelligence requires formal logic, and digital signal processing requires information theory, integral transformation, and sampling theory, computer Networks are widely used in probability theory. Therefore, computer applications can be divided into two layers, the lower layer is mathematics, and the upper layer is a specific discipline.

At this point, the entire Knowledge System of Computer Science and Technology has basically been elaborated. The following figure shows the representation of the image:

 

Then we can find that mathematics throughout the system. It can be said that mathematics is the soul of computer science and technology, and a solid mathematical foundation is a great advantage for this professional students.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.