Teaching computer programming to humanists using emoticon-like scripting



In many ways, learning to program can be challenging for humanists although computer programming is an essential skill for digital humanities. According to published studies this is often attributed to poor self-efficacy, limited prior experience with computers, or inability to relate personal experiences to abstract programming concepts. In this session, a new educational framework will be demonstrated that overcomes the problems of the existing teaching/learning approaches by adding a human-readable layer on the top of existing programming languages.

The proposed method is based on the use of emoticon-like typing that has become popular with social networks. Emoticons are visual representations that have one to one relationship with a corresponding combination of characters such as “:)”. These can be perceived as visual interpretations of the corresponding characters that provide instant feedback to the user regarding the meaning associated with the typed code. The proposed framework utilizes a set of meaningful visual replacements of each grammatical token in a given programming language that appear instantly when complete valid tokens are typed. The proposed method, is based on the following three hypotheses: a) the immediate feedback given to the programmer can result in improved learning outcomes as it stimulates the brain to build one-to-one connections, b) the unique correspondence of each visual replacement, with a valid programming token re-enforces the learning of the syntax in an intuitive trial-and-error framework, c) the use of visual replacements remove visually the grammatical and syntactical details of a programming language and reveal to the users the logic of the program in the form of a pseudo code. The smallest units in any writing system are known as graphemes. Graphemes are not only the characters in a given alphabet but also the accents, punctuation marks, and other symbols that may be used in the corresponding writing system. Similarly, in any programming language a set of graphemes is used, which usually includes the graphemes of the Latin alphabet as well as other logical, mathematical, and structural symbols required for the needs of a particular programming language. Let us consider the following written sample: “not:(or:|!be:)” and its equivalent in another written language with different graphemes (emoticons): “notor!be”. Obviously, the latter is easier to read, but the former is easier to write in the form of a typed text in a computer device. This example shows that there exist written languages that are primarily meant to be written (possibly to serve as an input to a computer system), and others that are primarily meant to be read. The proposed educational framework is based on a rigid theoretical foundation regarding grammatical construction of languages and employs a set of visual or textual metaphors to teach computer programming to humanists. The technique has been preliminary tested using 35 adult subjects and it has improved significantly their learning outcome in terms of syntax recall and logic comprehension, compared to the performance achieved using traditional text editors for source code editing. The audience will be invited to bring their own tablet/laptop computers during this workshop.

Additional information


Barmpoutis, A.


HASTAC 2017: The Possible Worlds of Digital Humanities, Orlando, Florida


November 3-4







Barmpoutis, A., 2017. Teaching computer programming to humanists using emoticon-like scripting. HASTAC 2017: The Possible Worlds of Digital Humanities, Orlando, Florida,


author = {Barmpoutis, A.},
title = {Teaching computer programming to humanists using emoticon-like scripting},
journal = {HASTAC 2017: The Possible Worlds of Digital Humanities, Orlando, Florida},
month = {November 3-4},
year = {2017},