Main computing disciplines 
What is Computing?
Computing has been defined by The Joint Task Force for Computing Curricula 2005 as “any goal-oriented activity requiring, benefiting from, or creating computers. [ACM et al, 2006]”.  This is a very broad definition, ranging from designing and building hardware and software systems, up to using these systems to store and process data, as well as to perform or support different activities.  The breadth of the computing discipline is evidenced also by the fact that it strongly uses knowledge and skills from other disciplines, like mathematics, science, engineering, and business.  Given this wide spectrum of knowledge and skills, a potential computing professional needs to focus on particular areas of this discipline, as it is not possible to become proficient in all of them. [ACM et al, 2006]
A family of disciplines
In fact, computing is really a family of disciplines consisting of several more specific computing disciplines, like Computer Engineering (CE), Computer Science (CS), Software Engineering (SE), Information Technology (IT) and Information Systems (IS).  (Note that the term “Information Technology” is used in two related but different contexts: to refer to all of computing, and as a particular computing discipline.)  Originally there were only three kinds of computer-related disciplines: Electrical Engineering for students interested in hardware, Computer Science for student interested in programming, and Information Systems for students interested in using hardware and software to solve business problems.  In the late 1970s, Computer Engineering (CE) emerged from Electrical Engineering to focus on the design and programming of chips that control devices.  Software Engineering emerged from Computer Science in the 1980s and 1990s to design and create comprehensive applications software, combining Computer Science principles and techniques with engineering practices.  Information Technology emerged in the late 1990s, to take care of the computing infrastructure in organizations, a gap not being addressed by CE, CS, SE, and IS. [ACM et al, 2006] 
Additional computing-related fields
Additional computing-related fields have emerged and/or become more relevant during the last two decades, and some are being seriously considered for inclusion under the computing family of disciplines.  One of them is Cybersecurity or Cyber Science.  Another one is Data Analytics or Data Science.  Regarding Cybersecurity, ABET’s Computing Accreditation Commission already approved their respective program criteria for programs in Cybersecurity.  These criteria had been opened for public review and comments for some time and were finally adopted in November 2018.  Several computing programs have been “piloting” these criteria, for both current programs as well as programs under development. [ABET, 2017]
An IT Skills Inventory

The identification, structuring and classification of the skills required by employers for entry-level employees has many advantages.  Among other things, it provides a common reference for students, professors, colleges, student advisors, parents, employers and all other interested parties as to which these skills are, how they are structured, and what are their main characteristics.  

Some of the terms used in this section may have different meaning to different persons, therefore it is important to state what we understand by them.  Our understanding is based on several sources, so we have phrased it in our own words in order to make it easier to communicate and understand.
Our understanding for some terms
(Source: Several sources from the list of references were taken into consideration, but the compilation and phrasing were done by Prof. A. Ramos.)
Regardless of the skill definition we stated before, in the skills inventory we are using the term “skill” in a very broad sense, covering the knowledge about something, the capability to do it, and the level of efficiency doing it.  It also covers, to some extent, the attitudes exhibited by candidates.  That is, we use the term “skill” in a sense more closely related to the term “competency”. This way we are more in agreement with its use in the computing literature (i.e. technical skills, client-facing skills, soft skills)
Disclaimers and clarifications
The main objective of this initiative is to prepare a well-structured inventory of computing skills considered important by employers, and to make it available to interested parties.  We have followed a product development/procurement, and implementation framework, complemented by a decision support, governance and control framework on one side, plus an operations and maintenance framework on the other side, in order to provide structure to the inventory.  Too detailed skills were avoided to allow for flexibility, and to prevent "losing the forest for the trees".  References to specific tools, and to proprietary or vendor-related products, were also avoided.

Another objective of this initiative is to propose a methodology, as well as a tool, that could be used to determine the extent to which current computing academic programs are addressing these skills.

It is not our intention to impose a particular group of skills, to judge the skills currently being developed in students by academic institutions or to assess the quality of current computing academic programs.  The inventory of skills is not, and does not pretend to be, an exhaustive list of all the skills that could be developed by computing programs, but the ones that we promote to be addressed for entry-level employees.

We believe that a hierarchically structured skills inventory is easier to prepare, explain and understand than a linear list of skills.  Therefore, we structured the skills in four hierarchical levels, consisting of two main skill types, ten skill categories within the skill types, twenty-seven skill sets within the skill categories, and 142 specific skills within the skill sets.

Level 1

Main skill types

