Subject: [acse_discussion:771] Reluctant review of a Python learning website
http://cscircles.cemc.uwaterloo.ca/
The University of Waterloo provides the above web site to learn Python 3. I was introduced to this site at an ACSE workshop in the fall of 2011 at UofT. The site provides a comprehensive set of lessons on learning the different commands and structures in Python.
"Well, so what?" you might respond. "Don't most on-line learning sites provide a comprehensive set of lessons?""
I would respond to this line of scepticism by relating my experience in using this site. I started using the site over that past Christmas vacation and I found the tutorials to be thoroughly entertaining; the tutorials were much more like entertainment than school work. I found myself starting various vacation days looking forward to working on Python tutorials instead of relaxing with crossword puzzles, soduku, kenken or the Globe business section. Typically, I would take my morning coffee to the computer and log on the Python site and pick up where I left off. I found it to be continually engaging, challenging and rewarding.
Python commands and concepts are covered within a "somewhat" usual progression through general computer programming concepts. The process has a convention of turning the screen green when a problem is solved correctly. This evoked the same level of satisfaction as when a crossword puzzle is completely solved. Some lessons included code scrambles where correctly written lines of code had to be re-arranged into a correct sequence by dragging the lines with a mouse. You knew that there were no syntax errors nor missing commands; you just had to use pure logic or puzzle solving to determine the correct order of the lines of code.
In addition to leading one through Python, I believe that another major facet that this site provides to students is the practice in the art and skill of a general approach to problem solving; breaking down complicated problems into manageable portions. To me this is one of the major benefits of these tutorials.
There is consistent exposure to the structure of functions and arguments. The object oriented paradigm is not part of the initial introduction to Python and some might dislike the lack of exposure. I am not sufficiently experienced to comment on this.
I have used this site with a ICS3U computer class as exposure to a second programming language. I would suggest that a teacher without any exposure to Python could assign this set of tutorials to some students and expect them to be successful without any input from the teacher. However, if desired, teachers are able to track the progress of students if students create a link to a mentor/teacher at the tutorial site.
Why a title referencing a "reluctant" review? Obviously, I really appreciate what this site provides and the only reason that I am hesitant to share a glowing review is that this site is so effective that if more and more people found out how well it works, the popularity would readily increase. This might cause computer response times to slow and I would be not be able to send my students to the tutorials. The only reason I decided to share the the above site address is out of a sense of duty to other ACSE members and I do not want to feel guilty about keeping a good idea to myself.
Hope you are having a good summer.
Francis Corrigan