6 ms·
I think Python is the perfect first language for beginners. Yea we all know it's not fast or low level or the best language to teach about types or advanced CS
by Igglyboo 12y ago
I think Python is the perfect first language for beginners. Yea we all know it's not fast or low level or the best language to teach about types or advanced CS topics etc. But it is extremely readable and easy to understand, it makes coding fun and once the students are engaged and know the basics it is much easier to teach more advanced concepts like typing and memory allocation.
- Alupis 12y agoCouple of thoughts: 1) I hope they are teaching Python 3.x instead of 2.7.x. 2) A good portion of the schools cited in the Appendix are not "computer" schools. UC Davis for example, is the last place I would attend for a CS degree (I know many students at UC Davis -- it's much better suited for other degrees). 3) My school (CSU Sacramento) does not even offer any Python courses, but there's a lot of Java and C courses (depending on your major concentration).
- christopheraden 12y agoUC Davis student here. To be fair, ECS10 is not a class that CS majors usually take--it's primarily an elective, and taken by non-majors as a way of satisfying science and engineering general elective credit. The CS majors start with ECS30, which uses C; ECS10 isn't even a required class for the Computer Science programs. As for whether or not they are computer schools, that criterion was determined through USN&WR, as mentioned in the article, which is where your criticism of not being a computer school should lie. Davis is listed at #34 though, so there may be a sharp decline after the first 10, first 15, etc...
- Alupis 12y agoVery interesting (CSU Sacramento student here). Our CS Major's start with CSC10 (or is it 15?) which is C, then CSC20 which is Java, then CSC35 which is Assembler (GAS/Linux). From there, it depends on your focus, but a large amount of classes favor Java, and a few C/C++.
- maxerickson 12y agoWhy do you think the flavor of Python taught matters? I would say that compared to learning how to write and understand a small program, the difference between Python 2.x and Python 3.x is trivial. (I'm talking about learning the language; for a large Python 2.x code base, the transition to 3.x is likely to have unclear payoff.)
- Igglyboo 12y agoI think it's important teach what's relevant in the current day, every likes to parrot the "Python 3 has no support" line but it's simply not true[1]. The developers have said multiple times there will be no 2.8 and the 2.7 line will only receive security fixes. Python 3 is the future of Python and not teaching it to students would be a disservice to them. [1]: https://python3wos.appspot.com/ https://python3wos.appspot.com/
- maxerickson 12y agoSure. My point is that nearly everything you learn about writing a program in 2.x is relevant to writing a program in 3.x. You do have to keep track of whether print is a statement or a function or how literals map onto types, and some libraries are imported using different names and some APIs have changed a bit, but if you understand all that jargon, it's not that big a deal (I'll repeat my disclaimer here about transitioning a significant code base being a different thing than managing the differences).
- Alupis 12y agoWell, yes, sure... core programming concepts are the same regardless of language used and/or version. However, from my experience, most students don't venture off on their own until after becoming very familiar with a language. Not all students are experimental enough to hack on personal projects for fun or what-have-you. I've actually had a fellow student tell me the Java class file he emailed me for a project would only run on Java 6 since that's what the lab had installed -- obviously wrong. The point being -- students will intern what they are taught. They should be taught on modern versions/concepts so they intern modern ways of doing things. By teaching Python 2.x to students, you do them a disservice by teaching them the way Python "used to" do it... not how it "does it" now. As an aside -- with all of the major Python libraries now ported to 3.x -- I see little to no reason anyone should ever learn Python 2.x, or use it (with the exception of the obvious legacy codebase support issue).
- huu 12y agoFor reference, the ranking used by the author is from US News & World Report[1]. While it's far from objective, it certainly holds enough merit such that UC Davis being the last school you would attend for CS sounds ridiculous. [1]: http://grad-schools.usnews.rankingsandreviews.com/best-graduate-schools/top-science-schools/computer-science-rankings http://grad-schools.usnews.rankingsandreviews.com/best-gradu...
- Alupis 12y agoYou linked to Grad School rankings -- hardly what anyone would consider "beginner programming courses".
- argonaut 12y agoGrad school rankings are a proxy for the strength of the professors, grad students (who TA/grade classes), and the overall CS research strength.
- Alupis 12y agoBachelor level students do not conduct research... so it seems odd to rank schools for their Bachelor CS degree program based off of stats about their Graduate CS programs. (this thread is about beginner programming courses, ie. undergrad students). -- as a footnote, at least at my school, the graduate level professors are not the same ones teaching undergrad classes.
- krakensden 12y agoAt Davis even the famous professors like Rogaway and Matloff teach undergrad courses.
- argonaut 12y agoGrad school rankings tell you how strong the professors are. Both professors and lecturers teach courses. The strength of the department also tells you the quality of the lecturers it's able to hire.
- BuckRogers 12y ago"1) I hope they are teaching Python 3.x instead of 2.7.x." Not me. Are you a professional Python programmer for your day job? I don't think it matters what they're teaching as far as version. As an enduser programmer the difference really isn't that significant (not worth a breaking change in the language at least). But whether they learn 2 or 3, they'll be able to move to the other without any major issue. I would recommend anyone pick 2 over 3 at this point in time. Everything that says 'Python' supports 2 so there's just never any worries or concerns there.
- perrylaj 12y agoJust as a contrasting opinion and at risk of sounding defensive -- I'm a UCD Alum (BS in a different field) who took the lower div CSE track there. ECS10 (Intro to CS using Python) was my first formal CS class. Took it as a filler elective and was hooked. It was definitely geared toward first-time programmers and used Python to ease into fundamental CS/Programming concepts. I found it successful in that. Following that was ECS30 which is in C and the first major-track CS class. The difference in difficulty/workload substantial, mostly due to the introduction of things like pointers, dynamic memory allocation, etc. But the intro class helped a lot. From ECS30 on, it's primarily C/C++ for OOP/Software design, Data Structs, systems, algos, etc. I don't think Python is used much if at all in major track CS/CSE classes I can remember. I'm a little surprised at the dismissive tone toward UCD's CSE program relative to CSUS. I've audited classes at CSU in consideration of applying for a master's there, and while not outright disappointed, nor was I impressed. I got the feeling that the CSUS programs are not as geared toward fundamental research and "CS" to the same extent as UCD and are slightly more skewed toward developing employable skill sets. That's not a bad thing, just a different goal. I also disliked the general push toward MS stacks. Having peers at Cal that took I took summer sessions with at UCD, the feeling was that UCD was less challenging in the sense that there are smaller class sizes, better professor access (especially in classes taught by excellent lecturers like Sean Davis who devote lots of time to students), and less competitive nature of grade curving. I didn't hear anyone say it was easier, simply that it felt more collaborative. Though, that's not hard to imagine when they were in classes with nearly 1000k students split across two simulcast lecture halls in freshman CS classes at Cal. Being in the shadow of Cal and Stanford makes it harder for UCD to get noticed, ut it has world-class faculty, smaller class sizes and great options for research. I have friends/acquaintances that ended up at Goog, Twitter, MS, SpaceX... etc. Is it MIT, Stanford, CIT? Perhaps no. Is it more known for it's Bio Sciences? Sure. But it's far from the 'last place' I would matriculate into for CS. Just presenting (an admittedly verbose) alternative opinion.
- doyoulikeworms 12y agoUC Davis is an excellent, albeit not elite, university. CSU Sacramento would probably be the last place I would attend for a CS degree.
- theandrewbailey 12y agoPython was my first programming language 10 years ago. Right now, I'm using it to teach programming to an English major. He's using it to make text based games. That dating sim was sorta insulting.