21 Jan, 2021
Chuẩn đào tạo cho đại học
Một số trong các bạn đã hỏi tôi về chuẩn cho đào tạo tính toán rồi trích dẫn CMMI, Agile, ISO, và CMU. Đây KHÔNG phải là chuẩn về đào tạo tính toán. CMMI là khuôn khổ cho cải tiến qui trình, ISO là chuẩn về quản lí chất lượng, Agile là cách tiếp cận tới phát triển phần mềm, và CMU là đại học.
Về cơ bản, có bốn tổ chức ở Mĩ phát triển các hướng dẫn chương trình đào tạo tính toán cho mọi đại học. Chúng là:
1) Hội máy tính toán – Association for Computing Machinery (ACM). Nhóm này là tổ chức khoa học quan tâm tới phát triển tri thức mới về mọi khía cạnh của tính toán. Nó bao gồm phần lớn các nhà khoa học máy tính những người phát minh ra cách mới để dùng máy tính và những người thúc đẩy khoa học và lí thuyết nền tảng cho cả bản thân tính toán và phần mềm tạo khả năng cho nó.
2) Hội máy tính của Viện các kĩ sư điện và điện tử – Computer Society of the Institute for Electrical and Electronic Engineers (IEEE-CS hay Hội máy tính). Nhóm này bao gồm nhiều người làm phần mềm chuyên nghiệp, những người quan tâm tới tính toán qui mô lớn và phức tạp và các ứng dụng từ cảnh quan kĩ nghệ.
3) Hội các hệ thông tin – Association for Information Systems (AIS). Nhóm này bao gồm phần lớn là các nhà chuyên môn hàn lâm những người tập trung vào mối quan hệ giữa doanh nghiệp, quản lí và ứng dụng của tính toán trong doanh nghiệp.
4) Hội các nhà chuyên môn công nghệ thông tin – Association for Information Technology Professionals (AITP). Nhóm này là tổ chức quan tâm chủ yếu tới xử lí dữ liệu và quản lí hệ thống tính toán. AITP hội tụ vào phía chuyên nghiệp của tính toán, phục vụ cho những người dùng công nghệ tính toán để đáp ứng cho nhu cầu của doanh nghiệp và các tổ chức khác.
Trước 1995, từng nhóm đã tạo ra các khuyến cáo chuẩn chương trình đào tạo riêng của mình. Vì công nghệ thay đổi nhanh chóng, nhiều phần trong những khuyến cáo này trở thành lạc hậu và không đáp ứng cho nhu cầu của công nghiệp. Năm 1995, các nhóm này hợp tác với nhau trong việc tạo ra chuẩn chương trình đào tạo để cải tiến đào tạo ở các đại học của Mĩ. Năm 2001, ACM và IEEE-CS đã cùng phối hợp lực lượng để tạo ra chương trình đào tạo chung cho tính toán theo chương trình bậc cử nhân bốn năm về khoa học tính toán, kĩ nghệ máy tính và kĩ nghệ phần mềm. Ngày nay, gần như mọi đại học ở Mĩ và nhiều đại học nước ngoài đang theo hướng dẫn chuẩn này. (Các đại học như CMU, MIT, Stanford v.v đang theo hướng dẫn chuẩn ACM, IEEE về các chương trình đào tạo của họ). Khi tôi dạy ở Nhật Bản, Hàn Quốc, Trung Quốc và châu Âu, tôi cũng thấy rằng họ cũng chấp nhận chuẩn này trong các giáo trình đào tạo của họ.
Nguyên lí then chốt của chuẩn này là: Sinh viên phải nhận được đào tạo tri thức và kĩ năng cần để làm việc ngay sau khi họ tốt nghiệp (thực hành nhiều hơn, ít lí thuyết hơn). Đào tạo phải được thiết kế lại để hướng dẫn sinh viên trong việc áp dụng công nghệ vào hoàn cảnh doanh nghiệp (công việc thực hành tương tự như doanh nghiệp thực); và công nghệ phải được lựa chọn làm nâng cao thêm qui trình giáo dục và nhu cầu của công nghiệp (nhiều cộng tác hơn giữa đại học và công nghiệp). Đại học đi theo chuẩn này phải hội tụ vào cách tiếp cận có kỉ luật bao quát toàn thể vòng đời của hoạt động phần mềm từ quan niệm tới đưa ra sản phẩm và dịch vụ bảo trì. Mặc dầu các ngôn ngữ lập trình là nền tảng nhưng quản lí và ứng dụng các công cụ, phương pháp để giải quyết vấn đề cũng phải được nhấn mạnh để cho người mới tốt nghiệp, một khi vào làm việc, sẽ được chuẩn bị tốt hơn để đóng góp cho doanh nghiệp với kinh nghiệm và tri thức thích hợp. Các kĩ năng viết và trao đổi cũng được yêu cầu như các môn hỗ trợ thích hợp (trong hầu hết các đại học nước ngoài, tiếng Anh thường được yêu cầu)
Chuẩn này bao gồm mười một mục tiêu then chốt:
- Khả năng áp dụng tri thức khoa học, kĩ nghệ và toán học.
- Khả năng thiết kế, tiến hành thực nghiệm, phân tích và diễn giải dữ liệu.
- Khả năng làm việc trong tổ đa ngành.
- Khả năng thiết kế hệ thống, cấu phần, hay qui trình để đáp ứng các nhu cầu mong muốn bên trong những ràng buộc hiện thực như kinh tế, môi trường, xã hội, đạo đức.
- Hiểu trách nhiệm chuyên nghiệp và đạo đức.
- Khả năng nhận diện, phát biểu và giải quyết vấn đề.
- Khả năng dùng kĩ thuật, kĩ năng và công cụ.
- Khả năng trao đổi hiệu quả.
- Thừa nhận nhu cầu về và khả năng tham gia vào học tập cả đời.
- Có tri thức về các vấn đề đương đại.
- Giáo dục rộng cần thiết để hiểu tác động của giải pháp trong hoàn cảnh toàn cầu, kinh tế, môi trường và xã hội.
Chuẩn này liệt kê các kết quả của sinh viên đã hoàn thành việc đào tạo là:
- Biểu lộ việc làm chủ tri thức và kĩ năng phần mềm cần để bắt đầu hành nghề.
- Làm việc cá nhân và trong tổ để phát triển phần mềm có chất lượng.
- Làm các bù trừ thích hợp, bên trong các giới hạn bị áp đặt bởi “Chi phí, thời gian, tri thức, hệ thống hiện tại, và tổ chức”.
- Thực hiện thiết kế trong một hay nhiều miền dùng cách tiếp cận phần mềm tích hợp “đạo đức, xã hội, pháp lí và quan tâm kinh tế”.
- Chứng tỏ hiểu biết về và áp dụng các lí thuyết, mô hình và kĩ thuật hiện thời cần cho hệ thống phần mềm.
- Chứng tỏ các kĩ năng như thương lượng liên con người, thói quen làm việc hiệu quả, quyền lãnh đạo và trao đổi.
- Học mô hình, kĩ thuật và công nghệ mới khi chúng nổi lên.
Chuẩn này liệt kê ra mười khu vực nền tảng:
- Nền tảng tính toán (Lập trình, cấu trúc dữ liệu, thuật toán)
- Nền tảng toán học (Toán học cơ sở, thống kê, phương pháp trực nghiệm)
- Thực hành chuyên nghiệp (Năng động nhóm, trao đổi, đại đức, pháp lí)
- Mô hình hoá & phân tích (Nguyên lí mô phỏng, thuộc tính hệ thống & chất lượng)
- Thiết kế phần mềm (Bù trừ, kiến trúc, hình mẫu, đánh giá)
- Kiểm thử phần mềm (trắc nghiệm & kiểm nghiệm, kiểm điểm, giám định)
- Tiến hoá phần mềm (di trú, cải biên, kĩ nghệ ngược)
- Qui trình phần mềm (mô hình vòng đời, chuẩn, qui trình)
- Chất lượng phần mềm (thuộc tính chất lượng, chi phí & phân tích tác động)
- Quản lí phần mềm (nguyên tắc quản lí, lập kế hoạch, kiểm soát)
Chuẩn này thừa nhận 15 khu vực đặc biệt trong tính toán (đại học có thể chọn lựa trong những khu vực này để làm mạnh cho chương trình đào tạo của họ)
- Hệ thống lấy mạng làm trọng tâm
- Hệ thông tin & xử lí dữ liệu
- Tài chính & hệ thống thương mại điện tử
- Hệ thống dung sai & sống được
- Hệ thống an ninh cao
- Hệ thống an toàn và an ninh mấu chốt
- Hệ thống nhúng & thời gian thực
- Hệ thống khoa học
- Hệ thống viễn thông
- Hệ thống hàng không & xe cộ
- Hệ thống cơ xưởng & kiểm soát qui trình công nghiệp
- Hệ thống sinh y
- Hệ thống đa phương tiện & trò chơi & giải trí
- Hệ thống nền di động
- Hệ thống dựa trên tác tử
Tất nhiên, tôi không biết đại học nào cung cấp cả 15 khu vực này. Phần lớn chọn lựa vài khu vực để tập trung vào cho nên sinh viên nào muốn có chuyên môn trong khu vực nào đó phải cẩn thận tìm ra thêm về những môn họ cung cấp trước khi nộp đơn xin vào.
—-English version—-
Training standard for university
Some of you asked me about the standard for computing trainings then cited CMMI, Agile, ISO, and CMU. These are NOT computing training standards. CMMI is a framework for process improvement, ISO is standard for quality management, Agile is an approach to software development, and CMU is an university. Basically, there are four organizations in the U.S. that develop computing training curriculum guidelines for all universities. They are:
- The Association for Computing Machinery (ACM). This group is a scientific organization concerned with the development of new knowledge about all aspects of computing. It consists mostly of computer scientists who devise new ways of using computers and who advance the science and theory that underlies both computation itself and the software that enables it.
- The Computer Society of the Institute for Electrical and Electronic Engineers (IEEE-CS or the Computer Society). This group consists of many professional software people who are concerned with large scale and complex computing and applications from the engineering perspective.
- The Association for Information Systems (AIS). This group consists mostly of academic professionals who focuses on the relationship between business, management and the application of computing in business.
- The Association for Information Technology Professionals (AITP). This group is an organization concerned mostly with the data processing and management of computing system. AITP focuses on the professional side of computing, serving those who use computing technology to meet the needs of business and other organizations.
Prior to the 1995, each group produced its own training curriculum standard recommendations. As technology changes quickly, many of these become obsolete and do not meet the need of the industry. In 1995, these groups cooperated with each others in creating curriculum standard to improve the trainings in U.S universities. In 2001, ACM and IEEE-CS joined forces to create a joint curriculum for computing for four-year Bachelor’s degree programs in computer science, computer engineering, and software engineering. Today, almost every universities in the U.S and many foreign universities are following this standard guideline. (Universities such as CMU, MIT, Stanford etc. are following the ACM, IEEE standard guideline for their program trainings). When I taught in Japan, S. Korea, China and Europe, I also found that they also adopt this standard in their curricula.
The key principles of this standard are: Students must receive knowledge and skills training necessary to work as soon as they graduated. (More practices, less theories); Trainings must be redesigned to guide students in the application of technology in the business context (Practical works similar to real business); and technology must be selected that enhance the educational process and industry’s needs. (More collaboration between university and industry). University follows this standard must focus on a disciplined approach that cover the entire life cycle or software activities from conceptual to product release and maintenance services. Although programming languages are the foundation but management and the application of tools, methods to solve problems must be also be emphasized in order for new graduate, once on the job, is going to be better prepared to contribute to the business with appropriate experience and knowledge. Written and communication skills are also be required as appropriated supporting courses. (In most foreign universities, English language is often required)
The standard consists of eleven key objectives:
- Ability to apply knowledge of science, engineering, and mathematics.
- Ability to design, conduct experiments, analyze and interpret data.
- Ability to function on multidisciplinary teams.
- Ability to design a system, components, or process to meet desired needs within realistic constraints such as economic, environmental, social, and ethical.
- Understanding of professional and ethical responsibility.
- Ability to identify, formulate, and solve problems.
- Ability to use techniques, skills, and tools.
- Ability to communicate effectively.
- Recognition of the need for and ability to engage in lifelong learning.
- Have knowledge of contemporary issues.
- Broad education necessary to understand the impact of solution in a global, economics, environmental, and social context.
The standard lists the outcomes of students who complete the training as:
- Show mastery of the software knowledge and skills necessary to begin practice.
- Work individually and in team to develop quality software.
- Make appropriate trade-offs, within the limitations imposed by “Cost, time, knowledge, existing systems, and organizations”.
- Perform design in one or more domains using software approaches integrating “ethical, social, legal, and economic concerns”.
- Demonstrate understanding of and apply current theories, models, and techniques necessary for software systems.
- Demonstrate skills such as interpersonal negotiation, effective work habits, leadership and communication.
- Learn new models, techniques, and technologies, as they emerge.
The standard lists ten fundamental areas:
- Fundamental of computing (Programming, data structure, algorithms)
- Fundamental Mathematics (Basic Math, Statistics, Empirical methods)
- Professional Practices (Group dynamics, communication, ethics, legal)
- Modeling & Analysis (Modeling principles, system & quality attributes)
- Software Design (Trade-off, architectures, patterns, evaluation)
- Software Testing (verification & Validation, Review, Inspections)
- Software Evolution (Migration, Refactoring, Reverse engineering)
- Software Process (Life cycle modeling, standards, processes)
- Software Quality (Quality attributes, cost & impact analysis)
- Software Management (Management principles, planning, controls)
The standard recognizes 15 different specialized areas in computing (University could select among these to strengthen their training programs)
- Network Centric systems
- Information systems & Data Processing
- Financial & e-Commerce systems
- Fault-tolerance & Survivable systems
- Highly secure systems
- Safety-Critical systems
- Embedded & Real-time systems
- Scientific systems
- Telecommunication systems
- Avionics & Vehicular systems
- Factory & Industrial process-control systems
- Biomedical systems
- Multimedia & game & entertainment systems
- Mobile platform systems
- Agent-based systems
Of course, I do not know of any university that offer all 15 areas. Most select a few to focus on so students who want to specialize in certain area must carefully find out more about their offering before apply.