Berkeley AI Materials
ai.berkeley.edu
ai.berkeley.edu
There was one CSP project that was particularly gnarly, but really fun! Still, the difficulty is relative and the revamped projects aren't anywhere near the difficulty level of other classes.
Give 'em a shot!
https://www.edx.org/course/artificial-intelligence-uc-berkel...
Yes, 2.7 is still widely used in the industry. As are some other languages. But this is new code (well I'm thinking it's newer than 2008, or at least they've had ample time to update it before releasing it now in 2016).
So why not use 3.x? Aren't students better served by learning modern language features, and not being left behind at the previous, outmoded version?
Python 2.7 is also better for learning with the simple print syntax. Hopefully Guido and Co can figure out a way to support a print statement in their Py3k playground environment.
For the simple case, I don't consider "print(foo)" more complex than "print foo"; if anything, it avoids introducing additional syntax, and instead just provides another built-in function. And in more complex cases, such as printing to a file object, the syntax seems far more straightforward: "print(foo, file=f)" versus "print >>f, foo". Beyond that, the print function can do some things the print statement simply can't, such as print without a trailing space or newline.
"Python 2.x is legacy, Python 3.x is the present and future of the language"
So you have it backwards there, captain.
print versus print() is a red herring if there ever was one.
[1]: Website for 61A: http://cs61a.org/
[2]: Materials associated with 61A: http://composingprograms.com/
Ironically, I think this leads to knowing the languages that are incidentally used better than if you focused on the language itself (Python, Java, Scheme, C, Assembly predominantly)
Finally, not as much time is spent on that because it is much more valuable to students to see improvements in instructional material semester after semester, and changing from Python 2.X to 3.X really doesn't contribute much to learning the AI material
Similarly, you can learn computer science adequately using slightly older languages. I'd prefer my faculty members to spend time on preparing for lectures and holding office hours rather than revamping assignments to use new languages with minimal benefit.
But a lot of older software companies (e.g., Google) have been using Python 2 for a long time, and the switch to Python 3 might not make sense in these cases. So it is still common. Newer companies using Python 3 out of the gate will eventually become more common, making it the future of Python. Eventually Berkeley will switch.