  Teachers face several challenges when presenting the fundamental concepts of
programming in the classroom. Several tools are introduced to give a visual
dimension to support the learning process. These tools rely on code blocks,
easily manipulated in a plug and play fashion, to build a program. These
block-based tools intend to familiarize students with programming logic, before
diving into text-based programming languages such as Java, Python, etc.
However; when transitioning from block-based to text-based programming,
students often encounter a gap in their learning. The student may not be able
to apply block-based foundations in a text-based environment. To bridge the gap
between both environments, we developed a hybrid-based learning approach. We
found that on average a hybrid-based approach increases the students
understanding of programming foundations, memorization, and ease of transition
by more than 30% when compared to a block-based to text-based learning
approach. Finally, we provide the community with an open source, hybrid-based
learning tool that can be used by students when learning programming concepts
or for future studies.
