Frequently asked question related to C Programming
1) Why C?
C is one of the foundations for modern information technology (IT) and computer science (CS). Many working principles of IT and CS, such as programming languages, computer architectures, operating systems, network communication, database, graphical user interface (GUI), graphics, image processing, parallel processing, multi-threads, real-time systems, device drivers, data acquisition, algorithms, numerical analysis, and computer game, are based on or reflected in the functionalities and features of C. The experience in C will help students understand the working principles of these important concepts in IT and CS. Therefore, C is required for the CS major in almost all universities. C is the language of choice for programming embedded and mechanization systems with hardware interfaces. C is the base for almost all popular programming languages. C is the language of choice for system programming. Because of the performance and portability of C, almost all popular cross-platform programming languages and scripting languages, such as C++, Java, Python, Objective-C, Perl, Ruby, PHP, Lua, and Bash, are implemented in C and borrowed syntaxes and functions heavily from C. They share the similar operators, expressions, repetition statements, control structures, arrays, input and output, and functions.
2) Once students have learned C, they can pick up any other languages by themselves.
Certain languages and tools are typically used to solve domain specific problems. Therefore, the ability to understand and learn new languages is important. All other modern languages borrowed heavily from C. Once students learned C, it is easy for them to learn by themselves any other computer languages without much difficulty. On the other hand, even if students have learned other programming languages or visual programming, it is generally still quite difficult for them to learn C by themselves, especially for difficult topics such as pointers and linked lists. Computer programming in C needs a disciplined approach. Many people believe that if students start with computer programming using a typeless scripting language first, then they would have even harder time to learn and master C afterwards. The most important benefit of the C programming language, is that it recognised worldwide and used in a multitude of applications, including advanced scientific systems and operating systems. Another important benefit of learning the C language, is that it is the base language of all advanced computer languages.
3) Computer programming can develop student's critical thinking capabilities.
Developing a program to solve a practical problem involves many creative works, including design, logic reasoning, math, etc. It can help students find practical applications of many math concepts such as variables in Algebra I and trigonometry. Debugging a program can also help student improve their reasoning and logical thinking capabilities. The computer-aided problem solving capabilities can be trained using C.