Abstract
In this paper, we describe a new Eclipse-based IDE for teaching Java following the object-later approach. This IDE allows the programmer to write code in Java–, a smaller version of the Java language that does not include object-oriented features, and includes all the powerful features available when using an IDE like Eclipse (such as 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.
This work has been supported in part by MIUR (proj. CINA), Ateneo/CSP (proj. SALT), ICT COST Action IC1201 BETTY, and PRIN 2012C4E3KT national research project AMANDA (Algorithmics for MAssive and Networked Data).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
As it is shown in the figure, the student is required to make a leap of faith concerning the use of the static methods to print to the standard output (such as System.out.println()). Although this could have been avoided by implementing a print() method that invokes the corresponding Java method, we preferred to ask the students to use the standard Java methods and to profess their faith in them, rather than give them a solution that is not pure Java, and which could confuse them later on.
- 2.
Xtend, https://eclipse.org/xtend/, is a Java dialect implemented with Xtext and Xbase.
References
Cecchi, L., Crescenzi, P., Innocenti, G.: C : C++ = JavaMM: Java. In: Proceedings of the 2nd International Conference on Principles and Practice of Programming in Java, pp. 75–78 (2003)
Bettini, L., Crescenzi, P., Innocenti, G., Loreti, M., Cecchi, L.: An environment for self-assessing Java programming skills in undergraduate first programming courses. In: Proceedings of the IEEE International Conference on Advanced Learning Technologies, pp. 161–165 (2004)
Crescenzi, P., Loreti, M., Pugliese, R.: Assessing CS1 Java skills: a three-year experience. SIGCSE Bull. 38, 348 (2006)
Bettini, L., Crescenzi, P.: Java– meets Eclipse - an IDE for teaching Java following the object-later approach. In: Proceedings of the 10th International Conference on Software Paradigm Trends, pp. 31–42 (2015)
Itemis: Xtext (2015). http://www.eclipse.org/Xtext
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, Birmingham (2013)
Voelter, M.: Language and IDE modularization and composition with MPS. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2011. LNCS, vol. 7680, pp. 383–430. Springer, Heidelberg (2013)
Kats, L.C.L., Visser, E.: The spoofax language workbench. Rules for declarative specification of languages and IDEs. OOPSLA 45, 444–463 (2010)
Westfall, R.: Technical opinion: Hello, world considered harmful. Commun. ACM 44, 129–130 (2001)
Parlante, N.: Codingbat code practice (2011). http://codingbat.com
Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Upper Saddle River (2003)
Beck, K.: Test Driven Development: By Example. Addison-Wesley, Boston (2003)
Goldberg, A.: SMALLTALK-80: The Interactive Programming Environment. Addison-Wesley, Boston (1984)
Kelleher, C., Pausch, R.: Lowering the barriers to programming: a taxonomy of programming environments and languages for novice programmers. ACM Comput. Surv. 37, 83–137 (2005)
Dann, W.P., Cooper, S., Pausch, R.: Learning to Program with Alice. Prentice Hall, Upper Saddle River (2011)
Barnes, D., Kölling, M.: Objects First with Java: A Practical Introduction Using BlueJ, 5th edn. Prentice Hall, Upper Saddle River (2011)
Levy, R.B.B., Ben-Ari, M., Uronen, P.A.: The Jeliot 2000 program animation system. Comput. Edu. 40, 1–15 (2003)
Cazzola, W., Olivares, D.M.: Gradually learning programming supported by a growable programming language. IEEE Trans. Emerg. Top. Comput. 4 (2016). Special Issue on Emerging Trends in Education
Pfeiffer, M., Pichler, J.: A comparison of tool support for textual domain-specific languages. In: Proceedings of the DSM, pp. 1–7 (2008)
Voelter, M., Benz, S., Dietrich, C., Engelmann, B., Helander, M., Kats, L.C.L., Visser, E., Wachsmuth, G.: DSL Engineering - Designing, Implementing and Using Domain-Specific Languages (2013)
Erdweg, S., van der Storm, T., Völter, M., Tratt, L., Bosman, R., Cook, W.R., Gerritsen, A., Hulshout, A., Kelly, S., Loh, A., Konat, G., Molina, P.J., Palatnik, M., Pohjonen, R., Schindler, E., Schindler, K., Solmi, R., Vergu, V., Visser, E., van der Vlist, K., Wachsmuth, G., van der Woning, J.: Evaluating and comparing language workbenches: existing results and benchmarks for the future. Comput. Lang. Syst. Struct. 44, 24–47 (2015)
Charles, P., Fuhrer, R., Sutton Jr., S., Duesterwald, E., Vinju, J.: Accelerating the creation of customized, language-Specific IDEs in Eclipse. OOPSLA 44, 191–206 (2009)
Jouault, F., Bézivin, J., Kurtev, I.: TCS: a DSL for the specification of textual concrete syntaxes in model engineering. In: GPCE, pp. 249–254. ACM (2006)
Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and refinement of textual syntax for models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)
Eysholdt, M.: Xpect (2014). http://www.xpect-tests.org
Benz, S., Engelmann, B.: Jnario, Executable Specifications for Java (2014). http://jnario.org
MacDonald, B.: To IDE or not to IDE? (2014). http://radar.oreilly.com/2014/01/to-ide-or-not-to-ide.html
Bettini, L., Damiani, F.: 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, pp. 5–16. ACM (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Bettini, L., Crescenzi, P. (2016). An Eclipse IDE for Teaching Java–. In: Lorenz, P., Cardoso, J., Maciaszek, L., van Sinderen, M. (eds) Software Technologies. ICSOFT 2015. Communications in Computer and Information Science, vol 586. Springer, Cham. https://doi.org/10.1007/978-3-319-30142-6_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-30142-6_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-30141-9
Online ISBN: 978-3-319-30142-6
eBook Packages: Computer ScienceComputer Science (R0)