The following quote came from a current Yale BS/MS student in Computer Science (from Quora but CC rule doesn’t permit direct link):
I suspect this problem is not unique to Yale CS department. How common is it? Yale can’t be the only exception, can it? What other schools face the same problem? To what degree?
I haven’t seen this commonly at the bigger/more known programs. However, at my school, the school has also been on a CS hiring spree which is able to combat these problems. I think this may be because Yale is struggling to attract professors or not properly investing in the department. Despite Yale being an Ivy, their CS department is not nearly as well regarded as other programs. I think in order to have this problem, you need both a lack of resources and a lack of professors willing to be hired.
The small department size is likely the main factor. Larger departments are likely able to handle the increased popularity better. I suspect any LAC with a technical bend may also feel a similar pressure, as well as smaller research universities.
There is a thread about Haverford and this issue regarding CS professors seems also to be a problem there. They say that qualified candidates have better options in industry so challenging to find enough good people to teach and keep up with the demand
Lots of schools have this issue right now at a time when student demand for the courses is high. I’ve heard about it at schools not mentioned so far on this thread.
It’s common among colleges. The number of students wanting to major in CS has ballooned and trying to hire new faculty and retain existing faculty is very challenging.
Perhaps someone at Yale may be able to comment specifically on the claims.
The CS major there requires introductory and intermediate courses CPSC 201, 202, 223, 323, and (365 or 366). Students without prior computing experience take 112 before 201.
We certainly have all heard about enormous intro classes, difficulty of registration for certain popular classes, but I haven’t heard before that some colleges have lowered their standards and rigor to accommodate the larger classes. Yale is obviously not known for rigor in its CS department, but it’s supposedly expanding aggressively, and presumably, has the financial resource that many other colleges may not have. With the popularity of the major increasing at double digit rate (and even this rate of increase hasn’t plateaued), would more colleges have to resort to weeding out more students in the CS departments and perhaps make admission into their CS programs even more selective?
These phenomena, whether or not true at Yale, are not necessarily true elsewhere.
For example, the third one about the average student’s ability going down is not true at those schools where capacity limits are imposed on the CS major, so that only the strongest students (whether by higher standards for frosh/transfer admission, or having to meet a high grade/GPA standard in the introductory CS courses) are allowed into the CS major. Such capacity limits also prevent the upper level classes from getting too large for the faculty and TAs to handle (although they can be quite large in some cases). Under this scheme, there is no reason to make either lower level or upper level courses easier.
Pretty much every CS program will have bad teachers. I think CS is a difficult subject to teach via lecturing, and much of the reason is because the material can be incredibly dry. The way you learn CS is by programming rather than lecture.
You don’t need great computer scientists to teach intro to programming, but neither is it necessarily terrible to have a superstar computer scientist teaching it. You just want somebody who can teach. We had math professors teaching our introductory programming classes, and they were perfectly fine.
It’s been a long time since I went through my CS program, but I don’t remember professors typically grading assignments by reading code. Your grade was determined by whether you wrote a program that produced the correct answer. I would think things would be even more automated now. If we went over people’s code, it was usually at the request of a student. We’d go over it in class and publicly, so that everyone would see what was good and what wasn’t.
I can’t imagine the ability of students has gone down. How can a current student possibly know what students were like 30 years ago to be able to say it has?
Years ago Yale had one of the top CS programs in the country, and I would say it and CMU were the top two AI schools. Yale doesn’t get talked about as much now, but it’s still pretty good.
“I can’t imagine the ability of students has gone down. How can a current student possibly know what students were like 30 years ago to be able to say it has?”
I wonder if it is less native ability that has gone down and more prior exposure/experience. I get the sense that some of the droves heading into CS are largely doing it to chase the big paychecks. In the past, a lot of CS majors appeared to be the geeks (used affectionately ) who probably had dabbled quite a bit on their own throughout middle and high school so therefore came into the major understanding more.
More and more people are entering with prior exposure/experience than ever before in my experience watching the past 5 years come in. This is because of an increase in high school CS availability. So the people who are heading in for the money may be doing that in high school even, not the college level.
I don’t buy anything about student quality going down honestly. More people going in for money over interest, that I can see.
That’s actually a big problem with software development these days. CS curriculum that grade this way this do a disservice to it. Working code can often be hacky and unable to be modified in the future. Design is crucial to CS in application.
At many schools these days, half the grade is good design, not just if it works.
Given the huge sizes for some intro CS classes, I don’t know how a CS professor could legitimately look at and analyze so many computer programs. And I’m not sure teaching assistants have enough programming experience to be able to do that, either.
About a dozen years ago I was able to stream every lecture from the first two intro CS classes at Berkeley, taught by Dan Garcia. (CS 61 and 62?) It looked like there were about 200 students in each class. From what I could tell, even back then the way people got graded was they would submit their work and answers electronically to be graded by an auto-grader. That’s probably one of the reasons I’m so down on Berkeley’s undergraduate CS program.
That had crossed my mind, but I’d have to think that Yale’s CS program is still selective enough to only admit people who were very well prepared.
Perhaps the overall student ability has gone down because many who take the CS classes are non-CS majors, or weren’t originally admitted as CS majors. Large schools like Berkeley place capacity limits as @ucbalumnus stated above, but many do not. The scarcity of good CS professors could also be a real issue at many colleges as colleges expand their CS departments to meet demand. They are competing not only with one another but also with the industry for talents.
CS in college is broken. It’s one thing to teach theory and it’s another to apply it.
For the average student: 50% of the time is spent googling, 35% of the time spent figuring what the directions actually mean, 15% learning if even that.
CS is one of those things where you can try 30 things and still not have a solution. It takes time and mistakes to learn but the problem is that there is no time. Students are humans, yes, sad I know, humans…
They have other classes, family, loved ones etc. There is no way John Doe can attempt to understand the concept of recursion let alone learn functional programming if he has multiple other classes demanding time. Let’s not even talk about professors that assign on average 15-30 hour assignments. It’s simply not realistic unless you’re very prepared.
So what did we learn here? CS is being catered to prepared students the majority of the time. New CS students just struggle till they hit the point of no return and switch majors or end up a lackluster grad. The ability of the students probably didn’t drop, it’s more so that professors are forgetting their purpose. To teach and help students learn instead of just pushing the 100 millionths random fact down their student’s throat.
If the students need to learn how to code? teach them, stop talking about deep theory they won’t understand till they can actually code the stuff. But as we know it CS != programming
It is not nice to omit the original question and some phrases Yale student’s answered. Also his history of response in Quora shows his responses are always Yale as one of top 25 CS programs, comparing against top 5 programs. He probably does not want Yale to become a professional programming school. He probably wants Yale to be one of strong Computer theory schools.
Using this to show a problem in Yale CS or weakness of its program is a bit stretch. His comments are all relative within Area of CS is now so wide now. some schools focus on programming and networks and drop theory requirement may be a trend from IT industry.
Full quote (at least). You may find other responses on CS by this student in google site.
This is not meant to be criticism of Yale’s CS program at all. I just wonder how widespread this problem is. Programming is just a tiny part of a good CS program. One can be a good programmer without going to Yale, or any school. The purpose of a good CS program is to train students to be on the cutting edge in a variety of fields within CS, so a good theoretical foundation has to be a big part of that training.
This “The purpose of a good CS program is to train students to be on the cutting edge in a variety of fields within CS, so a good theoretical foundation has to be a big part of that training.” @1NJParent that is the message we are also getting too.