Khi nhiều sinh viên vào đại học, con số sinh viên không sẵn sàng cho sự nghiêm ngặt của việc học đại học cũng tăng lên. Một số người thiếu những kĩ năng nào đó, số khác thiếu động cơ, và một số không biết rằng đại học yêu cầu nhiều công việc hơn là trường phổ thông. Khó dạy nếu sinh viên vẫn bị lẫn lộn về tương lai của họ và không sẵn sàng học.

Phần lớn các thầy giáo đều bắt đầu giờ lên lớp đầu tiên bằng việc đặt mong đợi cho môn học nhưng tôi bắt đầu lớp của tôi bằng việc giới thiệu với họ phương pháp “học qua hành” để cho họ hiểu cách lớp sẽ được dạy trước khi đi vào chi tiết môn học. Ở Mĩ phần lớn sinh viên đều quen thuộc với phương pháp này cho nên tôi có thể ôn lại điều tôi sẽ làm nhưng ở châu Á, nhiều sinh viên có thể còn chưa được đặt vào tình thế của nó cho nên ít nhất phải để cả giờ lên lớp để thảo luận với sinh viên về điểm này. Sinh viên bao giờ cũng muốn biết họ học gì trong môn học và làm sao nó có thể giúp cho họ trong đời họ. Bằng việc giải thích kết nối giữa việc học hiện thời của họ và nghề nghiệp tương lai của họ, sinh viên có thể xây dựng cách nhìn về họ có thể làm gì và điều đó động viên họ học tập. Phân công bài của tôi cho sinh viên từ ngay lớp đầu tiên về kĩ nghệ phần mềm là tiến hành một nghiên cứu nhỏ bằng việc dùng Internet tìm hiểu về thị trường việc làm. Từng sinh viên phải chuẩn bị một trang mô tả về cách nhiều công ti thuê kĩ sư phần mềm? Yêu cầu của họ là gì? Họ cần những kĩ năng nào? Và trả lời các câu hỏi: “Em mong đợi học được kĩ năng nào từ môn này? Em phát triển những kĩ năng này như thế nào?” Điều này sẽ dẫn tới thảo luận ở phiên lên lớp sau và nó giúp khởi thảo quan niệm học qua hành.

Mọi thầy giáo đều nên giải thích sinh viên sẽ có khả năng học “Cái gì” trong môn học và “Tại sao” họ cần nó. Nếu họ không thể giải thích được rõ ràng, sinh viên sẽ không có khả năng làm kết nối theo cách riêng của mình và có thể không muốn tham gia vào các hoạt động lớp hay đưa thêm vào nỗ lực phụ. Câu trả lời cho những câu hỏi này không nên đơn giản kiểu như: “Học điều này thì em sẽ có được việc làm tốt” vì sinh viên cần câu trả lời xác định hơn cho nên điều quan trọng đối với thầy giáo là làm việc cùng sinh viên để đi tới câu trả lời cho hai câu hỏi này trên cơ sở hàng tuần dựa trên điều họ hiện thời đang học.

Chẳng hạn, vào ngày đầu của lớp tôi sẽ giải thích tổng quan về lớp: “Ngày nay hệ thống phần mềm có ở mọi nơi. Gần như mọi thiết bị điện và điện tử bây giờ đều có phần mềm trong nó. Phần mềm kiểm soát máy chế tạo, quản lí trường phổ thông và đại học, bệnh viện, tài chính và doanh nghiệp v.v. Đặc tả, quản lí và thực hiện phần mềm là miền của kĩ nghệ phần mềm. Ngày nay phần mềm đang ngày càng lớn hơn và phức tạp hơn; chúng ta cần áp dụng các nguyên lí kĩ nghệ cho việc phát triển phần mềm thay vì chỉ viết mã và kiểm thử như trong quá khứ và hi vọng nó làm việc. Kĩ nghệ phần mềm là bộ môn kĩ nghệ nơi kĩ sư phần mềm dùng các phương pháp, kĩ thuật và lí thuyết từ khoa học máy tính và áp dụng chúng vào trong việc phát triển phần mềm lớn và phức tạp. Bằng việc học kĩ nghệ phần mềm các em sẽ có khả năng phát triển và chuyển giao phần mềm có chất lượng trong phạm vi chi phí, lịch biểu, và đáp ứng sự thoả mãn của khách hàng. Bằng việc có những kĩ năng này, các em sẽ có khả năng xây dựng nghề nghiệp tốt vì hầu hết các em đã biết có thiếu hụt nghiêm trọng kĩ sư phần mềm và ngành công nghiệp này cần người có những kĩ năng này.”

