Current location - Education and Training Encyclopedia - University rankings - The software majors in those universities in the United States are very good.
The software majors in those universities in the United States are very good.
Stanford, Berkeley, MIT, Carnegie Mellon

CS in Stanford is a big CS, with more than 40 senior teachers, including Edward A. Feigenbaum (john mccarthy), a well-known Turing Prize winner, as well as big names in various disciplines, such as DonaldE. K nuth, the authority in theory; Database Daniel Geoffrey D. Ullman (he also wrote the famous compilation principle, he is from Princeton); And John Hennes, one of the top technical leaders of R·ISC. I believe that CS students are no strangers to this. The department graduates more than 30 doctoral students and more masters every year. The way out for students is naturally like a duck to water. Stanford students are favored by both academia and industry. Almost all of the top ten CS have Stanford graduates as professors. Of course, there are three other giant cows: UC. Berkeley, MIT and CMU.

Jim clark graduated from the University of Utah and used to be a professor of computer science at Stanford University. Later, it was this man who founded SGI, a giant in the field of high-performance computer and scientific computing visualization. The origin of the name of Sun Company is: Stanford University Network. By the way, Yang Zhiyuan, a China native who founded Yahoo, studied for a doctorate at EE in Stanford, and later dropped out of school to run Yahoo.

In CS research, Stanford is a top player with strong strength in theory, database, software, hardware and AI. Stanford's RISC technology later became the core technology of SGI/MIPS Rx000 series microprocessors; DASH and FLASH projects are the frontiers of multiprocessor parallel computer research. SU IF parallel compiler has become a key project funded by the state, and mentioning SU IF compiler in international academic papers seems to add some beauty to some mediocre papers.

Stanford has14,000 students, including more than 7,000 graduate students. There are 175 doctoral students and 350 CS masters students. How many people are recruited every year is unknown, and it is estimated that it is indispensable, but don't forget that nearly a thousand people apply for CS every year. The application fee is as high as 90 dollars.

Stanford University is located in Silicon Valley, the center of the information world. California's pleasant climate and beautiful scenery make Stanford a paradise for CS. 33. The campus area of1square kilometer is probably enough for students to cross the river and do everything.

It is difficult to apply for Stanford, but it is not impossible. Going to a cattle school like Stanford, luck is very important, and the recommendation of cattle people is also very important.

Attachment: Generally speaking, the top 20 CS can be divided into three waves:

One or four best CS programs? Stanford University, University of California. Berkeley, MIT, CMU

2. The other six top ten: UIUC, C ornell, u of Washington, Prin ce ton, u of Tex as-Austin and u of Wisconsin-Madison, among which UIUC, Cornell, u of Washington and UW -Madison almost never entered the top ten.

Third, other very, very excellent CS: California Institute of Technology, University of Maryland ATCP, UCLA, Brown, Harvard, Yale, GIT, Purdue, Rice, University of Michigan.

(Note: CS = Computer Science Department)

Since the birth of the world's first modern computer in the United States in the 1940s, the United States has always been the leader in the field of global computer science, which is one of the important reasons why the American computer industry has an absolute advantage. Most of the textbooks we introduced are also from the United States. Computer science is still developing at a high speed, and the corresponding training mode of computer talents is constantly changing. It should be of great significance to pay close attention to and follow the new teaching trends of famous universities abroad, especially in the United States.

In this paper, five most prestigious universities in computer science in the United States are selected, and the undergraduate teaching system of computer science in each university is analyzed.

Stanford University

