Computer science and technology learning experience

Source: Internet
Author: User

[Switch] computer science and technology learning experience

Ftom: zhy9425bokee.com/1438004.html

Computer Science and Technology Review
Computer Science and Technology, a science that attracts our students, are already close
I have been thinking about computer science and technology for three years.
It may be divided into computer science and computer technology, because computer science requires a considerable number of practices, and practice requires
Technology is required. Everyone (including non-computer majors) can easily master simple computer technologies (includingProgramSet
But the advantage of computer science is that we know many other things that are not "going into depth". For example:
For example,Algorithm, Architecture, and so on. Non-computer professionals can easily build a chip and write a program
But they do not have a large computer system. Today I want to talk about computer science.
And focus on Computing Theory.

A core issue of computer theory -- starting with mathematics:
I remember that when I was in freshman year, I had higher mathematics every Saturday class, and I had to work every day (that was my six-day working system ). Phang
Some of our classmates shouted at the wrong door: What exactly are we reading? That's good. You didn't go wrong. This is computer science.
Department of learning and technology. The tradition in China's Computer Science Department is to cultivate people who do academic research, especially theoretical research (Fang
It seems that there is a problem, but it is not so satisfactory ). However, the theoretical research on computer has come to an end, such
Network security, graphics and Image Science, video and audio processing, which has a great relationship with mathematics, although it may
It is a non-mainstream mathematics in the eyes of orthodox mathematicians. Here I want to clarify one of my points: we all know that mathematics is
The theory abstracted from the real life, people need to abstract the actual theory, the purpose is to use
Some Mathematical researchers prefer to use some existing theoretical knowledge to better guide the practice.
I do not know one of the following inferences: Incomplete consideration may be a wrong inference. Second, His inference lies in
No prototype can be found in real life, and practices cannot be guided. Strictly speaking, I am not an idealist, Political Course
The theoretical connection with practice at school has always been a guide for me to learn scientific and cultural knowledge (at least I think computer science
And technology should be in this direction ).

In fact, it is not enough for us to study mathematics, optics, and advanced mathematics in computer science.
It's a higher mathematics. We should study mathematical analysis like a mathematics department.
The science of mathematical analysis. People who study computers have very complicated feelings for it. It is biased
Certification-Based Mathematics Courses are very helpful for us to cultivate good analytical skills. My software engineering mentor north
Wang Yihua, a student from the Institute of Mathematics and Sciences of the University of Engineering, once taught us that mathematics department students mostly work in software companies.
Design and analysis work, while many students in the computer department are programmers, the reason is that the students in the Mathematics Department analyze and push
From the perspective of training, we need to be far above us. The strange phenomenon of the year was: Computer students
The mathematics foundation of high school is one of the top two in the school (hoping not to offend other students), and the teaching hours are second only
Department, but the effect after learning is not satisfactory. Don't all students work hard? I don't see it, and the direction is wrong.
Not necessarily, but what is the cause? It is thought-provoking.

In my personal opinion, students in the computer department have different requirements for mathematics than those in the mathematics department.
Larger. The so-called "Advanced Mathematics" in non-mathematics majors is nothing more than deleting the difficult theoretical part in mathematical analysis.
To emphasize the use of formula calculation. For computer systems, the most useful part of mathematical analysis is that it is deleted.
In theory. It is hard to hear. For computer students, the so-called "Engineering Mathematics" that pursues Computation"
I have thoroughly entered the misunderstanding. Just remember the formula of a bunch of curved points, can you understand mathematics? That is not as good as the current
Why bother to remember when using the current query? Otherwise, use mathematics or matalab.
My favorite task in the Department is to recommend reference books to my schoolmates. Mathematical Analysis books in Chinese, usually
He believes that the "new lecture on Mathematical Analysis" of Dr. Zhang zhusheng is the best. If you have a good math, go and see.
Fikhkingoz's "calculus tutorial" is fine-but I don't think it is necessary. After all, you don't want to go to the mathematics department.
Go. The mathematical analysis topic set of gimidorvic is also basically a computing type. The book is famous.
The most important thing is the establishment of mathematical thinking. What we want to do in the information society is
Efficiency: Leave computing to the computer. However, what we use now seems to be the mathematical analysis of Fudan University.
It is also a good teaching material.

