NetLogo

Revision as of 15:09, 30 May 2025 by imported>Jzkelter (→‎Technical foundation)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:Infobox programming language

NetLogo is a programming language and integrated development environment (IDE) for agent-based modeling.

AboutEdit

NetLogo was designed by Uri Wilensky, in the spirit of the programming language Logo, to be "low threshold and no ceiling". It teaches programming concepts using agents in the form of turtles, patches, links and the observer.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> NetLogo was designed with multiple audiences in mind, in particular: teaching children in the education community, and for domain experts without a programming background to model related phenomena.<ref>Template:Cite conference</ref> Thousands of scientific articles have been published using NetLogo.<ref name="ref-list">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

The NetLogo environment enables exploration of emergent phenomena. It comes with an extensive models library including models in a variety of domains, such as economics, biology, physics, chemistry, psychology, and system dynamics.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> NetLogo allows exploration by modifying switches, sliders, choosers, inputs, and other interface elements.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Beyond exploring, NetLogo allows authoring new models and modifying extant models.

NetLogo is open source and freely available from the NetLogo website.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> It is in use in a wide variety of educational contexts from elementary school to graduate school.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>Template:Cite book</ref><ref>Template:Cite journal</ref><ref>Template:Cite journal</ref> Many teachers make use of NetLogo in their curricula.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> NetLogo is also widely used in scientific research having been used in several thousand research papers. <ref name="ref-list" />

NetLogo was designed and authored by Uri Wilensky,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> director of Northwestern University's Center for Connected Learning and Computer-Based Modeling (CCL).<ref name="netlogo_creation">Template:Cite conference</ref>

Other featuresEdit

In addition to agent-based modeling, NetLogo also includes basic support for dynamic system modeling.

BooksEdit

Several books have been published about NetLogo.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Books available in print include:

Books available online include:

  • {{#invoke:citation/CS1|citation

|CitationClass=web }}

Online coursesEdit

Template:As of, several massive open online courses are being offered that use NetLogo for assignments and/or demonstrations:

  • {{#invoke:citation/CS1|citation

|CitationClass=web }}

  • {{#invoke:citation/CS1|citation

|CitationClass=web }}

  • {{#invoke:citation/CS1|citation

|CitationClass=web }}

Technical foundationEdit

NetLogo is free and open-source software, released under a GNU General Public License (GPL).<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Commercial licenses are also available. It is written in Scala and Java and runs on the Java virtual machine (JVM).<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> At its core is a hybrid interpreter/compiler that partially compiles user code to JVM bytecode.<ref name="faster_turtles">Template:Cite conference</ref>

NetLogo Web is a version that runs on JavaScript, instead of the JVM, so models may be run in a web browser. However, it does not yet have all features of the desktop version.

ExamplesEdit

A simple multiagent model in NetLogo is the Wolf-Sheep Predation model,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> which is shown in the screenshot above. It models the population growth of a predator/prey system over time. It has the following characteristics:

  • There are two breeds of turtles, called sheep and wolves.
  • Sheep and wolves move randomly and have limited energy.
  • Wolves and sheep lose energy by moving. If a wolf or sheep has zero energy, it dies.
  • Sheep gain energy by eating grass.
  • Wolves gain energy by eating sheep.
  • Both wolves and sheep can reproduce, sharing energy with their offspring.

HubNetEdit

HubNet is a technology that uses NetLogo to run participatory simulations in the classroom.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> In a participatory simulation, a whole group of users takes part in enacting the behavior of a system. Using an individual device, such as a networked computer or Texas Instruments graphing calculator, each user acts as a separate, independent agent. One example of a HubNet activity is Tragedy of the Commons,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> which models the economic problem called the tragedy of the commons.

See alsoEdit

ReferencesEdit

Template:Reflist

External linksEdit

Template:Logo programming Template:Lisp programming language Template:Northwestern Template:Authority control