This science of computer science and technology has deeply attracted our students. It has been in the computer system for nearly three years. I have done some thinking. I have always believed that the major of computer science and technology, in the undergraduate phase It is impossible to divide into computer science and computer technology, because computer science requires considerable practice, and practice needs technology; each person (including non-computer professional), master simple computer technology is easy (including programming), but The advantage of computer majors is that we have something that many other majors do not "deep", for example, algorithms, architecture, and so on. Non-computer professional people can easily make a chip, write a program, but they can't do a large system that the computer can make. Today I want to talk about computer science and will focus on calculation theory.
A core problem of computer theory - talking from mathematics: remembering the big school in the same year, higher mathematics every Saturday class, every day, the job system is working on the six-day work system). Some students exclaimed the wrong door: What is the system of this? Yes, you didn't go wrong, this is the computer science and technology department. The tradition in my country's computer science system is to cultivate people who do academic research, especially theoretical research (direction is not necessarily problem, but doing so much). Theoretical research on the computer, said in the end, such as cyber security, graphic image, video audio processing, which direction has a big relationship with mathematics, although it is a non-mainstream mathematics in the eyes of orthodox mathematicians. Here I also want to clarify my point of view: We all know that mathematics is the theory of abstract in the actual life, people to abstract theory into theory, the purpose is to use abstract theory to better guidance practice Some mathematics research workers like to use some existing theoretical knowledge to derive several festivals. I don't know that one: I don't know how to consider it. Second: His Inference can't find prototypes in real life, it is not guided practice. Strictly said that I am not an idealist, the theoretical connection between the political class, I have always guided the navigation mark I learned about scientific and cultural knowledge (at least I think computer science and technology should be in this direction).
In fact, our computer system is not enough (typical engineering institutions generally open higher mathematics), we should learn mathematics analysis like mathematics (Tsinghua Computer is similar to mathematics), mathematics Analysis of this science, we have a complicated feelings for people who learn to work. It is in that it is a proven math course, which is very helpful for us to cultivate good analytical capabilities. Mr. Wang Yihua, the Northern School of My Software Engineering Master, has taught us that the students of the mathematics go to the software enterprises to make software design and analysis work, and the computer system is a programmer, the reason is that mathematics Students analyze reasoning skills, from the perspective of being trained. The strange phenomenon of the year is: the high school mathematics foundation of the computer system is a number of all-calios (I hope that the classmates who have not charged the other series), the number of teaching courses is only secondary to mathematics, but the effect after learning is not satisfactory. Is it a student who is not working hard, I have not seen it, the direction is wrong, it is not necessarily, why is there anything I am thinking.
My personal is: the student of the computer system, the requirements for mathematics are different from mathematics, and the difference in physical classes is greater. The so-called "higher mathematics" of the Number of Number Schools is not unrestricted to delete more difficult theories in mathematical analysis, emphasizing the set formula calculation. For the computer system, the biggest use of mathematical analysis is the theoretical part of being deleted. It is difficult to listen to it. For the computer system, the so-called "engineering mathematics" of the pursuit of calculation will have completely entered the misunderstanding. Remember the formula of a pile of spectacles, can you understand mathematics? That is better than the current check, why bother? Otherwise it is good to use Mathematics or Matalab. The most loved thing in the line is to recommend reference books for the schoolmates. Chinese mathematical analysis, generally believe that the "New Speaking of Mathematical Analysis" is the best. In case, your mathematics is so good, then see Philikan's "Subcommittees" "" " Jimmydovich's "mathematical analysis problem set" is basically a calculated stuff. The name of the book is very good, and it is not suitable for us. It is important that the establishment of mathematics thought, life we seek is efficient in the information society, calculate this stuff or leave it to the computer. However, now it seems to be a "mathematical analysis" of Fudan University is also a good textbook. China's so-called higher algebra, is equal to linear algebra, plus a point of polynomial theory. I thought this is a good side, because you can make students feel that the algebra is a structure, not a bunch of matrices. Here, the "higher algebra", the two teachers of Lin Chengsen and Sheng Songpi, and Sheng Songbai, and feel quite comfortable. This book comprehensively contains the basic primary results of the polynomial and linear algebra, and also provides some useful and deep content, such as Sturm sequences, Shermon-Morrison formulas, generalized inverse matrices, and the like. It can be said that as undergraduates can eat this book, they can be masters. Good domestic high album materials also have the Tsinghua Computer System, Tsinghua Publishing House published, a lot of bookstores, I will know. From the viewpoint of abstract algebra, the results in the higher algebra are just some examples of algebraic system properties. Mr. Mo Zongjian's "Mathematics" is a deep discussion. However, Mr. Mo's book is very much very well. As undergraduate, I am afraid that it is difficult to accept, but I will wait until I have matured some readings.
As discussed above, the computer system has studied higher mathematics: I know that it is better to know. The purpose of your learning should be: Apply an abstract theory to practice, not only to master the questions of the problem, but also master the spiritual ideas, but to theorem: Not a simple application, but master the proof process, master theorem The origin, train your own reasoning ability. Only in this way achieved the purpose of learning this science, it also narrowed the gap between our thinking between our classmates.
Probability Theory and Mathematical Statistics This class is very important, but unfortunately, most colleges will talk less. Less things now look at at least a random process. I haven't heard of the Markov process in graduation, which is the shame of the computer system. No random process, how do you analyze networks and distributed systems? How to design a randomized algorithm and agreement? It is said that the Tsinghua Computer Department has "random mathematics" and it is a compulsory course. In addition, discrete probability has special importance to computer system students. And our country's engineering mathematics is a continuous probability. Now, the United States has already opened a simple "discrete probability" course, simply delete continuous probability, and put discrete probability. We don't have to do this, but it should be more emphasis on discrete probability. I still do it as soon as I do.
Calculation method (some schools also known as mathematical analysis) is the last class that is opened by the college. General students have limited extent to this class, thinking is nothing. Isn't it the formula! In fact, it is inseparable from the graphic image, and the password is deeply inseparable from it. Moreover, the application calculation in many scientific projects is dominated by values. This class has two extreme talks: one is classical "numerical analysis", completely speaking mathematics principles and algorithms; the other is now increasingly popular "scientific and engineering calculations", simply teaching students with software package programming. I personally think that the computer system must understand why our computer department is studying this lesson. I am very biased to learn theory and use a computer, it is best to use C language or C programming. Books that work hard to this direction is quite a lot, here is recommended by the Higher Education Press (CHEP) and Springer Publishing House (Computational Methods) ", and the Mathematics of Huazhong University of Technology (CING China University of Science and Technology), the work of Huacai University should work more in China, and individuals believe that at least the program is related to the evaluation of any mathematical function, equation, linear Equation group solution, interpolation method, numerical integral, field differential equation value is solved. Li Qingyang's principal is too strong, and it is not too tight to combine with practical applications. Every school will open a discrete mathematics, involving the collection, chart, and abstract algebra, the number of logic. However, so many contents are squeezed in a class of discrete mathematics, is it too tight? In addition, the computer system does not understand the combination and number theory, and it is also a huge defect. To do theory, you don't understand the combination or the number of dollars, it is too big. From the ideal state, it is best to separate six lessons: collection, logic, chart, combination, algebra, number. This is of course not realistic because there is not so many lessons. Perhaps you can open three lessons in the future: collection and logic, chart theory and combination, algebraic and numbers. (This, our school has already started to do it) No matter how the class is open, the students always want to learn. The above three sets of content is told below. Classical aggregation theory, Beijing Normal University, a "basic set theory" is good. Mathematical logic, Professor Zhong Zhongwan, Chinese Academy of Sciences, is not bad for computer science. You can now find Professor Lu Zhong Wan 's lectures, http://www.cas.ac.cn/html/dir/2001/11/06/3391.htm I have to see it. Overall, learning the collection / logic starting is not difficult, and the ordinary high school students can understand. But the more you feel deeply.
After you have finished learning, if you still have a relaxation, you can try "Introduction to Axiomatic Set Theory" and "A Course of Mathematical Logic" in the GTM family. These two have an introduction version of World Book Publishing House. If you can get these two books, you can say that you really get into the door in logic, you don't have to waste time to listen to me. It is said that there is only 30 people in China to understand the picture. This words are inevitable. This is the East, the skill is too strong, and almost every problem has a unique way to make a headache. But this is also its charm: as long as you have creativity, it can give you a sense of accomplishment. My mentor said that there is a piece of thing in the picture to write a paper. Everyone can experience the content of the content! In the domestic chart book, Wang Shuhe teacher's "chart theory and its algorithm" were very successful. On the one hand, its content is very comprehensive in domestic textbooks. On the other hand, its emphasis on the algorithm is very suitable for the computer system (originally the BRIC computer system textbook). With this book, refer to a few translations, such as Bondy & Murty's "chart" and its application "," chart theory and circuit network "such as the People's Posts and Telecommunications Publishing House, etc. enough. Further, the world book introduces "Modern Graph THEORY" with the GTM series. This book is indeed a classic! There is also a translated version of the country. However, learning this level or reading the original version. Get this book and marks the picture to the door. Discrete mathematics, our Beijing University of Technology has a world-class expert, called Shao Xuecai, Fudan University probability, teaching higher mathematics, linear algebra, probability, final turn to discrete mathematics, publication book countless, the discussion Singapore has one Ben, it is a classic, everyone wants to learn the true meaning of discrete mathematics, let's find it. This teacher's class I have been able to listen, very classic. However, you have to explore the essence from his inadvertent words. I deeply discovered a question with his conversation. Although Sham Mr. Shao wrote countless, it is almost the same, and I really feel surprised. He said that it is mainly the outline limit, and it is inconvenient to write. This is no wonder, very little I heard that foreign writing must be based on any outline (even if there is, the content is also broad), the more I don't dare to smash the pool, this is not the same. The foreign version is good, and the latest scientific and technological achievements have been discussed. Don't say anything else, at least "keep up with the theoretical knowledge of the times."
Combination feels not too suitable domestic book. Or read the classic "specific mathematics" of Graham and Knuth, etc., Xi'an University of Electronic Science and Technology Press has a translated version. Abstract algebra, domestic classic is Mr. Mo Zongjian's "Mathematics". This book is a teaching material of Peking University Mathematics and is deeply praised. However, for undergraduates, this book is too deep. You can learn some other textbooks first, and then look back to see "Mathematics". The international classics can be more, and there is a lot of pile in the GTM series. It is recommended to talk about classics, but the simplest, easier to learn: http://www.math.miami.edu/~ec/book/ This "Introduction to linear and Abstract Algebra" is very easy to understand And combine the abstract algebra and linear algebra, which is ideal for beginners, and our school has a collection of cows.
In terms of data, there is a classic "primary diameter" in China (Pan's brothers, Peking University). Take another point, there are more classics (can be world-class) and more difficult "number of bodies" (Mr. Hua Geng's masterpiece, scientific version, nine bookstore's reprinting, "Traditional seems may be difficult). Take a basic chapter to get a probably, enough for undergraduates. But this is just the primary aumentation. After graduating from undergraduate, you must learn a number of words, you must read English, such as Bach's "Introduction to Algorithmic Number The". The fundamental of computer science theory is the algorithm. Nowadays, there are many systems to open algorithms design and analysis, which is indeed very correct. Way to Western world, there is approximately no three-flow computer system does not use the algorithm as a compulsory. The algorithm textbook is currently recognized as the "Introduction To Algorithms" waiting in Corman. This is enough for entry, it is already enough to refer to other books. Let me talk about the form language and automaton. I have seen the textbook of Bei Post, it should be clear. However, there is a little to emphasize: the role of form language and automators is mainly used as a computational model, not to be compiled. In fact, the front end of compilation is already the field of death. No Open Problems, Dr. Ban Xiaojuan, Northern University, has also said that compiled technology is quite mature. If this is, we don't have to go to school in the form of language - what is used in Yacc. The North Post is still better in China, but in the depth, there is a big limit in conjunctive links, and modern sense is not enough. Therefore, it is recommended that you have interested classmates to read English books, but there seems to be in this regard. You can go to the interactive publishing online to see. After getting started, the model language defined in the form of the automaton is more interesting with the model defined by the recursive function in the automaton, and can be said to be very interesting. I only know now, what is "the beauty of the palace, the rich" rich "! Computer science and mathematics have a bit strange. Two-30 years ago, computer science basically or a branch of mathematics. Now, computer science has a wide range of research and many researchers, in many ways to promote mathematical development, from a sense to say that children are growing higher than mothers. But no matter what, this child always flows through the blood of the mother. This blood is the Mathematical Underpinning of Computer Science (Mathematical Basis of Computer Science), which is the theoretical computer science. It turned out that in the Oriental University City Library, I have seen a translation in the 1970s (the book skin is gone, but I love to pay attention to this book), probably call "computer mathematics". If the book is placed at the time, it is a good book, but now it seems that the scope covered is wide, the depth is a lot, but the recommended a big student can take a look, at least make you Calculation mathematics entry.
What is the word most common and theoretical computer science? A: Discrete mathematics. The relationship between the two is so close, so that they become synonyms in many cases. (This is also reflected in the previous book) traditionally, mathematics is analyzed centered. The classmates of mathematics must learn the mathematical analysis of the three or four semesters, then the retrieval function, the real change function, the function, and so on. Realism and functional letters are considered to be a modern mathematics. In physics, chemistry, engineering applications, also analyzed.
With the emergence of computer science, some mathematics branches that have not been attached to the past are suddenly important. It is found that the mathematical objects of these branches have obvious differences from traditional analysis: the problem solution for analysis and research is continuous, and thus differentials, points become basic operations; and the objects of these branches are discrete, thus very few Have the opportunity to conduct such calculations. It is thus called these branches to "Discrete Mathematics". The name of "Discrete Mathematics" is getting loud and losing, and finally, the traditional mathematical branch of analysis-centric mathematics is relatively referred to as "continuous mathematics." After decades of development, discrete mathematics is basically stabilized. It is generally believed that discrete mathematics contains the following disciplines: 1) Collection, Mathematical Logic and Yuan Math. This is the basis of the entire mathematics, and it is also the foundation of computer science. 2) Figure theory, algorithm chart; combined mathematics, combined algorithm. The core of computer science, especially theoretical computer science is algorithm, and a large number of algorithms are based on graphs and combinations.
3) Abstract algebra. The algebra is inexpensive, which is very important in mathematics. In computer science, people surprised that modern numbers have more applications.
However, the theoretical computer science is just that the top of "discrete" hats is simple in mathematics? It has been finally a master that I finally told us that one year ago. D. E.knuth (he has more great, I don't want to use me nonsense) Opened a new courses in Stanford. Concrete Mathematics.
Concrete The word has two levels here: First: For Abstract. Knuth believes that the object of traditional mathematical research is too abstract, causing not enough attention to specific problems. He complained that the mathematics he needs in research often does not exist, so he can only create some mathematics. In order to directly facilitate application, he should advocate "specific" mathematics. Here I am doing a simple explanation. For example, in the collection, mathematician care is the most fundamental problem - the various properties of the axiom system. And some of the specific collection of nature, all common collections, relationships, and mapping are what mathematics feel that it is not important. However, in computer science, it is precisely these specific things. Knuth can first see this, it is worthy of the first person of the world. Second, Concrete is Continuous plus Discrete (discrete). Regardless of continuous mathematics or discrete mathematics, it is useful mathematics!
Theory and Real Combination - Category of Computer Science Research
The front is mainly seen from the perspective of mathematics. From a computer perspective, theoretical computer science currently the main research field includes: calculated theory, algorithm design and complexity analysis, cryptography and information security, distributed calculation theory, parallel calculation theory, network theory, biological information calculation, Calculate geometry, program language theory, etc. These areas are crossing each other, and new topics are constantly being put forward, so it is difficult to figure out a clue. I want to engage in this work, I recommend watching a series of books of the Chinese Computer Society, at least the authority of my country. Let's give some examples. Due to the promotion of application requirements, cryptography is now a hot spot study. Cryptography is based on numerical (especially calculating numbers), algebra, information theory, probability theory, and random processes, sometimes also used in the chart and composition. Many people think that cryptography is encrypted and decrypt, and encryption is to disrupted the data with a function. Such an understanding is too light.
Modern cryptography includes at least the following levels:
First, the basis of cryptography. For example, is it really difficult to break down a large number? Can there be a general tool certificate agreement?
Second, the basic topics of cryptography. For example, better one-way functions, signature protocols, etc. Third, high-level issues of cryptography. For example, the length, secret sharing of zero knowledge certificates.
Fourth, new application of cryptography. For example, digital cash, traitor tracking, etc.
There are also many important theoretical issues in a distributed system. For example, synchronization between processes, mutex protocols. A classic result is: When the communication channel is unreliable, there is no determination algorithm to achieve the same process. Therefore, it is almost meaningful to improve TCP three handshakes. For example, timing problems. One of the common sequences is due to fruit, but because of the ordered result, there is a theoretical result .... For example, there is no practical approach to the deadlock to perfectly. For example, ... operating system research, you will go!
If the computer only has theory, it is just a branch of mathematics, not a separate science. In fact, in addition to theory, computer science has a broader sky.
I have been thinking that four years is not enough to learn the basic knowledge of the computer because the face is too wide ... I would like to talk about the "computer foundation" that we are universal in all schools. The "Computer Basic Course" in colleges and universities is the requirements of various professional compulsory courses stipulated in my country's Higher Education Division. The main content is to enable students to initially master the history of computer development, learn to simply use operating systems, text processing, table handling functions, and initial network application functions. However, the goal of teaching this course in the Computer Science Department will never be consistent with this. In the computer system, the target should be: let the students understand the development of computer disciplines, clearly grasp the direction of computer discipline research, the frontier of the development of each course is in the entire discipline system. Take the learning purpose, learning content, and application fields of each subject. Make students have a whole understanding of the whole discipline in the early days of the discipline, in order to learn what to learn in the future, how to learn. The location of the computer basic application skills should be placed in the second or more, as this should have this exploration ability for students in this department. this point is very important. It is recommended to give a book: New perspective of computer science, "New perspective of computer science" It is computer science. In addition, many classic theories among Xiamen University Zhao Ruple "Computational Scientific Introduction" are hard to find in similar books. Look at him may understand that one of the most basic questions: Why computer science is more accurate. This book can also become a fine work in the world. An excellent student of a first-class computer system should not be just a programming master, but he must first be a programming master. When I go to college, the first professional class is a C language program design, and people who read a computer from a certain point of view, a considerable number of people are based on the writing program. In our Beijing Institute of Technology Experimental Academy, there has always been such a debate (there is also 9CBS today), which is the first program design language. I personally think that in which language belongs to the end, the key is to develop a good program habit. When the teacher said to us, after the foundation, I learned a new language only a week. Now I don't think it all the week at all, the premise is to put the foundation. Don't hesitate, learn to say, wait for you to choose it, others will have a few languages.
The assembly language and microcomputer principles are two-person lesson. Your mathematics / theoretical foundation is better, and it is not cheap. The order between the two classes is also better than having a chicken or the first egg. No matter which door you will learn, it will involve another class. So, I can only calm down slowly. This is a typical engineering class, there is no need to smart and epidemic, but it takes the step of water drop stone wear. It is not difficult to find in the computer bookstore. Get a few newest, look at it. The principles of the composition "Computer Components and Structure" were written by Professor Wang Aiying, Tsinghua University. Assembly language, you will take 8086/8088 into a door, and you must learn 80x86 assembly language. Practical value, no backward, structure and good, write high-efficiency viruses, high-grade language in the high-level language, the underlying development, always inseparable from him, recommend the "IBM-PC assembly language program design" of Tsinghua University Shen Mingming. Some people say that they don't want to understand the computer architecture, nor do they want to make a computer, so there is no need to learn, such as computer principles, assembly language, and interfaces. Is this reasonable? Obviously unreasonable, these things have to be mastered late sooner, they are sure to contact, and this is a few advantages compared to other professional students. When you do a project, you can understand that these are very important. It is impossible to say that just for technology, people who do only know the technology can do the most coding workers, but will never fully understand the design of the entire system, and the coding workers are more I don't pay much money. Regarding the composition of the composition, there is a question. When I learned this course, I broke the CPU work originally known as a micro-program design. The reason is that our country engages in CPU technology. It is not as good as other countries. Time is not easy to have a dragon core than the Intel's more than 100,000 miles, so we recommend that we don't want to learn. I see this, I am not seeing in each school! If he said, the Chinese computer science can stop, hardware and software, application, there are several wearables, but I can't do it, then we are sitting here? The concept of teaching needs to be transformed. The simulation circuit is East East, but now not only the computer system is could not engage in the computer system, but also the electronic student is more scared. If you really want the hardware and software to eat, then I suggest you look at Qiu Guanyuan's "circuit principle", and maybe it will look at the analog circuit in the analog circuit. Textbook: "Electronic Technology Basics" (Higher Education Publishing House) of Kanghuaguang is not bad (our school is used). Interested, you can also refer to Tong Poetry. Digital circuits should be much better than the analog circuit. It is recommended that everyone will take a look at the "digital logic" performance written by Professor our Northern Engineering Liu Yingzhan, saying that this book has a reference value (mechanical industry publishing house). The reason is very clear, the practical value is high, and it is a feeling of "enjoying science". The book of Tsinghua University is also a good textbook. Unfortunately, the integrated circuit is less. I am really interested, take a look at the large-scale digital system design (more than the use of North Airlines).
How to teach the computer system structure, it is still arguing internationally. The better textbooks found in China are Stallings' "Computer Organization and ArchitectureSigning for Performance". The most popular world is "Computer Architecture: Aquant Approach", by Patterson & Hennessy.
The operating system can use the "Operating System's Nuclear Design and Implementation" and "Modern Operating System" two books. Both of these are classic, the only disadvantage is theoretical is not strict. However, this area belongs to Hardcore System, so it is also the same as the theoretical manual. If you want to see the theory, you will recommend Tsinghua University Press "Operating System". Also recommend a "Windows Operating System Principles" Machinery Press, this book is a Chinese operating system expert in Microsoft's zero-distance, writing a year, and the expert of teaching operating system has been prepared for more than a year. In addition to Zhang Yuxi, Tsinghua University. Almost everyone participated in the Director of the Supreme School. Bill Gates personally write. It is not only combined with Windows2000, XP details the kernel of the operating system, and there are some Windows programming foundations, there is a taste of the external book, and some of the above content can be said that there are only one book at home and abroad to have a micro-core. Introduction, if you learn the formal language first, the front end in the compilation principle I see as long as I learn four algorithms: the most easily achieved recursive decline; the best auto-down algorithm LL (K); the best bottom up Algorithm LR (K); LR (1) simplified SLR (perhaps another simplified LALR). The backend is completely engineering nature, nature is Another Story. Recommended Textbook: Kenneth C.Louden Written "Compiler Construction Principles and Practice" is "Compilation Principle and Practice" (Translation of Mechanical Industry Press) To remind everyone that it will use VFP, VB, Power Builder, not equal to Understand the database. (This world has thought of too many people who understand the database!) Database design is both scientific and art, and database implementation is a typical project. So in a sense, the database is the most typical computer course - the combination of science and engineering, penetrates each other. Also recommend everyone to finish the software engineering and turn over and see database technology, it will be a new feeling. Recommended Textbook: Abraham SilberSchatz Waiting "Database System Concepts". As the integrity of knowledge, we also recommend everyone to see the "Data Warehouse" translation of the Machinery Industry Press.
Computer network standard textbooks are still from TANENBAUM (COMPUTER NETWORKS "(Tsinghua University has a translation). There is also a recommendation of Xie Heren's "Computer Network Tutorial" (People's Posts and Telecommunications Publishing House). However, the network is also Hardcore System, so light reading is not enough. It is recommended to read the RFC multi-read, http: //www.ietf.org/rfc.htm can download the RFC document as number. Read from IP. Waiting to master 10 kinds of common agreements, there are no few people who dare to look at you. I did another job I saw it in the network design. The importance of the data structure is not allowed. After learning the data structure, you will have a revolutionary baptism for your programming ideas, which will have a clear understanding of how to establish a reasonable and efficient algorithm. I think everyone should pay attention to the following points for the establishment of algorithms:
When you encounter an algorithm problem, you must first know that you have had this problem before you have handled this. If you have seen it, then you will usually make it smoothly; if you haven't seen it, consider the following questions:
1. Is the problem be built on a known familiar data structure (for example, a binary tree)? If not, you should design the data structure yourself.
2. The algorithm required by the question belongs to which type of algorithm belongs to? (Establish a data structure, modify the data structure, travers, find, sort ...)
3. Analyze the mathematical properties of the algorithms required by the problem. Is there a recursive feature? (For recursive programming, as long as the reasonable parameter table and the conditions of recursive, basically summon it.)
4. Continue to analyze the mathematical essence of the problem. According to your previous programming experience, an idea to be a possible solution, and prove the correctness of this solution. If the title has a time-space request, you have proved your ideas Meet the requirements. General, time efficiency and spatial efficiency are difficult to comply. Sometimes they must save time by establishing a secondary storage method .5. Through a period of analysis, you have some ideas for solving this problem. Or Said that you can use the natural language to briefly describe your algorithm. Continue to verify its correctness, try to find the mistakes and find a solution. When necessary (discovered the contradiction that cannot be solved), overthrow your idea Since the beginning of the head.
6. Confirm that your ideas are feasible, start writing programs. In the process of writing code, try to take detailed, careful, and careful. The program should have a good structure and is commented in key places.
7. Hold an example, then perform your program with a pen on the paper, further verify its correctness. When encountering the case that does not match your ideas, the reason for analyzing the problem is the programming problem or algorithm ideology. problem.
8. If the program is verified by the above correctness, then further optimize or simplify it.
9. Write ideas, comments. For specific algorithm ideas, you can only rely on yourself through your own knowledge and experience, there is no specific law (otherwise the programmer can be laid off, using the machine automatically generates code) ). To have a wealth of imagination, when a road is not going, don't drill the horn pointed, you must dare to overthrow your idea. I am just a beginner, say some of the experiences, for everyone's reference and discussion .
Regarding artificial intelligence, I think it is also very worth studying. Although it is impossible to have just a discipline, it is absolutely very developing a discipline. One of my country's artificial intelligence founders, Professor, Beijing University of Science and Technology (this old gentleman is my mentor Li Xiaoyun's mentor) to artificial intelligence: artificial intelligence is imitating, extensioning and expanding the intelligent technology science of people and nature. Education in the United States artificial intelligence official website made the following definition of artificial intelligence:. Artificial Intelligence, or AI for short, is a 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 of Machines That Can "Think".
The problem of this study research is probably:
(1) Symbolism: Symbol calculation and program design foundation, knowledge expression method: knowledge and thinking, generating rules, language network, first-order word logic problem solving method: search strategy, heuristic search, search algorithm, problem statute method, Predicate calculation: Candidation principle, the analysis of the expert system: the method and tools for establishing an expert system
(2) Connectionism (Neural Network School): 1988 US authority pointed out: database, network development has risen straight, and neural networks may be the only way to solve artificial intelligence.
I want to learn about artificial intelligence, you must do not learn to analyze the problem, it is best to learn to analyze the problem, it is best to use the program design to achieve, here is the best Dr. Award winner, Dr. Xiaoyuan Works "Artificial Life Method of Artificial Fish - Computer Animation" (Tsinghua University Press). Classmates who engage in artificial life will not know the internationally renowned father. The book about artificial intelligence is the first choice "Artificial Intelligence A New Synthesis" NILS J. Nilsson. Nasal ancestors! About network security, I also want to say two sentences here. With the development of computer technology, the information level of the entire society has leap forward, and the computer network technology has changed, and the network has become an indispensable part of the field of society. As long as there is a network Network security issues are a problem that must solve it. Learning network security is not a simple collection of some hacker tools black and black, but to learn his mathematics principle, achieve principles, to engage in the underlying working mechanism, so Can solve most of the existing problems and new security issues. About Computer Science Some Edge Science I would like to talk about software engineering technology, for a company, launch software is not a few programmers sit together, you write a program, I wrote a program? Obviously not. Software engineering is a comprehensive synthesis of typical computer science and mathematics, management science, psychology, sociology. It enables us to engage in theory and technology into a society. What you have to consider is not just the advantages and disadvantage of the program, but should consider the difference between the program and software, the difference between software and software products, how to make a better communication between software software products. I am still in the study stage. I will write the article in this regard. I recommend it to everyone. Books: "Moon Moon Myth" in 20 years (Tsinghua University Chinese version, China Electric Press Capital Edition), " Software Engineering - Method of Practitioner Research "(Mechanical Industry Press Machinery)," Human Parts "(It is said that each Microsoft department manager has read this book, recommended the old and the classmates who want to be the boss to see," Learn about what people in software companies) and Microsoft's "Science and Art" of Software Development "and" Software Enterprise Management and Culture "(research software enterprises have greatly study Microsoft's successful experience!)
About computer technology, I think it is: Any one of the schools has its lag, don't always think that a certain technology you have mastered is already invincible in the world, although now Java, VB, C, C There are a lot of use, how can I guarantee that there is no downtown day, I think the birth of the .NET platform and the beginning of the X # language can completely explain the problem. In other words, in our mastery of new technologies, there is an updated technology, as a contemporary college student should have the quality of the scientific development. For example, like some classmates always say, I like to write HTML directly, don't be willing to use FrontPage, Dreamweaver. It is very good to write a web page, but have an efficient means why do you not make it? Just to show your own level, unique? I think the truth level is the person who can accept new things at the fastest speed. The development of advanced programming languages has changed their day. The future program design is like people talking, I think everyone should experience it from XML. Do we really write anything to use compilation to show your level, it is better to write directly to the machine language. Conversely, it is necessary to accept and use the new technological key at the fastest speed or is to grasp the level of the computer. Computer technology involves more widespread, one, I am afraid that there is no one, and I can't say clearly. I just want to remind everyone that the saying, technology and science cannot be homed, learn to engage in technology at the same time, this is the upper policy. It's like English, the original exchange of people must be translated, and now people in the road will speak English. Even the champion of the 21st Century English Speech Competition is not a student of the English Department. The computer is also the same, and one of the reality we must face is: the computer is just a tool. If there is no other literacy, the computer system is not able to say that it can't find a job, but there is always one day in other professional talents. Mastering computer technology is much better than us. The reason is that most of the computer solution is actual problem, and the knowledge of actual problems is less. Single computer technology is not based. I want to point out: Before studying every course, you must first learn the purpose of this course. The application area of this discipline. According to the learning status of the same age classmates and the low-grade classmates yourself: "There are very few people who know a discipline, and the final exam is not known to learn this department. This lost the meaning of reading computer science. Of course, this doesn't say a little relationship with existing educational thoughts.
Overall I think the key issue is that domestic colleges and universities are difficult to break through the status quo, and the frame box limits how to develop. Although we recognize the superiority of foreign education, why can't you take action? Even if you take a little bit of crowd. We need to change. From our point of view, most people have neither learned the academic level of computer science, nor to learn computer technology. At my big time, my computer science introductors, Professor Wang Aiping, Huaibei Coal Teachers College, has said such a word to me: "When you choose a computer, it means that you embark on it. Return to the road, it means that you have to fight for it ... your back is a cliff, only to go forward, you can't retreat back. "
Some students say that there are too many things in this study. Some have not seen it. I want to play an image: the people learned from the school are a sphere, and the knowledge of all aspects should be available. However, there is very little place in society, but it is needed to be bricks and tiles, that is, those who are proficient in a certain line. However, for the same volume of object, it is the most convenient and most organic to use the sphere. There are many students' students. In order to enable more students to adapt to this society, the school must not build all students into a sphere, and then let the society processes these students and become a talent that is really useful. Even if you are very clear about your future, and very determined to take your own way, this step must go, the world is constantly changing, you can't predict the future. I want to know, try to do it! This "Hu Wei" must be ended, and then it is not my strength. In fact, there are still many basic courses that are worth it. How can I have limited efforts, I don't dare to make the laughter. For the profound computer science, I can only say that I will always be a beginner. Finally, the statement: These are only for learning in the undergraduate phase. Even if these are all, the front road is still long, computer science requires us to fight ... Learn computer science requires toughness, more innovation, need passion. A deep learning of theoretical knowledge, courage to accept new technologies, this is the quality of our generation should have. Finally, I will send you a sentence "Wake Up Every Day with a felease of passion for the Difference Technology Will Make In People's Life!".