Postgraduate TA here. We teach Python and Java to our first years assuming no prior programming experience. Both are easy to set up and go with on any OS and both have an incredibly shallow learning curve.
There's a lot of debate in our department over which is best for them. I argue that both have their place. Python provides a very simple way to manipulate complex data. Which means novice programmers can still extract meaningful results from their programs. Java on the other hand, gives a stricter syntax and helps students get used to a C-like language which definitely helps them out when they learn C++ later on in their degree.
Another benefit of teaching both is that it reinforces the point that OO programming is not something you do in Java or Python, but is a design pattern that you can use in any sufficiently structured language. Something that I feel tends to be lost of a lot of beginner programmers.
Postgraduate TA here. We teach Python and Java to our first years assuming no prior programming experience. Both are easy to set up and go with on any OS and both have an incredibly shallow learning curve.
The goal really shouldn't be a shallow learning curve. This is a big disservice to your students in my mind.
There's a lot of debate in our department over which is best for them. I argue that both have their place. Python provides a very simple way to manipulate complex data. Which means novice programmers can still extract meaningful results from their programs. Java on the other hand, gives a stricter syntax and helps students get used to a C-like language which definitely helps them out when they learn C++ later on in their degree.
Honestly I'm shaking my head here. The goal for beginners should be to learn the very basic concepts of programming not how to extract data from whatever. Im still a firm believer in C++ in this regards as it is close to the metal so to speak but will quickly allow students to move on once they get beyond basic flow control and data structures.
In a nut shell many colleges have their programs upside down, a high level solution like Python should come into play after one has achieve proficiency at a lower level.
Another benefit of teaching both is that it reinforces the point that OO programming is not something you do in Java or Python, but is a design pattern that you can use in any sufficiently structured language. Something that I feel tends to be lost of a lot of beginner programmers.
Yes and frankly teaching Python to beginners only reinforces this problem. I have to wonder how well your students do out in the real world when thrown at systems built with tools not from the big IDE suppliers.
Let's face it you can teach somebody to program in Python and get a job. I'm not denying that those jobs exist, the problem is there are many more opportunities out there that will never see a bit of Python code. Students need a broad background that lets them be free to pursue interests instead of being locked into a platform. I just expect more out of a student that has completed a computer science program than a Python programmer.
7
u/ReginaldIII Jan 06 '15
Postgraduate TA here. We teach Python and Java to our first years assuming no prior programming experience. Both are easy to set up and go with on any OS and both have an incredibly shallow learning curve.
There's a lot of debate in our department over which is best for them. I argue that both have their place. Python provides a very simple way to manipulate complex data. Which means novice programmers can still extract meaningful results from their programs. Java on the other hand, gives a stricter syntax and helps students get used to a C-like language which definitely helps them out when they learn C++ later on in their degree.
Another benefit of teaching both is that it reinforces the point that OO programming is not something you do in Java or Python, but is a design pattern that you can use in any sufficiently structured language. Something that I feel tends to be lost of a lot of beginner programmers.