Java--Meets Eclipse - An IDE for Teaching Java Following the Object-later Approach

Lorenzo Bettini, Pierluigi Crescenzi

Abstract

In this paper, we introduce a new Eclipse-based IDE for teaching Java following the object-later approach. In particular, this IDE allows the programmer to write code in Java--, a smaller version of the Java language that does not include object-oriented features. For the implementation of this language we used Xtext, an Eclipse framework for implementing Domain Specific Languages; besides the compiler mechanisms, Xtext also allows to easily implement all the IDE tooling mechanisms in Eclipse. By using Xtext we were able to provide an implementation of Java-- with all the powerful features available when using an IDE like Eclipse (including debugging, automatic building, and project wizards). With our implementation, it is also straightforward to create self-assessment exercises for students, which are integrated in Eclipse and JUnit.

References

  1. Barnes, D. and K ölling, M. (2011). Objects First with Java: A Practical Introduction Using BlueJ, 5/E. Prentice Hall.
  2. Beck, K. (2003). Test Driven Development: By Example. Addison-Wesley.
  3. Benz, S. and Engelmann, B. (2014). Jnario, Executable Specifications for Java. http://jnario.org.
  4. Bettini, L. (2013). Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing.
  5. Bettini, L., Crescenzi, P., Innocenti, G., Loreti, M., and Cecchi, L. (2004). An Environment for Self-Assessing Java Programming Skills in Undergraduate First Programming Courses. In Proceedings of the IEEE International Conference on Advanced Learning Technologies, pages 161-165.
  6. Bettini, L. and Damiani, F. (2014). Generic Traits for the Java Platform. In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools, pages 5-16. ACM. C. (2014). Sirius + Xtext: Love.
  7. https://www.eclipsecon.org/france2014/session/siriusxtext.
  8. Cecchi, L., Crescenzi, P., and Innocenti, G. (2003). C : C++ = JavaMM: Java. In Proceedings of the 2nd International Conference on Principles and Practice of Programming in Java, pages 75-78.
  9. Charles, P., Fuhrer, R., Sutton Jr., S., Duesterwald, E., and Vinju, J. (2009). Accelerating the creation of customized, language-Specific IDEs in Eclipse. In OOPSLA, pages 191-206. ACM.
  10. Crescenzi, P. (2015). Gocce di Java. Un'introduzione alla programmazione procedurale ed orientata agli oggetti (nuova edizione). Franco Angeli Edizioni.
  11. Crescenzi, P., Loreti, M., and Pugliese, R. (2006). Assessing CS1 Java skills: A three-year experience. SIGCSE Bull., 38(3):348.
  12. Dann, W. P., Cooper, S., and Pausch, R. (2011). Learning to Program with Alice. Prentice Hall.
  13. Diehl, S. (2003). The java old-style http://www.rw.cdl.uni-saarland.de/ diehl/JOSH/.
  14. Efftinge, S., Eysholdt, M., Köhnlein, J., Zarnekow, S., von Massow, R., Hasselbring, W., and Hanus, M. (2012). Xbase: Implementing Domain-Specific Languages for Java. In GPCE, pages 112-121. ACM.
  15. Eysholdt, M. (2014). Xpect. http://www.xpect-tests.org.
  16. Eysholdt, M. and Behrens, H. (2010). Xtext: implement your language faster than the quick and dirty way. In SPLASH/OOPSLA Companion, pages 307-309.
  17. Farooq, M. S., Khan, S. A., Ahmad, F., Islam, S., and Abid, A. (2014). An evaluation framework and comparative analysis of the widely used first programming languages. PLoS ONE, 9(2):e88941.
  18. Gibbons, J. (1998). Structured programming in Java. ACM SIGPLAN Notices, 33(4):40-43.
  19. Goldberg, A. (1984). Smalltalk-80: The Interactive Programming Environment. Addison-Wesley.
  20. Gronback, R. (2009). Eclipse Modeling Project: A DomainSpecific Language (DSL) Toolkit. Addison-Wesley.
  21. Guo, P. (2014). Python is now the most popular introductory teaching language at top u.s. universities. http://cacm.acm.org/blogs/blog-cacm/176450- python-is-now-the-most-popular-introductoryteaching-language-at-top-us-universities/fulltext.
  22. Heidenreich, F., Johannes, J., Karol, S., Seifert, M., and Wende, C. (2009). Derivation and Refinement of Textual Syntax for Models. In ECMDA-FA, volume 5562 of LNCS, pages 114-129. Springer.
  23. Itemis (2015). Xtext. http://www.eclipse.org/Xtext.
  24. Jouault, F., Bézivin, J., and Kurtev, I. (2006). TCS: a DSL for the specification of textual concrete syntaxes in model engineering. In GPCE, pages 249-254. ACM.
  25. Kats, L. C. L. and Visser, E. (2010). The Spoofax language workbench. Rules for declarative specification of languages and IDEs. In OOPSLA, pages 444-463.
  26. Kelleher, C. and Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Comput. Surv., 37(2):83-137.
  27. Koehnlein, J. (2014). Graphical Views for Xtext. https://www.eclipse.org/community/- eclipse newsletter/2014/august/article4.php.
  28. Koulouri, T., Lauria, S., and Macredie, R. D. (2014). Teaching introductory programming: A quantitative evaluation of different approaches. ACM Trans. Comp. Educ., 14(4):Article 26.
  29. Leping, V., Lepp, M., Niitsoo, M., To˜nisson, E., Vene, V., and Villems, A. (2009). Python prevails. In Proceedings of the International Conference on Computer Systems and Technologies and Workshop for PhD Students in Computing, pages 87:1-87:5.
  30. Levy, R. B.-B., Ben-Ari, M., and Uronen, P. A. (2003). The Jeliot 2000 program animation system. Computers & Education, 40(1):1-15.
  31. Lewis, J. (2000). Myths about object-orientation and its pedagogy. SIGCSE Bull., 32(1):245-249.
  32. MacDonald, B. (2014). To IDE or not to IDE? http://radar.oreilly.com/2014/01/to-ide-or-not-toide.html.
  33. Martin, R. C. (2003). Agile Software Development: Principles, Patterns, and Practices. Prentice Hall.
  34. Mason, R. and Cooper, G. (2014). Introductory Programming Courses in Australia and New Zealand in 2013 - Trends and Reasons. In Proceedings of the Sixteenth Australasian Computing Education Conference - Volume 148, pages 139-147.
  35. Nisen, M. (2014). These programming skills will earn you the most money. http://qz.com/298635/theseprogramming-languages-will-earn-you-the-mostmoney/.
  36. Parlante, N. (2011). Codingbat code practice. http://codingbat.com.
  37. Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Devlin, M., and Paterson, J. (2007). A survey of literature on the teaching of introductory programming. In Working Group Reports on ITiCSE on Innovation and Technology in Computer Science Education, pages 204-223.
  38. Pfeiffer, M. and Pichler, J. (2008). A comparison of tool support for textual domain-specific languages. In Proc. DSM, pages 1-7.
  39. Reas, C. and Fry, B. (2014). Processing: A Programming Handbook for Visual Designers. MIT Press, 2nd edition.
  40. Steinberg, D., Budinsky, F., Paternostro, M., and Merks, E. (2008). EMF: Eclipse Modeling Framework. Addison-Wesley, 2nd edition.
  41. Voelter, M. (2011). Language and IDE Modularization and Composition with MPS. In GTTSE, volume 7680 of LNCS, pages 383-430. Springer.
  42. Westfall, R. (2001). Technical opinion: Hello, world considered harmful. Commun. ACM, 44(10):129-130.
Download


Paper Citation


in Harvard Style

Bettini L. and Crescenzi P. (2015). Java--Meets Eclipse - An IDE for Teaching Java Following the Object-later Approach . In Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015) ISBN 978-989-758-115-1, pages 31-42. DOI: 10.5220/0005512600310042


in Bibtex Style

@conference{icsoft-pt15,
author={Lorenzo Bettini and Pierluigi Crescenzi},
title={Java--Meets Eclipse - An IDE for Teaching Java Following the Object-later Approach},
booktitle={Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015)},
year={2015},
pages={31-42},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005512600310042},
isbn={978-989-758-115-1},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015)
TI - Java--Meets Eclipse - An IDE for Teaching Java Following the Object-later Approach
SN - 978-989-758-115-1
AU - Bettini L.
AU - Crescenzi P.
PY - 2015
SP - 31
EP - 42
DO - 10.5220/0005512600310042