Computer science and math
A programmer wrote to me: “Why do computer science students have to spend several years learning mathematics and programming language? It only took me few months at a computer programming school, without any mathematics but I still can program and be able to work as a programmer.”
Answer: Please understand that Computer Science is NOT computer programming although programming is a part of it. Of course, the decision to go to college or vocation school is a personal choice. People can learn how to program in few weeks and find a job as a programmer or go to college to be educated in some computing skills.
There is a difference between a few months vocational training and a four years college training. There is a difference between a programming certificate and a computer degree. Computer Science is an engineering discipline where students learn the knowledge and skills to build application software and systems with a well defined purpose. Computer Science is a mathematical science where students study the capabilities and limitations of computers and how people can use them effectively.
Both college and computer vocational schools teach programming languages. Most programs have only a few hundred lines of code which is easy for one person to build with some trainings. However, in the industry most software are much larger, some have several millions lines of code. People do not work alone but in team, some have ten or twenty people, some have hundred and could go as high as thousands people. Developing and understanding such complicated software requires special knowledge and mathematical discipline. That is why college students spend several years developing this special knowledge so when they go to work, they can build larger and more complex software.
Real-world software systems also must be of high quality and reliable as some of them control our daily activities. Business software controls your bank account, the stock market, business transactions etc. Engineering software controls the traffic, the airport, the airplanes, the electric grids, the factories etc. Any failure in these systems can cause serious damage and very expensive to fix. That is why these software products require strict disciplines and well defined process to avoid errors.
Mathematics provides the logic for these software systems. Students need mathematics to learn about logic as well as problem solving techniques so they can develop software in a systematic fashion. Larger and complex computer programming requires that developers to follow the exact sequence of steps to perform a task so it can be measured and reviewed completely and precisely. Mathematics is the foundation of software, it is the brick to build the house of software and without logic, there is no software. Because the concept is complex, not easy to understand, college students must learn about reasoning using abstract entities and operations.
Mathematics provides a powerful language for precisely describing abstract ideas (logic, set theory, sequences, functions, relations), and powerful reasoning methods for use with abstract ideas (proof techniques, induction, problem solving). For example: Sets are collections of objects, such as the set of all students in this room, or the set of all prime numbers less than 100,000. Sequence are ordered collections of objects, such as the alphabet (From A to Z) and subsequences of the integer (O,1,4,9.16 …). When you study computer science, you learn to use mathematics concepts and methods to organize your thought and transfer them into design and code.
College students learn problem solving ability, recognizing levels of abstraction in software, hardware systems. They also learn skills such as building and using database management systems and sophisticated software tools to implement a variety of computing tasks. Beside technical skills, they also learn some soft-skills such as communication, writing, giving presentations or demonstrations. Being a team members and participate in teamwork etc.
Today and in the future, most good jobs require college education. However, whether you go to college or vocational training depends on several factors such as financial, time, needs, career and jobs etc. It is a choice that people have to make. By the way, when you make choice, you do some calculation in your head and it is mathematics too.
- Blogs of Prof. John Vu, Carnegie Mellon University