China's so-called Higher Algebra is equivalent to linear algebra plus a polynomial theory. I thought this was a good thing, because
In order to make students feel that algebra is a structure earlier, rather than a pile of matrices. I have to mention Nanjing here
Lin chengsen, a university teacher, and Sheng songbai's "Higher Algebra" are quite comfortable. This book is quite comprehensive
The basic elementary results of polynomials and linear algebra are also provided with some useful and profound internal
Such as Sturm sequence, shermon-morison formula, and generalized inverse matrix. As an undergraduate
After reading this book, you can be a master. The better advanced Algebra Teaching Materials in China are also those used by Tsinghua computer department, Tsinghua
Published by the publishing house. There are a lot of bookstores. You can see it at a glance. From the abstract algebra point of view, the results in higher algebra are not
It is just an example of the nature of the algebra system. Mr. Mo zongjian's on behalf of Mathematics
Theory. However, Mr. Mo's book is very deep, and it is difficult for undergraduates to accept it. You may wish to wait for yourself to mature.
Read more.

As discussed above, students in the Computer Science Department are studying advanced mathematics: even more, they must know why. You learned
The purpose should be: To apply abstract theories to practice, not only to grasp the problem-solving methods, but also to grasp the problem-solving methods.
Thinking, learning theorem: it is not a simple application, but a learning process that masters the origin and training of the theorem.
Your own reasoning ability. Only in this way can we achieve the purpose of learning this science, while also narrowing down our relationship with the mathematics department
Thinking gap between students.

The course of probability theory and mathematical statistics is very important. Unfortunately, most colleges teach less things. Less East
Now we can see at least a random process. I have never heard of the Markov process before graduation. This is a shame for students in the Computer Science Department.
Insults. Without a random process, how do you analyze networks and distributed systems? How to Design randomization algorithms and protocols? It is said that
Tsinghua's computer department has a "random mathematics", which is a required course. In addition, discrete probability theory is applied to students in computer science.
It has special importance. Our National Engineering Mathematics is about continuous probability. Now, some schools in the United States
We opened a simple "discrete probability theory" course, simply removing the continuous probability and deepening the discrete probability. We do not
This must be done, but there is no doubt about the discrete probability. I think this work should be done as early as possible.
Okay.

computational methodology (also known as mathematical analytics in some schools) is the last course given to us by the Institute of Mathematics and mathematics. Generally,
students have limited emphasis on this course and think it is useless. It's not just a set of formulas! In fact, it is essential to create a graphic image
and to deepen cryptography. In addition, in many scientific engineering applications, the calculation is based on the number
value. This course has two extreme lectures: a classical "Numerical Analysis", a complete lecture on mathematical principles and
algorithms; the other is the increasingly popular science and engineering computing, which simply teaches students to program with software packages. I
people think that students in the computer department must understand why students in our computer department want to take this course, I am
I prefer to use a computer after learning the theory well. It is best to use C language or C ++ programming. There are still a lot of books to work in this direction. Here we recommend that you use the Higher Education Press (CHEP) and Springer press
(Springer) computational Methods, written by the department of mathematics at Huazhong University of Science and Technology
), in this regard, huake has done a lot of work in China, and I personally think that
This is the best, at least in terms of programming: evaluate any mathematical function, equation root, linear equations
solution, interpolation method, numerical integral, field differential equation numerical solution. Li Qingyang's theory is too strong, and it is not tightly integrated with real applications.

Every school will have a discrete mathematics in this department, involving set theory, graph theory, abstract algebra, and mathematical logic. No
Is it too time to squeeze so much content into a discrete mathematics course? In addition, students in computer science do not understand
Combination and number theory are also huge defects. To do the theory, it is too big to understand combination or number theory. Ideal
In terms of the status, it is best to separate six courses: Set, logic, graph theory, combination, algebra, and number theory. Of course this is not happening
Because there are not so many lessons. In the future, we may take three courses: Set and logic, graph theory and combination, algebra and number.
Theory. (In this regard, our school has already started to do it.) No matter how the class starts, students will always learn the same thing. The following are
Let's talk about the three groups above.
Classical Set Theory: Beijing Normal University has published a book titled basic set theory. Mathematical logic: Lu zhongwanjiao, Institute of software, Chinese Emy of Sciences
The "mathematical logic for computer science" is good. Now we can find the lecture video from Professor Lu zhongwan,
Visit http://www.cas.ac.cn/html/dir/2001/11/06/3391.htm. In general
It is not difficult to get started with logic. Ordinary High School Students can understand it. However, the more you move back, the more you feel unmeasurable.

After learning the above books, if you are still interested in further research, you can try
Introduction to axiomatic set theory and a course of mathematical
Logic. Both of them have the imported version of The World Book Publishing House. If you can solve these two problems, you can say that
When you get into the door, you don't have to waste time listening to me.

