tag:blogger.com,1999:blog-1685560256628587439.post3489731807294953607..comments2023-07-10T07:12:16.641-04:00Comments on The Female Perspective of Computer Science: Things I Like About PythonGail Carmichaelhttp://www.blogger.com/profile/14173555781667297996noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-1685560256628587439.post-71777255149563814332012-11-24T10:25:27.976-05:002012-11-24T10:25:27.976-05:00That sounds really interesting, Doug! I will defin...That sounds really interesting, Doug! I will definitely check out the project's website.Gail Carmichaelhttps://www.blogger.com/profile/14173555781667297996noreply@blogger.comtag:blogger.com,1999:blog-1685560256628587439.post-37944430743701063162012-11-24T09:09:02.895-05:002012-11-24T09:09:02.895-05:00I absolutely agree with your overall feelings abou...I absolutely agree with your overall feelings about Python and Processing. But we need not be happy with picking one or the other: how can we combine the best from both to create an even better environment? We have been working on a system which allows a mixing of contexts (art, robots, graphics, etc) with different languages (Python, Scratch-like, Scheme, etc). <br /><br />For example, we have a Processing library which can be used in Python, and the same library can be used in our Scratch-inspired language, Jigsaw (and others). We have to make certain sacrifices (not all Python programs can be used with ours, we have our own graphics system, etc) but we gain a lot of other properties (control over entire "stack", language interaction, stepper/debugger for all languages, etc).<br /><br />FYI, we are always looking for contributors for helping shape better environments for a more broad, diverse group of computationalists. For more info, see http://calicoproject.org/Doug Blankhttps://www.blogger.com/profile/17756588602580974678noreply@blogger.comtag:blogger.com,1999:blog-1685560256628587439.post-40768198389496891632012-11-22T13:21:03.789-05:002012-11-22T13:21:03.789-05:00That's all fair, Christian.
I still think it ...That's all fair, Christian.<br /><br />I still think it would be better to start with something more Scratch-like at first, but I think after that Python would be great. And I will definitely check out some of those links, because I was missing out on them! ;)<br /><br />As for the messy code, it's totally true that all languages could have the same issue. I did find it interesting that Python seemed to make me want to write less pretty code for some reason. I also worry about how readable examples and such would be that people would download (which isn't necessarily an issue for many teaching contexts).Gail Carmichaelhttps://www.blogger.com/profile/14173555781667297996noreply@blogger.comtag:blogger.com,1999:blog-1685560256628587439.post-40602410568365258362012-11-22T12:50:16.403-05:002012-11-22T12:50:16.403-05:00You're missing a huge aspect of the python eco...You're missing a huge aspect of the python ecosystem though. For example, if you want to start messing around with python and all of the cool math packages it comes with, try Sage:<br />- http://www.sagenb.org/<br /><br />If you want to provide a tutorial or teach people python, then IPython is an excellent way to do so:<br />- http://ipython.org/<br /><br />These projects let you write things in a very tutorial-like manner, and give you (and the students) the opportunity to actually change the code on the fly and re-run it to see what happens.<br /><br />As for sloppy code, any language will allow for that. And any language that lets you crank out a useful script / bit of text in minimal time will inevitably lead some people to producing ugly stuff (bash scripts, perl scripts, etc). That shouldn't ever be a negative on the language though, especially if the faculties exist to easily make your code look beautiful (and I think the doc strings go a long way towards that).Christian Muisehttps://www.blogger.com/profile/13252588709861854104noreply@blogger.comtag:blogger.com,1999:blog-1685560256628587439.post-55404600618989185372012-11-22T09:07:45.570-05:002012-11-22T09:07:45.570-05:00Thanks for sharing your experiences! Very interest...Thanks for sharing your experiences! Very interesting, and everything makes sense.<br /><br />I agree that having some time face-to-face to set things up would make a big difference. If I was doing a shorter workshop I don't think I'd want to spend that time, but during a full course it would be totally feasible.Gail Carmichaelhttps://www.blogger.com/profile/14173555781667297996noreply@blogger.comtag:blogger.com,1999:blog-1685560256628587439.post-16158549667618066632012-11-22T02:47:29.339-05:002012-11-22T02:47:29.339-05:00My highschool junior son and I are converts to Pyt...My highschool junior son and I are converts to Python (me after 30+ years of using C++). He is currently TAing a course that is being taught to elementary through high school kids who know no programming. They spent the first day of class setting up Python on a variety of different machines, mostly provided by the students. Only a couple of the Windows machines gave trouble, and that was resolved in the first class by the TAs. So I don't think that installation of Python is a significant barrier to use by beginners in a classroom setting (it may be in a MOOC, where no one can help the clueless or frustrated).<br /><br />Python is good for rapid prototyping, but rapid prototyping can lead to sloppy programming. I require students to program in Python in my graduate bioinformatics class, because they need to get fairly substantial programs done in a week. I do require them to use good docstrings and comment all their major variables—something that almost all of them struggle with. Only one student this year seems to have entered the class with the concept of proper internal documentation fully realized, which makes me want to send my son to the college where this student was trained.<br /><br />I think that Python is an excellent early language for students (after something like Scratch), and an excellent scripting and rapid prototyping language, but the lack of enforceable interface specs makes it somewhat unsuitable for projects by large teams or for maintenance over a long time.Anonymousnoreply@blogger.com