• Visual and Text-based Programing for Science Classrooms

    Learn programming and modeling in the science classroom 

  • What is ViMAP?

    Learn programming, modeling and science all at the same time

    About ViMAP

     Funding for ViMAP was provided by an NSF CAREER Award (ACI grant # 1150230; PI: Pratim Sengupta)
    ViMAP is an open-source programming language and modeling environment designed for the K12 science classroom. When students use ViMAP, they can learn science by using visual programming to build models and simulations.
    In close collaboration with elementary and middle school teachers, we have designed ViMAP and the lesson guides so that learning programming and science can happen hand-in-hand.

    Also, unlike most other programming languages, ViMAP allows children to create their own programming commands! Students can also design their own ViMAP programming commands using text-based programming!   

    ViMAP in the classroom

    A short video on our work
    This video showcases some key results from our multi-year research project on integrating computational thinking in K12 science using ViMAP. 
  • Lesson Plans

    (Please click on the link above to go to the lesson plan)
    The Geometry Unit is designed to introduce elementary school students to the ViMAP Programming language through shape drawing and perimeter activities.
    (Please click on the link above to go to the lesson plan)
    The Measuring Motion unit is designed to teach elementary school students about motion as a process of continuous change.
    (Please click on the link above to go to the lesson plan)
    The Wild Tracks Unit is designed to teach elementary school students about multiplicative reasoning, mathematical formulas and scientific modeling through the design of measures of motion. 
    (Please click on the link above to go to the lesson plan)
    The Bird-Butterfly Ecosystem Unit is designed to teach elementary school students about animal foraging behaviors, predator-prey dynamics and natural selection within an ecosystem of flowers, butterflies and birds.
    (Please click on the link above to go to the lesson plan)
    The Ants Population Dynamics unit is designed to teach middle school students about ecology by programming ants to adapt to survive in diverse environments.
  • Geometry

    The Geometry Unit is designed to introduce elementary school students to the ViMAP programming language through shape drawing activities. In this unit, students begin by "role-playing" as agents and develop an embodied understanding of programming commands. Then, using ViMAP, they develop geometric and multiplicative reasoning by modeling (programming + graphing) regular and irregular polygons.  


    Download the One Turtle Software on our Github site: Click Here 

    Download ViMAP Geometry Lesson Plans (Aligned with Common Core)

    Squares, Circles & Spirals

    How do we write rules for agents?
    In this introductory activity, students pairs - a "rule maker" and a "builder" - work to write rules for drawing squares, circles and spirals with their bodies. Afterwards, they adapt these rules to draw these same shapes in ViMAP. Critical ideas explored include the relationship between turn angles, step size and repeat and programming continuously increasing or decreasing shapes.

    Regular Polygons

    What is the relationship between the number of sides of a polygon and the degree of turn?
    In this activity, students work cooperatively to create three to ten-sided regular polygons in ViMAP. Through discussion, an equation for finding the interior angles of any regular polygon is derived:
    Number of Sides x Turn Angle = 360

    Congruence & Perimeter

    Are shapes that have the same perimeter always congruent?
    In this activity, students discuss the properties of congruent shapes, model congruent shapes using two-turtle ViMAP and measure perimeter using ViMAP's measurement tool.

    Turtle Compasses

    What is your heading?
    We use nautical compasses called "turtle compasses" to help students learn about heading and turns in ViMAP.  Heading is the direction the turtle is facing, and right or left turns add or subtract from this heading. For example, if the turtle has a heading of 180 (south) and turns right 90, the new heading will be 270, which is west.  Remember, right and left are from the turtle's perspective, not the viewer's!  These compasses can printed on cardstock or transparent sheets and assembled with brads.
  • Measuring and Modeling Motion

    This unit is designed to help students develop a deep understanding of what it means to move at a “constant speed” or at "constant acceleration" by measuring and comparing the distance traveled by moving objects in equal intervals of time. Students conduct modeling activities both "in the real world", as well as using ViMAP. They model their data collected in the real world in ViMAP to produce models of motion.



    Constant Speed Motion

    How can we mathematically describe how fast or slow something is moving?
    Students use flags and stopwatches to create a visual and measurable record of constant speed motion. These measurements are used, critiqued, and refined as students try to model the motion in ViMAP.

    Constant Acceleration Motion

    How can we measure continuous change?
    Students create videos of constant acceleration, and performed measured movement on the objects in chunks of frames.  
    Students refine their physical setups, the collection of the video-recorded motiondata, and their measures as they iteratively critique and refine their ViMAP models of motion.  A video summary of the activity with samples of student work is available here.
  • Wild Tracks

    The Wild Tracks unit is designed to scaffold students’ understanding of motion as a process of continuous change.   Framed around an initial lesson on animal tracks, students leave ink footprints on banner paper and use this artifact to develop measures of distance (their ‘step size’). Students then use their 'step size data' to derive a specific equation for measuring distance (Distance = Number of Steps x Step Size) which is later generalized to the more recognizable formula of Distance = Speed x Time. Ideas of prediction, approximation and models as forms of mathematical evidence are also explored in this unit.


    Download ViMAP Wild Tracks (Aligned with Common Core & NGSS)

    Leaving Footprints and Defining Measures

    How do we define a step-size?
    In this activity, students create their own representations of motion by leaving footprints on banner paper. After creating their own footprints, students then work on defining and measuring a 'step size' and modeling their 'step sizes' in ViMAP.

    Confirming Measures

    Do our measures show us what we think they should?
    In this activity, students confirm that their step size measurement convention is an accurate measure of distance.

    Approximate Step Sizes

    What are approximate values and what do they buy us?
    In this activity, students discuss approximate values for step sizes as tools for mathematically simplifying computation for total distance travelled.  After selecting approximate step size values, students model approximate distances in ViMAP.


    How do approximations help us predict?
    In this activity, students use their approximate step sizes to derive a formula for finding total distance travelled. Students use this formula to predict how far someone has travelled after taking any number of steps. 


    How can we find the distance travelled by any object?
    In this activity, students extend their specific formula for finding total distance travelled to the more general formula for finding the total distance travelled by any object. Students use this formula to solve real world speed/time/distance problems in one or two-turtle ViMAP.
  • Bird-Butterfly Ecosystem

    The Bird-Butterfly unit was designed to scaffold students' exploration of  inter-agent and agent-environment relationships through an embodied modeling activity of butterflies foraging for nectar. In this unit, students create graphs of their energy gains and losses, record their foraging behavior on maps and program the behavior of individual butterflies in a multi-agent version of ViMAP.


    Download ViMAP Bird-Butterfly (Aligned with NGSS)

    Foraging for Nectar and Generating Graphs of Change in Energy

    How do structure-function relationships influence the decisions of agents?
    In this activity, students participate in an embodied modeling activity of butterflies foraging for nectar. Following the embodied modeling activity, students create graphs of their energy changes over time and model their change in energy in one or two-turtle ViMAP.

    Recording Foraging Behavior on Maps

    How do the decisions of individual agents lead to population level behaviors?
    Using their energy data sheets, students make maps of their foraging behavior on transparency paper.  The classroom teacher then layers each students' transparency to reveal population level foraging behaviors.

    Modeling Predation and Natural Selection 

    How do populations of agents change over time?
    In this activity, students program the behavior of individual butterfly agents in a multi-agent version of ViMAP. Students observe how the individual rules they have assigned to the butterflies lead to population level changes, such as natural selection, over multiple generations. 
  • Ant Population Dynamics Lesson Plans

    The Ants Population Dynamics unit is designed to teach middle school students about ecology by programming ants to adapt to survive in diverse environments. Download the software here: https://github.com/vimapk12/ViMAP/releases/tag/1.0

    Day 1: Introduction

    The Ants Population Dynamics unit is designed to teach middle school students about ecology by programming ants to adapt to survive in diverse environments. Ants are in a situation where they all work toward a common goal, but they don’t have a language to speak or write, or even a leader who is in charge. How do they do it? In this multi-day lesson series, using ViMap we will learn about the impact of small changes on population patterns  

    Day 2: Emergence

    This lesson teaches that the actions of individual ants create patterns. When magnified on a larger scale, those patterns define the behavior of the colony. Click here to view the lesson plan

    Day 3: Introduction to ViMAP Ants

    Models are controlled by rules that apply to each individual organism. In living and computer ants both follow “rules” that they are “programmed” to follow.You have to tell the ants EVERYTHING that you want them to do. Click here to view the lesson plan.

    Day 4: Tandem Running

    What triggers the ant to move forward? (the other ants taps its legs with its antennae)

    How does that affect the speed of the first ant? (slows it down)

    Why do you think the follower ant smells to the left and right of the path? Why doesn’t it just stick with the teacher? (looking for land marks)

    Day 5: Life and Death

    In population dynamics, the impacts of life and death are crucial. In this lesson, Kids program life and death into the ants as well as get  their first attempt at writing their program in “English”.

    Click here to view the lesson plan.

    Day 6: Communication

    Ants teach others in their colony where to find food through tandem running and by leaving chemical (pheromone) trails. Learn how these social behaviors cause ant populations to increase or decrease.

    Day 7: Predators

    Spiders (predators) consume ants (prey). Program a spider to stalk ants, and see the impact of predation on population carrying capacity.

    Day 8: Pollinators

    Today, we focus on how different actions of pollinators affect the ants' population.

    Day 9: Sand Boxing

    Design and create your own programming commands using text-based programming, and in the process, learn more deeply about:

    • Behavior of agents (spiders, ants, queen ant, pollinators)
    • Increases and decreases in agents or in food sources
    • How agents affect each other
    • population behaviors

    Click here to view the lesson plan.

    Day 10 & 11: Review and Assessment 

    At the end of the sequence, here's a review and assessment:


    Click here to view the review packet.


    Click here to view the final assessment.

  • Downloads

    ViMAP requires JAVA to be installed on your computer to run. Follow the instructions here to install Java: https://www.java.com/en/download/help/download_options.xml

    Download ViMAP Ants 

    Ant Food Grab is the program which underpins our Population Dynamics Lesson Plan Series. Download the Java Jar file today. 
    1. Requires JAVA to be installed on your computer to run.

    Download ViMAP Birds & Butterflies

    Adaptation & Population Dynamics
    Birds and Butterflies is the program which underpins our adaptation and natural selection curriculum lesson plan series. Download the Jar file today.
    1. Requires JAVA to be installed on your computer to run.

    Download ViMAP One Turtle

    Geometry & Motion
    One Turtle is the program which underpins our Geometry Lesson Plan Series. Click here to download the software from  Github: 
    1. Requires JAVA to be installed on your computer to run.

    Download ViMAP Two Turtle

    Geometry & Motion
    Sometimes two turtles are better than one!  Using the two turtle version can allow for quick comparisons between the two agents' actions and the graphs that they produce.
  • Publications

    research papers on ViMAP and computational thinking and modeling in K12 science classrooms

    1. Sengupta, P., Dickes, A.C., Farris, A.V., Karan, A., & Martin, D. (2015 / in press). Programming in K12 classrooms. Communications of the ACM.
    2. Dickes, A., Sengupta, P., Farris, A.V., & Basu, S. (Accepted with minor revisions). Development of Mechanistic Reasoning and Multi-level Explanations in 3rd Grade Biology Using Multi-Agent Based Models. Science Education.
    3. Sengupta, P., Krishnan, G., Wright, M., & Ghassoul, C.  (In press). Mathematical Machines & Integrated STEM: An Intersubjective Constructionist Approach. Communications in Computer and Information Science, Vol. 510.
    4. Farris, A.V., & Sengupta, P. (Accepted). Democratizing Children’s Computation: Learning Computational Science as Aesthetic Experience. Educational Theory.
    5. Sengupta, P., Kinnebrew, J., Basu, S., Biswas, G., and Clark, D. (2013). Integrating Computational Thinking with K12 Science Education Using Agent-Based Computation: A Theoretical Framework. Education & Information Technologies, 18(2), 351-380.
    6. Dickes, A., & Sengupta, P. (2013).  Learning Natural Selection in 4th Grade With Agent-Based Models. Research in Science Education. 43(3), 921-953.
    7. Sengupta, P., Voss Farris, A., & Wright, M (2012). From Agents to Aggregation via Aesthetics: Learning Mechanics with Visual Agent-based Computational Modeling. Technology, Knowledge & Learning Vol. 17 (1 -2), pp. 23 - 42.
    8. Sengupta, P., Krishnan, G., & Wright, M. (2014). Integrated STEM in Elementary Grades Using Distributed Agent-based Computation. In Proceedings of the 6th International Conference on Computer Supported Education (pp. 67 - 78).
    9. Sengupta, P., & Farris, A.V. (2012). Learning Kinematics in Elementary Grades Using Agent-based Computational Modeling: A Visual Programming Based Approach.  In: Proceedings of the 11th International Conference on Interaction Design & Children, pp 78 – 87. ACM.
  • Meet Our Team

    Researchers and Teachers

    Principal Investigator
    NSF Early CAREER Award #1150320

    Amy Voss Farris

    PhD student, Learning Sciences, Vanderbilt University

    Amanda Dickes

    PhD student, Learning Sciences, Vanderbilt University

    Researcher (Until Fall 2015)

    Current: PhD student, Learning Sciences, Northwestern University

    Ashlyn Karan

    Middle school teacher

    Current: PhD student, Learning Sciences, Vanderbilt University

    Cherifa Ghassoul McDowell

    Middle school teacher (2012 - 2013; current); ViMAP Researcher (2013- 2014)

    Emily Bryant Brockwell

    3rd and 4th grade teacher

    Leah Embry

    3rd and 4th grade teacher

    Corey Brady

    Consultant; Research Assistant Professor, Northwestern University

    Mason Wright

    Lead Developer, 2010- 2014; Current: PhD student, Computer Science, University of Michigan 

    Jordan Nelson

    Developer, 2014-2015

    Current: Software Developer, Reax.io

  • Contact Us

    Please email us at info@vimapk12.org. Alternatively, please fill out the following form if you're interested in using ViMAP in your school and we will respond as soon as possible.

  • Credits

    Funding: National Science Foundation

    Early CAREER Award (ACI 1150230); PI: Pratim Sengupta

    The development and research activities reported on this website were supported by NSF Early CAREER Award (ACI #1150230). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.


    CCL @ Northwestern

    Home of NetLogo

    ViMAP uses NetLogo as its simulation and graphing engine; and therefore, derives it's generative power ("low threshold high ceiling") from NetLogo. Many many thanks to Prof. Uri Wilensky and his wonderful group at the Center for Connected Learning at Northwestern!  

    Vanderbilt University

    Previous home of ViMAP

    From 2009 - 2015, Vanderbilt was home to ViMAP. 

    University of Calgary

    Home of ViMAP

    Since Fall 2015, the PI (Pratim Sengupta) has moved to the University of Calgary as a professor of Learning Sciences.