There is a strong movement asserting the importance of quality education all over the world and for students of all ages. Many educators believe that in order to achieve this 21st century skills must be taught and that digital literacy should be coupled with rigorous Computer Science principles and computational thinking. Accordingly this work will describe a didactic experience in an introductory programming course by describing the context, pedagogical approach, content of the course based on a procedure-first approach, technologies used, research questions addressed, experimental design adopted, data collection and analysis and the main conclusion supported by qualitative and quantitative data. The research questions focus on understanding which is the best medium to design algorithms by comparing flow chart and the Scratch programming language and by evaluating whether using textual language is worth the effort of the syntactic burden imposed by these languages. An analysis of quantitative and qualitative data revealed that both a visual programming and a flow-chart approach are suitable for algorithm design with no statistical difference in terms of number of errors and time taken to write the corresponding code in a textual language. However, the high number of errors suggest that using visual programming allows the student to focus on the problem solving activities.