Two main skill types were defined: Discipline-dependent (or computing) and Discipline-independent (or non-computing) skills.  Among the last type we included some personal, entrepreneurship, and industry-related skills, to account for the personal and organizational context in which computing professionals work.

Level 2

Major skill categories

The Discipline-dependent type was in turn divided into four major skill categories closely following the systems development life-cycle phases: Analysis and Logical Design, Physical Design, Programming, and Systems Implementation.  An additional category for Enterprise Systems was included to account for the fact that many organizations procure and implement off-the-shelf applications, like ERP, CRM, E-Business, and WCM systems.  A managerial (IT Management) and an operational category (IT Operations and Maintenance) were included to account for the framework upon which systems operate in organizations.  This gave us a total of seven categories.  The Discipline-independent type was in turn divided into Personal skills, Entrepreneurship skills, and Industry skills, for a final total of ten categories.

Level 3

Skill sets within categories

The ten major skill categories were subdivided in twenty-seven skill sets, to form an intermediate grouping level between the major skill categories and the specific skills.  Some examples of these skill sets are Big Data Analysis, IT Governance, Regulatory, Control and Security Framework, Project Management, Business Process Analysis, Business Process Modeling/Design, Requirements Definition, Systems Procurement, and Systems Deployment.

Level 4

Specific skills

The twenty-seven skill sets were in turn divided into 142 specific skills.  The approach we followed was to identify, through a top-down approach, the most important skills we would like entry-level candidates to have within each skill set.  It was not our approach to collect or identify an exhaustive list of desired skills for entry-level employees, and then try to fit them into a hierarchical structure.  Some specific skills may fit well under more than one skill set, but they were included just in one to avoid redundancy.  In most skill sets we provided space to include additional specific skills, if necessary.  Too detailed skills were avoided to allow for flexibility, and to prevent "losing the forest for the trees".  References to specific tools, and to proprietary or vendor-related products, were also avoided.

Besides using a hierarchical structure, another strategy that we believe helps to identify, explain and understand the skills that are part of our inventory is to classify them in categories according to other relevant criteria.  Some examples follow:
Classification of skills
(Source: Several sources from the list of references were taken into consideration, but the compilation and phrasing were done by Prof. A. Ramos.)
According to the above classification, client-facing skills are more strategic in nature, more suitable for job promotion (after first job) or higher level recruiting, and more prone to be kept in-house (or less prone to be outsourced). But they are less suitable for finding the first job. Also, some of them may be performed by experienced and "tech-savvy" users, which may represent a competition to graduates from some computing programs, like Information Systems.
An academic program must decide which skills it is going to emphasize before making decisions regarding future program changes.  In doing so, the answer to the following questions may be helpful:  (1) Should it try to address many skills or concentrate on a specific set?,  (2) Should it train mostly for strategic or operational skills?, (3)  Should it train mostly for first job, job promotions, or both?,  (4) Should it train mostly for IT vendors candidates, IT clients, or both?, (5) Should it emphasize skills that maintain relevance over time, loose relevance over time, or both?, (6) Should it emphasize the skills usually related to particular computing programs, like Computer Science, Software Engineering, or Information Technology, or should it assume the role of an integrator between the more technical computing programs (CS, SE, and IT) and the functional areas (Accounting, Marketing, Operations Management, etc.)?,  (7) Should it make technical and business domain alliances with other departments?
We developed the inventory of skills mostly following a product development/procurement, and implementation framework, complemented by a decision support, governance and control framework on one side, plus an operations and maintenance framework on the other side.  Using well-known industry, professional and academic frameworks to identify skills, and to classify and structure them into broad categories, constitutes a necessary and useful approach for this product.  Professional and academic publications, as well as input from an Advisory Committee from the IT Cluster, were important sources of information.  Other contributing sources to this product were input from IT educators, and the experience of the author as an IT academic and practitioner for about forty years.  The skill categories identified range from client-facing skills (i.e. Business process analysis, Business process modeling) to the more technical ones (i.e. Programming fundamentals, Infrastructure operations), and also including personal (i.e. soft-skills), entrepreneurship, and industry-related skills.  The relevance of most of the skill categories was validated by the CIOs which participated in the IT Cluster First CIO Survey.  (This survey was conducted by the author for the Puerto Rico IT Cluster, published in a local newspaper and presented in the Second CIO and IT Leadership Conference held in March 2015.) 
Industry, professional and academic frameworks used as reference
Validation activities
In order to maintain and improve the relevance of the skills, periodic validation activities should be conducted with stakeholders.  Several of these activities, have already been conducted, both locally and internationally.  For example:
Validation activities with the market it is intended to serve
Validation activities with international conferences
Implementation approach
The implementation of the skills inventory within a particular computing academic program will depend on several things.  One of them is the particular computing disciplines that the program wants to emphasize. For example:
Skill categories emphasized by type of academic program
The implementation will also depend on the type of professional to be developed regarding “breadth” versus “depth”.  “Breadth” refers to the number of different skill sets addressed by the program.  The higher the number of skill sets, the higher the breadth.  “Depth” refers to how much emphasis is placed in each skill set.  The more emphasis, the higher the depth, but probably the lower the breadth. Several approaches may be followed:
Type of professional to be developed (breadth vs depth)
Assessing academic programs

