About Bags

Over the past decade, Computer Science education researchers have built a number of drag-and-drop environments for teaching computer programming. Notable examples include Alice (CMU), Scratch (MIT), Greenfoot (Kent), and AppInventor (Google). Although each project has its own emphasis (e.g., object oriented design, interaction with media, simulation and games, mobile development), they all focus on teaching introductory programming concepts. Students learn about instructions, decisions, loops, variables, operators, and so forth by manipulating "blocks" that represent these structures. This design has a number of pedagogical advantages, including simplifying the programming environment, encouraging self-directed learning, making the execution of programs visual, eliminating syntax error messages, and making data structures concrete.

Bags is a new type of drag-and-drop environment suitable for teaching relational algebra. In contrast to current tools like Scratch and Alice that allow students to interact with computation, our approach enables students to explore and manipulate structured data. Students formulate database queries by combining blocks representing relational operations, including selection, projection, inner/outer join, grouping, aggregation, and sorting. Our approach allows students to evaluate ad hoc queries in real-time, giving them an interactive visualization of the data as they add or remove individual operations. Students are also able to experiment with different configurations of blocks and observe the corresponding query results.

Why the name Bags? In set theory, a "bag" is a set that may contain duplicate items. SQL and other database languages are based on bag semantics.

Release notes

Coming soon...

Jan 22, 2015 - delta release

May 2, 2014 - gamma release

Feb 28, 2014 - beta release

Nov 7, 2013 - alpha release