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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Ability to apply knowledge of science, engineering, and mathematics.
  2. Ability to design, conduct experiments, analyze and interpret data.
  3. Ability to function on multidisciplinary teams.
  4. Ability to design a system, components, or process to meet desired needs within realistic constraints such as economic, environmental, social, and ethical.
  5. Understanding of professional and ethical responsibility.
  6. Ability to identify, formulate, and solve problems.
  7. Ability to use techniques, skills, and tools.
  8. Ability to communicate effectively.
  9. Recognition of the need for and ability to engage in lifelong learning.
  10. Have knowledge of contemporary issues.
  11. 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:

  1. Show mastery of the software knowledge and skills necessary to begin practice.
  2. Work individually and in team to develop quality software.
  3. Make appropriate trade-offs, within the limitations imposed by “Cost, time, knowledge, existing systems, and organizations”.
  4. Perform design in one or more domains using software approaches integrating “ethical, social, legal, and economic concerns”.
  5. Demonstrate understanding of and apply current theories, models, and techniques necessary for software systems.
  6. Demonstrate skills such as interpersonal negotiation, effective work habits, leadership and communication.
  7. Learn new models, techniques, and technologies, as they emerge.

The standard lists ten fundamental areas:

  1. Fundamental of computing (Programming, data structure, algorithms)
  2. Fundamental Mathematics (Basic Math, Statistics, Empirical methods)
  3. Professional Practices (Group dynamics, communication, ethics, legal)
  4. Modeling & Analysis (Modeling principles, system & quality attributes)
  5. Software Design (Trade-off, architectures, patterns, evaluation)
  6. Software Testing (verification & Validation, Review, Inspections)
  7. Software Evolution (Migration, Refactoring, Reverse engineering)
  8. Software Process (Life cycle modeling, standards, processes)
  9. Software Quality (Quality attributes, cost & impact analysis)
  10. 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)

  1. Network Centric systems
  2. Information systems & Data Processing
  3. Financial & e-Commerce systems
  4. Fault-tolerance & Survivable systems
  5. Highly secure systems
  6. Safety-Critical systems
  7. Embedded & Real-time systems
  8. Scientific systems
  9. Telecommunication systems
  10. Avionics & Vehicular systems
  11. Factory & Industrial process-control systems
  12. Biomedical systems
  13. Multimedia & game & entertainment systems
  14. Mobile platform systems
  15. 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.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University

You may like