Live data from Hacker News

Why did we ever think a student's first programming language didn't matter?

m-cacm.acm.org

11–20 of 286 posts

Re: Why did we ever think a student's first programming language didn't matter?

#11

Interesting, as someone who loves math learning programming as an extension of math made a lot of sense. It also explains why other people I know struggled to learning to program in the same setting, but later we’re able to thrive given a different curriculum.

This applies beyond introductory programming. We faced this in our university's Machine Learning course. The same course was taught both to students from the engineering school, which requires a certain number of math courses (Linear Algebra, Calculus, etc.), and in the general college, which had much fewer requirements.

The professor was forced to stay surface-level on the math, so the coursework was a task of glueing together code from scikit-learn. Unfortunately, the exams were much easier if you had the mathematical intuition.

Re: Why did we ever think a student's first programming language didn't matter?

#13
post #10

Georgia Tech around the year 2000 required most new students to take CS 1301/1311/whatever number course. It was, at one point, taught with a Pascal-derived pseudocode (incredibly unpopular, though I liked it quite a bit). Then they switched to Scheme (using SICP?) which was a fantastic catastrophe, major cheating scandal the first year. The TAs were not prepared (most had not taken it themselves and many/most were o…

This feels like a narrative in need of hard evidence. I was there at what I assume was the tail end of this in 1997. My gut was cheating was no worse then it had been, but they had automated systems for the first time. Some of it was so silly that I was accused of cheating in the C course for using and citing the hashtable implementation from the assigned textbook. On just talking to the graders and professor, they d…

The cheating came out in the Scheme class, specifically. It was something like 150 students caught. It was not a general cheating scandal in the first CS course over the years. My comment was very clear about this, I did not imply cheating was a problem elsewhere (may have been, I wasn't aware of any issues though).

It wasn't really overblown, it was a problem with that course. The instructors and TAs were grossly unprepared to teach hundreds of freshman a semester in a language they (the instructors and TAs) weren't familiar with that was fundamentally harder (especially for an arbitrary student rather than those actually interested in the topic) than what was done before.

The rest of my comment was about appropriateness of the first course to the students and their objectives. MATLAB being a much better first language for the engineering majors than the general CS requirement provided.

Re: Why did we ever think a student's first programming language didn't matter?

#14
post #10

Earlier quoted context omitted.

This feels like a narrative in need of hard evidence. I was there at what I assume was the tail end of this in 1997. My gut was cheating was no worse then it had been, but they had automated systems for the first time. Some of it was so silly that I was accused of cheating in the C course for using and citing the hashtable implementation from the assigned textbook. On just talking to the graders and professor, they d…

The cheating came out in the Scheme class, specifically. It was something like 150 students caught. It was not a general cheating scandal in the first CS course over the years. My comment was very clear about this, I did not imply cheating was a problem elsewhere (may have been, I wasn't aware of any issues though). It wasn't really overblown, it was a problem with that course. The instructors and TAs were grossly un…

My point was that a lot of that was the definition of cheating. It got so bad that just working together in electrical engineering would get you threatened with cheating.

So, yes. They had evidence of massive cheating on a level they had never seen. They also had evidence of near incompetence in teaching at a rate never seen before. Not shockingly, they focused on the cheating.

My assertion is that the behavior in the cs students was no different from any other students. They just had more mechanical grading schemes and were less prepared to teach such a variety of students.

Edit: and apologies for skipping the Matlab assertion. As an EE at the time, that was my intro. I don't recall it being particularly good. Or bad. It just was. They shifted to java soon for many folks. As someone that was a TA for the Java classes. Then the VHDL classes. Then the C classes. I can't really see any benefit of any one over the others.

Re: Why did we ever think a student's first programming language didn't matter?

#15
My first not-quite-languages were Logo and then a smattering of autolisp (I didn't learn near enough to know much to do with it). First real programming that followed was Fortran, eventually on a Cray with threading extensions. And then a fork in the road leading to both C and Smalltalk-80 in parallel.

I don't feel like this specific heritage affected how I learned programming. But then, I was mostly self taught with a generous amount of solicited input from older engineers and contractors I worked with/around (looking back, I'm a bit self conscious and just how annoying young me probably was--I did try to load balance at least). So maybe this article doesn't resonate much with me because it comes from the realm of common computer science pedagogy.

In fact, my first "college programming classes" were a year or so later, two classes in C that all mechanical engineering students at BYU had to take. I was able to wow my peers by making a faster sieve of erastones than others. And then for the "chose your own project", I used Smalltalk 80 to model quantities with units and a symbolic algebraic equation modeler/evaluator including a graphic visuallier that could plot arbitrary equations like PV = nRT -- the TA marked off points because my code didn't include enough comments even though the next closest program was a Fortran piece that prompted for a few values and it then spit out the correctly interpolated u, h, or s values from the steam tables. Needless to say, my impression of computer science pedagogy in the early to mid 90s wasn't that great. My take away was not so much what language was first, but who I learned from first.

Re: Why did we ever think a student's first programming language didn't matter?

#16
If a student has trouble transferring their knowledge of programming fundamentals from one language to another, it seems far more likely they didn't really understand them to begin with, which is a failure of teaching and testing, not some sort of 'limitation' in the student.

Re: Why did we ever think a student's first programming language didn't matter?

#17
I learned qbasic, graphing calculator basic, and visual basic more or less on my own. I learned C++ in a mediocre way from the AP course in high school. In university, C++ was the most common language outside of low level architecture courses. I picked up python pretty quickly to make rapid progress on student projects. I pretty much use some combination of C, C++ and python for everything.

I had to use java for a robotics course, and it wasn't too hard to pick up the differences.

I'm going to have to pick up rust in the next few months for work. Reading through the reference manual, it's going to be a bit painful to rewire my brain. So far none of the concepts seem alien, though, just a bit weird.

Re: Why did we ever think a student's first programming language didn't matter?

#18

If a student has trouble transferring their knowledge of programming fundamentals from one language to another, it seems far more likely they didn't really understand them to begin with, which is a failure of teaching and testing, not some sort of 'limitation' in the student.

> If a student has trouble transferring their knowledge of programming fundamentals

“Programming fundamentals” isn’t the same from language to language. It’s inconceivable that a student who learned to program with python would develop the same type of fundamental understanding as a student who used C (to develop an understanding of memory-level APIs) or Haskell (to develop an understanding of type and semantic theories).

> which is a failure of teaching and testing, not some sort of 'limitation' in the student.

This is a bold claim. I don’t think everyone can understand computer science.

Post reply on HN