Ahmad Taherkhani
Aalto University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Ahmad Taherkhani.
international computing education research workshop | 2010
Lauri Malmi; Judy Sheard; Simon; Roman Bednarik; Juha Helminen; Ari Korhonen; Niko Myller; Juha Sorva; Ahmad Taherkhani
This paper presents a preliminary analysis of research papers in computing education. While previous analysis has explored what research is being done in computing education, this project explores how that research is being done. We present our classification system, then the results of applying it to the papers from all five years of ICER. We find that this subset of computing education research has more in common with research in information systems than with that in computer science or software engineering; and that the papers published at ICER generally appear to conform to the specified ICER requirements.
Proceedings of the 2010 ITiCSE working group reports on | 2010
Carsten Schulte; Tony Clear; Ahmad Taherkhani; Teresa Busjahn; James H. Paterson
The area of program comprehension comprises a vast body of literature, with numerous conflicting models having been proposed. Models are typically grounded in experimental studies mostly involving experienced programmers. The question of how to relate this material to the teaching and learning of programming for novices has proven challenging for many researchers. In this critical review from a computer science educational perspective, the authors compare and contrast the way in which different models conceptualize program comprehension. This provides new insights into learning issues such as content, sequence, learning obstacles, effective learning tasks and teaching methods, as well as into the assessment of learning
international computing education research workshop | 2014
Lauri Malmi; Judy Sheard; Simon; Roman Bednarik; Juha Helminen; Päivi Kinnunen; Ari Korhonen; Niko Myller; Juha Sorva; Ahmad Taherkhani
We analyze the Computing Education Research (CER) literature to discover what theories, conceptual models and frameworks recent CER builds on. This gives rise to a broad understanding of the theoretical basis of CER that is useful for researchers working in that area, and has the potential to help CER develop its own identity as an independent field of study. Our analysis takes in seven years of publications (2005-2011, 308 papers) in three venues that publish long research papers in computing education: the journals ACM Transactions of Computing Education (TOCE) and Computer Science Education (CSEd), and the conference International Computing Education Research Workshop (ICER). We looked at the theoretical background works that are used or extended in the papers, not just referred to when describing related work. These background works include theories, conceptual models and frameworks. For each background work we tried to identify the discipline from which it originates, to gain an understanding of how CER relates to its neighboring fields. We also identified theoretical works originating within CER itself, showing that the field is building on its own theoretical works. Our main findings are that there is a great richness of work on which recent CER papers build; there are no prevailing theoretical or technical works that are broadly applied across CER; about half the analyzed papers build on no previous theoretical work, but a considerable share of these are building their own theoretical constructions. We discuss the significance of these findings for the whole field and conclude with some recommendations.
international conference on program comprehension | 2010
Ahmad Taherkhani
We present a method for automatic algorithm recognition, which consists of two phases. First, the target algorithms are converted into characteristic vectors, which are computed based on static analysis of program code including various statistics of language constructs and analysis of Roles of Variables. In the second phase, the algorithms are classified based on these vectors using the C4.5 decision tree classifier. We have developed a prototype and successfully applied the method to sorting algorithms. Evaluated with leave-one-out technique, the accuracy of the constructed decision tree classifier is 97.1%.
Proceedings of the 8th International Conference on Computing Education Research | 2008
Ahmad Taherkhani; Lauri Malmi; Ari Korhonen
Automatic program comprehension (PC) has been extensively studied for decades. It has been studied mainly from two different points of view: understanding the functionality of a program and understanding program structure. In this paper, we address the problem of automatic algorithm recognition and introduce a method based on static analysis to recognize algorithms. We discuss the applications of the method in the context of automatic assessment to widen the scope of programming assignments that can be checked automatically.
The Computer Journal | 2011
Ahmad Taherkhani
We discuss algorithm recognition (AR) and present a method for recognizing algorithms automatically from Java source code. The method consists of two phases. In the first phase, the recognizable algorithms are converted into the vectors of characteristics, which are computed based on static analysis of program code, including various statistics of language constructs and analysis of Roles of Variables in the target program. In the second phase, the algorithms are classified based on these vectors using the C4.5 decision tree classifier. We demonstrate the performance of the method by applying it to sorting algorithms. Using leave-one-out cross-validation technique, we have conducted an experimental evaluation of the classification performance showing that the average classification accuracy is 98.1% (the data set consisted of five different types of sorting algorithms). The results show the applicability and usefulness of roles of variables in AR, and illustrate that the C4.5 algorithm is a suitable decision tree classifier for our purpose. The limitations of the method are also discussed.
The Computer Journal | 2011
Ahmad Taherkhani; Ari Korhonen; Lauri Malmi
Program comprehension (PC) is a research field that has been extensively studied from different points of view, including human program understanding and mental models, automated program understanding, etc. In this paper, we discuss algorithm recognition (AR) as a subfield of PC and explain their relationship. We present a method for automatic AR from Java source code. The method is based on static analysis of program code including various statistics of language constructs, software metrics, as well as analysis of roles of variables in the target program. In the first phase of the method, a number of different implementations of the supported algorithms are analyzed and stored in the knowledge base of the system as learning data, and in the second phase, previously unseen algorithms are recognized using this information. We have developed a prototype and successfully applied the method for recognition of sorting algorithms. This process is explained in the paper along with the experiment we have conducted to evaluate the performance of the method. Although the method, at its current state, is still sensitive to changes made to target algorithms, the encouraging results of the experiment demonstrate that it can be further developed to be used as a PC method in various applications, as an example, in automatic assessment tools to check the algorithms used by students, the functionality that is currently missing from these tools.
koli calling international conference on computing education research | 2012
Ahmad Taherkhani; Ari Korhonen; Lauri Malmi
educational data mining | 2013
Ahmad Taherkhani; Lauri Malmi
Computer Science Education | 2012
Ahmad Taherkhani; Ari Korhonen; Lauri Malmi