01 Jul, 2021
Dạy gì trong chương trình Khoa học máy tính
Một thầy giáo viết cho tôi: “Công nghệ máy tính thay đổi nhanh thế và tạo ra thách thức cho tôi cũng như cho các thầy cô khác. Chúng tôi có thời gian giới hạn nhưng tài liệu liên tục tăng lên. Làm sao chúng tôi đưa tất cả những thứ đó vào một chương trình được? Tôi chắc rằng thầy đang đối diện với vấn đề tương tự nữa, vậy làm sao thầy giải quyết được điều đó?”
Đáp: Bạn không thể dạy được mọi thứ trong một thời gian giới hạn, bạn phải đặt ưu tiên. Bằng việc xác định môn học nào bạn muốn học sinh của bạn học, công nghệ mấu chốt nào họ phải biết, và kĩ năng nào họ phải phát triển, thì bạn có thể thiết kế tài liệu dạy của mình tương ứng theo. Có những khái niệm nền tảng mà mọi học sinh phải biết vì chúng là nền tảng của mọi thứ như Cấu trúc dữ liệu, và thuật toán nhưng ngôn ngữ lập trình có thể thay đổi theo thời gian. Ngày nay Java và C++ là phổ biến nhưng bạn có thể xác định kiểu công việc nào được cần trong thị trường địa phương và điều chỉnh tương ứng. Vài năm trước đây, phần mềm nhúng là quan trọng, tôi đã hội tụ nhiều vào C thay vì C++. Khi phân tích dữ liệu được cần tới ngày hôm nay, tôi dạy R thay cho C++.
Bằng việc điều chỉnh khối lượng thông tin trong từng môn, tôi thiết kế lại chương trình để hỗ trợ cho học sinh học điều họ cần biết dựa trên nhu cầu của công nghiệp để cho họ có thể có được việc làm tốt sau khi tốt nghiệp. Tất nhiên, không phải mọi thầy cô giáo đều thích cách tiếp cận này. Một số người ưa thích dừng lại với cùng các tài liệu môn học mà họ từng dạy trong nhiều năm mà không thay đổi cái gì. Ở Mĩ các thầy cô có nhiều quyền tự trị trong việc dạy của họ nhưng chính học sinh mới là người quyết định học môn nào tuỳ theo ai dạy và họ chọn giáo sư nào họ muốn học cùng. Một số thầy giáo có thể cảm thấy rằng họ phải dạy mọi thứ vì công nghệ thay đổi nhưng tôi ưa thích lựa chọn chỉ những môn quan trọng thay vì có một danh sách toàn diện các tài liệu. Tôi tin rằng bằng việc rút gọn khối lượng tương ứng với ưu tiên cho học sinh, tôi có thể làm việc tốt hơn trong khi hỗ trợ cho họ. Tôi ưa thích hội tụ vào vài điều bản chất, cho sinh viên thời gian và hoạt động để phát triển kĩ năng riêng của họ trong những điều bản chất này thay vì tuân theo một danh sách cứng nhắc mà họ có thể không có thời gian để xây dựng các kĩ năng của họ.
—English version—
What to teach in Computer Science program
A teacher wrote to me: “Computer technology changes so fast and creates a challenge for me as well as other teachers. We have limited time but the material is continuing to grow. How do we put all of them in a program? I am sure that you are facing similar problem too, so how do you solve it?
Answer: You cannot teach everything within a limited time, you must set priority. By determine what subject that you want your students to learn, which critical technology that they must know, and what skills that they must develop, than you can design your teaching materials accordingly. There are fundamental concepts that every students must know because they are the foundation of everything such as Data Structure, and algorithms but programming language can change with time. Today Java and C++ are popular but you could determine what type of works is needed in the local market and adjust accordingly. Several years ago, embedded software was important, I focused more on C instead of C++. As data analytics is needed today, I teach R instead of C++.
By adjusting the amount of information in each course, I redesign the program to support students to learn what they need to know based on industry needs so they can get a good job after graduate. Of course, not every teacher like this approach. Some prefer to stay with the same course materials that they have been teaching for many years without changing anything. In the U.S. the teachers have a lot of autonomy in their teaching but it is the students who decide which course to take depending on who is teaching and they select which professor they want to study with. Some teachers may feel that they have to teach everything as technology changes but I prefer to select only the important ones rather than have a comprehensive list of materials. I believe that by reducing the amount in accordance with the priority for students, I can do a better job in supporting them. I prefer to focus on few essentials, giving students time and activities to develop their own skills in these essentials rather than follow a rigid list that they may not have time to build their skills.