http://www.raspberrypi.org/learning/getting-started-with-minecraft-pi/
http://www.raspberrypi-spy.co.uk/2014/06/building-a-castle-in-minecraft-with-python/ Francois El Mar 22, 2015, a las 10:23 PM, "David Handy" <da...@handysoftware.com> escribió: > This evening I had an interesting conversation with a very determined 10-year > old boy who wants to learn programming in Java and nothing but Java. I told > him that I recommend Python as a first programing language, because learning > Python is easier. But he was adamant. It's Java or nothing. Why? Minecraft is > implemented in Java. That made Java the ultimate in coolness to him. No > "risk-averse bureaucratic" thinking there, just a willingness to do hard > things to get what he wanted. > > So I told him, go for it, more power to you, and offered my assistance. What > else could I do? :) In the face of determination like that, it's lead, > follow, or get out of the way... > > David H > > On Saturday, March 14, 2015 5:27pm, "Mark Engelberg" > <mark.engelb...@gmail.com> said: > > On Fri, Mar 13, 2015 at 7:33 AM, David MacQuigg <macqu...@ece.arizona.edu> > wrote: > The first thing that got my attention was the banner text "Choosing Python is > the modern equivalent of the old adage 'nobody ever got fired for choosing > IBM'". If I were an unimaginative, risk-averse bureaucrat, just wanting to > run with the herd, the choice would be Java, not Python. The only > clarification I can find is in the conclusion of the article where we learn > that Python is "blandly conventional", just the latest crest in the "waves of > fashion" (Pascal, C++, Java, Python, Scratch). Odd that Ruby is not > mentioned anywhere. > Remember, this article is specifically about language choices for programming > education. I agree that Java is still the default choice for a risk-averse > bureaucrat in industry, but in education, Python has become the most popular, > default choice (that's sort of the whole point of the article). In industry, > many managers don't feel the need to look beyond Java to find more compelling > options (even those that might boost productivity); similarly, at this point, > many educators don't feel the need to look beyond Python to see if there are > more compelling options (even those that might provide a better educational > experience). > That's what I think the author's point is about Python being "blandly > conventional". There's no reason to think that Python is the pinnacle of > educational languages. It wasn't designed to be an educational language, so > it should be possible to do better. But it happens to be a pretty good > choice for education, good enough that many people have stopped looking for > better. > Ruby isn't mentioned because it never made significant waves in the > educational community. Remember, the article is just about educational > language choices, not fashionable languages in general. > > > The bulk of the article is discussion of Python's "weaknesses": > 1) Creating non-trivial data structures is onerous. > 2) Limited support for testing. > 3) Lack of static types. > 4) Difficult transition to other languages because the syntax is quite > different. > Show me some real-world examples of a data structure or test setup I can't do > better in Python. Python's doctest is an excellent methodology for teaching > Test-Driven Design, or even just teaching basic Python (see pykata.org). > I think the best way to understand these criticisms is to take a look at the > language Pyret (pyret.org), a language that is being developed by Shriram > Krishnamurthi (one of the educators quoted in the article) as an answer to > the problems he sees with Python as an educational language. > > In Python you have a couple options to build structured data. You can use > the object system, but that's a little heavyweight and clunky for beginners. > You can just use dictionaries with the relevant entries, but beginners often > don't have the discipline to mentally keep track of many different types of > objects that are all dictionaries with different combinations of entries. > This gets especially problematic when you get to recursive data structures > like binary trees. It's pretty tough to teach this well in Python with > dictionaries, so teaching this usually gets delayed until the object system > has been taught, and then all your functionality that operates on the trees > are generally written as methods split between the branch and leaf classes. > This is tough for students because the code for a given function isn't all in > one place, it is spread out among the two different types of classes. > Contrast this with Pyret's approach to structured data and recursive data > structures. > As far as testing goes, Python's biggest limitation is that structured data > created with dictionaries or objects are mutable data structures. It is > fundamentally more difficult to test mutable data structures because you > can't use a built-in notion of structural equality. So all tests must be in > the form of setting up an object, calling functions/methods which mutate it, > and then testing various properties of the mutated object. This is onerous > for beginners, and very hard to get them to do this with any kind of > discipline. Testing is radically more simple in languages that offer a rich > set of immutable data structures and an easy way to create new immutable data > structures that automatically come with a structural equality comparison. So > it's easier to teach a "tests first" approach by starting with immutable data > structures and moving to mutable data structures after students are more > mature in their programming experiences. Doctests are great for regression > testing, e.g., copying and pasting an interactive transcript into the actual > code, but are not very easy for students to write the tests ahead of writing > their code, especially for complex data structures or testing that certain > errors are raised -- it is hard to figure out ahead of time how that kind of > stuff is going to print. > > I understand the complaint about data types, but I would not give up the > advantages of dynamic typing for the few projects where I really need the > efficiency of static types. Write first in Python, then insert some C code > where testing shows that it is actually needed. > I vastly prefer dynamic typing over static typing in my own code. But this > is about education. We have a responsibility to teach students both, so a > language that lets you gradually transition from dynamic typing to static > typing is preferable (in education) to one that doesn't. > This isn't about bashing Python; we all recognize that Python is one of the > more compelling alternatives right now in programming education. But let's > not settle for "good enough". There's value to diagnosing the weaknesses of > Python so we can continue to build and look for even better options. > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > https://mail.python.org/mailman/listinfo/edu-sig
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig