Sign In

Communications of the ACM


Teaching Data Science Research Methods to Human Resources Practitioners – Part 4

View as: Print Mobile App Share:

Our last three blogs described a graduate-level course—Research Methods for Human Resources—offered by the Department of Labor Studies at Tel Aviv University to human resources practitioners (managers and recruiters) from various organizations in all three sectors of the Israeli economy (public, private, and non-profit). One of the topics taught in this course is data science research. As we emphasized in these blogs, the challenge was to teach data science concepts to students who, on the one hand, have gaps in their computer science background and, on the other hand, are experts in human resources management and practice.

Specifically, in one of these blogs, we described how we handled students' expression of programming anxiety in a way that did not involve programming. Nevertheless, since we do believe that programming experience is crucial for human resources practitioners in the data and tech era, we decided not to entirely give up the idea of imparting some programming experience to our students. We therefore designed four Colab notebooks that gradually introduce the students to the world of programming and enable them to experience the taste of the programming activity.

Why should human resources practitioners gain some programming experience?

In a class discussion we facilitated on the above question, students suggested the following four arguments, addressing four different levels:

  • Personal level: Reducing the anxiety of human resources practitioners, enhancing their self-efficacy as employees in a technology-oriented industry, and promoting their professional development;
  • Professional level: Improving the human resources practitioners' understanding of the profession of data science in general, and of the skills required for its performance in particular. Since all organizations are becoming data-driven organizations, such an understanding has a crucial role in any organization's candidate recruitment processes, regardless of the sector it belongs to;
  • Organizational level: Establishing the human resources practitioners in their organization as employees who can contribute significantly to the discourse that takes place in their organization, by introducing data-driven approaches to human resources management (e.g., people analytics) that eventually will promote the organization;
  • Professional community level: People analytics (that is, the use of data science for a variety of purposes related to human resources management) is becoming part of the profession of human resource management, for which some programming knowledge is required. Therefore, the programming experience gained in the course can help the human resources practitioners lead professional processes in their professional community.

The four notebooks

The four Colab notebooks we designed enable the students to experience programming, in general, and Python programming, in particular. They are:

The four notebooks were facilitated over four consecutive weeks for about two hours each. As we shall see, even such short a programming experience not only reduced students' programming anxiety, but also increased their self-evaluation of their programing experience, as well as their sense of potential contribution to their organization in human resources-related topics.

To address the four levels of the students' professionalism described above (personal, professional, organizational, and professional community), we followed several guidelines in the design of the notebooks.

On the one hand, we wished to reduce students' anxiety. Therefore,

  • the students could execute the Python commands without adding any new code; yet those who wanted to enrich their experience could add cells and write their own code.
  • the given code was illustrated with data about human resources (salary table, bonuses, retention in the company, etc.) and included visualization and calculation of statistical measures of these human resources-related concepts.
  • we continuously illustrated how ChatGPT can support the programming process by allowing the students to ask any questions they wished about how to program and receiving specific answers with illustrative code.

On the other hand, we wished to provide the human resources practitioners an opportunity to get a feel for the computer science component of data science and experience computational thinking. The notebooks therefore:

  • include interesting, yet simple, algorithms that can also be carried out manually (e.g., transforming a table from a wide format to a long format for the sake of visualization, see Notebook 4);
  • include open tasks for exploration. For example, in Notebook 3, to illustrate the role of data in algorithm execution, each student could add his or her personal data to the demonstration of the implementation of the KNN algorithm. Then, when the algorithm predicted the categorization of a new employee, different categorizations were sometimes received by different students according to the data each one added.

How is the Python experience expressed on the four levels presented above, with respect to the exposure of the human resources practitioners to Python programming?

As it turns out, even such a short programming experience changed the students' perception of their professionalism, as is illustrated below for the four levels presented above.

Personal level: At the beginning of the academic year we asked the students what their programming experience was; we asked them again after their Python experience. As can be seen in Table 1, not only did the percentage of responding students who perceived themselves as having no programming experience drop from 88.7% to 61.5%, but the percentage of responding students who declared that they have some programming experience more than tripled from 9.4% to 30.8%.  

Table 1. Students' perception of their programming experience – at the beginning of the academic year and after the programming experience


Beginning of the academic year (n=53)

After the programming experience (n=26)

I am inexperienced


I have a little experience



I have a lot of experience



If needed, I can teach programming



In another questionnaire, which was distributed prior to the programming experience, we posed the following questions, among others:

In response to one of the questions in Questionnaire 1, a student wrote: "I felt anxious when I heard that we will have to learn Python." In your opinion, what proportion of the class feels that way?

  • Only a handful of students
  • Quite a lot of them, but less than half
  • Quite a lot of them, more than half
  • Almost everyone
  • Everyone

