Learning to program is a key issue in modern education. Visual block-based languages promote motivation and improve academic performance (Kelleher et al., 2007; Malan & Leitner, 2007), but the transition to Python can sometimes be complex (Moors et al., 2018). A hybrid approach, called bi-directional, combining block programming and code, makes learning and transition smoother (Alrubaye et al., 2019; Branthôme, 2021).
Introduced in primary school since 2016, programming is integrated into middle school mathematics and technology courses. In high school, the NSI specialty allows students to explore computer science concepts in greater depth and prepare them for digital challenges. In this article, we will see why learning to program is essential and how this approach allows students to progress effectively.
The duality between block programming and text-based programming
Why start with block programming?
Block-based programming is often an essential first step in learning to code, allowing children to become familiar with programming in a fun and intuitive way from school.
It is based on the use of graphical interfaces where instructions are represented as blocks to be assembled, a bit like puzzle pieces. This allows programs to be created by moving and nesting these blocks, without having to write textual code.
It allows students to:
- Become familiar with algorithmic logic without being hindered by syntax.
- Manipulate key concepts like loops, conditions, and variables intuitively.
Thus, by reducing unnecessary cognitive load and promoting useful cognitive load (Thorgeirsson et al., 2024), block programming offers a more accessible learning environment, promoting experimentation and understanding of the basics.
When and how to switch to Python?
Python is widely used in education, from high school onwards, and industry thanks to its clear syntax and its numerous applications (data science, artificial intelligence, robotics, etc.).
It is a text-based programming language where instructions are written as lines of code, following a precise and structured syntax. Due to its simplicity and readability, Python is often considered an excellent first text-based language to learn programming.
However, the transition can be difficult for students who face new challenges:
- The need to respect strict syntax.
- The disappearance of the visual and intuitive aspect of the blocks.
These challenges typically result in a significantly slowed learning curve for the majority of students (Espinal et al., 2023; Weintrop et al., 2017; Weintrop & Wilensky, 2018). A gradual transition is therefore recommended, allowing students to simultaneously view their code in block form and in text (Alrubaye et al., 2019).
Learning challenges associated with this transition
Moving from visual, block-based programming to text-based programming can be confusing. Students may encounter several challenges:
- Understand how abstract concepts in blocks translate into code.
- Identify and correct syntax errors.
- Maintaining their motivation in the face of technical obstacles.
A hybrid interface helps to minimize these difficulties by providing a clear vision of the correspondences between the two approaches (Alrubaye et al., 2019).
How does bi-directional programming facilitate learning?
What is bi-directional programming?

Bi-directional programming is a teaching approach that allows users to switch freely between block-based programming and text-based programming. This method offers real-time automatic translation: any change made in one mode is instantly reflected in the other.
This approach has a double advantage: it allows beginners to gradually understand the structure of the code without getting lost in the syntax, while offering advanced users the possibility to directly modify the code and observe the block equivalents.
A scalable interface suitable for beginners and experienced users
One of the great advantages of a two-way interface is its ability to adapt to the needs and level of students:
- A beginner can start with block programming and observe the corresponding Python code in real time. Without realizing it, the presence of the textual programming alternative familiarizes him with it and encourages him to spot correspondences between languages.
- A more advanced student can test changes in Python and see their impact on the blocks, thus solidifying their understanding of programming concepts, as the presence of the blocks can act as reassuring feedback.
This flexibility allows for a smooth transition and reinforces understanding of the fundamentals of coding, without rushing the learner.
Discover our advice regarding The most child-friendly programming languages.
Develop transferable programming skills
Thanks to real-time visualization of Python blocks and code, students can gradually:
- Understand how a visual instruction is translated into textual syntax.
- Develop code structuring habits suitable for more advanced languages.
- Gain autonomy in writing their own scripts and projects.
Encourage experimentation and understanding of fundamental concepts
With a two-way approach, students are encouraged to test and modify their code without fear. This interactivity promotes:
- Trial and error learning, which is an essential method for problem solving (Wong, 2024).
- Better assimilation of programming structures such as the concepts of variables, conditionals and functions in Python (Branthome, 2023, p. 140).
- A more motivating increase in skills, where the student feels like an actor in their learning (Blanchard, 2017).
In short, bi-directional programming is not just a tool: it is a real gateway to a better mastery of programming. It offers a reassuring framework for beginners while allowing more experienced users to explore advanced concepts with ease.
Vittascience's hybrid interface: an educational innovation
Key features and tool demonstration
The Vittascience platform offers a unique interface for programming in blocks and Python simultaneously. Its essential features include:
Instant update between the two modes for a better understanding of the correspondences.
Interactive editor facilitating the transition from visual to text by highlighting equivalences.
Adaptability to various educational projects, whether it is robotics, electronics or artificial intelligence.
An approach adapted to different learning profiles
The bi-directional interface offers the opportunity for easy learning continuity and adapts to the students' desires. Some prefer to start in block mode, while others naturally evolve towards writing in Python. This flexibility allows for effective educational support and helps students gain confidence in their learning.
How to integrate this tool into a progressive learning path?
To fully exploit the hybrid interface in an educational setting, here is a step-by-step approach:
- Discover coding via block mode to assimilate the basics.
- Simultaneously display the Python code to observe the correspondences with the blocks.
- Experimenting in Python, with the ability to revert to blocks if you encounter difficulties.
- Gradual transition to independent text coding, accompanied by practical exercises.
This progressive approach ensures a smooth transition to text-based programming while maintaining a reassuring framework for students.
Towards more fluid and interactive learning
A more progressive approach than traditional methods
Traditional methods of learning to code often impose an abrupt transition between block programming and text-based code, which can be a hindrance to many students. Vittascience's bi-directional interface, on the contrary, allows for smooth progression, adapted to each student's pace. It encourages experimentation and discovery, offering more intuitive and personalized learning.
A positive impact on motivation and commitment
Motivation plays a key role in mastering programming. By allowing students to freely switch between blocks and code, without fear of syntax errors, the interface reduces frustration and encourages exploration. Each change provides immediate feedback, reinforcing engagement and understanding of concepts.
“Block-based systems allow lexical and syntactic errors to be completely avoided. Indeed, the assembly of predefined blocks ensures lexical correction and the maintenance of the grammar of the language.” (Branthome, 2023, p. 141)
How to use bi-directional programming correctly
For optimal use in the classroom, teachers can gradually guide students towards text mode by showing them the correspondences between blocks and code. On the student side, the interactivity of the tool allows them to experiment with different approaches and refine their understanding of algorithmic logic. Finally, the educational resources and tutorials available offer ways to deepen and structure learning.
Test our hybrid interface and transform the way you teach code!
The Vittascience platform offers teachers and students a powerful tool to learn programming in a fun and effective way. Discover the bi-directional interface now and enjoy a unique approach to teaching code in the classroom.