It is said that only 30 people in China understand Graph Theory at most. This statement is not false. Graph Theory is very skillful, almost every
There is a unique way to solve the problem. But this is also the charm of it: as long as you are creative, it
This gives you a sense of accomplishment. My mentor said that you can write a thesis by just writing a piece of things in graph theory. Everyone can
The content will go deep! In the graph theory book in China, Mr. Wang Shuhe's "graph theory and its algorithms" are very successful.
On the one hand, its content is comprehensive in Chinese textbooks. On the other hand, its emphasis on algorithms is very suitable for computing.
Computer System (originally a textbook of the Computer Science and Technology University ). With this book, let's take a look at several more translations, such as Bondy &
Murty's graph theory and its application, and the translation of graph theory and circuit network by the People's post and telecommunications Publishing House, etc.
Tiger, enough for undergraduates. Furthermore, books from the world will introduce the "Modern Graph Theory" of the GTM series ".
This book is really classic! It seems that another Chinese company has published a translation version. However, to learn this level, read the original version.
Okay. This book also marks the entry of graph theory.

In discrete mathematics, we have a world-class expert at the Experimental School of Beijing Institute of Technology, called the Senior Scholar, probability of Fudan University.
After graduation, I have taught advanced mathematics, linear algebra, and probability theory, and finally switched to discrete mathematics. I have published countless books.
The collection has a classic article in Singapore. You may want to learn the true meaning of discrete mathematics. This teacher's Class I
I have heard of this topic and it is extremely classic. However, you need to extract the essence from his casual words. Talking to him
I also found a profound problem. Although Mr. Shao wrote countless books, everything was similar according to his own statement.
He said that there are restrictions on the outline and it is inconvenient to write more. This is no wonder. I seldom heard of writing books abroad.
Based on the outline (even if there is, the content is too broad), do not dare to move the thunder pool half step, this is not to look at who
All the same. The books of the external version are good here. The latest scientific and technological achievements are all discussed here. Let's not talk about anything else, at least
Is "keeping up with the theoretical knowledge of the Times ".

The combination does not feel very suitable for Chinese books. Read the classic "Specific mathematics" co-authored by Graham and knuth,
Xi'an University of Electronic Science and Technology Press has a translation version. Abstract Algebra: The Chinese Classic is Mr. Mo zongjian's "substitute Mathematics ".
This book is a textbook of Peking University mathematics department and is well received. However, this book is too deep for undergraduates. You can first learn 1
Some other teaching materials, and then look back at "substitute mathematics ". There are more international classics, and there is one in the GTM series.
Heap. The recommended one is not classic, but the simplest
Single, the easiest to learn: http://www.math.miami.edu /~ EC/book/this "Introduction
Linear and abstract algebra "is very easy to understand and combines abstract algebra with linear algebra,
It is ideal for beginners. Students from our school have favorite items.