Stanford University has an independent computer science department. I'm afraid there are many lectures on popular computer science in this school, which are generally two or three units, covering a wide range, from quantum computing to digital actors, from the great ideas of computational science to network security, from online auction to the discovery of a large number of errors in large open source software by meta-compilation, including many thoughts on technological utopia, Si Nuo's "two cultures", the difficulties faced by computers and many problems brought about by rapid development. The teachers who started the class have a strong lineup, and they are basically well-known professors, even including john mccarthy, winner of Turing Prize. Replacing the special course of Introduction to Computer Science with this kind of lecture can fully show the rich connotation of computer science, make students understand the outline and context of the subject earlier, and be of great benefit to broaden students' horizons and stimulate students' interest in learning. Because the choice of majors in American universities is very flexible, and the enrollment of computer science has been seriously affected by the industry in recent years (this situation even alarmed Bill Gates. This year, Microsoft went to major universities to recruit people, and he will come at every stop to talk about the bright future of computer science with his star effect. It is conceivable that this kind of lecture also shoulders the important mission of attracting students to choose computer major.

The typical courses in the lower grades of Stanford University are shown in table 1.

Table 1 main courses in the lower grades of Stanford University

Mathematics (at least 23 units)

Math 4 1 (course number, the same below) Calculus I 5

Mathematics 42 calculus II 5

Statistics 1 16 probability theory 3 ~ 5

Computer 103 Discrete Structure 4 or 6

Select the following two items:

Math 5 1 calculus 5

Mathematics 103/ 1 13 linear algebra 3

Mathematics 109 applied group theory 3

Computer 157 Logic and Automatic Reasoning 4

Computer 205 Mathematical Methods of Robotics, Vision and Graphics 3

Science (at least 1 1 unit)

Physics 53 mechanics 4

Physics 55 electromagnetism 4

other

Engineering foundation (at least 13 units)

Computer 106 Programming Abstraction/Methodology 5

Engineering 40 Fundamentals of Electronics 5

optional course

Technology and society (3~5 units)

Table 2 shows further courses.

Table 2 Main courses for senior students in Stanford University

Programming (2 courses)

Computer 107 (course number, the same below) Programming Paradigm 5

Computer 108 Object-Oriented System Design 4

Theory (two courses)

Computer 154 Automata and Complexity Theory 4

Design and Analysis of Computer 16 1 Algorithm 4

System (3 courses)

Electronic and Electrical 108B or 282 Digital System or Computer Architecture 4

Principles of computer compilation 3

Computer Computer Network 3

Computer operating system 3

Apply (choose two courses)

Computer artificial intelligence 3 ~ 4

Computer database 3

Computer graphics 3

Project (1 course)

At least 3 computers

Limited elective courses (multiple courses)

University of California at Berkeley

Berkeley's curriculum also has many unique features, especially the specialized basic courses. In addition to the professional guidance course "Computer Science Topics", for students with no programming experience, the first programming course is an introduction to symbolic programming, using LISP language. Students with some programming experience or self-study ability can choose self-paced courses in various languages and environments, including the use of C, Fortran, C++, Java and UNIX. This diversity is related to Berkeley computer science and electronic and electrical engineering. However, all students have to learn a unique basic course in the second semester: 6 1A "Structure and Interpretation of Computer Programs", using the textbook of the same name edited by Abelson and others at MIT (published by China Translation Machinery Industry Press and photocopied by Tsinghua University Press); 6 1B "data structure" (the textbook adopts self-made handouts); 6 1C Machine Structure adopts Hennessy's Computer Organization and Design (the Chinese version is published by Tsinghua University Press, and the photocopied version is published by Machinery Industry Press). This regulation is no exception for transfer students, which shows that it contains the crystallization of Berkeley's many years of teaching experience.

Other distinctive courses in Berkeley include: CS70, which combines discrete mathematics with probability theory, with the famous professor Christos Papadimitriou as the main speaker; CS98- 1 Programming Practice Course, taking the main topics of college students' programming competitions as teaching materials; CS 169 software engineering directly uses kent beck's Extreme Programming (Chinese version of People's Posts and Telecommunications Press) as the teaching material, which is very advanced. However, since even the agile method in Pressman's "New Software Engineering: A Practitioner's Method" has become the highlight, and since IEEE has begun to formulate relevant standards for agile methods, the choice of this course is not so shocking. In addition to the common content of software engineering course, the teaching is practice-oriented, which runs through the idea of extreme programming, covering UML, JUnit unit testing, software architecture, design patterns and anti-patterns, reconstruction, CVS version control, system and integration testing, and finally requires the completion of an actual product and demonstration.

university of illinois urbana champaign

The computer major of UIUC was founded by 1972, and it was basically finalized by 1986, with little change in more than ten years. Its teaching system is shown in figure 1.

Figure 1 UIUC Computer Science Curriculum System before Reform

Among them, in the course of numerical analysis, Math225 is matrix theory, CS257 is numerical method, and CS35x stands for introduction to numerical analysis, ordinary differential numerical method, partial differential and numerical approximation, numerical linear algebra;

In the theoretical course, CS 173 is a discrete structure, CS273 is a computational theory, and CS37x includes algorithms, formal methods and program verification.

In the course of artificial intelligence, CS348 is an introduction to artificial intelligence, and CS34x includes robotics, machine learning and pattern recognition.

Software direction: CS 125 is an introduction to computer science, CS225 is the principle of data structure and software engineering, CS3 1x includes database, graphics and multimedia, and CS32x includes software engineering, operating system design, distributed system, programming language and compiler, parallel computing, real-time system, compiler construction and programming language design.

In the course of hardware direction, CS23 1 is computer architecture I, CS232 is computer architecture II, and CS33x includes computer composition, VLSI system and logic design, VLSI system design, communication network, embedded architecture and software.

It can be seen that the courses at the bottom of Figure 1 basically choose one or three courses from many doors, and the whole system has clear context and high flexibility. Different from Stanford, the course of Introduction to Computer Science in UIUC is relatively simple. There is only one course for computer science (CS 100) in freshmen, and it is not a compulsory course. CS 125 is called Introduction to Computer Science, which is actually an introductory course of programming based on Java language, covering some algorithms. In addition, there are supporting experimental classes. Of course, many lectures of seniors and postgraduates in the department are open to juniors.

In 2003, at the initiative of David Daniel, president of the Academy of Engineering, the computer department reformed the teaching plan to reflect the current development trend of society, industry and technology. The main changes are:

* Two programming courses have been added to the compulsory course: CS24 1 System Programming, with Gary Nutt's operating system as the main textbook and Stevens' advanced programming in Unix environment as the programming textbook; CS242 programming studio, the syllabus is basically based on Kernighan's programming practice (all the above textbooks have been published in Chinese translation and photocopies by Machinery Industry Press).

* One-year advanced project has been added to the compulsory requirements, emphasizing teamwork and software engineering practice, including document writing, oral expression, project planning and management. In fact, learning software engineering through practice. This course can also be replaced by two semesters of software engineering or one year of graduation thesis. Flexibility is still fully retained, which is conducive to teaching students in accordance with their aptitude.

* The class of CS 173 discrete structure was added, and part of the original CS273 content was moved here, and CS273 added the original CS375 content. This actually raises the requirements for computer theory.

CMU (Carnegie Mellon University)

Unlike MIT and Berkeley, computer science is also in the same department as electronic and electrical engineering. CMU's computer science department was founded in 1965, which is the earliest in the United States and has now been upgraded to a computer science college. In its graduate program, except for the relationship between robot direction and hardware, everything else is basically pure soft. In this sense, the teaching system of CMU should be of great reference significance to the department of soft computer.

There is no traditional introductory course for computer majors in CMU's teaching manual. Although it is a two-semester course called "Great Ideas of Computer Science", it should be a substitute for discrete mathematics in content, because CMU has no other courses in discrete mathematics. This course has no textbook, and its content is much more flexible than traditional discrete mathematics, involving probability, algebra, algorithm, encryption theory, complexity theory, game theory and so on. And attach great importance to the fun and practicality of learning.

Like other famous schools, CMU's emphasis on programming has also left a deep impression on people: the first lesson for local freshmen is "Programming in Junior and Middle Schools", which teaches Java directly. Then advanced programming (Java), C programming skills, advanced programming practice (Java) and programming principles (taught in SML language).

At present, a difficult point in the teaching plan of computer specialty is the setting of hardware courses. The hardware knowledge system itself is very rich, but there are many hardware courses, which weakens the characteristics of computer specialty. How does CMU handle this problem? Randal E. Bryant, the current dean of the School of Computer Science, personally gave the answer. He completed the teaching of hardware knowledge in the course "Introduction to Computer Systems" (unit 15 ~ 2 13). The result of this educational reform is a book with a thickness of more than 900 pages: Computer System: A Programmer's Perspective (Chinese version of in-depth understanding of computer system has been published by China Electric Power Press). He said in the preface of this book:

"The purpose of this course is to introduce computers to students in different ways. Because our students rarely have the opportunity to build computer systems. Most students, even computer engineers, are required to be able to use computers and write computer programs every day. Therefore, we decided to explain the system from the programmer's point of view, and adopted such a filtering method: we only discuss those topics that affect the performance, correctness or practicability of user-level C programs.

For example, we excluded topics such as hardware adder and bus design. Although we talked about machine language, we don't care how to write in assembly language, but how the compiler translates various constructs of C, such as pointers, loops, procedure calls and returns, switch statements, etc. In addition, we will look at the system more broadly and realistically, including hardware and system software, and discuss linking, loading, processing, signaling, performance optimization, evaluation, I/O, network and concurrent programming.

This practice makes the way we teach this course practical, concrete and practical for students, and it is also very beneficial to arouse students' enthusiasm. "

Some experiments attached with books on the website are also original. Therefore, the success of this book is natural. According to the list on the support website, it has been adopted as a teaching material by more than 80 colleges and universities around the world. Massachusetts Institute of Technology (MIT)

The MIT curriculum can only be explained by its high starting point for students. There is no typical computer science major in this school, only theoretical computer science and artificial intelligence and their applications are soft. So there is no introductory course like other schools.

In the Department of Electronic and Electrical Engineering and Computer Science of the Massachusetts Institute of Technology, all students have to take the following four courses: 6.00 1 Structure and Interpretation of Computer Programs. Of course, like Berkeley, they use the textbook of the same name edited by Abelson and others; 6.002 "Circuits and Electronics"; 6.003 "Signals and Systems" (self-compiled handout); 6.004 Computational Structure is equivalent to Berkeley's 6 1C Computer Structure (the textbook is a self-made courseware). In addition, there are two professional basic mathematics courses: Probability System Analysis (a textbook compiled by the professor) and Computer Science Mathematics. The latter textbook is Discrete Mathematics and Its Application written by Rosen (Chinese version is published by Machinery Industry Press), which is widely used in foreign universities.

For MIT students, there are many options for experimental courses: electrical engineering and computer science experiment, analog electronic experiment, digital system experiment, microcomputer project experiment and semiconductor equipment project experiment. In addition, no matter what major, there are software engineering experiments. It is worth noting that there is no software engineering course in the required courses for undergraduate majors. In other words, the content of software engineering has been completed in practice. The software engineering experiment course is taught by the famous female professor Barbara Liskov, who put forward Liskov's replacement principle. She just won the von Neumann Prize in 2004. As a double academician of American Academy of Engineering and Art, her decades of software development and research experience will effectively guarantee the quality of this experimental course.