Current location - Training Enrollment Network - Mathematics courses - What schools are there to study computer in America?
What schools are there to study computer in America?
1, majoring in computer science, Stanford University, USA

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, when Microsoft went to major universities for recruitment in 2004, he would come to every stop to talk about the bright future of computer science with his star effect. As you can imagine, this kind of lecture also shoulders the important mission of attracting students to choose computer major.

2. Computer major, University of California, Berkeley, USA

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 written by Abelson and others at MIT; 6 1B "data structure" (the textbook adopts self-made handouts); 6 1C Machine Structure adopts Hennessy's Computer Organization and Design. This regulation is no exception for transfer students, which shows that it contains the crystallization of Berkeley's many years of teaching experience.

Berkeley's other distinctive courses include: CS70, which combines discrete mathematics with probability theory, and 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 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.

3. Computer major in UIUC (University of Illinois at 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. 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.

4. Computer major in 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 teaching reform is a book with more than 900 pages: Computer System: A Programmer's Perspective. 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. "

5. Computer major at 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 "computing structure" is equivalent to Berkeley's 6 1C "computer structure". In addition, there are two professional basic mathematics courses: Probability System Analysis and Computer Science Mathematics. The latter textbook is Discrete Mathematics and Its Application written by Rosen, which is widely used in foreign universities.