In terms of number theory, there is a classic Chinese "Elementary number theory" known for its difficulties (Pan's brother, Peking University edition ). Retracing
A little bit more classic (world-class) and more difficult "number theory guidance" (Mr Hua Luogeng's masterpiece,
The science version, the 9-Chapter bookstore re-printing, traditional Chinese may seem more difficult ). Let's take a rough look at the basic chapters.
Undergraduates are enough. However, this is only elementary number theory. After graduation, you must take an English
Books, such as Bach's "Introduction to algorithmic number theory ".
The foundation of computer science theory lies in algorithms. Currently, many departments provide algorithm design and analysis for undergraduates.
Very correct. Looking around the Western world, no third-stream or above computer system does not take algorithms as a required discipline. Algorithm
Currently, it is recognized that Corman and other "Introduction to algorithms" are the best teaching materials. For beginners, this
One book is sufficient and you do not need to refer to other books.

Let's talk about formal languages and automated machines. I have read beiyou's teaching materials. I should say it is clear. However, it is better
Note: The role of formal language and automatic mechanism is mainly used as a computing model rather than compilation. In fact, compile
The front-end is already in the dead field and there is no open problems. Dr. ban xiaojuan of Peking University of Science and Technology once said that the compiled
The technology is quite mature. For this purpose, we do not need to learn formal language-just use YACC or anything.
. Beiyou's book is relatively good in China, but in depth, it has a great relationship with the Computability.
Limitations, modern sense is also insufficient. Therefore, it is recommended that interested students read English documents, but this aspect does not appear to be introduced in China.
. You can take a look at the interactive publishing online. After getting started, we will integrate the formal language with the model defined in the automatic machine,
It is interesting to compare with the model defined by recursive functions in mathematical logic. Now I know what it is
"The beauty of the palace room, the wealth of hundreds of officials "!

The relationship between computer science and mathematics is a bit strange. 20 or 30 years ago, computer science was basically a mathematical
Branch. At present, computer science has a wide range of research fields and many researchers, in many ways the opposite
To promote the development of mathematics, it can be said that children grow taller than their mothers. But no matter what, this kid
The child is always in the mother's blood. This blood is the mathematical underpinning of Computer
Science (mathematical basis of computer science), that is, theoretical computer science. Originally in the Oriental University City Library
I have read a Chinese version of 1970s (I love to pay attention to this kind of book), probably called computing
Machine mathematics. If the book was put at that time, it was definitely a good book, but now it seems that the scope is still wide,
The depth is much worse, but it is recommended that a freshman can take a look at it, at least to make your computing mathematics
Door.

What is the most common word that is put together with theoretical computer science? A: discrete mathematics. The relationship between the two is as follows:
So that they become synonyms in many occasions. (This is also reflected in the previous book)
In general, mathematics is centered on analysis. Students in the Mathematics Department should study the mathematical analysis for three or four semesters.
Variable Functions, real-time variable functions, and generic functions. Real-time variables and functional functions are considered by many to be the entry of modern mathematics. In things
Management, chemistry, and engineering applications are also focused on analysis.

With the emergence of computer science, some mathematical branches that were not previously very valued suddenly become important. People found that,
The mathematical objects of these branches are significantly different from those of traditional analysis: the problem solution of analysis and research is continuous.
And thus the differentiation and integration become the basic operation; and these branches research objects are discrete, so there is little organic
Such calculation is performed. These branches are called discrete mathematics ". The name of "Discrete Mathematics" is getting more and more
As a result, the traditional mathematical branch centered on analysis is relatively called continuous mathematics ".

After decades of development, discrete mathematics is basically stable. Discrete Mathematics is generally considered to include the following subjects:
1) set theory, mathematical logic and metamathematics. This is the foundation of mathematics and computer science.
2) graph theory, algorithm graph theory, combined mathematics, and combined algorithms. Computer science, especially the core of Theoretical Computer Science
Yes
Algorithms, while a large number of algorithms are built on Graphs and combinations.
3) abstract algebra. Algebra is ubiquitous and is very important in mathematics. In computer science, people are surprised
Finally, we found that there were so many applications in algebra.

However, is it so easy to add the "discrete" hat to the theory of computer science? Until
About a dozen years ago, a master finally told us: No. D. E. knuth (how great he is, I don't want to use me
(Nonsense) Stanford opened a brand new course concrete mathematics. The term concrete is in
There are two meanings:
First: abstract. Knuth believes that the objects of traditional mathematical research are too abstract, leading to specific problems.
Insufficient concern. He complained that the mathematics he needed in his studies often did not exist, so he could only create one by himself.
Some mathematics. To direct application-oriented needs, he must advocate "specific" mathematics. Here I am doing a little simple
Description. For example, in the theory of set, mathematicians are concerned with the most fundamental problem, such as the nature of the systems of justice.
The nature of some specific sets, various common sets, relations, and mappings are similar. mathematicians do not think they are heavy.
Yes. However, what is used in computer science is exactly these specific things. Knuth can see this
Point, worthy of being the first computer in the world. Second, concrete is the continuous (continuous) plus discrete
). Continuous mathematics and discrete mathematics are useful mathematics!

the combination of theory and practice-the scope of Computer Science Research
the previous section is mainly from the mathematical perspective. From the computer point of view, the main research areas of theoretical computer science currently include: Computational Theory, algorithm design and complexity analysis, cryptography and information security, distributed computing
theory, parallel Computing Theory, network theory, biological information computing, computational geometry, programming language theory, and so on. This
some fields are intertwined, and new topics are constantly raised, so it is difficult to figure out a clue. If you want to engage in this
, we recommend that you read a series of books from the Chinese Computer Society, at least representing the authority of China. The following is an example
.
due to the application demand, cryptography is now a hot topic in research. Cryptography is based on number theory (especially computing
Number theory), algebra, information theory, probability theory, and random processes. It is sometimes used in graph theory and combination. Many
people think that cryptography is encryption and decryption, while encryption is to use a function to disrupt data. This understanding is too simple
.
modern cryptography includes at least the following levels:
first, the foundation of cryptography. For example, is it really difficult to break down a large number? Is there a general tool to prove the Agreement
correct?
second, the Basic Topic of cryptography. For example, a better one-way function and signature protocol.
third, advanced cryptography issues. For example, the length of the zero-knowledge proof is used to share secrets.
fourth, the new application of cryptography. Such as digital cash and traitor tracking.
there are also many important theoretical problems in distributed systems. For example, Process Synchronization and mutex protocol. A
classic result is that, when the communication channel is unreliable, there is no definite algorithm to implement inter-process collaboration. Therefore, the Improvement
TCP three-way handshake has almost no significance. For example, timing problems. A commonly used order is the causal order, but the causal order is not long before
there is a theoretical result... for example, there is no practical way to deal with deadlocks perfectly. For example, if you have studied the system, just give it to yourself!
if a computer has only theory, it is only a branch of mathematics, rather than an independent science.
In fact, in addition to theory, computer science has a broader sky.

