Skip to main content

Easier but not dumbing down

Posted by daniel on January 20, 2004 at 8:02 AM PST

You want to attract more people to your field and so you need to lower the barrier to entry. Can you make learning a difficult subject easier without dumbing it down?

In today's Weblogs , Kathy Sierra addresses this in her entry What's so bad about making it easier to learn Java? She reports on 'on- and off-line grumbling about whether it's a good idea to "teach the unteachable' or try to encourage 'people who have no business programming in the first place.'" As usual, Kathy has opened up so many areas of discussion. Sorry this response wanders a bit.

For me, that is sadly familiar. I've taught Mathematics at the college and high school levels for many years. At the college level that typically means a mixture of Calculus classes and some upper level courses. If we make more students successful at the early stages, there are two resulting backlashes. The first comes from the colleagues who believe that you must be dumbing down the curriculum because an unnaturally high percentage of your students are doing so well. A you are encouraging people to go on in Mathematics or related fields who would have been weeded out in a Calculus class in the old days. Other departments have required Calculus, in part, to let the Math department do some of the weeding out for them. Some Math associations focused on teaching have tried to change Calculus to be seen as "A Pump not a Filter".

Kathy writes about Roger Shank's assertion "that the whole approach to teaching (and especially technical subjects) in higher ed in the US is almost completely contrary to everything we know about how the brain works." Think back to sitting in large classes listening to long lectures. Did you really stay focused and engaged the entire time? I was lucky enough to find teaching mentors who showed me how to lecture less and to engage students more. No more than ten minutes of lecture followed by directed group work, interactive problem solving, status checks, and other devices.

The student evaluations were clear: they felt that I taught them less than other classes and they felt that they had learned more than in other classes. I was so happy. My students were learning more. Fortunately, I worked in an enlightened department that understood that it didn't matter who the students thought had taught them. In fact, I would say that there assessment was correct. I hadn't taught them very much. I think that it is generally true that you don't learn very much from someone else. The other person may set the stage for you to learn a lot yourself.

For me, the most valuable criteria for a qualified professor are (1) a deep understanding of the material, (2) the ability to convey both the material and a passion for why the student should care, and (3) a feel for the student's experience learning the material. It's more valuable to be able to say "they learned that" than to say "I taught them that".

Kathy asks "Is there no way a Java developer can be any good without a CS degree? (Although there's always a certain amount of snobbery on both sides -- the CS grads (who may not have had real world experience) vs. the hard-core real-world vet who doesn't need no stinkin' degree.) Is there only one True Path by which a human can become a good Java programmer? And if there is, WHO decided what that path was supposed to look like? Is it possible that the path looks like that simply because... well, simply because it always HAS looked like that?"

I ask back, who should be teaching in CS departments? I am not bashing academics or intellectuals. I like and respect many of them. There are plenty of great teachers and researchers with PhDs. My concern is that there are a lot of people we don't let teach in CS departments because of their formal credentials. I think about the people I have learned a lot about programming from. I don't think any of them have PhD's in CS - and I'm sure it didn't occur to me to care. Uncle Bob Martin, Bill Venners, Bill Day, Jason Hunter, Mike Clark, Dave Thomas, Ward Cunningham, Ken Auer, Bill Wake, Erik Hatcher, James Duncan Davidson, Glenn Vanderburg, Martin Fowler, ... Are these people not qualified to teach because they don't have the right degree?

A year ago I applied for a teaching job at John Carroll University. The ad said they were looking for someone with a PhD in CS or a related field. I figured that Math was a related field and besides I had taught JCU's first course in Java six years earlier, their first course in design patterns a year prior, and introduced the practices of Extreme Programming to their software engineering class by offering an experimental seminar. There are many reasons to reject me for this position, but theirs was that they were concerned I wouldn't have credibility with the students because I didn't have a PhD in CS.

I'm sure that using that which is familiar feels safer. There are some that have judged Kathy and Bert's Head First Java book by its cover and rejected without seeing what's inside. It looks different. It has lots of pictures and asides and arrows and techniques that you may be tempted to dismiss as gimmicks. They have made the material easier to learn but they haven't dumbed it down. You'll find all of the usual topics covered including polymorphism, ood, overloading and overriding along with all of the details about the language that you would require. You'll even find coverage of topics like Sockets that you may not expect in an introductory book.


In


Also in Java Today
, Paul Tyma explains that although it is generally accepted that you should never split 10's in the game of blackjack, The Right Way Isn't Always The Only Way . After he presents a case in which it might make sense to play in a non-standard way, he turns to code optimization in Java and his discussion with a Hotspot engineer. Paul explained that his optimizer "statically analyzed Java applications and applied optimizations across applications." The Hotspot engineer protested that "You can't statically analyze Java programs." It seems, they're both right.

Other articles present overviews and more motivation, but Weiqi Gao's Introduction to XQuery gets right to the code examples. He introduces the basic XQuery syntax and presents examples of Sequences, Atomic Values and Simple Types, and Nodes and Node Types. He shows how to use "the doc() and collection() functions to bring external XML data into a program". Expression examples include XPath, FLWOR (for, let, where, order, by, return), Quantifiers, and Conditionals. In short, the article is a collection of short examples to show you how many of the basic features of XQuery work.


In Projects and Communities The Java Web Services and XML community home page links to a listing of ISPs Supporting Servlets . This is recommended as a starting place to research ISP or Web hosting companies that know how to do servlets well.

The Java Games community hosts a forum on Performance Tuning . There is a current thread ( Java is slow ) where forum members help an initial poster examine the performance of his code.


In today's java.net
News Headlines
:

Registered users can submit news items for the href="http://today.java.net/today/news/">java.net News Page using
our news submission
form
. All submissions go through an editorial review by news director
Steve Mallet before being posted to the site. You can also subscribe to
thejava.net
News RSS feed
.


Current and upcoming
Java Events
:

Registered users can submit event listings for the href="http://www.java.net/events">java.net Events Page using our href="http://today.java.net/cs/user/create/e"> events submission
form. All submissions go through an editorial review before being
posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the
Java
Today RSS feed
. All java.net members can subscribe to the email
updates for the site at the href="https://java-net.dev.java.net/servlets/ProjectMailingListList">
java-net Mailing Lists page. You must be logged in to subscribe
to
the javanet_Daily and javanet_Weekly lists. Also, once this page
is no longer featured as the front page of
java.net
it will be archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.