There are several ways to determine the success of a project, but probably the most accepted one is the degree to which the project has met its objectives.  Of course, this implies that these objectives were clearly defined beforehand, and that they are achievable, measurable, and realistic.  Academic programs are no exception to this.  The success of an academic program is determined by the extent to which it enables students to attain its objectives.  Thus, curriculum design, course contents and educational strategies must be properly oriented to the attainment of the program objectives.  Most of these objectives are related to student learning and are usually expressed in terms of student outcomes.  That is, in terms of the concepts that students comprehend, the skills they have developed, and the attitudes or behaviors they exhibit by the time of graduation.

Student outcomes should be in turn aligned with the professional characteristics that the graduate must acquire in the first few years of his professional career.  To the extent that graduates have attained the corresponding student outcomes, a reasonable inference can be made that they are well prepared to acquire the professional characteristics that these outcomes are aligned with, once they have worked for some time. 

High-impact educational strategies

The use of research-based effective pedagogy has proven to be just as important as defining the content of the curriculum. [AAC&U]  High-impact educational strategies are a set of educational practices that research has demonstrated to have a significant impact on student success. [AAC&U] Among these educational strategies we have:

Examples of High-Impact educational strategies
Source: American Association of Colleges & Universities (
Computing programs usually make use of some form of Experiential Learning as an educational strategy, through projects within or at the end of a course, and also through a capstone project at a senior level course.
Experiential learning

Experiential learning can be defined as “education that occurs as a direct participation in the events of life” [11]. It involves a “direct encounter with the phenomena being studied rather than simply thinking about the encounter, or only considering the possibility of doing something about it.” [4] Students learn by experiencing rather than simply listening. Case studies based on real or simulated, but meaningful, situations, as well as team projects and industry interaction are ways for implementing this kind of learning [7].

Project-Based Learning is an experiential learning model implemented through the preparation of comprehensive and meaningful projects. It promotes collaborative versus isolated learning, active (hands on) versus passive learning and integrated versus fragmented learning. It emphasizes applied versus theoretical learning, high-order thinking versus plain comprehension, and a wide range of skills, including technical, managerial and soft skills. [1,3, 13].

Our contention is that an experiential learning model, like Project-Based Learning (PBL), when used as an educational and assessment strategy, makes a program more responsive to both student and industry needs, and also improve stakeholders’ perception about the program. The way we implement this strategy deserves close attention, as it can greatly influence its effectiveness. We propose to formally embed projects into curricular design and to properly align them to student outcomes, so as to get the most benefits. 

Why ABET accreditation?

We encourage IT academic programs to pursue ABET’s accreditation. ABET accreditation “...sets the global standard for programs in applied science, computing, engineering, and engineering technology”.  It “… provides assurance that a college or university program meets the quality standards of the profession for which that program prepares graduates.”  ABET accredits “… approximately 3,850 programs at over 775 colleges and universities in 31 countries.”  Approximately 85,000 students graduate from ABET-accredited programs each year, and millions of graduates have received degrees from ABET-accredited programs since 1932.” (

Dissemination and validation of products and/or strategies

It is very important to disseminate the previous products and strategies among people who may be interested in them.  Among these people are professors, student advisors, students, parents, and even employers.  It is also important to validate the products and strategies, as well as to revise them accordingly.  Dissemination and validation encourage the use and the improvement of any product.  We plan to continue conducting dissemination and validation activities, like the following:

  1. A web site to publish the products developed and the strategies promoted

  2. Live conferences with interested parties, like universities, high schools, and professional associations

  3. Others


Below you will find most of the references used to prepare this section. References are also included in some of the documents linked to from this section

Need more details? Contact us

We are here to assist you. Contact us by phone, email or via our Social Media channels.