I always think that four years is not enough to learn basic computer knowledge, because it is too wide ......
In this regard, I would like to talk about the computer basics that we have set up in various schools. In Colleges and Universities
Basic Course of computer science is a required course for all majors specified in Chinese High Education Department. The main content is to make students get started
Master the history of computer development, learn how to use the operating system, text processing, table processing functions and preliminary
Network application function. However, the goal of teaching this course in the Computer Science Department cannot be the same. In computer systems
The goal of the course should be to allow students to fully understand the development of computer science and clearly grasp the scientific research of computer science.
Research direction, the frontier of development is the position of each course in the entire discipline system. Understanding the learning of various disciplines
Objective: To Learn content and application fields. This gives students a general understanding of the entire subject at the early stage of their study,
In order to clearly learn what to learn and how to learn in the future. The basic computer application skills should be placed in
Two or more back-end students should be able to explore. This is important. Recommendation
A book: Computer Culture (New Perspective of computer) published by the Mechanical Industry Press
Science). After reading this book, I realized that I was a beginner in computer science.
I learned what computer science is. In addition, in the introduction to computing science, written by Zhao zhizhuo from Xiamen University
Many classic theories are hard to find in similar books. Maybe you will understand the most basic question.
Question: Why is computer science more accurate. This book can also become an excellent book in the world.

A top-notch computer science student should never be a programmer, but he must be a programmer first.
Hand. When I went to college, my first professional course was C language programming. The computer-related students talked about
Some people rely on programming to eat. There has been such a competition in the computer department of the experimental College of Beijing University of Technology.
On (csdn also exists today), which one should be used for the first programming language. In my opinion
The language is a short term, and the key is to develop good programming habits. When the teacher told us to lay the foundation and learn a new one
The language only takes one week. Now, I don't think it will take a week. The premise is to lay a good foundation first. Don't hesitate
Now, let's talk about it again. When you make a good decision, someone else will already have a few languages.

Assembly Language and microcomputer principles are two very annoying lessons. Your mathematical/theoretical foundation is good, and you cannot take advantage of it.
The order between the two courses is better than that between the first and first courses. No matter which course you want to learn first, it will involve another course.
. Therefore, we can only calm down and ponder over it. This is a typical engineering class, and it does not require too much intelligence and patience.
Wu, but need to gradually realize. Books about these two courses are not hard to find in the computer bookstore. Get the latest version
For more information, see. Professor Wang aiying of Tsinghua University recommended "Computer Composition and Structure" for composition principle. Assembly
You can use 8086/8088 languages, and you must learn 80x86 assembly language later. Great practical value, not lagging behind, knot
Well structured, highly efficient writing and writing of viruses. A little compilation is embedded in advanced languages for underlying development, which is always inseparable from him.
Tsinghua University, Shen meiming, IBM-PC assembly language programming. Some people say they do not want to understand the computer architecture,
I also don't want to create computers, so I think there is no need to learn courses such as computer principles, assembly languages, and interfaces.
Is it reasonable? Obviously unreasonable. These things must be mastered sooner or later and must be in contact with each other.
Compared with other professional students. It is very important and impossible to understand this during project creation.
It is said that only people who only know the technology can be a coding worker at most, and it will never be comprehensive.
Solve the design of the entire system, and the code workers are older and less valuable. There is still a question about the composition principle.
When I took this course, the teacher omitted the CPU working principle and microprogram design, on the grounds that our country
The CPU technology is not as good as other countries. After such a long period of time, it is hard to get a 100,008 improvement from Intel.
We recommend that you stop learning. I don't think this is a problem in different schools! If it is like his
That means that China's computer science can be stopped in any direction, including software and hardware, applications, and a few items that have been used in the United States.
But what are we doing here? The concept of teaching needs to be changed.

