{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,12]],"date-time":"2025-10-12T04:38:30Z","timestamp":1760243910632,"version":"build-2065373602"},"reference-count":36,"publisher":"MDPI AG","issue":"2","license":[{"start":{"date-parts":[[2010,4,15]],"date-time":"2010-04-15T00:00:00Z","timestamp":1271289600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/3.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Algorithms"],"abstract":"<jats:p>Both learning how to program and understanding algorithms or data structures are often difficult. This paper presents three complementary approaches that we employ to help our students in learning to program, especially during the first term of their study. We use a web-based programming task database as an easy and risk-free environment for taking the first steps in programming Java. The Animal algorithm visualization system is used to visualize the dynamic behavior of algorithms and data structures. We complement both approaches with tutorial videos on using the Eclipse IDE. We also report on the experiences with this combined approach.<\/jats:p>","DOI":"10.3390\/a3020168","type":"journal-article","created":{"date-parts":[[2010,4,15]],"date-time":"2010-04-15T10:51:29Z","timestamp":1271328689000},"page":"168-182","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":12,"title":["A Family of Tools for Supporting the Learning of Programming"],"prefix":"10.3390","volume":"3","author":[{"given":"Guido","family":"R\u00f6\u00dfling","sequence":"first","affiliation":[{"name":"Department of Computer Science, TU Darmstadt, Hochschulstr. 10, D-64289 Darmstadt, Germany"}]}],"member":"1968","published-online":{"date-parts":[[2010,4,15]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","first-page":"125","DOI":"10.1145\/572139.572181","article-title":"A multi-national, multi-institutional study of assessment of programming skills of first-year CS students","volume":"33","author":"McCracken","year":"2001","journal-title":"SIGCSE Bull."},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"107","DOI":"10.1145\/1113847.1113888","article-title":"An investigation into student characteristics affecting novice programming performance","volume":"37","author":"Pillay","year":"2005","journal-title":"SIGCSE Bull."},{"key":"ref_3","first-page":"49","article-title":"Using BlueJ and Blackjack to teach object-oriented design concepts in CS1","volume":"22","author":"Kouznetsova","year":"2007","journal-title":"J. Comput. Small Coll."},{"key":"ref_4","unstructured":"K\u00f6lling, M. (2008). Reflections on the Teaching of Programming: Methods and Implementations, Springer-Verlag."},{"key":"ref_5","unstructured":"Barnes, D.J., and K\u00f6lling, M. (2008). Objects First with Java: A Practical Introduction Using BlueJ, Prentice Hall. [4th ed.]."},{"key":"ref_6","unstructured":"Dann, W.P., Cooper, S., and Pausch, R. (2006). Learning to Program with Alice, Prentice Hall."},{"key":"ref_7","unstructured":"Rodger, S.H., Hayes, J., Lezin, G., Qin, H., Nelson, D., Tucker, R., Lopez, M., Cooper, S., Dann, W., and Slater, D. Engaging middle school teachers and students with Alice in a diverse set of subjects. SIGCSE \u201909: Proceedings of the 40th ACM Technical Symposium on Computer Science Education."},{"key":"ref_8","doi-asserted-by":"crossref","unstructured":"Page, R., Eastlund, C., and Felleisen, M. Functional programming and theorem proving for undergraduates: a progress report. FDPE \u201908: Proceedings of the 2008 International Workshop on Functional and Declarative Programming in Education.","DOI":"10.1145\/1411260.1411264"},{"key":"ref_9","doi-asserted-by":"crossref","unstructured":"Bieniusa, A., Degen, M., Heidegger, P., Thiemann, P., Wehr, S., Gasbichler, M., Sperber, M., Crestani, M., Klaeren, H., and Knauel, E. HtDP and DMDA in the battlefield: A case study in first-year programming instruction. FDPE \u201908: Proceedings of the 2008 International Workshop on Functional and Declarative Programming in Education.","DOI":"10.1145\/1411260.1411262"},{"key":"ref_10","unstructured":"Felleisen, M., Findler, R.B., Flatt, M., and Krishnamurthi, S. (2001). How to Design Programs\u2014An Introduction to Programming and Computing, MIT Press."},{"key":"ref_11","unstructured":"Gallant, R.J., and Mahmoud, Q.H. Using Greenfoot and a Moon Scenario to teach Java programming in CS1. ACM-SE 46: Proceedings of the 46th Annual Southeast Regional Conference."},{"key":"ref_12","doi-asserted-by":"crossref","unstructured":"Al-Bow, M., Austin, D., Edgington, J., Fajardo, R., Fishburn, J., Lara, C., Leutenegger, S., and Meyer, S. Using Greenfoot and games to teach rising 9th and 10th grade novice programmers. Sandbox \u201908: Proceedings of the 2008 ACM SIGGRAPH Symposium on Video Games.","DOI":"10.1145\/1401843.1401853"},{"key":"ref_13","unstructured":"K\u00f6lling, M. Greenfoot: a highly graphical IDE for learning object-oriented programming. ITiCSE \u201908: Proceedings of the 13th Annual Conference on Innovation and Technology in Computer Science Education."},{"key":"ref_14","unstructured":"Academic Java. Availible online: http:\/\/academicjava.com\/."},{"key":"ref_15","doi-asserted-by":"crossref","unstructured":"Moreno, A., Myller, N., Sutinen, E., and Ben-Ari, M. Visualizing Programs with Jeliot 3. Proceedings of the Working Conference on Advanced Visual Interfaces (AVI 2004).","DOI":"10.1145\/989863.989928"},{"key":"ref_16","doi-asserted-by":"crossref","unstructured":"Demetrescu, C., and Finocchi, I. A portable virtual machine for program debugging and directing. SAC \u201904: Proceedings of the 2004 ACM Symposium on Applied Computing.","DOI":"10.1145\/967900.968205"},{"key":"ref_17","doi-asserted-by":"crossref","first-page":"341","DOI":"10.1006\/jvlc.2002.0239","article-title":"Animal: A System for Supporting Multiple Roles in Algorithm Animation","volume":"13","author":"Freisleben","year":"2002","journal-title":"J. Visual Lang. Computing"},{"key":"ref_18","doi-asserted-by":"crossref","first-page":"49","DOI":"10.1109\/MCG.2005.110","article-title":"JHAV\u00c9 \u2013 Addressing the Need to Support Algorithm Visualization with Tools for Active Engagement","volume":"25","author":"Naps","year":"2005","journal-title":"IEEE Comput. Graph. Appl."},{"key":"ref_19","unstructured":"Rice IV, W.H., and Nash, S.S. (2010). Moodle 1.9 Teaching Techniques - Creative ways to build powerful and effective online courses, Packt Publishing."},{"key":"ref_20","doi-asserted-by":"crossref","first-page":"2","DOI":"10.1145\/1163405.1163407","article-title":"The Boss online submission and assessment system","volume":"5","author":"Joy","year":"2005","journal-title":"J. Educ. Resour. Comput."},{"key":"ref_21","doi-asserted-by":"crossref","first-page":"5","DOI":"10.1145\/1163405.1163410","article-title":"Automated assessment and experiences of teaching programming","volume":"5","author":"Higgins","year":"2005","journal-title":"J. Educ. Resour. Comput."},{"key":"ref_22","first-page":"44","article-title":"Experiences using test-driven development with an automated grader","volume":"22","author":"Edwards","year":"2007","journal-title":"J. Comput. Small Coll."},{"key":"ref_23","doi-asserted-by":"crossref","unstructured":"R\u00f6\u00dfling, G., and Hartte, S. WebTasks: Online Programming Exercises Made Easy. Proceedings of the 13th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE 2008).","DOI":"10.1145\/1384271.1384405"},{"key":"ref_24","unstructured":"Wick, M., Stevenson, D., and Wagner, P. Using testing and JUnit across the curriculum. SIGCSE \u201905: Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education."},{"key":"ref_25","unstructured":"Object Mentor. JUnit.org Resources for Test Driven Development. Availible online: http:\/\/www.junit.org."},{"key":"ref_26","unstructured":"Burn, O. Checkstyle 5.0. Availible online: http:\/\/checkstyle.sourceforge.net\/."},{"key":"ref_27","doi-asserted-by":"crossref","first-page":"131","DOI":"10.1145\/782941.782998","article-title":"Exploring the Role of Visualization and Engagement in Computer Science Education","volume":"35","author":"Naps","year":"2003","journal-title":"ACM SIGCSE Bullet."},{"key":"ref_28","unstructured":"Grissom, S., McNally, M., and Naps, T.L. Algorithm Visualization in Computer Science Education: Comparing Levels of Student Engagement. Proceedings of the First ACM Symposium on Software Visualization."},{"key":"ref_29","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/1538234.1538236","article-title":"A survey of successful evaluations of program visualization and algorithm animation systems","volume":"9","year":"2009","journal-title":"Trans. Comput. Educ."},{"key":"ref_30","unstructured":"R\u00f6\u00dfling, G. (2008). Animal-Farm: An Extensible Framework for Algorithm Visualization, VDM Verlag Dr. M\u00fcller."},{"key":"ref_31","unstructured":"R\u00f6\u00dfling, G., Gliesche, F., Jajeh, T., and Widjaja, T. (, January July). Enhanced Expressiveness in Scripting Using AnimalScript V2. Proceedings of the Third Program Visualization Workshop, Warwick, UK."},{"key":"ref_32","doi-asserted-by":"crossref","first-page":"15","DOI":"10.1016\/j.entcs.2008.12.045","article-title":"A Java API for Creating (not only) AnimalScript","volume":"224","author":"Mehlhase","year":"2009","journal-title":"Electron. Note Theor. Comput. Sci."},{"key":"ref_33","doi-asserted-by":"crossref","first-page":"23","DOI":"10.1016\/j.entcs.2007.01.036","article-title":"A Framework for Generating AV Content on-the-fly","volume":"178","author":"Ackermann","year":"2007","journal-title":"Electr. Note Theor. Comput. Sci."},{"key":"ref_34","doi-asserted-by":"crossref","first-page":"166","DOI":"10.1145\/1189136.1189184","article-title":"Merging Interactive Visualizations with Hypertextbooks and Course Management","volume":"38","author":"Naps","year":"2006","journal-title":"SIGCSE Bullet. inroad"},{"key":"ref_35","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/1538234.1538238","article-title":"A Visualization-Based Computer Science Hypertextbook Prototype","volume":"9","author":"Vellaramkalayil","year":"2009","journal-title":"ACM Trans. Comput. Educat."},{"key":"ref_36","first-page":"56","article-title":"Maintaining lecture context in a blended course","volume":"23","author":"Aman","year":"2007","journal-title":"J. Comput. Small Coll."}],"container-title":["Algorithms"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1999-4893\/3\/2\/168\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T22:02:09Z","timestamp":1760220129000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1999-4893\/3\/2\/168"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2010,4,15]]},"references-count":36,"journal-issue":{"issue":"2","published-online":{"date-parts":[[2010,6]]}},"alternative-id":["a3020168"],"URL":"https:\/\/doi.org\/10.3390\/a3020168","relation":{},"ISSN":["1999-4893"],"issn-type":[{"type":"electronic","value":"1999-4893"}],"subject":[],"published":{"date-parts":[[2010,4,15]]}}}