In December, I was invited to talk at the International Conference on Programming in Digital Humanities, an online event dedicated to learning and using programming languages to manage and handle data by students in Digital Humanities (DH) degrees. My speech (slides available on Zenodo) reflected my personal experience in teaching Computer Science topics – particularly Computational Thinking and Programming – to students enrolled in the second-cycle International degree on Digital Humanities and Digital Knowledge (DHDK) at the University of Bologna.
In this post, I would like to focus on a particular passage of the conference, which the following question can summarise:
Are students with a background in the Humanities able to learn the basics of Informatics?
Long story short: yes, they are. You could stop reading here if you are not interested in the backings of such a claim. Otherwise, see you in the following sections.
Informatics at DHDK
The international degree programme in Digital Humanities and Digital Knowledge (DHDK) offers a cross-disciplinary curriculum designed to foster close connections between humanities studies (from which DHDK students usually come) and the sciences of representation and processing of information and knowledge. It is organised in three macro-areas of learning, namely (a) Computer Science, (b) literary, linguistic, historical/cultural and related to the arts in the digital context, and (c) complementary disciplines such as economy, law and communication.
The area focussing on Computer Science topics is prevalent, particularly during the first year of the degree. Indeed, the very first course of the degree is Computational Thinking and Programming (taught by me), which aims at introducing essential and practical aspects of Informatics – namely algorithms, data structures, and algorithmic techniques – to students with a Humanities bachelor with no prior knowledge about them.
DH students and their fears
Often, students approach my course (or similar ones) with a misconception – or an honest prejudice – that I call the Big Fear of Informatics. Indeed, they often claim that abstraction, algorithms, formal notations, programming languages, and other basic Informatics notions are unmanageable by students with a Humanities background: “you know, I was not good at mathematics in the high school; thus I won’t be good at Informatics either – indeed, I hate my computer, and it peacefully hates me in return”.
Luckily, students’ perception of Informatics changes when I highlight a few things. First, I show how several of the notions introduced in the course have been already learned and digested in our prior experience. It is only a matter of identifying them again to reuse them consciously. For instance, the way the text of a book is organised follows a precise hierarchical structure (a book is made of chapters, each chapter is made of paragraphs, each paragraph is made of text) which is abstracted by the tree data structure; the way people are served at the post office is compliant with precise rules of engagement recalling the first in, first out strategy which is typical of the queue data structure; the infinity mirror configuration recalls the concept of recursion, etc.
Second, we have a growth mindset – thanks, Carol Dweck, for your mind-changing work on mindsets. Metaphorically speaking, intelligence is a muscle, and it can be developed. Thus, yes: we can learn anything if we truly want to, including the “unreachable” Computer Science topics, despite what others (or ourselves) say.
Third, a programming language is a language. Indeed, differently from natural languages such as Italian and English, a programming language is formal since its syntax follows a specific set of (mathematical) rules. But, still, it continues to be a language. To properly handle any new natural language, we need time and practice. Trying, making mistakes, correcting misuses, talking with others who are more fluent than us in that language are all critical activities to learn it properly. Programming languages are no exception. We should always remind ourselves that we cannot expect to fully master a new programming language after only a 30 hours course – as well as we are not able to master a foreign language we do not know after having it introduced in a few classes.
Finally, the fact that, despite what one may believe, concepts such as abstraction, trial-and-error learning, prior experience, deriving general principles from situations are skills that we always use in everyday life, often unconsciously. Starting the course with simple thinking experiments – big thanks goes to Edward De Bono and his lessons on thinking – is an excellent approach to make students conscious of their existing skills in applying these concepts in real-case scenarios – despite their background.
Concerns from the audience
While I am always ready to address students’ scepticism about Informatics when I start my course, honestly, I was not prepared to demist similar concerns raised by colleagues. After my presentation at the conference, during the question answering session, someone from the audience asked me if, considering students’ background in Humanities studies and the related intrinsic difficulties they have in learning pure Computer Science topics (the Big Fear of Informatics strikes again!), it could be better to focus on and teach them only the tools for doing automatic computations (such as LibreOffice Calc and the Voyant Tools) instead of introducing all the theoretical background which is behind such tools. I want to discuss this aspect by presenting a brief digression.
Let us ask someone in a non-English country such as Italy, who knows only its mother tongue, to write a novel in English. To facilitate the writing, we provide some useful and necessary tools: a pen, a set of sheets of paper, and an Italian-English dictionary. Before asking to start writing, we explain to our guy how these tools work and how they can be used. What do you expect will it be the quality of the novel in the end?
Indeed, learning how to use such tools without having appropriate and informative knowledge about the theoretical groundings to address the activity of writing a novel – that are both language-oriented (knowledge of the English language, its syntax and grammar, appropriate ways to express concepts in English, etc.) and goal-oriented (organisation of the plot, approaches to make a story interesting for the reader, proper use of flashbacks and flashforwards, etc.) – do not prevent someone from writing a novel per se. However, it will make the activity surely more challenging to address.
Informatics as a foundation for the DH
Introducing useful digital and computational tools to students in Digital Humanities without presenting, in advance, the theoretical backgrounds behind them means to oblige such students to work without having complete control of what they can do and how they can act – similarly to someone who drives a car without knowing traffic laws and signs. For digital humanists, learning the basics of Informatics is crucial for fulfilling their digital competencies and putting them at the service of studies in the Humanities.
Even when sceptical and worried at the beginning, the students attending my course reported excellent positive feedback about the topics addressed, particularly in terms of career perspectives. Indeed, I try to offer these students yet another way of thinking that characterises Informatics as a discipline. Complementing such a “new” way of thinking with the critical thinking learnt and enforced by the Humanities makes digital humanists the natural proxies to successfully bridge the Humanities and Digital worlds.
Since I’ve mentioned it a few times in this post, all the material of my course, including the textbook used, are freely available online and are released with permissive open access licenses to foster their reuse. The textbook and the additional material (including hundreds of exercises) can be downloaded at https://comp-think.github.io.