ABSTRACT
Learning how to program is a universal problem that is facing many students in introductory programming courses. This multinational problem created the need for an effective and easy to use learning system. The system introduced in this paper, Java Learning System using Dependence Graphs (JLearn-DG), teaches students the basic concepts of programming by creating the System Dependence Graph (SDG) for students program. The system defines four types of dependencies: control, method call, method library and data. It identifies the dependencies and relationships among all statements. When JLean-DG is compared to existing systems, it has two advantages: the ability to create the SDG in the presence of semantic-errors and the ability to create the dependencies among all statements in the program regardless of the execution. Based on our experimental evaluation, this tool has been an affective one and has good potential to teach programming.
- Al-Imamy, S., Emirates, U. A., Alizadeh, J., and Nour, M. A. On the Development of a Programming Teaching Tool: The Effect of Teaching by Templates on the Learning Process. Journal of Information Technology Education 5, (2006).Google Scholar
- Anderson, P. and Teitelbaum, T. Software inspection using codesurfer. In Workshop on Inspection in Software Engineering (CAV, (2001).Google Scholar
- Bennedsen, J. and Caspersen, M. E. Revealing the programming process. Proceedings of the 36th SIGCSE technical symposium on Computer science education, ACM (2005), 186--190. Google ScholarDigital Library
- Campbell, W. and Bolker, E. TEACHING PROGRAMMING BY IMMERSION, READING AND WRITING. 1, (2002), 4--23.Google Scholar
- Chang, K., Chiao, B., and Hsiao, R. A programming learning system for beginners --- A completion strategy approach. In Intelligent Tutoring Systems. 1996, 623--631. Google ScholarDigital Library
- Hundhausen, C. D. and Brown, J. L. What You See Is What You Code: A "live" algorithm development and visualization environment for novice learners. Journal of Visual Languages and Computing 18, 1 (2007), 22--47. Google ScholarDigital Library
- Jakovljevic, M. Concept mapping and appropriate instructional strategies in promoting programming skills of holistic learners. Proceedings of the 2003 annual research conference of the South African institute of computer scientists and information technologists on Enablement through technology, South African Institute for Computer Scientists and Information Technologists (2003), 308--315. Google ScholarDigital Library
- Lahtinen, E., Ala-Mutka, K., and Järvinen, H. A study of the difficulties of novice programmers. Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education, ACM (2005), 14--18. Google ScholarDigital Library
- Lister, R., Adams, E. S., Fitzgerald, S., et al. A multinational study of reading and tracing skills in novice programmers. SIGCSE Bull. 36, 4 (2004), 119--150. Google ScholarDigital Library
- Livadas, P. E. and Johnson, T. An optimal algorithm for the construction of the system dependence graph. Inf. Sci. Appl. 125, 1--4 (2000), 99--131. Google ScholarDigital Library
- McCracken, M., Almstrum, V., Diaz, D., et al. A multinational, multi-institutional study of assessment of programming skills of first-year CS students. SIGCSE Bull. 33, 4 (2001), 125--180.Google ScholarDigital Library
- Rajala, T., Laakso, M. J., Kaila, E., and Salakoski, T. VILLE-A language-independent program visualization tool. (2007).Google Scholar
- Reiss, S. P. JIVE: visualizing Java in action demonstration description. Proceedings of the 25th International Conference on Software Engineering, IEEE Computer Society (2003), 820--821. Google ScholarDigital Library
- Walkinshaw, N., Roper, M., and Wood, M. The Java system dependence graph. Source Code Analysis and Manipulation, 2003. Proceedings. Third IEEE International Workshop on, (2003), 55--64.Google ScholarCross Ref
- Zhao, J. Applying program dependence analysis to Java software. Citeseer (1998), 162--169.Google Scholar
Index Terms
- JLearn-DG: Java learning system using dependence graphs
Recommendations
JavaPDG: A New Platform for Program Dependence Analysis
ICST '13: Proceedings of the 2013 IEEE Sixth International Conference on Software Testing, Verification and ValidationDependence analysis is a fundamental technique for program understanding and is widely used in software testing and debugging. However, there are a limited number of analysis tools available despite a wide range of research work in this field. In this ...
VILLE: a language-independent program visualization tool
Koli Calling '07: Proceedings of the Seventh Baltic Sea Conference on Computing Education Research - Volume 88Visualization tools have proven to be useful for enhancing novice programmers' learning. However, existing tools are typically tied to particular programming languages, and tend to focus on low-level aspects of programming such as the changing values of ...
Difficulties teaching Java in CS1 and how we aim to solve them
In 1971 Dijkstra noted that as a teacher of programming he 'feels akin to a teacher of composition at a conservatory. He does not teach his pupils how to compose a particular symphony, he must help his pupils to find their own style and must explain to ...
Comments