Self programming for EFL students to learn languages

In the past two decades an immense interest in the use of computers for language teaching and learning is evident. ESL/EFL software programs intend to develop language skills for the incorporation of Communicative Language Teaching (CLT) principles. The following article explores how new technologies utilizing self-programming can increase the opportunities for students of English as a foreign language (EFL) to receive input outside the classroom.

What does self-programming represents?

A computer system consists of a sequence of operations. Scientists distinguish between conventional systems and intelligent systems based on whether their operations follow predetermined programs developed by human programmers (conventional), or they are capable of ‘self-programming’ which means that to a varying degree operationalization is the result of decisions by the system itself (intelligent) (IIIM, 2011). The latter relate to Artificial Intelligence in that a lot of functionalities performed such as abilities for searching, planning, producing, inductive logic programming, adaptive and reactive agent/robot is the result of self -programming to an extent. A cognitive system is thus modifying the fundamental “program code” that guides its thinking, instead of modifying the knowledge that’s used by this program code in the course of its thinking (Goertzel, 2011).

Challenges in developing self-programming

Despite the technological progress evident in all aspects of our lives, self-programming still has a long way to go since it requires a new class of programming language that runs on low complexity, high expressivity and runtime reflectivity. According to Nivel & Thórisson (2009) there are difficulties relating to lack of explicit operational semantics, which basically means that to make meaning of the source code, the program needs to evaluate the assembly code against, a formal model of the machine. Secondly, in self-programming the system will have to synthesize its own code in real-time which unlike for a human programmer, is practically impossible (Nivel & Thórisson, 2009).

Another challenge as Nivel & Thórisson (2009) acknowledge, relates to how for self-programming to occur requires complete axiomatization for the machine utilized. However, the complexity and diversity that axiomatizing modern hardware and operating systems entail is such a daunting task that not even today’s engineering methods can adequately handle, and even if they could the costs are massive. In addition, the pace in which these systems evolve is constant and that means global standards would have to be established to deal with the development of industrial systems in theory (Nivel & Thórisson, 2009). Such standards would require more than two decades to move from inception to wide utilization and therefore despite the need for exhaustive axiomatization it cannot be addressed in industrial practice any time soon to a large extend (Nivel & Thórisson, 2009). Nevertheless, partial initiatives can be undertaken that make use of elements of self-programming in a smaller scale, such as the example of learning foreign languages as it will be discussed below.

Utilizing self-programming for Computer Assisted Language Learning (CALL)

One promising implementation of self-programming is for helping EFL student learn languages, known as CALL. Among the different benefits proposed for using such software programs are how they provide realistic, native-speaker models of the language in a variety of media, have the ability to offer a language learning curriculum, perform a needs assessment, define what is the best next step for the learner and provide practice with that skill area, as well as record the student’s progress alongside an evaluation and provide both synchronous and asynchronous learning (Borges, 2014)).

Of the most poignant studies that explore software for EFL students is Lawley’s (2015) a web-based software that was designed and implemented at a university in Spain to assist EFL students to self-correct their free form writing. The software operates on the basis of an eighty-million-word corpus of English known to be correct as a normative corpus for error correction purposes. The software is able to locate likely errors in students’ writing where bigrams (two-word combinations of words) exist in the normative corpus used. The program identifies such bigrams in essays and helps students decide if they have make a mistake and how to correct it. The previous accelerate the correction process of self-evaluation in the classroom (Lawley, 2015).

Another noteworthy study is that of Milton & Cheng (2010) who develop a resource-rich toolkit able to assist EFL writers with an inquiry based approach to writing accurate and fluent English. The system facilitates understanding by identifying lexico-grammatical errors through matching patterns gleaned from a very large corpus of learners’ texts. Users are guided to appropriate language patterns during the time students write and revise through online declarative and procedural resources. Further to these functions, the tool enables such learning that empowers students to pursue independent writing and enhances their proofreading strategies (Milton & Cheng, 2010).


Self-programming is not far from being realized in a systematic manner for language learning however this endeavor is not without challenges. Possibilities are that in the next couple of years language learning software will be based entirely on these intelligent machines.


Borges, V. M. C. (2014) Are esl/efl software programs effective for language learning? Ilha Desterro, 66. Retrieved from

Goertzel, B. (2011) Self-Programming = Learning about Intelligence-Critical System Features. Retrieved from

Icelandic Institute for Intelligent Machines (IIIM) (2011) Self-Programming in AGI Systems, Fourth Conference on Artificial General Intelligence, California, August 2011.

Lawley, J. (2015). New software to help EFL students self-correct their writing. Language Learning & Technology, 19(1), 23–33. Retrieved from

Milton, J. & Cheng, V. S. Y. (2010) A Toolkit to Assist L2 Learners Become Independent Writers. Proceedings of the NAACL HLT 2010 Workshop on Computational Linguistics and Writing, 33–41, Los Angeles, California, June 2010.

Nivel, E. & Thórisson, K. R. (2009) Self-Programming: Operationalizing Autonomy. Retrieved from

Self programming for EFL students to learn languages

Leave a Reply

Your email address will not be published. Required fields are marked *