Wednesday, April 21, 2010

National Trends in Grade Inflation

This is somewhat definitely related to my previous post:

National Trends in Grade Inflation, American Colleges and Universities

This is an excellent, honest presentation of very disturbing data related to the value of our degrees at American Colleges and Universities.

The following quote has struck me at the moment:

"Students are paying more for a product every year, and increasingly they want and get the reward of a good grade for their purchase."

I see. So, students are increasingly expecting that if they pay exorbitant tuition rates (mostly at private institutions), then they should receive better grades. But, it's not just private institutions. They just seem to be showing slightly more egregious trends with inflated grades. (See the individual school data for Yale, Harvard, Duke, etc.) It seems that they are neglecting the most important variable in the middle -- what was learned by the student that resulted in the grade earned? Or, is that "earned" concept becoming more lost?

I find it extremely alarming that we have the very best private schools admitting that students today are graduating with an overall GPA that is nearly a full point higher than their predecessors graduating 45 years ago. Some of the better schools are admitting that overall average GPAs are now almost an astounding 3.5. (I can't believe how smart our students have become!) Those averages were around 3.0 when I graduated. Where do they expect to go from here? Do we need to bump the upper end to 5.0? NO! Are students actually that much smarter today than they were back then? Hardly! Is this an artifact of the increased pressure behind the "no child left behind" mentality carried into hiigher ed? Is this partly because colleges are continuing to become more business-minded and less academic-focused? Such mandates lead adminstrations to issue mandates to do whatever it takes to keep those students enrolled.  (We need that money, right?) Did anyone consider that perhaps it is not every high school graduate's path in life to go to college? How do we provide opportunities for the true future scholars and researchers to shine and stand out if more and more students are able to achieve a 4.0 GPA?

If students were so much smarter now, then at least in computer science, American universities would be placing substantially better in ACM international programming competitions. (I'm sure I can come up with more metrics of computer science program performance in higher ed.)

Read my previous post from earlier for more of my venting on this. We need to work hard and fast to put value back into our degrees. Only then will we continue to build our credentials back into our programs and increase worldwide interest in our institutions. Industry recruiters will respect our programs again, knowing that students with degrees are indeed worthy of hire. Then, you will see enrollments increase because colleges will once again become the place they used to be.

The direction of higher ed? Depressing.

Read: News: Who Really Failed? - Inside Higher Ed

This is a very disturbing article. Unfortunately, it reflects a growing trend in higher education - to make sure we pass as many students as we possibly can. At what sacrifice?

Let's examine this a bit. How did we get here? Here is my opinion. The majority of colleges and universities nationwide have experienced (and are still experiencing) substantial financial challenges. The administrators need to come up with solutions. Thus, mandates are issued.

We are instructed of the importance of keeping our enrollments up (or, as suggested around here, our student Full Time Equivalency (FTE) numbers).  Many campuses nationwide believe that the solution is to increase new student enrollment numbers.  But, what if your predicted new applications are expected to remain flat, or even decline? You need to lower the cutoff and accept more students. Thus, you have more students attending that are not ready to meet the standard in place for doing well in college.

We are also instructed to keep our already-enrolled students coming back next semester. When students earn a failing grade (i.e., they fail themselves, as defined by your grading standard that you publish in advance in your syllabus for the course), it does not bode well for their return next semester. So, ultimately, there is pressure created on faculty to pass more students. If you are not passing them, then situations similar to what is happening at Louisana State happen more frequently.


This reflects the state of many campuses across the country. We are told that we need to keep our numbers up. Therefore, we allow more students into the university, and are told that we need to keep these students here as long as possible. This creates pressure on faculty to work harder for students to pass. I have observed that the pressure can be extreme for some, and results in faculty "dumbing down" their material and their grading standards.


If you read through the entire article, it reflects a bit of the student view of higher ed, and reflects what I have found. In most cases, you are going to have students that are not happy. I remind myself that I am not here to make them happy -- I am here to teach! First, I teach them that they earned the failing grade. I did not give it to them. They were fully aware of what was required of them right from the very first class. (e.g., learning how to solve complex problems with a computer is hard work!) They chose not to do the work required of them. They chose not to see me during my office hours. They chose to party and drink more alcoholic beverages on weekends. There are rare, extenuating circumstances, of course. Sometimes, students wake up early enough to recover. They may do poorly, but they will still appreciate everything that they have learned through the process. Many get a serious wake-up call after the first exam and first few assignments. I can not tell you how often I have heard, "Oh, man... like, dude, like, you mean I gotta WORK? Like.... study? Gosh. Like, I never had to do that before." (You may need to insert a few more "likes" in that response. Each case varies.)

How do I respond? It depends on how I am feeling that day. Quite often, a simple "yes" suffices. Occasionally, I will try to muster up enough courage to dig into their brain (which can sometimes result in massive regret on my part) to figure out what their expectations where when they entered college.

I recall that when I was in college, I worked. I worked hard. At times, I worked very hard. This was certainly true of my Ph.D. Even as an undergrad (late 80's - early 90's), I remember times when many of us computer science majors would get together in study groups to work at solving more difficult problems. Some problems were directly related to topics discussed in class, some were problems from assignments given, and some were simply problems we were interested in understanding better. I do not understand why I fail to see that foresight and proactive nature in students today. Many would rather settle with quick satisfaction and escape reality through their PS3, their XBox 360, or other related avenue of avoidance and self-indulgence. The least I can do is direct them early on, even scare a few of them so that they start off with the right amount of respect for the material being taught.

Hopefully, fewer earn a failing grade.

How do I resist that temptation to adjust my material to allow all students to pass? As we are told, we must keep those enrollments up! I want to see students pass, but not by sacrificing my standards. That completely devalues all degrees here!

As an aside, but related note, if this trend has been in place for the past 10 years here in this country, it is no wonder that we have no U.S. schools placing well in the international programming competitions anymore. (Check out http://cm.baylor.edu/ICPCFinalResults2010 if you do not believe me.) What are international schools doing right that even our best schools here in the U.S. are missing? (Of course, this might get into grade school discussions.) As stated by one of the comments in the article, have we honestly carried the "no child left behind" mentality too far?

With that said, I do believe that if everyone is failing a class, then there is something wrong with what I am doing. Fortunately, I have yet to experience that. I have had to be flexible with the material I cover in some of my advanced classes. Sometimes, difficult material needs to be covered a little more thoroughly than I expect. Though even then, I usually find out that students just procrastinate and choose not to start on assignments early. So, I have slowed down at times, which has often prevented me from getting through the material I wanted to cover. Hmmm.... I do not remember my professors during my undergrad years being that way. I remember many of them cruising through the material. If we didn't get it when it was taught, it was up to us to get the help we needed to catch up.

OK, those are enough sobering thoughts for now.

Wednesday, April 07, 2010

TIOBE Programming Community Index

I've conversed with numerous colleagues and read papers about how to introduce programming and computer science to new CS students. We all tend to largely agree on pedagogic techniques and fundamental principles that should be conveyed, particularly in CS-1 courses. But there continues to be differing views on what language should be used. How do we choose what is best for our students? Again, very little agreement here. Some think that we should teach using languages that are the most widely used in industry. Others want to choose languages that are at the exact opposite end of the spectrum. If you go to the major job search websites, Java is still the clear winner here. Are there other measures?

Introducing the TIOBE Programming Community Index. This group runs a monthly analysis of programming language popularity. (More on this metric shortly.) It seems that as of April 2010, the C programming language is "back at number 1 position!" This takes over Java's domination, moving it to #2. Moreover, regarding Java, they state,

"So the main reason for C's number 1 position is not C's uprise, but the decline of its competitor Java. Java has a long-term downward trend. It is losing ground to other languages running on the JVM. An example of such a language is JavaFX script that is now approaching the top 20."

Before throwing out your Java books and hopping back on the C bandwagon of the 1980s, let us examine how they create this list. See the index definition. I'll summarize the most essential metric here. They go to all of the popular search engines, enter the query +" programming", and tally the number of responses. Minor adjustments are made to normalize numbers and such, but that pretty much summarizes their statistic. 

Let's experiment using Google:
  • Java -  about 2,700,000 hits
  • C - about 2,420,000 hits
  • C++ - about 1,530,000 hits
  • PHP - about 1,060,000 hits
  • C# - about 700,000 hits
  • Python - about 559,000 hits
  • Ruby - about 205,000 hits
Let's look at some of the lesser known languages out there, some of which have been around for a LONG time (and some of which should be more widely considered, at least in academia.)
  • Scheme - about 58,300 hits
  • Scala - about 22,800 hits
  • Smalltalk - about 16,300 hits
  • Go - about 59,600 hits (presented in honor of Google. After all, I used their search engine. :-)
I'm always pleased when I can easily replicate published results. But, what do these numbers mean? I'm not really sure. It's essentially seems like a popularity contest. Do they directly relate to industry? How do they relate to what is taught in academia? And, what type of correlations are there with respect to the time that the language has been available? That would be interesting to know. I am inclined to believe that there are probably some loose correlations to be found among these and many other variables still hidden. Those other variables could be easily characterized by sifting through those millions of web page hits. This looks like a neat job for.... Data Mining!!! :-) Anyway, these numbers should really be observed with a cautious eye, and not read into too deeply. The paper states that they try to catch some false positives, but a 10 second glance through C programming hits shows numerous C++ hits as well, and vice versa. It would be rare in this day to present a C only web page without mention of C++, and vice versa. Regardless, the trends are interesting to observe. 

Meanwhile, let the debate about the language to use for the CS-1 and Data Structures courses continue on. I'm sure it'll make for interesting conversations for years to come. As soon as we figure it out, it'll probably need to be re-evaluated again. :-)

Finally... increasing enrollments of CS majors!

Since the "Y2K" bubble burst starting around 2001, there has been a dramatic decline of students at colleges and universities nationwide declaring CS as their major. Well, apparently (and thankfully), that trend has changed. I'm sure part of the change is simply because there are now more jobs available than after the bubble burst. Some big names in industry are spending more time working with the big CS schools to assist in encouraging students to enroll in CS.

We also are working hard to to adapt our initial presentation of our programs to be relevant for today's student entering college. A student entering college today has a very different perception of what computer science entails than a student of 10-15 years ago. This has been a struggle for educators! Too many students come in wanting to be game developers! Some of us are now trying to use more of a media and graphical approach to learning foundational concepts early on. (For example, see the Alice framework.) This seems to lock in students interest earlier.

We are learning to be flexible with students coming in that are better equipped from high school programs. There are more students coming in with experience in programming than ever before. This should be no surprise. I hear of many high schools now offering multiple elective courses in computer programming, which I think is excellent. But, this makes it a little more difficult to try and level the expected prerequisites during those early courses. Providing alternative paths to allow students to "test out" of early courses in the major helps them not get bored early.

Looking at the data from the study tells another sobering story -- there is a significant decrease in PhD graduates in Computer Science. However, this should not be much of a surprise. PhDs graduating now would have most likely received their BS around 3-4 years ago, which means they likely started their undergrad work a couple years after the substantial downturn in CS majors. This should be of great concern for institutions and companies needing to hire CS PhDs over the next couple of years (though it bodes well for those that already have our doctorate that might be looking for a new position.) I think this is a temporary downturn, perhaps lasting for another 2-3 years or so. We will need a little more time for the increase in undergrads we are seeing now to carry over to an observed increase in graduate students, especially at the PhD level.  At least, that is my hope. I have not spent any time studying graduate student enrollments, so I have nothing to go by right now.

Overall, this is really good news for those of us that have been fretting about decreased enrollments in CS for many years now. We need to keep working hard and being creative to keep these trends going in the right direction. (Mobile application development.... now there is an obvious place where some interesting work can be done at the undergrad level that students would find fascinating. Between iPhone and Android-based phones, doesn't that represent the majority of CS students today? It is good to get them developing on non-desktop platforms for a change. And, how about stressing parallel programming at the advanced undergrad level? Multicore processors are ubiquitous! Anyway... more ideas another time.) Exciting times, indeed!

BRK