Computer Science at the Supermarket
Data Structures in the Supermarket
Data structures in Computer Science tend to be quite conceptual. Data structure tutorials and examples are scattered all across the Internet, but It’s often difficult to visualize what a queue or a stack looks like when it’s implemented in code. Students encounter difficulties at the high school, college, and graduate school levels.
Data structures are conceptual models of real-world entities. While real-world entities are most often more complicated than typical computer science data structures, the conceptual models studied in school are very helpful as a basis for the models. Ensuring the future of computer science in schools obligates us to teach basic models and allow students the opportunity to build on them.
The purpose of learning how data structures work is twofold. Students need to be capable of identifying applications for data structures in their projects. Most modern design tools and programming languages have common data structures already implemented. If students, who will become engineers, programmers, and analysts, can’t associate common data structures with what they see in the real world, they will be much less valuable to employers and clients.
Animations are also excellent visual aides, or possibly hindrances if implemented poorly. Real-world examples are much more effective for most people. Most people are familiar with the layout and organization of a grocery store. By relating data structures and grocery stores, we increase the efficiency and marketability of students.
One common data structure is the queue. A queue is organized such that items enter the queue at one end and exit at the other end. In Computer Science parlance, this is referred to as “FIFO”, or First in First Out. What part of the grocery store models a queue? The check out line, of course, models a queue. Customers enter the line (queue) at the back and exit at the front. The first person in line is the first person who gets checked out.
Another common data structure is the stack. A stack, unlike a queue, is described as “LIFO”, or “Last in First Out.” The most recent item added to the stack is always the next item that will be removed from the stack. In a grocery store the cereal box shelf is an excellent example of a stack. The shelf is stocked from the front; a clerk pushes a box onto the shelf, moving the other boxes closer to the back. When a customer grabs a box from the shelf, they are getting the most recent box that was stocked. It’s a classic LIFO data structure. Of course, the downside of a using a stack to model a grocery store shelf is that the oldest items will constantly be shifted toward the back of the inventory. The aging of the merchandise is backward. In the case of cereal, this probably doesn’t matter. In the case of a time-sensitive perishable product like milk, the queue strategy falls apart. By stocking from the back, the milk shelf becomes a queue and it all works out.
Another data structure is a linked list. The linked list is used in computer science to dynamically maintain a list of items that may grow and shrink from both ends and also from anywhere within the list. For our example we will consider a doubly-linked list. In a doubly-linked list, any item in the list is connected to the items immediately before and after it in the list. Items can be inserted anywhere in the list and also deleted from anywhere in the list. The list is ordered and interconnected. What ordered, inheritable, updatable, delectable, and interconnected entities (data structures) exist in a supermarket? If you have a suggestion, please leave a comment below. Thank you for your help in forwarding the teaching of Computer Science!
More by this Author
A useful text editor is an essential component of any personal computer. Every day we need to make notes, compose documents, and record vital pieces of information. We depend on our text editor. Microsoft provided...
Churning round and round in the basement, the washing machine usually spends its' useful life as an unappreciated member of the appliance family...
Data Hiding is an aspect of Object Oriented Programming (OOP) that allows developers to protect private data and hide implementation details. In this tutorial we examine basic data hiding techniques in Java.