What is Python's position in the programming language? Why do many universities not teach Python?

Source: Internet
Author: User
MIT uses Python as the language of instruction in introductory classes.

Reply content:

First of all, the university textbook update Slow is true, as long as in the university library to see the number of Access and VB books to know. Of course, some people say that college is the basic ability, but I think this explanation is very reluctant, because learning basic ability and learning not to learn new things is not contradictory, new things can not learn basic ability?

Then, self-learning Python is really no problem at all, but I think that in addition to serious CS you learn to learn C + + What, everything else can be used to get started with Python. What is the current situation of non-CS majors in universities? A class down, about 70% of people do not know what programming things, and even to create a fear, it is better to learn python happy to understand the basic theory and methods.

Finally, for non-code farmers, Python is a real tool for everyday use, using Python instead of VBA to Excel, using Python to write a small crawler to collect some data from the Internet, and Python for small-scale customized automated testing, are very force. I think upstairs everyone said is very good, but all is "as the senior yards, if I go to teach college students, why I will teach C." Far overestimated the sense of responsibility and the level of most university professors and teaching, there are other reasons

In fact, as an undergraduate teacher, their level of practice is far from the first-line personnel, for most C language teachers, will not much python, needless to say, the main focus on teaching evaluation of teachers, many old developers are still clinging to MFC.