Simulation Circuit, nowadays, not only are computer students confused, but electronics students are also mostly afraid. If you really want
We recommend that you take a look at the "circuit principle" of Qiu Guanyuan first, and then look at the Simulation Circuit background.
Enough. Textbook: Kang Huaguang's "Electronic Technology Basics" (Higher Education Press) is still good (Department of electronics in our school)
In use ). If you are interested, you can refer to the Book of Tong shibai.

Digital Circuits are much better than analog circuits. We recommend that you take a look at the digital representation written by Professor Liu yingyu of beigong University.
Performance figures all said this book is of great reference value (from the Mechanical Industry Press ). The reason is clear and practical
Gao, a kind of feeling of "Enjoying science" when she can hear her courses. YAN Shi's book from Tsinghua University is also a book
Good teaching materials. Unfortunately, the integration circuit is missing. I'm really interested. Let's take a look at large-scale digital system design.
(Beijing airlines uses a lot of products ).

How to teach the computer system structure is still under discussion internationally. Stallings is a good teaching material available in China.
"Computer Organization and ubuntureesigning for performance"
). The most popular internationally is "computer architecture: aquantitative approach",
Patterson & Hennessy.
The operating system can choose the kernel design and implementation of the operating system and the modern operating system.
I. Both parts can be regarded as classic, and the only drawback is that they are not strict enough in theory. However, this field belongs to hardcore.
System, so in theory, it is also excitable. If you want to look at the theoretical aspects, we recommend the Tsinghua University Press
As a system, written by Zhang yaoxue, director of the High Education Department. Our teaching material uses that book. We also recommend
Operating system principle, published by the mechanical industry press. This book is a half-distance inspection by Chinese operating system experts at Microsoft.
Years ago, I wrote my work for more than a year. I teach operating system experts in addition to Zhang yaoxue from Tsinghua University.
Long) almost everyone has participated. Bill Gates writes the order in person. It not only integrates windows and XP, but also detailed operations
As the kernel of the system, and later I will talk about some windows programming basics, with the taste of a foreign version of books, and some of the above
Rong can be said that only the book at home and abroad has a detailed introduction to the Windows kernel,
If you have completed the formal linguistics first, I only need to learn four algorithms at the front end of the compilation principle: the easiest way to implement
Recursive descent; Best top-down algorithms LL (k); best bottom-up algorithms LR (k); LR (1) Simplified SLR
(Maybe there is another simplified lalr ). The backend belongs to the engineering nature and is naturally an another story.
Recommended materials: "Compiler Construction Principles and
Practice is the translation of compilation principles and practices (published by Mechanical Industry Press)
To learn about databases, we should remind you that VFP, VB, and Power Builder are not used to understand databases. (This world
I think there are too many people who know the database !) Database Design is both scientific and artistic, while database implementation is typical.
Project. In a sense, databases are the most typical computer course-integration of science and technology and mutual penetration.
Transparent. In addition, it is a new feeling to recommend that you go over and look at the database technology after learning software engineering. Push
Recommended materials: "Database System Concepts" by Abraham silberschatz. Complete knowledge
We also recommend that you take a look at the data warehouse translation of the Mechanical Industry Press.

The standard textbooks for computer networks are also translated by Tanenbaum's "Computer Networks" (translated by Tsinghua University ).
). In addition, Xie xiiren's "Computer Network tutorial" (People's post and telecommunications Publishing House) is recommended to give a clear explanation of the problem.
Chu, references are also authoritative. However, the network also belongs to the hardcore system, so reading books is not enough.
We recommend that you read the RFC more. You can download the RFC file by number at http://www.ietf.org/rfc.htm. Read from the IP address.
When you can master about 10 common protocols, few will dare to underestimate you. For more work, I can see it in the network settings.
It is better.