This question appeared also in the questionnaire that we distributed after the programming experience. Table 2 compares students' answers to this question before and after the programming experience.

Table 2. Students' perception of the level of programing anxiety – in the middle of the first semester
(before the programming experience) and after the programming experience


Before the programming experience (n=53)

After the programming experience (n=26)

Only a handful of students



Quite a lot of them, but less than half



Quite a lot of them, more than half



Almost everyone






The data presented in Table 2 shows that before the Python experience, 88.7% of the students estimated that more than half of the students felt programing anxiety; after the Python experience, this number dropped to 53.9%. Even more interesting is the drop in the percent of students who estimated that everyone feels anxiety: After the Python experience, none of the students estimated that everyone has this feeling, compared with 15.1% prior to the programing experience. As can be seen, anxiety levels subsided significantly.

Professional level: After each notebook, we asked the students to suggest questions that they, as human resources practitioners, can ask candidates in a job interview and what they can learn from the candidates' answers to these questions.

Table 3 presents illustrative examples of questions that the students proposed in a shared document after the first and the last (fourth) notebooks. Clearly, such questions could not have been asked without having some programming experience.

Table 3. Students' suggestions of questions to be asked in interviews with candidates for their organization

After working on Notebook 1:

  • What is the most important quality that a good programmer should have?
  • Tell me about the first error you encountered that was most memorable to you, and describe the stages you went through until finding the solution.
  • While writing code, you encounter a repeat error – what do you do?
  • Tell me about the most complex feature that you had to develop in the system. What tools and environments did you use?

After working on Notebook 4:

  • Nowadays, a great deal of the work with data is the ability to present them in a way that tells a story. What visualization tool do you use, and why? How do you choose the method of visual presentation?
  • Say you want to present data using more than three dimensions. How will you do it? What will the results look like?
  • Tell me about the most complex data analysis that you have experienced, and how will you explain it to someone who is not a data analysis expert?
  • How can you transfer a table into a long format automatically?

Organizational level:  In the questionnaire distributed following the Python programming experience, we asked the students: To what degree will you be able to contribute to the discourse at your organization that focuses on software development, in general, and on Python, in particular, with relation to a) human resources; b) software development; and c) other organizational issues? Table 4 presents the distribution of student responses to the question, for each of the three topics.

Table 4. Students' estimation of their contribution to the discourse in their organization about a) human resources; b) software development; and c) other organizational issues (n=26)


Human resources issues

Software development issues

Other organizational issues (one student did not reply)

I will contribute significantly




I will have some contribution




I will not be able to contribute to the discourse




As can be seen, the students see their greatest potential contribution to the discourse about software development in the context of human resources – exactly as was our target in providing them with the Python programming experience. Furthermore, the human resources practitioners also realized that they may have some contribution to discourse related to software development regarding other organizational issues and software development issues, yet in a less significant way.

Professional-community level: People analytics, for which some programming knowledge is required, is becoming part of the profession of human resource management. As it turns out, after the programming experience, the students see this connection, encapsulated in people analytics, between human resources and programming experience, as is illustrated in what follows.

In the questionnaire distributed following the Python programming experience, we asked the students: In your opinion, to what degree is knowing programming, in general, and Python, in particular, relevant for human resources management? As It turns out, 19.2% of the students estimated this knowledge as "very relevant," 53.8% of the students estimated it as "somewhat relevant," and 26.9% of the students estimated it as "not at all relevant." In other words, about three-quarters of the students realized the relevance of their short, yet focused, programing experience for their profession—human resources management.


We suggest that our decisions to integrate basic programming practices into the course, despite the Python anxiety students expressed, and not to bypass this challenge by introducing data science through one of the visual working environments (e.g., Orange Data Mining, KNIME, and Weka), were correct from the pedagogical perspective. As we anticipated, even the short hands-on programming experience turned out to be extremely important for the human resources practitioners on the personal, professional, organizational, and professional community levels.

We conclude by mentioning that the interdisciplinarity of data science played a central role in our ability to achieve the above results: The students' expertise in human resources enabled us to situate the Python experience (the computer science component of data science) in a meaningful and familiar context for the students – human resources (the application domain component of data science), while coding and calculating basic statistics measures (the math and statistics component of data science), which the students learned in the first part of the course.


Orit Hazzan is a professor at the Technion's Department of Education in Science and Technology. Her research focuses on computer science, software engineering, and data science education. For additional details, see Dafna Gelbgiser is a lecturer (tenure track) at the Department of Labor Studies at Tel Aviv University's Faculty of Social Sciences. Her research examines the sources and patterns of inequality in education and labor market outcomes by race, immigrant status, gender, and social class background. For additional details, see


No entries found

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account