In this talk I’m going to present our experiences with two systems for teaching to program: UNCDuino designed for initial and elementary school, and Mumuki designed for beginners at university level. UNCDuino is an open source educational software we developed for teaching to program a robotic kit in C++ and Python. Besides of these two industry programming languages, UNCDuino can be programmed using 2 high level languages based on blocks. One of them is completely iconic allowing for its use with preliterate children. Mumuki is another open source platform, which is publicly available on the Internet and provides formative feedback and assessment over more than a thousand exercises in 7 programming languages. Mumuki uses compilers, test cases and static code analysis over abstract syntax trees in order to generate formative feedback. It logs the interaction with the students allowing also for educational data mining.