The importance of the data structure is self-evident. after learning the data structure, you will make a revolutionary change to your programming ideas.
Baptism has a clear understanding of how to establish a reasonable and efficient algorithm. For algorithm creation, I think everyone
Note the following:
When you encounter an algorithm problem, you must first know whether you have handled the problem before.
If you have never seen it before, consider the following:
1. Is the problem based on a known and familiar data structure (such as a binary tree? If not, you need
Design the data structure.
2. Which of the following types of algorithms is required? (Create a data structure, modify the data structure, traverse, search,
Sort ...)
3. The mathematical nature of the algorithms required for analysis. Do they have recursive features? (For recursive programming, as long
A reasonable parameter table and a condition for Recursive termination are designed .)
4. Continue to analyze the mathematical nature of the problem. Based on your previous programming experience, imagine a feasible solution,
It also proves the correctness of this solution. If the question has time-space requirements on the algorithm, it proves that your vision meets its requirements.
Requirements. Generally, time efficiency and space efficiency are difficult to achieve at the same time. Sometimes it is necessary to create a secondary storage method to save time.
.
5. After a period of analysis, you have some ideas to solve this problem. Or, you can
Describe your algorithm in a natural language. Continue to verify its correctness and try to find out the errors.
Solution: when necessary (conflicts that cannot be resolved are discovered), overturn your own ideas and start from scratch.
6. After confirming that your ideas are feasible, write the program. Code In the process, consider all kinds of problems as much as possible
The program should have a good structure and be annotated in key areas.
7. For example, execute your program with a pen on paper to further verify its correctness.
If the problem does not match, the cause of the analysis is the programming problem or the algorithm idea itself.
8. If the program has passed the above verification, it will be further optimized or simplified.
9. Write ideas and comments.
Specific algorithm ideas can only be obtained through your own knowledge and experience.
Regular (otherwise, all programmers can get laid off, and they can use machines to automatically generate code). To have a rich imagination
It means that when a road is disconnected, you should not be arrogant or dare to overturn your own ideas. I am just a beginner.
Some of the above experiences are for your reference and discussion only.
I think what we think about artificial intelligence is worthy of careful research.
It is a very promising discipline. One of the founders of AI in China, Beijing Technology
Professor Tu xuanyan of the University (this old gentleman is the mentor of Dr. Li xiaojian, my mentor) defines AI as follows:
Intelligence is a technical science that imitates, extends, and extends human and natural intelligence. On the us ai official education website
Artificial intelligence, or AI for short, is
Combination of computer science, physiology, and philosophy. AI is a broad
Topic, consisting of different fields, from machine vision to expert
Systems. The element that the fields of AI have in common is the creation
Machines that can "think ".
Questions about this subject research include:
(1) symbolic: the basis of symbolic computing and program design, Knowledge Expression Methods: knowledge and thinking, generative rules
Then, Semantic Network, Method for Solving the first-level Predicate Logic problem: Search Strategy, heuristic search, search algorithm, Problem
Protocol method, predicate algorithm: Principle of generalization, Process Expert System: Methods and tools for establishing an expert system
(2) connectivity (neural network school): in 1988, the US authority pointed out that the development of the network in the database has taken a straight line.
Rising, neural networks may be the only way to solve artificial intelligence.
I think for AI learning, you must not learn the same as learning mathematics and some off-the-shelf conclusions.
Analysis of the problem, it is best to use the program design implementation, here we recommend to you ACM best doctoral thesis winner tu xiaoyuan Bo
Shi's book "Artificial Fish-artificial life methods of computer animation" (Tsinghua University Press ). Artificial life
I don't know the famous Tu's father and daughter. Of course, artificial is the first choice for AI books.
Intelligence a new synthesis Nils J. Nilsson. What is the originator!
I would also like to say a few words about network security. With the development of computer technology, the informatization level of the whole society is abrupt.
With the rapid development of computer network technology, the network has become an indispensable component in all fields of society.
Points: as long as there is a network, the network security problem must be solved. Learning Network security is not a simple problem.
Simply collect some hacker tools to blacklist others' websites. Instead, you need to learn their mathematical principles and implementation principles,
The underlying working mechanism can be clarified so that most existing and new security problems can be solved.

I want to talk about some edge science in Computer Science. For an enterprise
Isn't it just a few programmers sitting together? You write a program, and I write a program? Apparently not. Software Engineering
It is a typical synthesis of computer science and mathematics, management science, psychology, sociology, and other disciplines. It makes us
People engaged in theory and technology entered a society. You should not only consider the advantages and disadvantages of the program, but also consider
The difference between order and software, the difference between software and software products, the market prospects of software products, how to better
Communication between people. In this regard, I am still in the learning stage, and I will write it later.ArticleLet's recommend a few books: Best-selling
The 20-year-old myth of man and month (the Chinese version of Tsinghua University and the photoprinting version of China Power Press) and software engineering
The method of the author's research (translated by the Mechanical Industry Press) and the man piece (it is said that every department of Microsoft
I have read this book. I suggest you and those who want to be bosses to see what is in a software enterprise.
Personnel) and Microsoft's science and art of software development and the management and culture of software enterprises (Research soft
Of course, it is necessary to study the successful experience of Microsoft !)

