Greenfoot is an integrated development environment using Java or Stride designed primarily for educational purposes at the high school and undergraduate level. It allows easy development of two-dimensional graphical applications, such as simulations and interactive games.
Developer(s) | Michael Kölling, Computing Education Group, King's College London |
---|---|
Stable release | 3.8.2
/ 1 December 2023 |
Repository | none |
Operating system | Cross-platform |
Platform | Java |
Available in | Multilingual |
Type | Integrated Development Environment |
License | GPL-2.0-or-later with the Classpath exception |
Website | www |
Greenfoot is being developed and maintained at King's College London, with support from Oracle. It is free software, released under the GPL license. Greenfoot is available for Windows, macOS, Linux, Solaris, and any recent JVM.
History
editThe Greenfoot project was initiated by Michael Kölling in 2003, and a first prototype was built by Poul Henriksen (master's student) and Michael Kölling (supervisor) in 2003/2004.[1] From 2005 development was continued involving the other members of the BlueJ Group.
Greenfoot is being developed and maintained at King's College London,[2] where the development team moved from the University of Kent.
The first full release, Greenfoot version 1.0, was published on 31 May 2006, with further releases following occasionally thereafter.[3]
In May 2007, the Greenfoot project was awarded the "Duke's Choice Award" in the category "Java Technology in Education", and in 2010 it won the "Premier Award for Excellence in Engineering Education Courseware".
In March 2009, Greenfoot project became free and open source software, and licensed under GPL-2.0-or-later with the Classpath exception.
In August 2009, a textbook[4] was published that teaches programming with Greenfoot.
In 2017, Greenfoot was extended to support a second programming language, Stride (in addition to Java). Stride is intended to make programming easier for novices, support younger users, and facilitate the transition from block-based languages. Its most notable difference is the use of a frame-based editor.
Use and programming model
editpublic void act()
{
setLocation (getX() + 4, getY());
// Moves the Actor 4 cells to the right
setRotation (getRotation() + 2);
// Rotates the Actor 2 degrees clockwise
}
|
An example of a simple act method in Greenfoot |
Actor a = getOneIntersectingObject(Asteroid.class);
if (a != null) {
// we have hit an asteroid!
explode();
}
|
An example of simple collision detection |
The Greenfoot programming model consists of a World class (represented by a rectangular screen area) and any number of actor objects that are present in the world and can be programmed to act independently. The world and actors are represented by Java objects and defined by Java classes. Greenfoot offers methods to easily program these actors, including method for movement, rotation, changes of appearance, collision detection, etc.
Programming in Greenfoot at its most basic consists of subclassing two built-in classes, World and Actor. An instance of the world subclass represents the world in which Greenfoot execution will occur. Actor subclasses are objects that can exist and act in the world. An instance of the world subclass is automatically created by the environment.
Execution in Greenfoot consists of a built-in main loop that repeatedly invokes each actor's act method. Programming a scenario, therefore, consists mainly of implementing act methods for the scenario's actors. Implementation is done in standard Java. Greenfoot offers API methods for a range of common tasks, such as animation, sound, randomisation, and image manipulation. All standard Java libraries can be used as well, and sophisticated functionality can be achieved.
Design
editGreenfoot aims to motivate learners quickly by providing easy access to animated graphics, sound and interaction. The environment is highly interactive and encourages exploration and experimentation. Pedagogically, the design is based on constructivist and apprenticeship approaches.
Secondly, the environment is designed to illustrate and emphasize important abstractions and concepts of object-oriented programming. Concepts such as the class/object relationship, methods, parameters, and object interaction are conveyed through visualizations and guided interactions. The goal is to build and support a mental model that correctly represents modern object-oriented programming systems.
Learner community
editFor users of Greenfoot, a community site called the Greenfoot Gallery[5] provides a platform to publish and discuss their projects. Anyone can set up an account on the Greenfoot Gallery and publish their work. When published, scenarios run live in a web browser, and are instantly playable by anyone worldwide. The ability to easily publish programming projects to the internet is seen as a significant motivator for young learners.
Educator community
editFor educators, the project provides the Greenroom,[6] a community site to discuss teaching strategies, exchange experiences and share material. In addition to a discussion forum, the Greenroom provides a shared repository of teaching resources, including numerous worksheets, project ideas, slide sets and other teaching aids.
Releases
editIn version 2.0, the editor and API received some major changes from the previous version 1.5.6. The editor added support for code completion, coloured scope highlighting, improved find and replace, and a new navigation view.[7] A built-in sound recorder was added, as well as better support for sound in scenarios through a new high level sound class called GreenfootSound . It adds the ability to pause and loop sounds, as well as adding MP3 support. Version 3.0 added support for the Stride language,[8] and included a novel frame-based editor.[9]
See also
editReferences
edit- ^ "P. Henriksen Masters thesis: A Direct Interaction Tool for Object-Oriented Programming Education". Archived from the original on 14 February 2007. Retrieved 15 April 2007.
- ^ Greenfoot contributors
- ^ Version history Archived 2 April 2007 at the Wayback Machine
- ^ Textbook: Introduction to Programming with Greenfoot
- ^ Greenfoot Gallery
- ^ Greenroom
- ^ "Greenfoot 2.0 – The new features – mik's blog". Blogs.kent.ac.uk. 13 October 2010. Archived from the original on 12 October 2011. Retrieved 5 July 2013.
- ^ "Stride – An introduction". blogs.kcl.ac.uk. 28 October 2016. Retrieved 22 August 2017.
- ^ "Frame-Based Editing". blogs.kcl.ac.uk. 26 June 2017. Retrieved 22 August 2017.
Bibliography
edit- Kölling, Michael; Brown, Neil; Altadmri, Amjad (2017). "Frame-Based Editing". Journal of Visual Languages and Sentient Systems. 3. KSI Research Inc: 40–67. doi:10.18293/VLSS2017-009.
- Kölling, Michael (2010). "The Greenfoot Programming Environment" (PDF). ACM Transactions on Computing Education. 10 (4). ACM: 1–21. doi:10.1145/1868358.1868361. S2CID 18208672.
- Utting, Ian; Cooper, Stephen; Kölling, Michael; Maloney, John; Resnick, Mitchel (2010). "Alice, Greenfoot, and Scratch – A Discussion" (PDF). ACM Transactions on Computing Education. 10 (4). ACM: 1–11. doi:10.1145/1868358.1868364. S2CID 17911112.
- Ficher, Sally; Kölling, Michael; Utting, Ian; Brown, Neil; Stevens, Phil (2010). "Repositories of teaching material and communities of use: Nifty assignments and the greenroom". Proceedings of the Sixth international workshop on Computing education research. pp. 107–114. doi:10.1145/1839594.1839613. ISBN 9781450302579. S2CID 15310494.
- Henriksen, Poul; Kölling, Michael; McCall, Davin (2010). "Motivating Programmers Via An Online Community" (PDF). Journal of Computing Sciences in Colleges. 25 (3). Association for Computing Machinery: 82–93.
- Kölling, Michael (2009). Introduction to Programming with Greenfoot – Object-Oriented Programming in Java with Games and Simulations. Pearson Education. ISBN 978-0-13-603753-8.
- Rosenberg, John; Kölling, Michael; Quig, Bruce (2007). "Greenfoot: Using computer games to teach introductory programming". Professional Educator. 6 (3): 20–23.
- Kölling, Michael; Henriksen, Poul (2005). "Game programming in introductory courses with direct state manipulation" (PDF). Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education. ACM. pp. 59–63. doi:10.1145/1067445.1067465. ISBN 1595930248. S2CID 15133742.
- Henriksen, Poul; Kölling, Michael; McCall, Davin (2004). "Greenfoot: Combining object visualisation with interaction". Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications (PDF). ACM. pp. 73–82. doi:10.1145/1028664.1028701. ISBN 1-58113-833-4. S2CID 14603208.
External links
edit- Official website
- Screenshots
- The Greenfoot Gallery – Gallery of live Greenfoot scenarios
- Greenroom – teaching resources