Với các mục tiêu học tập hàng tuần, tôi giải thích: “Tuần này, các em sẽ học về thiết kế phần mềm nơi thiết kế được cấu trúc như các đối tượng tương tác. Các em cần hiểu cách thiết kế phần mềm có thể được biểu diễn như một tập các đối tượng tương tác mà quản lí trạng thái và thao tác riêng của chúng; các em cũng học các hoạt động trong qui trình thiết kế hướng đối tượng. Ngày nay phần lớn việc phát triển phần mềm trong công nghiệp đều dựa trên thiết kế hướng đối tượng; nếu các em lập trình trong Java, và C++ các em phải biết rõ thiết kế hướng đối tượng. Câu hỏi của thầy là: “Điều gì xảy ra nếu các em không biết rõ nó? Chúng ta hãy thảo luận về chủ đề này.”

Khi tôi cho phân công bài tập về nhà, tôi cũng giải thích cho sinh viên về kết nối tới điều họ đang học và điều họ có thể làm trong tương lai: “Bài tập về nhà này là về thiết kế hệ thống ngân hàng dùng Ngôn ngữ mô hình hoá thống nhất (UML), thầy muốn các em bắt đầu với kiến trúc hệ thống, nhận diện các đối tượng trong hệ thống và nhóm chúng vào các hệ con logic nơi từng hệ con được chỉ ra như một gói, các em phải mô tả trình tự các tương tác đối tượng, rồi làm tài liêu giao diện đối tượng. Phần lớn các em đều quen thuộc với ngân hàng và biết cách nó làm việc cho nên điều đó là đủ đơn giản nhưng nếu các em làm bài tập này kĩ, các em có thể thiết kế các hệ thống phức tạp hơn trong chi tiết hơn vì các nguyên tắc và qui trình là như nhau. Các em bắt đầu với kiến trúc, nhận diện các đối thể và lựa chọn một mô hình để biểu diễn hệ thống. Điều quan trọng là biết qui trình và tuân theo nó từng bước một. Hầu hết các hệ thống mà các em sẽ xây dựng trong công nghiệp cũng sẽ tuân theo cùng nguyên tắc. Nếu các em học thiết kế tốt, các em có thể làm được nhiều trong hệ thống phức tạp được dùng trong công nghiệp. Bằng việc học và biết rõ kĩ thuật này, các em có thể chuyển từ vị trí người lập trình sang vị trí người phát triển nhanh hơn nhiều so với ai đó không biết về thiết kế hay kiến trúc. Cuối cùng, nếu các em làm tốt các em có thể có được vị trí kiến trúc sư hệ thống nơi mọi điều các em làm là thiết kế các hệ thống lớn hơn…”

Tại cuối mỗi tuần hay khi chúng tôi kết thúc chủ đề môn học then chốt, tôi yêu cầu từng sinh viên nhận diện một khái niệm, lí thuyết hay ý tưởng quan trọng mà họ đã học trong tuần rồi trả lời các câu hỏi sau: “Tại sao em tin rằng quan niệm, lí thuyết hay ý tưởng này là quan trọng?” “Em áp dụng thế nào điều em đã học từ hoạt động này vào khía cạnh nào đó của đời em?” Điều đó sẽ dẫn tới nhiều thảo luận hơn trong sinh viên về họ cần gì, họ có thể làm gì và làm sao điều đó tác động tới cuộc sống của họ. Mọi sinh viên đều cần có “bức tranh lớn” về điều họ sẽ làm và thầy giáo nên hướng dẫn họ qua quá trình học này. Bằng việc có hiểu biết rõ ràng về sự liên quan của điều họ đang học và điều họ sẽ làm trong tương lai, điều đó sẽ giúp họ tham gia tích cực trong lớp.

Một số thầy giáo đợi tới cuối môn học mới tóm tắt điều học sinh đã học và nói về các kết nối liên quan. Đó là sai lầm vì họ bỏ lỡ cơ hội động viên sinh viên học tập. Cách tốt nhất là bắt đầu với sự liên quan của môn học từ ngày đầu tiên của lớp rồi mỗi tuần lại hội tụ vào kết nối của điều họ sẽ học tuần đó và điều họ có thể áp dụng trong tương lai. Sinh viên cần hiểu điều họ có thể làm và điều họ sẽ làm trong công nghiệp, họ phải biết liệu điều họ học có giúp cho họ xây dựng nghề nghiệp kéo dài cả đời và bằng việc biết điều đó rõ ràng, họ có động cơ để học.

Là thầy giáo, chúng ta không chỉ dạy một môn học mà còn hướng dẫn sinh viên. Tính hiệu quả mà theo đó sinh viên học được dựa trên việc chúng ta có thể động viên họ được bao nhiêu. Điều chúng ta dạy sẽ tác động lên họ không chỉ trong môn của chúng ta mà còn trong mọi môn học của họ, và cách họ học sẽ giúp họ thành công trong đời họ.

