
NSF Org: |
DUE Division Of Undergraduate Education |
Recipient: |
|
Initial Amendment Date: | August 17, 2014 |
Latest Amendment Date: | August 17, 2014 |
Award Number: | 1431667 |
Award Instrument: | Standard Grant |
Program Manager: |
Stephanie August
DUE Division Of Undergraduate Education EDU Directorate for STEM Education |
Start Date: | January 1, 2015 |
End Date: | December 31, 2018 (Estimated) |
Total Intended Award Amount: | $183,398.00 |
Total Awarded Amount to Date: | $183,398.00 |
Funds Obligated to Date: |
|
History of Investigator: |
|
Recipient Sponsored Research Office: |
2200 W MAIN ST DURHAM NC US 27705-4640 (919)684-3030 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
308 Research Drive Durham NC US 27708-0129 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): | IUSE |
Primary Program Source: |
|
Program Reference Code(s): |
|
Program Element Code(s): |
|
Award Agency Code: | 4900 |
Fund Agency Code: | 4900 |
Assistance Listing Number(s): | 47.076 |
ABSTRACT
OpenDSA is an open source project with international collaboration that has the potential to fundamentally change instruction in courses on Data Structures and Algorithms (DSA) and Formal Languages and Automata (FLA). By combining textbook-quality content with visualization and a rich collection of automatically assessed interactive exercises, OpenDSA helps students better understand the behavior of algorithms and their effects over time on data structures.
This project will scale up OpenDSA in a number of ways. The highly successful JFLAP software for interactive instruction on FLA will be redeployed within the OpenDSA framework using HTML5 standards, thereby increasing access. A wide range of colleges and universities will be involved in disseminating OpenDSA and assessing its impact on student learning, and OpenDSA's use in a number of innovative instructional settings will be explored. The OpenDSA infrastructure will be enriched, allowing instructors to tailor the materials to their specific classroom needs, and encouraging new content contributions from these instructors. A number of technical pedagogical experiments will be conducted, such as measuring the effects of augmenting content with audio narration in slideshows, and navigation through topics with concept maps. A study of how these materials can improve teaching in a range of courses for which relevant content was created. These efforts will have an impact on future active eTextbook projects by demonstrating successful ways to integrate content, interactivity, and assessment in an open-source, creative-commons environment by focusing on the effects on student learning of integrating content with visualizations and a rich collection of practice exercises with automated feedback. In addition, this project will study how using eTextbook materials affects the evolving pedagogical approaches of instructors of DSA and FLA courses and will experiment with new models of dissemination for open-source content in conjunction with commercial online content publishers.
PROJECT OUTCOMES REPORT
Disclaimer
This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.
A traditional way for students to learn is to read a textbook, and work
the exercises in the textbook. But students cannot interact with the
concepts they are learning, or get feedback on the exercises.
In this project we have taken a successful educational software tool
named JFLAP and integrated it into an active eTextbook platform named
OpenDSA. OpenDSA is infrastructure and materials to support the creation of
an online textbook with visualization, animations and interactive
exercises. With OpenDSA, students can interact with the concepts as they
learn them, and receive immediate feedback on exercises.
JFLAP is a software tool for experimenting with formal languages and
automata, an area of theoretical computer science that represents the
background theory on recognizing if a program written in a computer
language such as Python is a syntactically correct program, and thus can be
run on input. If the program is not syntactically correct, this theory can
determine which line in the program is in error.
JFLAP is written in Java and was developed by PI Rodger originally in the
1990's in C++ and has evolved through ten versions.
JFLAP is a standalone tool that must be downloaded and run separately.
Our project focused on developing parts of JFLAP for web pages in HTML5,
using the OpenDSA infrastructure. A team of seven Duke undergraduates and PI
Rodger developed prototypes for several algorithms in the area
of formal languages and automata, and worked with PI
Shaffer at Virginia Tech to integrate these interactive animations and
exercises into a new online textbook called OpenFLAP in the OpenDSA
platform.
For example, the first step in recognizing if a python program is
syntactically correct, is to examine each word in the program to identify
its type. Is the word an integer, a keyword, a variable, a plus sign, a
right parentheses, etc? This can be done by examining each word character
by character, and modeling how a group of characters together are all
digits and thus represent an integer, or together form the word "while" that
is a keyword, or together form a word "count1" that is a variable name.
In formal languages a finite state machine is a simple computer that can be
programmed to identify all of these types of words. With JFLAP, a student
can write programs for a finite state machine, type in an input word and get
output on whether the word was valid or not, for example, whether the word
was a valid word in a python program, and if so what type of word it was.
For this project, we implemented a finite state machine program in OpenFLAP
that a student can create any program for and then type in any input to
determine if their program works or not. We also implemented exercises a
student could generate, solve, and get feedback on. This program and many
other algorithms in formal languages were implemented into the
OpenFLAP online textbook. When a student uses this textbook they will read
about a concept, then try to develop the concept, such as write a finite
state machine program for the problem. Then the student can experiment with
the concept, such as run several inputs on their program, testing inputs
that should be accepted and also testing inputs that should not be
accepted. OpenFLAP can then ask the user questions about the concept they
just read and experimented with to see if the student understands the
concept.
Our textbook OpenFLAP will engage students and will be available
for faculty teaching formal languages to use with their course.
Last Modified: 04/15/2019
Modified by: Susan H Rodger
Please report errors in award information by writing to: awardsearch@nsf.gov.