Ngày nay lập trình đang trở thành một kĩ năng quan trọng cũng hệt như đọc và viết và nó đang được dạy ở nhiều trường tiểu học và trung học như một phần của chương trình đào tạo chính qui của nhà trường. Một số phụ huynh hỏi “Tại sao dạy lập trình khi học sinh có thể không làm việc trong công nghiệp công nghệ?” Sự kiện là trong tương lai, bất kể nơi họ làm việc, mọi thứ họ làm đều sẽ yêu cầu kĩ năng lập trình. Có kĩ năng này sẽ mở ra cho họ một thế giới vô tận khả năng và việc làm tốt hơn. Nhiều năm trước, nhà tâm lí học Jean Piaget đã định nghĩa mục đích của giáo dục là “tạo ra những cá nhân có khả năng làm những điều mới, không đơn giản lặp lại điều những thế hệ khác đã làm.” Trong thị trường được công nghệ dẫn lái ngày nay, người trẻ cần học các kĩ năng giúp cho họ làm những điều mới, không đi theo điều đã được dạy trong quá khứ.
Không lâu trước đây, học sinh phải ghi danh vào chương trình khoa học máy tính để học cách viết mã. Bây giờ có những tài nguyên có sẵn trực tuyến như MOOCs, YouTube, và các websites chuyên dạy kèm. Học sinh thậm chí không phải trả tiền để học. Nếu họ đưa nỗ lực vào và làm chủ kĩ năng lập trình, họ sẽ giỏi hơn nhiều trong tương lai so với người không làm chủ kĩ năng lập trình. Với trẻ nhỏ từ 4 tới 12 tuổi, tôi giới thiệu các ngôn ngữ lập trình sau:
Scratch là ngôn ngữ lập trình được phát triển bởi phòng thí nghiện vườn trẻ cả đời của MIT. Nếu bạn muốn dạy trẻ nhỏ lập trình, đây là ngôn ngữ tốt nhất để bắt đầu. Nó rất dễ học và bao gồm bài học nhập môn và các chỉ dẫn cho bố mẹ. Scratch có thể được dùng để làm hoạt hình thực và trò chơi dùng các hình ảnh và nhân vật được lập sẵn hay bằng việc tải lên các hình ảnh hay nhân vật mới. Scratch cũng có thể được dùng mà không có kết nối internet. Trẻ nhỏ có thể chia sẻ sáng tạo của chúng trong cộng đồng trực tuyến của Scratch.
Blockly là ngôn ngữ lập trình được Google phát triển. Về cơ bản nó là là việc cải tiến của Scratch bằng việc dùng cùng các khối xây dựng cài vào nhau, nhưng nó có thể đưa ra mã trong nhiều ngôn ngữ lập trình khác như JavaScript, Python, và PHP. Đây có thể là hoạt động chuyển tiếp, sau khi làm chủ Scratch, trẻ nhỏ có thể học các ngôn ngữ khác. Chúng có thể nhìn thấy mã dọc theo cạnh màn hình khi chúng móc nối các khối với nhau, và chúng có thể chuyển các ngôn ngữ để xem sự khác biệt trong cú pháp ngôn ngữ đối với cùng một chương trình cơ bản.
Alice là ngôn ngữ lập trình được Carnegie Mellon phát triển như một công cụ lập trình 3-D để dạy các khái niệm của ngôn ngữ lập trình hướng đối tượng như C++. Nó dùng cách tiếp cận quen thuộc về các khối xây dựng để cho phép trẻ nhỏ tạo ra trò chơi hay hoạt hình bằng lập trình cho chuyển động camera, các mô hình 3D, và cảnh. Ngôn ngữ này sẽ mở ra cho trẻ nhỏ nhiều thứ như đồ hoạ 3D và robotics.
Swift là ngôn ngữ lập trình được Apple phát triển để xây dựng các app cho iOS. Swift Playgrounds là một trò chơi trên iPad được thiết kế để dạy trẻ nhỏ cách lập trình trong Swift. app này có chứa nhiều bài dạy về các chỉ lệnh khác nhau được thiết kế để di chuyển một nhân vật có tên Byte trong thế giới 3D. Swift Playgrounds không dùng giao diện khối cài vào nhau, nhưng sau khi trẻ nhỏ giỏi với Swift Playgrounds, chúng có thể bắt đầu phát triển các app di động trong Swift.
Bằng việc dạy trẻ nhỏ viết mã từ sớm, bạn đang nâng cao tư duy tính toán của chúng điều làm cho chúng dễ dàng học giải quyết vấn đề phức tạp và phát triển tư duy phê phán được cần khi chúng vào đại học. Tư duy tính toán là khả năng diễn đạt ý nghĩ theo cách có trình tự và hợp lí. Nó là nền tảng của Trí tuệ nhân tạo và Học máy và nhiều công nghệ tương lai. Không phát triển kĩ năng này từ sớm, một số học sinh có thể gặp vấn đề trong việc thu nhận kĩ năng này vào thời gian sau vì nó yêu cầu từng bước logic nào đó trong tiếp cận giải quyết vấn đề.
—English version—
Programming Languages for children
Today programming is becoming an important skill just like reading and writing and it is being taught in many elementary and high schools as part of their regular school curriculum. Some parents ask “Why teaching programming when students may not work in the technology industry?” The fact is in the future, regardless of where they work, everything they do will require programming skill. Having this skill will open them up to a world of endless possibilities and better jobs. Many years ago, psychologist Jean Piaget defined the goal of education as “to create individuals who are capable of doing new things, not simply of repeating what other generations have done”. In today’s technology-driven market, young people need to learn the skills that help them to do new things, not follow what has been taught in the past.
Not long ago, students have to enroll in a computer science program to learn how to code. Now there are resources available online such as MOOCs, YouTube, and specific tutorial websites. Students do not even have to pay to learn. If they put in the efforts and master programming skills, they will be much better in the future than the one who does not. For young children from 4 to 12 years old, I recommend the following programming languages:
Scratch is a programming language developed by MIT’s Lifelong Kindergarten Lab. If you want to teach children to program, this is the best language to start. It is very easy to learn and include tutorials and instructions for parents. Scratch can be used to make real animations and games using either prepopulated images and characters or by uploading new ones. Scratch can also be used without an internet connection. Children can share their creations on Scratch’s online community.
Blockly is a programming language developed by Google. It is basically a refinement of Scratch using the same interlocking building blocks, but it can output code in several different programming languages such as JavaScript, Python, and PHP. This can be a transition activity, after mastering Scratch, children can learn other languages. They can see the code along the side of the screen as they link blocks together, and they can switch languages to see the difference in language syntax for the same basic program.
Alice is a programming language developed by Carnegie Mellon as a 3-D programming tool to teach the concepts of object-oriented programming languages like C++. It uses the familiar approach of building blocks to allow children to create games or animations by programming camera motions, 3D models, and scenes. This language will open children to many things such as 3D graphics and robotics.
Swift is a programming language developed by Apple to build iOS apps. Swift Playgrounds is an iPad game designed to teach children how to program in Swift. The app contains a lot of tutorials on different commands that are designed to move a character named Byte along a 3D world. Swift Playgrounds does not use the interlocking block interface, but after children are good in Swift Playgrounds, they can start developing in Swift for mobile apps.
By teaching children to write code early, you are enhancing their computational thinking which makes them easy to learn complex problem-solving and developing the critical thinking needed when they go to college. Computational thinking is the ability to express the thoughts in a rational and sequenced way. It is the foundation of Artificial Intelligence and Machine learning and many future technologies. Without developing this skill early, some students may have a problem in acquiring this skill at a later time because it requires a certain logical step by step in approaching solving problems.