—English version—

Teaching effectively

As more students are going to college, the number of students who are not ready for the rigorous of college learning is also increasing. Some are lacking certain skills, others are lacking motivation, and some just do not know that college requires much more works than high school. It is difficult to teach if students are still confused about their future and not ready to learn.

Most teachers start their first class by setting expectations for the course but I begin my class by introduce them to the “learning by doing” method so they understand how the class will be taught before going into the course content details. In the U.S. most students are familiar with this method so I can just review what I would do but in Asia, many students may not been exposed to it so it would take at least a whole class to discuss with students on this topic. Students always want to know what they learn in the course and how it helps them in their life. By explain the connections between their current learning and their future career, students can develop a vision of what they can do and it motivates them to learn. My assignment for students in the first class of software engineering is to conduct a small research using the Internet on the job market. Each student must prepare a one page description of how many companies are hiring software engineer? What are their requirements? What skills do they need? And answer the questions: “What skills do you expect to learn from this course? How do you develop these skills?” This will lead to a discussion on the next class and it helps to elaborate the learning by doing concept.

Every teacher should explain “What” students will be able to learn in the course and “Why” they need it. If they cannot explain clearly, students will not be able to make the connection on their own and may not want to engage in class activities or put in the extra effort. The answers to these questions should not be simple like: “Study this then you will get good job” as students need more specific answers so it is important for teachers to work with students to come up with answers to these two questions on a weekly basis based on what they are currently studying.

For example, on the first day of class I would explain the overview of the class: “Today software systems are everywhere. Almost all electrical and electronic devices now have software in it. Software controls manufacturing machines, runs schools and universities, hospitals, finance and business etc. The specification, management, and implementation of software are the domain of software engineering. Today software is getting larger and more complex; we need to apply engineering principles to the development of software instead of just coding and testing like in the past and hope it works. Software engineering is an engineering discipline where software engineers use methods, techniques, and theories from computer science and apply them into the development of large and complex software. By learning software engineering you will be able to develop and deliver quality software within costs, schedule, and meet customers’ satisfaction. By having these skills, you will be able to build a good career as most of you already know there is a critical shortage of software engineers and the industry needs people with these skills.”

For the weekly learning objectives, I would explain: “This week, you will learn about software design where the design is structured as interacting objects. You need to understand how a software design may be represented as a set of interacting objects that manage their own state and operations; you also learn the activities in an object oriented design process. Today most software developments in the industry are based on object oriented design; if you are programming in Java, and C++ you must know object oriented design well. My question is: “What happen if you do not know it well? Let’s have a discussion on this topic.”

When I give homework assignments, I also explain to students about the connection to what they are doing and what they may do in the future: This homework is about design a banking system using Unified Modeling Language (UML), I want you to start with a system architecture, identify objects in the systems and group them in a logical sub-systems where each is shown as a package, you must describe sequence of objects interactions, then document the object interfaces. Most of you are familiar with a bank and know how it works so it is simple enough but if you do this exercise well, you can design more complex systems in more details because the principles and process are the same. You start with the architecture, identify the objects and select a model to represent the system. The important is knowing the process and following it step by step. Most systems that you will build in the industry will also follow the same principles. If you learn to design well, you can do a lot in complex system that are used in the industry. By learning and knowing this technique well, you can move from programmer position to developer position much faster than someone who does not know about design or architecture. Eventually, if you do well you may get to system architect position where all you do is design more large systems…”

At the end of each week or when we finish a key subject topic, I ask each student to identify one important concept, theory, or idea that they have learned during the week then answer the following questions: “Why do you believe that this concept, theory, or idea is important?” “How do you apply what you have learned from this activity to some aspect of your life?” That will lead to more discussion among students about what they need, what they may do and how does it impact their life. Every student needs to have a “big picture” of what they will do and teachers should guide them through this learning process. By having a clear understanding about the relevance of what they are learning and what they will be doing in the future, it will help them to engage actively in class.

Some teachers wait until the end of the course to summarize what students have learned and talk about the relevant connections. That is a mistake because they miss an opportunity to motivate students to learn. The best way is to start with the relevance of the course at the first day of the class then each week focus on the connection of what they will learn that week and what they can apply in the future. Students need to understand what they can do and what they will do in the industry, they must know whether what they learn can help them to build a career that last a lifetime and by knowing it well, they are motivate to learn.

As a teacher, we are not only teaching a subject but also guiding students. The effectiveness in which students learn is based on how much we can motivate them. What we teach will impact them not just in our course but in all of their courses, and how they learn will help them to success in their life.