👉 Try for free the hybrid interface, compatible with many programming cards, a wide choice of educational robots and programming languages.
References
Alrubaye, H., Ludi, S., & Mkaouer, MW (2019). Comparison of block-based and hybrid-based environments in transferring programming skills to text-based environments (arXiv:1906.03060). arXiv. https://doi.org/10.48550/arXiv.1906.03060
Blanchard, J. (2017). Hybrid Environments: A Bridge from Blocks to Text. Proceedings of the 2017 ACM Conference on International Computing Education Research, 295‑296. https://doi.org/10.1145/3105726.3105743
Branthôme, M. (2021). Learning computer programming at the middle school-high school transition. STICEF (Information and Communication Sciences and Technologies for Education and Training), 28(3), 1‑35.
Branthôme, M. (2023). Learning computer programming: analyses and resources to support the transition from middle school to high school. Education. University of Western Brittany – Brest.
Espinal, A., Vieira, C., & Guerrero-Bequis, V. (2023). Student ability and difficulties with transfer from a block-based programming language into other programming languages: A case study in Colombia. Computer Science Education, 33(4), 567‑599. https://doi.org/10.1080/08993408.2022.2079867
Kelleher, C., Pausch, R., & Kiesler, S. (2007). Storytelling Alice motivates middle school girls to learn computer programming. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 1455‑1464. https://doi.org/10.1145/1240624.1240844
Malan, D.J., & Leitner, H.H. (2007). Scratch for budding computer scientists. ACM SIGCSE Bulletin, 39(1), 223‑227. https://doi.org/10.1145/1227504.1227388
Moors, L., Luxton-Reilly, A., & Denny, P. (2018). Transitioning from Block-Based to Text-Based Programming Languages (p. 64). https://doi.org/10.1109/LaTICE.2018.000-5
Thorgeirsson, S., Weidmann, TB, Weidmann, K.-H., & Su, Z. (2024). Comparing Cognitive Load Among Undergraduate Students Programming in Python and the Visual Language Algot. Proceedings of the 55th ACM Technical Symposium on Computer Science Education V. 1, 1328‑1334. https://doi.org/10.1145/3626252.3630808
Weintrop, D., Bain, C., Wilensky, U., & Education, US (2017). Blocking progress? Transitioning from block-based to text-based programming. Proc. Amer. Educ. Res. Assoc., 1‑8.
Weintrop, D., & Wilensky, U. (2018). Comparing Block-Based and Text-Based Programming in High School Computer Science Classrooms. ACM Transactions on Computing Education, 18(1), 1‑25. https://doi.org/10.1145/3089799
Wong, G. K. W. (2024). Amplifying children's computational problem-solving skills: A hybrid-based design for programming education. Education and Information Technologies, 29(2), 1761‑1793. https://doi.org/10.1007/s10639-023-11880-9