Bridging the gap from theory to real-world, hands-on experience is an always present challenge in Education. The advent of computers allowed for simulation, a halfway step from theory into practice. In Telecommunications Engineering, Software Defined Radio allows students to design and test wireless equipment in real communication by means of a personal computer connected to a simple, low cost, generic radiofrequency device. The paradigm has changed the approach to wireless equipment and communications protocols design across industry and academia. In Education, it has succeeded in providing students with an experience very similar, if not equal, to what they will face in their professional lives. This approach resulted in a deeper understanding and better ability development than was possible through simulation, since several communication problems (such as those related to radiofrequency propagation) are very difficult to model realistically. Moreover, this approach has proved to be strongly motivating for students, who design systems through a graphical interface by interconnecting blocks with specific functionality, but can later experience the results in real communications. This article describes our teaching experience and lessons learned with Software Defined Radio for Engineering Education. We used GNU Radio, an open and free software framework, complemented with GNU Wireless Network, an extension of our design to support data communications. The paradigm involved both graduate and undergraduate courses in Wireless Communication with strong lab content, undergraduate projects, early research training, and several master thesis.