Given the competitive global market for computing professionals and increased undergraduate enrollment rates in computing majors in the US, it is important to continually review how computing education programs prepare their graduates for success after the graduation. This study aims to explore faculty perceptions about the degree to which computing-related programs meet the needs of software design professionals in the job.
The Alignment between Formal Education and Software Design Professionals’ Needs in Industry: Faculty Perception
Given the increased undergraduate enrollment rates in computing majors among US computer science departments (Zweben, 2014), it continues to be important to consider how computing education programs prepare their students for success after the graduation. The advent of the knowledge economy, globalization, and rapidly developing technology make a recent undergraduate possessing only discipline-specific skills unprepared to address the types of ill-structured problems they will encounter in the work-place (Besterfield-Sacre, Cox, Borrego, Beddoes, & Zhu, 2014; Rugarcia, Felder, Woods, & Stice, 2000). According to a survey study conducted by the Association of American Colleges and Universities (AACU), employers ranked the following skills as important for graduates: clear written and oral communication; the ability to solve complex problems in a real-world setting; a broad range of skills; and the ability to demonstrate ethical judgment and integrity, intercultural skills, and the capacity for continued learning (Hart Research Associates, 2013). Thus, having disciplinary knowledge is not enough. Today’s workplace requires applying such knowledge towards analysis, decision-making, and problem solving within a complex environment (Archer & Davison, 2008; Berdrow & Evers, 2010; European Commission, 2009; Watson & Watson, 2013).
It is therefore unsurprising that, in the Computing Science Curricula 2013 final report, The Joint Task Force on Computing Curricula stated that
The education that undergraduates in computer science receive must adequately prepare them for the workforce in a more holistic way than simply conveying technical facts. Indeed, soft skills (such as teamwork, verbal and written communication, time management, problem solving, and flexibility) and personal attributes (such as risk tolerance, collegiality, patience, work ethic, identification of opportunity, sense of social responsibility, and appreciation for diversity) play a critical role in the workplace. Successfully applying technical knowledge in practice often requires an ability to tolerate ambiguity and to negotiate and work well with others from different backgrounds and disciplines. These overarching considerations are important for promoting successful professional practice in a variety of career paths (p. 15)
Consistent with the Joint Task Force on Computing Curricula, the Accreditation Board for Engineering and Technology (ABET) also highlighted the following 12 skills required across engineering and technology programs: effective communication; functioning on multidisciplinary teams; and understanding the impact of solutions in global, economic, environmental, and social contexts (2014). In a recent mixed method study, author (unpublished manuscript), found that computing professionals from various industries believe that problem solving, critical thinking, lifelong learning, teamwork, and interpersonal skills are as important as technical and industry specific skills. However, who graduated from computing related programs within the last five years indicated that lifelong learning, teamwork, interpersonal and communication skills are inconsistently emphasized in formal education. Consistent with (author, unpublished manuscript), previous research focusing on the alignment between formal education and needs of the industry has also indicated that technical programs ought to look beyond single-domain skills and bridge disciplines that were once considered separate (Author, 2011; 2014; 2016; Author & Colleague, 2012; Lethbridge, 2000). This would help programs to incorporate non-technical knowledge and skills, such as communications and interpersonal skills, business strategy and applications, team/organization and management, general problem-solving and critical thinking, as well as self-regulated lifelong learning skills (Andriole & Roberts, 2008; author, 2016; author, 2014; Felder, 2006; Lethbridge, 2000; National Academy of Engineering [NAE], 2004; Rugarcia, Felder, Woods, & Stice, 2000). According to Kuh (2008), employers do not think that employees are very well prepared in global knowledge, writing, critical thinking, adaptability, self-knowledge, oral communication, or quantitative reasoning. These are the indications of a disconnect that has emerged between knowledge and skills taught at school and what is sought by industry.
However, the question remains: how to effectively design the curriculum to ensure that both discipline-specific and cross-disciplinary skills are sufficiently covered? To address that question, we need to explore the issue from multiple angles: (1) gaps in education perceived by faculty; (2) gaps in education perceived by the industry; and (3) gaps in education perceived by recent graduates in the field. This qualitative research focuses on the first angle: to what degree computing education program faculties think how formal education prepares students to the job. To achieve this purpose, this study aims to answer the following research question:
- What are the perceptions of computing education program faculty members about the alignment between formal education and graduates’ needs on the job?
A phenomenological approach was used to explore and understand faculty perceptions about the degree to which their computing-related programs meet the needs of software design professionals in the job. The selection of this approach was determined by the intent to explore the phenomenon (or “lived experienced,” Jones, Tores, & Arminio, 2014; Patton, 2004) of the faculty teaching in such programs. The study was approved to be conducted by the Institutional Review Board.
As suggested in the phenomenological approach (Groenewald, 2004), participants were purposefully selected based on the goal of the research, and their experiences and expertise relating to the phenomenon to be researched (Kruger, 1988). Eight faculty members (females: n=3) in computing education programs, including degree programs in computer science, computer engineering, software engineering, and similar cross-over degrees participated in this study. Of them, one was an adjunct and one retired. Furthermore, are currently working in industry as well as teaching, and one is working as an administrator at a university.
In-depth semi-structured interviews were used for data collection purposes. Interview questions focused on participants’ perceptions about the most emphasized skills in their courses; skills required in the job market and how much they are stressed in their courses; to what extent current computing programs meet the needs in the job; and how their computing education programs could be improved.
Provisional coding was used to analyze the data (Saldaña, 2009). A provisional code list was formed from the interview questions. Data were coded according to the following four major themes: (1) degree to which formal education prepare students to their future employments, (2) courses extensively taught by their program and importance for the professional life, (3) important skills required by professional life and degree of coverage in formal education, (4) suggestions for ideal undergraduate programs. Then, subthemes and patterns were identified within each theme in response to the interview questions. Finally, significant statements, which provide rich description of themes and/or patterns were quoted as examples of each theme.
Reliability and Trustworthiness
To establish the inter-coder reliability, first, the first author coded all the interviews individually. Then, the second author went through all codes to avoid misunderstanding and/or uncommon coding aspect. Any disagreements occurred were resolved, and finally we reached 100% inter-coder reliability.
Level of CS Student Preparation for Employment by Formal Education
All faculty members interviewed believed that formal education provides students with the fundamental skills necessary for software development. As one participant said:
University gives to students the familiarity with the subject. However, real experience comes to you with the job. But after going in work life, the subjects or classes you study in school help you to understand the work requirements and eas[ily] transition to the work’s projects. In other words, [a] CS department (also, all other departments) prepares the students what to expect when they step in the professional world.
However, all but one participant agree that even though schools prepare students well in terms of technical skills, there are areas that need further focus, such as problem solving, critical thinking, lifelong learning, teamwork, and communication with end users. For example, one faculty member, who is retired and currently has been working in industry for five years, explained:
In terms of understanding that software is a team sport, they don't understand this at all. They are not used to, or have a bunch of experience with how to do software in teams. They don't understand the sort of best practices in trying to make a long-term team work together, like how you communicate in ways that increase friction or decrease friction. So I spend a lot of time, when I'm working with somebody who is from another organization, talking to them about how to be a good team player, especially if they're brand-new from school.
Courses Extensively Taught and Their Importance for Professional Life
The courses extensively taught in computing related degree programs vary across different programs and faculty concentrations. Yet, software programming skills, algorithms, data structures, operating systems, networking, and understanding distributing systems were identified as the most emphasized courses across participants.
They all considered these courses to be relevant to gain the fundamental knowledge on how computers function in order to see the big picture of software development. For instance, one of the participants mentioned that his program designed the curriculum to prepare their graduates for professional life:
I hope all of our courses are getting our students ready to professional life. We’ve design the curriculum to make sure our students are prepared for the workforce, and by all accounts we’ve got 90% of our students without an internship get internships, our students have very high placement rates, and very high salaries for our college, and really for Purdue. The only product we have is our students, and the market had really voted [for] that product.
Another participant supported by sharing the following recommendation to teach towards major current trends in the industry:
The other thing is also more important it needs more emphasis is more training around statistical machine learning. The biggest companies are looking for people who understand how to build large scale machine learning systems.
One participant mentioned that since computer science departments have become very broad, courses that are extensively taught vary between departments based on the current faculty members’ backgrounds. This participant emphasized that it is imperative to track what companies look for and what students want to be after graduation. This variation might cause some students to miss the fundamentals because they tend to take an easy track.
… If you came here in 1970s or 80s, we knew exactly what to teach. Computer science now is so broad… We are in now divergent area now, starting new faculty coming and they don’t have brand new things that we haven’t had yet, even one. So are we teaching the fundamentals? If students listen carefully and take the right tracks, I think they can get some good fundamentals. I hate to say that students often take the easy way out, they look for the tracks with the easiest courses.
Important Skills and Level of Focus in Formal Education
All faculty members agreed that both technical and soft skills are important to have in well-rounded professional preparations.
Technical Skills and Industry-Specific Skills
In addition to the domain-specific skills, industry-specific skills also play crucial roles. For instance, one faculty member sees skills beyond development, like software testing, as the most important ones to have.
Some of the deep understanding of testing methodology is, I think, the most important skill. That is, how do verify, that your implementation satisfies your specifications and so on and so forth. And also understanding of software maintenance is something that we can't possibly teach our students. But somehow we've got to get them exposed to that in a curriculum. I mean, students don't go out into industry and do the same kind of work that they do in school. The nature of the work is entirely different. So somehow if we can get them involved in rather than just have a superficial knowledge of terminology in software maintenance, that would be, I think, the most important thing we could send them out with.
All faculty members agreed that soft skills, such as lifelong learning, teamwork, communication, communication and are as relevant for software developers as domain-specific skills.
• Lifelong Learning
Faculty members agreed that lifelong learning is critical for professionals, because they cannot teach everything within the typical timeline of formal education and technology is constantly changing. Students are expected to continue expanding their knowledge and keep up with the trends after their graduation. As one faculty member stressed, employees look for people able to surpass “…what they learn in class because we can’t teach students every possible thing they need to know. They need to understand how to put together in a new ways, open things up.”
The vast majority of faculty highlighted the importance of being able to work in teams as part of the professional career. As one said:
They’re very important. These are the problem [solving] tools, to work in team, to understand how you can participate in a team, how you can organize your work so that it works in collaboration with others. You also need to know how to lead a team. This is, for any programmer going into the professional world, it is pretty much a dead-end job, unless you understand what it is to be a leader, and to build a team, and to do more than just sit and write code. And so, this is very important for the professional development of anybody going out into the software development world, to understand how to have enough creativity and insite into the way people work, understanding what talents different people have, how to make them all work together in an effective way.
Communication was seen as paramount for the software development world to be able to communicate across a diverse range of recipients, from immediate team members to end users. One of the faculty participants with over 30 years of experience saw communication as being more essential than some of the skills traditionally considered to be foundational: “interpersonal skills; communication, writing and communicate verbally, being able to participate in a team […] than any ability to solve calculus problem or coding.” In the same vein, another faculty member mentioned “[Y]ou have to be able to communicate effectively in orally, verbally, and written [form] with rest of your team. Otherwise you don’t have any value.”
• Problem Solving
Problem solving and curiosity were seen as magic ingredients for a successful CS career. For example, one participant stressed the importance of problem solving and curiosity for the professional life,
I still think that there is one magic ingredient or two magic ingredients that we can teach; one of is curiosity… I need the combination of curiosity and problem solving, just jump in and do it. And if you go to industry, they find very hard, very difficult in a words but that’s what they are looking for.
Degree of Coverage in the Curriculum and Their individual Courses
However, when asked about the degree of the emphasis of those skills in the CS curriculum, all participants explained that they are not stated explicitly in the curriculum because of a number of reasons, like (a) faculty were not trained this way, (b) faculty do not sufficiently value them, and finally, (c) busy curriculum load and not enough time to address or even incorporate these skills.
[T]his is part of team leadership, program management. It is hard to… here is the problem; it is hard to [do] that in a semester course/a quarter course and the project also takes a month or two. [To] do project management in such a short amount of time is a very difficult challenge unless you have an entire course on project management. In that case, probably, it would be tough for somebody other than traditional computer science faculty.
Even though not explicitly emphasized in the curriculum, all of the participants try to integrate these skills into their courses via semester long projects, writing assignments, or asking students to solve complex problems. As one faculty said,
In fact I tell students that if you want to be a good computer scientist, here is what I recommend you; get an old, slow computer and think about why it is slow and what you can do to make it faster, now you got a real challenge. They write software and they measure it.
Another faculty member mentioned that she asks students to write papers in order to improve their communication skills,
Communication, I think, is super critical to teach. I think that it's generally not especially part of a software engineering curriculum... I require people to write papers and write quiz answers out. I didn't have ABCs. I wanted them to write short paragraphs because being able to write fluently is, I think, super critical.
Ideal Undergraduate Program
When asked about the most valuable experiences about the college/university that prepare students to the job, the majority of the participants (n=7) believed that at school students gain the foundations of software development, including the literacy of the discipline. Yet, the participants highlighted that even though soft skills are key for a professional career, they were not sufficiently stressed in comparison with technical skills. However, they need to be part of the curriculum in order to prepare students for a future employment as software designers/developers.
Less Emphasis on Mathematics and Calculus
One faculty member suggested that programs should have less focus on mathematics and calculus and more emphasis on discrete mathematics, probability, and machine learning to meet the industry demands:
...In the past, Computer Science majors required certain courses in mathematics, like calculus, that sort of thing. That's a total waste of your time. Every Computer Science student, every software developer, has to have 2-3 years of statistics and probability theory. That’s critical. And that’s we don't see very often… that’s something that if it’s not there, they need to throw out all the requirements for calculus and that type of thing, and add statistics, probability, and data analytics.
Liberal Arts Integrated Curriculum
All faculty members believe communication skills are very important for a professional, and two participants specifically recommended integrating elective courses from Liberal Arts to help students develop those skills. As one faculty member said:
I specifically would like to see little bit more choice and opportunity in how some of the basic requirements are achieved. We require those to be in a classroom right now, that are in many cases, small groups with graduate students. I wonder if we wouldn’t be more successful basically having our students … work on communication and English as part of the summer jobs, and use some written product from jobs that can be academic projects. That might allow us to repurpose some of the credits in a way that lets students get things done in a more timely way,m that just take up time in the first year or 18 months of their degree – it’s part of the problem. Students don’t see many things in their major that they like, so they go around and find other things they like. ...having to apply the communications skills and English skills, in context.
Interdisciplinary Capstone Projects
As indicated in previous sections, all faculty members think that being able to work in a team is crucial for success in the workplace. In addition to teamwork, three faculty members highlighted the importance of providing experience with working in interdisciplinary teams and projects in undergraduate courses, since the problems they face in the real world are no longer limited to individual disciplines, and it is less and less frequent that all members of a team come from the same background or play the same role. As one faculty member said:
We should be doing more interdisciplinary work…It is important for professional life, because problems are not in disciplines, not any more. All disciplinary problems have been solved for a long time. The really interesting problems are interdisciplinary problems or transdisciplinary problems. Every computer scientist is going to be working with people from other fields. If we pretend in higher education, then we can put people into little isolation and they become educated, that is not preparing them for the reality what happened the outside of the university.
In addition to the interdisciplinary projects, it is also important to have real world collaborators and/or clients to help students develop their identity as a software designer or developer . For example, one participant said, “I think allowing them and encouraging have more … outside influence and contributions of basically shaping what they think [as] an engineer or computer scientist or IT would be much valuable.” Another faculty supported this idea by saying, “The one thing I would like to see [is] more applied work integrated more widely into the classes.”
All participants mentioned the importance of teamwork. They believed that along with working in teams or getting along, solving problems as part of a team is particularly crucial.
This is for any programmer going into the professional world. It is pretty much – job unless you understand how become a leader to build a team, to do more than just simply write code. This is very important for the professional life for anybody who is going to software world is to understand how to have enough creativity and inside into the way people work, understanding what talents people have, how to make them all work together in an effective way. This is something not really taught in the university.
• Lifelong learning
All faculty members affirmed that they cannot teach every necessary skill in just several semester-long courses. A graduate needs to realize the need to continue learning, as well as have the ability and desire to learn to meet and exceed the needs of their current roles to be able to move forward. As a faculty explained:
[Y]ou need to be well-rounded, because we're not going to keep the very technical person who can't do all the other stuff when there's only one position. We have to have sort of a person that can do all kinds of things, if we're only going to have one of those positions... Mobile didn't exist… what, 10 years ago? There was no mobile app development. Now, that's where we think of most of the new application development [is] coming from. There has to be some element that helps people and that's why I really like self-trained, people who didn't go to college; they're used to sort of bootstrapping, figuring out, "Okay, there's this new technology on the scene. What does it do? How can I use it? What can I do?" They didn't have it spoon-fed to them, and so it really helps them to be capable of changing and evolving to that new technology.
One faculty member also mentioned that graduates need to be able to evaluate gaps in their own level of knowledge and skills, which is as important as completing projects:
I think orienting students away from low-level of [instruction]; remembering, understanding, application, integration, and evaluation. Particularly high-level evaluation is important because some people work on projects and ability to evaluate whether something is good or bad and we almost never ask students to do that. We ask them to work but not to evaluate.
Diversity was viewed to be an important issue in computing programs. One faculty mentioned that women should be encouraged more to become software developers to increase the diversity in the field:
The other thing is that the current system in academic community does not do enough to encourage women to go into the field… I am not sure what should be done about that, but I think perhaps more team development might be a good way to do it. It may require rethinking about the way the courses are done. There is a great emphasis on the academic, software development world is a huge emphasis on obsessive programming skills, building software to the exclusion of everything in real life. I see that often in the professional world. That is not particularly healthy, and it does not attract a diverse base of people to this. This doesn't’ really track diverse base of people. That was a part of problem with unbalance of gender in CS programs.
Discussion and Implications
This study aimed to explore the faculty perceptions about the degree to which computing-related programs meet the needs of software design professionals in the job. As suggested in the previous research and confirmed by our results, soft skills such as problem solving, teamwork, communication, and lifelong learning are crucial for graduates to become well-rounded professionals (ABET, 2014, author, 2014; 2016; manuscript; The Joint Task Force on Computing Curricula, 2013). These findings are not surprising. As mentioned by some of our participants, the world of technology and computer science is constantly evolving. Even more so, products developed by computing professionals become an essential part of everyday life or even integrate different aspects of our lives. As a result, graduates need to be able to recognize and communicate such changes, as well as understand their own gaps in knowledge and skills to be able to address such changes in the future.
Even though the faculty participants believed that their students are well-prepared for a career in terms of domain-specific knowledge and skills, their preparation in terms of soft-skills may not be sufficient, since is often only be inconsistently addressed on a course-by-course level. As such, our results suggest the following measures to further improve computing programs:
- Soft skills should be part of formal education to support not only collaborative efforts, but also an ability to address ill-structured problems that are commonly faced by professionals today. Indeed, we would recommend that the concept of “soft skills” and “humanities”/“liberal arts” be looked at more carefully. Although our participants stressed the importance of communications skills, earlier studies (author, unpublished manuscript; author, 2012; author, 2014) highlighted the importance of other skills and knowledge, and even the concept of a liberal education as a whole, which some participants indicated helped them understand the world as a whole better, leading them to become both better collaborators and better designers
- Theoretical mathematics and calculus need to be replaced with applied mathematics that is more applicable for a workplace, like discrete math and statistics that would help them in addressing the work tasks and provide the foundation for understanding of work-related problems. This supported the author’s (manuscript) findings that while many programs emphasize these courses, they were not considered important by most software design/developers, although they may be more important for certain role- or industry-specific tracks.
- Life-long learning skills should be taught or modeled within course work as well as non-course experiences. This may require rethinking faculty exceptions about the way students work together, find and use sources, and even assessment practices. As discussed in our earlier work (author, 2012; author, 2014), habits that may be construed as cheating within a traditional educational environment are considered not only good life-long learning practice, but essential skills for success on the job by computing professionals, including, but not limited to,
Limitations and Future Research
The participants of this study were identified purposefully based on their background, teaching areas and research interests. However, a number of faculty we contacted either were not able to participate or not interested in the study. The sample group may not be representative of all computing programs or all faculty within them. For instance, all participants included in this study teach at four-year institutions, while community colleges and two years colleges were not represented in the study. It is also likely that those willing and able to participate are more likely to be interested in innovations in computing programs, than computing faculty in general. In the next stage of our research agenda, we will survey computing faculty, allowing us access to a larger and more representative faculty pool. This will also allow us to compare responses of faculty to those of professionals reported in author(manuscript).
The primary groups who might be interested in the result of this study are researchers, educators, curriculum developers, and administrators in computing education fields. The results of this study may be of value to researchers who are interested in the curriculum development in computing education programs, education of software design or development professionals, and teaching computing or engineering in context. In addition, this study may indicate ways that undergraduate programs in computing education could be improved to support the development of computing professionals and enhance the effectiveness of programs. Future studies will explore similar issues in other design related fields (such as Instructional Design or Computer Graphics), and compare findings across fields. This may be of interest to design researchers and curriculum designers looking for common ground.
ABET. (2014). Criteria for Accrediting Engineering Programs. Retrieved from http://www.abet.org/Linked Documents-UPDATE/Criteria and PP/C001 08-09 CAC Criteria 11-8-07.pdf
ACM/IEEE-CS Joint Task Force on Computing Curricula 2013. Computer Science Curricula 2013. ACM Press and IEEE Computer Society Press.
Andriole, S. J. and Roberts, E. 2008. Technology curriculum for the early 21st century. Retrieved from http://cacm.acm.org/magazines/2008/7/5359-point-counterpoint-technology-curriculum-for-the-early-21st-century/fulltext
Archer, W., & Davison, J. (2008). Graduate employability. The council for industry and Higher Education.
author and Colleague (2012)
Berdrow, I., & Evers, F. T. (2010). Bases of competence: an instrument for self and institutional assessment. Assessment & Evaluation in Higher Education, 35(4), 419-434.
Besterfield-Sacre, M., Cox, M., Borrego, M., Beddoes, K., & Zhu, J. (2014). Changing engineering education: Views of U.S. faculty, chairs, and deans. Journal of Engineering Education, 103(2), 193-219
Felder, R. (2006). A whole new mind for a flat world. Available from http://www.che.ufl.edu/cee/
Groenewald, T. (2004). A phenomenological research design illustrated.
Hart Research Associates (2013). It takes more than a major: Employer priorities for college learning and student success. An online survey among employers conducted on behalf of the Association of American Colleges and Universities.
Jones, S., Torres, V., & Arminio, J. (2014). Negotiating the complexities of qualitative research in higher education (2nd ed.). New York, NY: Routledge
Kruger, D. (1988). An introduction to phenomenological psychology (2nd ed.). Cape Town, South Africa: Juta.
Lethbridge, T. C. (2000). What knowledge is important to a software professional?. Computer, 33(5), 44-50.
Lester, S. (1999). An introduction to phenomenological research. Stan Lester Developments, 1-4.
Morell, L. (2012). Engineering education in the 21st century: Roles, opportunities, and challenges. Hewlett Packard Laboratories. Available from http://luenymorell.files.wordpress.com/2010/12/morell-eng-edu-in-21st-cent-roles-opport-and-challenges.pdf
National Academy of Engineering (NAE). (2004). The engineer of 2020: Visions of engineering in the new century. Washington, DC: National Academy of Engineering. Available from http://www.nap.edu/openbook.php?record_id=10999&page=10
Patton, M. (2004). Qualitative research and evaluation methods (4th ed.). Thousand Oaks, CA: Sage
Rugarcia, A., Felder, R., Woods, D., & Stice, J. (2000). The future of engineering education. Part 1. A vision for a new century. Chemical Engineering Education, 34(1), 16-26
Saldaña, J. (2015). The coding manual for qualitative researchers, Los Angeles, CA: Sage.
The High-Level Group on financial supervision in the EU: report. European Commission, 2009.
Watson, W. R., & Watson, S. L. (2013). Exploding the ivory tower: Systemic change for higher education. TechTrends, 57(5), 42-46.
Yoder, B. L. (2013). Engineering by the Numbers. American Society for Engineering Education. http://www.asee.org/papers-and-publications/publications/14_11-47.pdf. Washington DC.
Zweben, S. (2014). Computing Degree and Enrollment Trends. Computing Research Association. Retrieved from cra.org/uploads/documents/resources/taulbee/CRA_Taulbee_CS_Degrees_and_Enrollment_2012-13.pdf
Are you a researcher? Would you like to cite this paper?
Visit the ASEE document repository at
for more tools and easy citations.