I think the learning of computer technology is like this: Any science in a school is lagging behind.
I think that a certain technology I have mastered is already invincible in the world. Although Java, VB, C, and C ++ are widely used,
How can we ensure that the day has not been eliminated? I think the birth of the. NET platform and the first appearance of the language X # can be explained.
Question. In other words, when we master a new technology, there is a new technology. As a contemporary college student
There should be a quality that keeps up with scientific development. For example, some people say that I like to directly design webpages.
Write HTML, do not want to use any Frontpage, Dreamweaver. It is good to write web pages in a language, but it is efficient.
Why don't you do it? Just to show your own high level, unique? I think a really high level is yes
People who can accept new things as quickly as possible. The development of advanced programming languages is changing with each passing day.
Just as people are talking, I think you should have some experience in XML. Is it true that we need to write everything?
Compilation, to show that your level is high, it is better to write it directly in machine language. Conversely
The key to accepting and using new technologies as quickly as possible lies in your understanding of computer science.

Computer technology involves a wider range of things. I'm afraid I can't tell a lot about it for a year or a half. I just want to mention
Let's just say that technology and science cannot be separated. If we have learned science well, we can develop technology at the same time.
Strategy. It is like English. People must have an interpreter to communicate with foreigners. Now all people on the road can speak English. Even
The champion of the 21st century English speech contest won't be able to win any English students. The same is true for computers.
The right reality is that computers are actually just a tool. If they do not have any other qualities
Although students cannot find a job, when other professionals master computer technology one day
It is much better than us. The reason is that most of the problems solved by computers are actual problems.
Few. A single computer technology has no foothold.
I want to point out that before learning every course, you must first understand the learning purpose of this course. This course
The application area of the Section. According to the learning status of my peers and lower-grade students
Few people know the purpose of learning a subject, and they do not know what to do when the final examination is over. This is the loss.
Go to the meaning of computer science. Of course, this has nothing to do with the existing educational ideas.
In general, from the perspective of education, the Curriculum Arrangement of domestic colleges and universities is not very reasonable, emphasizing theories and unwilling
Theoretically, in-depth education is impossible to accept new technologies, and it is impossible to avoid new technologies. I think key questions
It is difficult for Chinese universities to break through the status quo. Although we know it abroad
The superiority of education, but why cannot we take action? Even if it is a little bit refined. We need
To change. From our perspective, most people have not learned the academic level of computer science or
Have the tenacity of learning computer technology. When I was a freshman, my computer science beginner tutor, Huaibei coal
Professor Wang Aiping of the normal college once said to me: "When you choose computer science
It means you have to fight for it all your life ...... Behind you is a cliff.
You can't move back ."
Some students say that they have learned too many things in this way, and some of them are not useful. I want to make an image for example:
People learned from the school are all sphere and all aspects of knowledge should be possessed. But the sphere is needed in society.
Few, but they need bricks and tiles, that is, the talents proficient in a certain line. However, for objects of the same volume, use a sphere
It is the most convenient and easy to transform. There are many students in the school. To make more students adapt to this society,
The school cannot make all the students into a sphere, and then let the society re-process these students,
Become a truly useful talent. Even if you are very clear about what you will do in the future, you are very determined
Take your own path. You must also take this step. The world is constantly changing and you cannot predict the future. Think clearly, nu
Let's do it!
It is necessary to end this "joke" and I will not be able to laugh at it any more. In fact, there are still many basic courses worth it.
A joke. Donnell: I have limited accomplishments. I dare not make anyone laugh again. For the extensive and profound computer science, I can only say that I
It will always be a beginner. The final statement: these are only for undergraduate courses. Even if all of these are done
The road ahead is still long. We need to fight for computer science. learning computer science requires toughness and innovation.
New, need passion. Profound theoretical knowledge and courage to accept the challenges of new technologies are what our generation should do.
Some qualities. Finally, let's say, "Wake up every day with a feeling of passion
The difference technology will make in people's life !".

When I was a freshman, I accidentally found the post "Hu Kan (theory) computer learning" by Nanjing University's netizen sir.
I played a vital role in my college life and became friends with him.
On the basis of this, I have improved the theories that I think are not suitable for, corrected some ideas, and combined with my
The learning situation has greatly changed. It is worth mentioning that some computer theories have been added
It can be combined with the Teaching Situation in China and the actual situation of our learning. Thank you for your support. This article
It can be completed quickly. Here I just wrote down what I thought when I was learning computer science. It is very immature.
Compared with the original article, we added some reference books and deleted some outdated and hard-to-find materials. And for some
The problem was elaborated in more detail, and some new ideas were added. I hope you will discuss more and make improvements.
Let's work together!

Related Article

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.