Memory: More than RAM!
I have been thinking a lot about data structures recently. Currently I'm taking a course called CICS 210: Intro to Data Structures. The class teaches Java syntax in use of learning about Big O notation and commonly used implementations of data structures such as Binary Search Trees and AVL trees.
While I am an EE, I find the mathematical component of computer science to be a fruitful addition to my EE studies since I'm interested in computers and how they work. Last semester, I took ECE 331 Hardware and Digital Design as an elective course because I wanted to learn more about how computers work.
While taking Data Structures, I've made a lot of connections to what I learned in ECE 331 since the main use of data structures in computer science is about optimizing memory use in designing code.
As I sit in lecture, I hear words like "memory" and "pages" and my brain instantly pings to the previous material I had encountered.
In computers, it is computationally expensive to look through disk memory since it can take thousands of clock cycles to look through the data to find the information the CPU is searching for. For this reason, computer engineers created the memory hierarchy system, which keeps locally used data close to the CPU by loading it first into the RAM, or random access memory, while caching is used to keep recently used data close to the CPU to speed up processing time.
Diagram of Memory Hierarachy
Computer scientists in turn took these structures designed by CompE's and further optimized them using Data Structures. Data Structures are how computer scientists organize data or "Nodes" that connect to other memory items and their addresses, allowing for easier use of information in a program, or more simply, specific ways of organizing or storing data efficiently. Since programs like C, C++ or Java use hard allocated data, making sure items are efficiently stored makes programs run much faster while using less RAM.
Data structures are very commonly used, since they can shrink search times for an item by orders of magnitude compared to linear search. For example, file explorer systems on PC's are an example of a hierarchical tree data structure.
One of the most important data structures is something called B trees. Binary trees have one node and two children (objects that the node points to); B trees can have a larger amount of children depending on the design specification of the tree.
Why is this important to memory you may ask? B trees and B+ trees (B trees that allow for faster search through nodes) can significantly speed up memory retrieval. Instead of loading specific items into RAM, B trees search quickly from top to bottom of the "tree" shown below to load up the range the address is in, which takes much less time since pages of data can often reach up to 1000 bytes. By loading a page into memory, the cache and CPU can find the data much faster since it already knows the range.
Example of B tree use in Memory
Resulting from this, large databases can be made much more efficient since B and B+ trees automatically balance each other, creating a branching structure that takes much less time, O(log n) instead of O(n). This efficiency is why seemingly endless disk space can still be loaded in a relatively short amount of time, even as the amount of data used across programs and databases continues to grow.
I find it to be so interesting because as I learn about these concepts in computer science, I look back to ECE and see the hardware implementations that put these concepts into physical reality. It makes the concept of "memory usage" feel much more real when knowing how memory addresses look, and learning about the physical uses for optimizing data paths, making it much easier to see how the concepts are related, almost like seeing the "front end" design and the "back end" design simultaneously.
Seeing the connection between the abstract and the physical implementations makes learning about ECE feel like seeing a connected node in a network, rather than a floating point object in space separated from the rest of engineering.
-Aleksa
Aleksa Angjeliu
Electrical Engineering, 2028
6 April 2026