Reply content:
--------------The problem has been modified, the following answer is for the original problem-----------------------------------------
This question is very interesting to ask.
"Why
MOOCWithout C, and
China UniversityInsist on teaching C? 」
The implication, Chinese universities to MOOC standard, to MOOC on par?
First conclusion:
1. Mooc and the traditional university are facing a completely different group, and the starting point of the curriculum concept is different. University c out of the consideration of fostering the foundation of a specialized computer science student, Mooc Python is motivated by the effectiveness of communication programming as a tool, as well as taking care of learners ' positivity.
2. Generally speaking, the advanced or high-level learning method of C language is not simply learning the language itself, but using C as a tool to learn the operating system, compilers, embedded systems these disciplines, in specific areas of learning to practice the ability to use C programming, enhance the understanding of C.
First of all, the 1th, who is the Mooc of learning? The majority of the courses completed are less than the single-digit percentage of the number of elective classes. Coursera Data Science certificate sold a hundred thousand of (with the impression that the data might be wrong), and finally finished capstone project with just over 500 people. Moreover, most of those who have finished have a computer science background, and the 0 base is rare.
This is still the result of teaching Python. The most easy to learn, the best to get started, the most visible results, the most motivating language one. If you teach C, you will only have fewer people to stick with. The Csapp of CMU is open online, but without the help of professors and teaching assistants, how many people can persist in the concept, fix the bug, and improve the performance to the best?
That's 2nd, Robert Harper in class. C:"c language is not a language you can only see the code can be interpreted, you often have to descend to the level of the system, to discuss the specific architecture, concrete compilation, to explain why your code is correct, efficient. 」
C is a very architecture-sensitive language, and for different architectures you are writing C, but the design concept and considerations may be completely different. Therefore, learning C, not just a language, but your specific learning situation of the underlying system design concept.
Take a look at the computer curriculum at the non-Chinese University of CMU, using Python's intro lesson 15112 for 0 Basic or non-CS majors. Undergraduate normal first basic course 15122 is to use C: Basic is to use C to learn some basic data structure. The next classes of C is 15213:csapp: using C to achieve the underlying functions of various systems. After that, most of the "System class electives": Computer networks, operating systems, parallel computing, distributed systems, cloud computing, embedded systems, including some robotics courses, all in C. I think this is the way the domestic universities should be in line with the standard curriculum, not MOOC, do you think?
But I think the design course of the CMU people really do not like Java, in addition to the soft work, really no class with Java.
Then I noticed one of the main words of the title: "Advanced C language Course".
I personally think that C is a very refined language, without C + + so many messy features, Java so many design patterns. The language itself is nothing particularly good to learn in depth. You see a lot of C++,java books on the market, but there are not a few books on C. Besides, Coursera,edx and many of the universities I know do not seem to have any "high-level courses" of learning a programming language itself, only "advanced courses" that use a language. The main thing the Lord is looking for is basically a universal non-existent bar. Even my firm soft powder does not contradict learning and mastering how to use vim and GDB to write code under Linux, you can even learn a language is so ink. According to the curriculum and teaching requirements of most universities in China, c such a simple language does not need to be MOOC. Tut, American universities are still teaching C Ah, our school C is a six-door CS One of the foundation ... If you don't learn a track, don't even think about it. = The main topic is full of Chinese universities too low too low too outdated breath is to learn a lot of high-level language, still use bad C master can look at Stanford a public course "programming paradigm." A very good course, from the bottom of the analysis of C language mechanisms. This course is based not on grammar, but on the changes in memory of the C language syntax. And the most important point of learning C language is the memory play 6.
Have time to read some good open source operating system or database code. For learning to use good C is very helpful. I have seen the embedded system Ucos and database Redis source code. are very good code. This invites me.
Why do you MOOC is the standard? Wow
You don't have to learn, just hang on. My understanding:
Real C play 6 of people do not bother to teach others, C smattering people have self-knowledge, not to teach others indiscriminately. Exam-oriented education makes Chinese people like to learn things that are difficult but have little to do with eggs.
Embodied in computer science is the lower grades to learn C, to learn the assembly, to learn the compiler operating system.
Of course, these must be learned. But how does functional programming not learn? GPU Parallel Computing How not to learn? Distributed machine learning how not to learn it.
See China Three/four the curriculum of the university is seriously partial section and in a dead-in-the-alley. Did not find what is the case, you only find the name of the class C?
Put one handy: hwswinterface
Forcibly put one (Cuda as C is not very good): Hetero
Finally, there's a name for C: Arduino-platform
Unless you are concerned with the programming language itself, the higher-order course is clearly related to the specific application scenario. C Common Application scenarios and Python common scenarios that threshold is lower. It seems like there's nothing to say, it's
ObviousOf Which application scenario should have more people to pay attention to, there should be more MOOC, also
ObviousOf
I think the subject is sprayed very naturally, because the topic and questions added is not the same thing, if only curious, then do not pull the others have no, these classes are not very difficult to find.
I have been curious not to teach C (because teaching C + + so C does not separate classes) how the university to expand the architecture and operating system-related courses, if anyone's school is this way, I hope to introduce in the comments on the teaching ideas, thank you.