6 ms·
Berkeley AI Materials
- natch 11y agoThe surprising thing here is that Berkeley, which I considered to have a leading edge CS department, is still using a teaching code base with Python 2.7, when Python 3.0 came out in 2008. 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?
- daveguy 11y agoPython 2.7 is the current and future of Python. Google didn't even release their AI framework, tensorflow, in Python 3 initially (late 2015). All relevant features have been backported and library support is superior. There will be a compatible transition of features in a community+industry supported 2.8. Hopefully the original python crew can swallow their pride long enough to support it. 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.
- JoshTriplett 11y ago> Python 2.7 is also better for learning with the simple print syntax. 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.
- natch 11y agoFrom the Python Wiki at https://wiki.python.org/moin/Python2orPython3 https://wiki.python.org/moin/Python2orPython3 "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.
- eatkinson 11y agoFWIW Berkeley does use Python 3 in their intro to programming class [1,2]. This is useful because if I remember correctly, Python 2 does not have things like the "nonlocal" keyword or coroutines. [1]: Website for 61A: http://cs61a.org/ http://cs61a.org/ [2]: Materials associated with 61A: http://composingprograms.com/ http://composingprograms.com/
- entilzha 11y agoThats because CS at Berkeley is definitely not about what programming language/version you use. As a relatively recent graduate (december 2014), I can definitely say that the major teaches computer science, not programming with X, Y or Z language. 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
- aarongolliver 11y agoI was never satisfied with this rationalization. You can learn computer science while not being tied to old languages. My school uses the same logic to justify forcing Java 6 and c89. I view it as an excuse for professors to not stay current with technology, and justify lazy decisions.
- vinay427 11y ago>You can learn computer science while not being tied to old languages. 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.
- hn9780470248775 11y agoIt's the Department of Computer Science, not the Department of Programming.
- josephcooney 11y agoGood distinction. Reminds me of the quote "Computer science is no more about computers than astronomy is about telescopes."
- freyr 11y agoPython 2.7 is starting to lose ground and Python 3 is the future. 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.
- DanFeldman 11y agoI took this class (188) from Abbeel, who is now involved in advising OpenAI from YCR. It's an incredibly well structured class, on par with the intro course at Berkeley, 61a. For anyone who wants a relatively fun introduction to core AI concepts, try working through the projects (which will require learning most of the materials anyway). They're not coding intensive, just thinking intensive; Each question in a project probably takes ~5 lines to write!
- sbuccini 11y agoI took this class last semester with Russell, and they've changed up some of the projects since you've taken it. 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!
- adenadel 11y agoI thought the edX course for this material was pretty good as well https://www.edx.org/course/artificial-intelligence-uc-berkeleyx-cs188-1x https://www.edx.org/course/artificial-intelligence-uc-berkel...
- maroonblazer 11y agoAnyone know what the math prereqs are for this course? The intro video makes reference to an assessment that potential students can take, but I can't find it.