Dacity has two programming introductory courses: Workshop and IntroductiontoComputerScience. This course uses pythonIntrotoComputerScienceClassOnline (CS101). I have never met any foreign school whose first programming class is in C language, but basically in China, C is used (including dacity, which has two Programming introductory courses: Intro to Programming in Java
Introduction to Programming
And Introduction to Computer Science, which uses python
Intro to Computer Science Class Online (CS101)
I have never seen any foreign school that uses C language for the first programming course, But it basically uses C in China (including myself)
In addition to Udacity, Coursera, and edX, there are also many introductory programming courses, basically using Java or python.
I have followed Stanford's Programming Methodology completely.
I guess:
Because C is hard to write... Beginners do not need to allocate pointers and memory throughout the day. If I use python to teach, I think my interest will be much greater and my fear will be much weaker .. If you miss your youth, Tan haoqiang's C language is broken... Reply content: it is easy to write a semicolon to not write a semicolon, and hard to indent from not shrinking. CMU, Caltech, and Cornell are also using Python...
Yes, although C's syntax is simple and clear, it is a headache to manage the memory by yourself.
Java syntax is too troublesome. For example, you can compare the number of List/Array Codes in Java and Python...
In my opinion, Python is the best Intro to CS language among the three.
In the novice stage, you cannot understand the power of C and Java, But you can understand the simplicity of Python.
With regard to C, the efficiency of reasonable memory allocation should be learned at least one algorithm after the Intro course.
At the beginning, a newbie may be unable to learn due to SegFault.
Also, it is difficult to use C to teach OOP.
As for Java, the true strength of Java is that it is easy to work with developers/programs in a team (a JVM can run on any platform ).
New users will pay too much attention to syntaxes and cannot understand the key points of Intro to CS.
For those who really want to learn well, my suggestions are as follows:
In the first lesson, we used Racket/Scheme + SiC to teach.
Learn Python.
After Java, C is free.
If not, you can get started with Python. It is better to focus on Functional Programming in Python and introduce lambda and so on.
In my opinion, FP should learn as soon as possible and broaden its horizons.
In addition, the Recursion and other knowledge points in the Intro course, I personally think that only FP can fully reflect its elegance.
Python can also be reflected. I rely on the C language invented by Tan haoqiang, who has mastered core technologies by Chinese people.
----------------------
/* Oh, come on, everybody. I'm sorry. This is because python and java are more advanced languages. Modern Programming courses mainly teach data types, variable scope, logic, conditions, and loops, which are process-oriented. In addition, the inheritance, polymorphism, abstraction, and other features of the object-oriented stage can be well satisfied. It is also cross-platform and easy to produce products. If you use the C series, especially in linux, you need to care too much about the details related to specific languages. It is of little significance to understand too much at the entry stage. */
Has lz investigated...
At least I studied Java in my freshman year and added some basic courses (C may be involved, but I rarely teach C separately)
In addition, the four-year course is only related to languages, and C/C ++ is only involved in many courses. The domestic education system is too spam, mainly relying on self-study. I feel that python is suitable for beginners. A sense of accomplishment. After learning the C language, the python code will be well written. It is easy to learn deeply and can expand projects. I don't like Microsoft. I think it's okay for China to do this.
Cause
One sentence: do not learn C, do not speak
One more point: Because C is an "Intermediate Language", you can go up and down and have a simple and low-level performance model (Object Model), which is good for students majoring in software and hardware. Learning C is more conducive to learning hardware and basic software. Learning Python/Java is more beneficial to "solving problems.
There are two different ideas. "What you want to learn" should also learn several more languages. "You don't want to learn". It doesn't matter which one you want to learn. Because the first foreign course focuses on the introduction to computer science and describes important program concepts, rather than language-speaking, it requires fewer language traps, easy entry, simple syntax, and rich features, can be used to describe concepts. Python exactly has the above features.
The entry-level course in China is actually about syntax. for and while syntax can be about a few lessons (here, we can talk about abstract algebra in a good way, and introduce the non-variant style in a timely manner. The prerequisites are as follows, post condition .)
C is more suitable for a brief introduction in the system programming Course and then for system programming, similar to ics of cmu and cs61c of ucb. A separate course class is a waste of money.
Upload one ..
The first program course of freshman year at Harbin Institute of Technology in the fall semester
That is, python is not c ..
C is obviously a better entry language for undergraduates than Java and Python, it can be closely integrated with "Computer composition principles", "operating system principles", "algorithms", and "compilation principles. Java and Python are simple things to learn by themselves. How can computer students learn C language?
I don't want to learn to do anything else.