More importantly, the replacement of a teaching language is too much trouble for universities, and they are still teaching with vc6.0. (Of course, it's enough to teach that stuff.) English Wilde said
Something really valuable. No one teaches you in school (transliteration)


    • Original:education is an admirable thing. But it 's Well-remember from time to time, that's nothing that's worth knowing can be taught.
Education is worth Kitchener, but remember: there is nothing worthy of knowing that can be bestowed on it. The university also does not teach PHP, the university can teach how to study is good, Python really is very simple, has the study ability student quickly can grasp the basic University study the fundamental design idea, the teacher teaches one or two languages can, the key oneself must go to delve, See what you like to see more practice more study can really do not understand why upstairs to Tangle College introductory course taught what language, for the introduction, language knowledge a bridge, more is understanding the idea and, the landlord for the MIT Python as an introductory language, for 0 basis or no development experience people, I take Ruby python,c++ even Java C #作为导论的语言其实没什么区别, the core of the introductory course is the introduction, is to give no basis to the people to talk about what is data structure, what is the algorithm, what is the basic data format, memory, threading these things class, this course is not to teach what grammar, More unlikely to be the framework of anything, plainly speaking is not teaching development. As for development, I think there is a foundation to see personal interest in self-study, with the foundation to get started with what language is fast. Higher education is a guide, not to preach what you learn, if it is to learn a language, with a language, not in-depth understanding and then to do something to meet, it is better to go to Beida Jade Bird last Java Python crash class came fast. In the final analysis, higher education is not utilitarian education, but many students do not understand it. Python is often compared with Ruby and Perl in high-level languages. So if you look at the status of Ruby and Perl or LUA, you know a little bit about Python's status.

Python should be a scripting language positioned for rapid development as a low-level language binder.

If you want to see the status of programming languages, you can look at the programming language rankings
/ http sd.csdn.net/a/20110711/ 301407.html

Python can still be ranked in the top ten.

Domestic Internet enterprises, from the oldest Jinshan, NetEase, to the new watercress, there are a lot of companies using Python. The application scope is also very wide, from the server backend, the tool script to the game client development, very many. In general, it is still very widely used.

Why don't many universities teach Python?
Personally, there are two reasons: 1 Python can be self-taught, more simple than C + +, 2 of the university's textbooks and curriculum update speed is far less than the speed of technological development. Just graduated, just I have contact with all kinds of backgrounds of students, from the C/c++/pascal/java/python get started, tell me how I feel, beg for a pat

First of all, do not underestimate the level of the domestic University computer department, the domestic relatively good university courses, in fact, are closely related to foreign teaching trends, the previous years of Perl, the recent Python and arm, Hadoop, almost all have corresponding courses. So you can not be so cynical green ~

In fact, from the beginning of last year, the electrical professional program design ideas and methods from C + + to Python, the textbook is the core Python programming. Basically the current pattern is:
Electrical majors: One semester Python + one semester C + +
Non-electric majors: one semester C + +?
Then you have to use what language to learn it, Java or Verilog or Haskell or school do not teach.

The good thing is that at first Python is actually better than C + +.
The downside: Python is a good language, but it's not suitable for teaching, especially for electrical classes. The result is that learning younger sisters are not particularly adaptable:

On the one hand, the domestic hard environment, in addition to computer and biological class, almost no people use python--for many industries still in the VC6/MFC write interface of electrical students, you teach him python, he still will go back to learn C + +. Further, because the teaching time of C + + is shortened, and people can not leave the c/c++--at least operating system classes to use, write arm program to use, so instead of making new students have no way to concentrate on a language.

Python, on the other hand, is not suitable for beginners:

Python in C + +, not like Lisp in C, is Computational ModelsThe different causes of the simplification. In contrast, the computational models of Python and C + + are command-oriented, and the beauty of Python lies in the fact that nature hides a lot of detail, such as self-examination, dictionaries, and dynamics. But Python's own computational model is a bit of a mixture-a little process, a little object, a little bit of a function. This requires programmers to choose the right way to implement their own approach--as described at @ Moyu, which is a very pragmatic and wonderful design. But the computational model of imperative and the strongly typed system determine that the complexity of this part does not disappear, but hides it. Understanding these complexities is a prerequisite for a smooth use of Python: What type are I working on? Which object's iteration method is used implicitly by this for syntax? Does the method have default parameters?

But, the freshmen is difficult to understand these-in C language plainly written, there are many people headache, do not say hide implicit call. It's like a stream in C + +, without a deep understanding of template overloading and iterators, will not understand why this thing "can be written so".

So when you learn Python and C + +, there are a lot of people who learn to be surprised by the question-why this place can write, not so write? I'm really hard to explain--because these problems are often involved in types, objects, and inheritance--precisely what is hidden behind the simple language.

=========================

So for freshmen, I think the language of entry is simple: this simple, not a short amount of code, but the simplicity of thinking, grammar, and computational models: allowing novices to focus on understanding a few concepts, without having to dwell on a lot of idioms and hidden details: That's for skilled to speed up progress, It's not for new students. So I think python/c++/java this large language, are not suitable for the introduction-too complex, too difficult to master, finally can only learn a fur, rather than teach a student can thoroughly understand language, later comprehend by analogy. C/scheme, in my opinion is a very good language: it is very useful, and the model is simple, students are easy to thoroughly understand. It is also easier to learn other, more abstract languages in the future.

As for the shortcomings of C, it can be corrected by teaching-educating students on reasonable abstraction, moderate concealment, learning to use iteration and recursion. And I think this is the key to the introduction of programming is different from the C + + grammar class. But unfortunately, no matter what language to use, can talk about this level of teachers, are too few. (students do not like to listen, they only care about how to do a bigger job, to achieve more functions)

=====================

In fact, MIT himself also thought that now students use Lisp to get started is not very good, here is an article quoted Sussman words explained the reason.

/ http cemerick.com/2009/03/24 /why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/

In short, the language teaching this matter, the focus is not to fashion, but to grounding gas. Think about why you use Python. In terms of language, Python is not clean enough. There are currently 2.x vs. 3.x differences. In engineering, Python's integration is no better than C, because there are many libraries in the industry that are just C interfaces, and Python must have some encapsulation. Everyone uses Python because its resources can help a lot of people solve problems.

But this "python is because its resources can help many people solve the problem" the problem is not the university students face. " College students are facing more big, clean problem. This kind of problem requires a logical and pure scheme, or a completely standard solution. For example, learning language with C, learning to use Lisp, learning kernel with Linux, BSD is no problem. But Python belongs to the Battlefield Professional toolkit and should wait. Programming paradigms, design patterns, MVC, software development methods and ideas these are the things that should be taught without being taught, and programming languages are small characters that can be interspersed into the contents of a chapter or one or two lessons. It happens that many universities in China, learning a semester of Java, the existence of interface interface is full of doubts, and even many students think object-oriented programming in the encapsulation and information hiding is to keep secret (let the source code is not leaked out!). )。
  • 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.