Dạy Công nghệ thông tin phần 2

Để chuẩn bị cho việc làm của thế kỉ 21, mọi học sinh phải có tri thức và kĩ năng nào đó trong Công nghệ thông tin. Học sinh trường tiểu học phải biết cách dùng máy tính. Học sinh trường trung học phải biết cách dùng máy tính như công cụ để làm việc. Trong “thế giới được dẫn lái bởi công nghệ” này kĩ năng máy tính là bản chất để chuẩn bị cho họ với hầu hết các việc làm. Trong “thế giới được toàn cầu hoá” này, nơi mọi thứ được kết nối, và kinh doanh đang xảy ra với tốc độ của Internet, mọi nước cần có lực lượng lao động công nghệ để duy trì cạnh tranh.

Nhiều người tin rằng học sinh có thể học khoa học máy tính khi họ vào đại học. Theo ý kiến tôi, trong thế giới được dẫn lái bởi công nghệ đang thay đổi nhanh này, đợi cho tới lúc vào đại học mới học những kĩ năng này là quá trễ. Phần lớn các học sinh ngày nay đã được tiếp cận với công nghệ thông tin (điện thoại di động, laptops, phương tiện xã hội, trò chơi video, v.v.), và nhiều người sẽ làm việc trong những việc làm có dùng máy tính. Do đó họ phải họ dùng máy tính để giải quyết vấn đề trong trường trung học, cũng giống như họ học toán, vật lí và hoá học vì chúng là một phần của giáo dục trung học hiện thời.

Tôi tin rằng mọi học sinh trường trung học phải biết ít nhất một ngôn ngữ lập trình như Java, Python hay C++. Ngôn ngữ lập trình là nền tảng của Công nghệ thông tin. Học kĩ năng này sẽ giúp họ biết nhiều hơn về logic, cú pháp và ngữ nghĩa. Các ngôn ngữ lập trình nên được dạy tương ứng với môn toán. (Đại số tuyến tính, toán học rời rạc, và tính toán, v.v.). Chương trình máy tính thao tác các đối tượng, cho nên học sinh cũng phải học các cấu trúc dữ liệu và cách họ có thể tổ chức các lệnh cho máy tính thực hiện nhiệm vụ đặc biệt. Họ phải học khái niệm về cơ sở dữ liệu và lưu giữ tính toán mây. Họ phải biết cách truy nhập và thao tác dữ liệu hiệu quả và an toàn. Học sinh trung học phải có tri thức cơ bản về thuật toán và cách họ làm việc trong tự động hoá. Thuật toán là cơ sở của phát kiến và các lĩnh vực đang nổi lên như Học máy và Thông minh nhân tạo. Cung cấp đào tạo khoa học máy tính ở trường trung học là hữu dụng cho mọi học sinh, trong bất kì nghề nghiệp nào. Điều đó không có nghĩa là mọi người sẽ trở thành người lập trình, hay kĩ sư phần mềm nhưng tri thức và kĩ năng này được cần cho họ để vận hành tốt trong thế giới công nghệ. Các trường đều dạy toán cho học sinh bất kẻ liệu họ có muốn trở thành nhà toán học hay không, vì nó là nền tảng. Cùng điều đó là đúng cho khoa học máy tính.

Vài năm trước, khi dạy ở Nam Á, mọi người bảo tôi rằng không thể nào dạy khoa học máy tính ở trường phổ thông được vì phần lớn các trường không có phòng thí nghiệm máy tính hay thầy giáo máy tính. Chủ trương rằng học sinh trung học phải học ngôn ngữ lập trình là không thực tế. Tôi giải thích: “Tôi đã dạy ở nhiều nước và thấy điều đang xảy ra ở đó. Mọi nước từ châu Phi tới Nam Mĩ đều cải tiến giáo dục của họ để đưa đào tạo máy tính vào, và học sinh ở đó đang tiến bộ lên. Nếu các bạn không cung cấp giáo dục công nghệ thích hợp, các bạn đang làm hại cho thế hệ tiếp cả về giáo dục và kinh tế. Chừng nào các bạn chưa có bước tiến để thay đổi tình huống đó, nước các bạn sẽ bỏ lỡ cơ hội để cải thiện nền kinh tế của các bạn.” Một nhà giáo dục bảo tôi: “Nhưng thanh niên có thể tự học mà không cần giúp đỡ nào. Tất cả họ đều có laptops, và điện thoại di động và không cần được dạy. Tạo ra chương trình giáo dục máy tính mất thời gian và chi phí, và chúng tôi không thể đảm đương được điều đó.”  Tôi trả lời: “Không có đào tạo đúng, người của các bạn sẽ là “người tiêu thụ công nghệ” và làm cho ai đó giầu, vì điều họ dùng, cả phần cứng và phần mềm, được phát triển và chế tạo ở đâu đó, không ở nước bạn. Về căn bản, bạn đang tiêu tiền, không làm ra tiền.”

 

—English version—

 

Teaching Information Technology Part 2

In order to prepare for the jobs of the 21st century, all students must have some knowledge and skills in Information Technology. Elementary school students must know how to use a computer. High school students must know how to use a computer as a tool to work. In this “Technology-driven world” computer skills are essential to prepare them for most of the jobs. In this “Globalized world,” where everything is connected, and business is happening at the speed of the Internet, every country needs to have a technology workforce to stay competitive.

Many people believe that students could learn about computer science when they go to college. In my opinion, in this fast-changing technology-driven world, it is too late to wait until college time to learn these skills. Most of today’s students are already be exposed to information technology (Mobile phones, laptops, social media, video games, etc.), and many will work in jobs that involve the use of a computer. Therefore must learn to use a computer to solve problems during high school, just like they learn mathematics, physics, and chemistry as they are part of the current high school education.

I believe that every high school student must know at least one programming language such as Java, Python or C++. A programming language is the foundation of Information Technology. Learning this skill will help them to know more about logic, syntax, and semantics. Programming languages should be taught in corresponding with mathematics courses. (Linear Algebra, Discrete math, and Calculus, etc.). A computer program manipulates objects, so students must also learn data structures and how they can organize instructions for the computer to perform specific tasks. They should learn the concept of databases and cloud-computing storages. They should know how to access and manipulate data efficiently and safely. High school students should have a basic knowledge of algorithms and how they work in automation. The algorithm is the basis of innovation and emerging field such as Machine learning and Artificial Intelligence. Providing computer science training in high school is useful for all students, in any career. It does not mean they all will become programmers, or software engineers but this knowledge and skills are needed for them to function well in the technology world. Schools teach math to students regardless of whether they want to become mathematicians or not, because it is foundational. The same is true of computer science.

A few years ago, when I taught in South Asia, people told me that it is impossible to teach computer science in high school because most schools do not have a computer lab or computer teachers. To advocate that high school student learning a programming language is not practical. I explained: “I have taught in many countries and seeing what is happening there. Every country from Africa to South America are improving their education to include computer training, and students there are making progress.  If you do not provide appropriate technology education, you are hurting your next generation both educationally and economically. Unless you take steps to change that situation, your country will miss an opportunity to improve your economy.” An educator told me: “But young people can learn by themselves without any help. They all have laptops, and mobile phones and do not need to be taught. Creating a computer education program takes time and cost, and we cannot afford it.”  I answered: “Without proper training, your people will be “The Consumers of technology” and make somebody rich, because what they use, both hardware and software, are developed and manufacture somewhere, not in your country. Basically, you are spending money, not making money.”