my dog learned polymorphism*
The moose likes Cattle Drive and the fly likes Bertrand Meyer on teaching programming Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » This Site » Cattle Drive
Bookmark "Bertrand Meyer on teaching programming" Watch "Bertrand Meyer on teaching programming" New topic
Author

Bertrand Meyer on teaching programming

Mapraputa Is
Leverager of our synergies
Sheriff

Joined: Aug 26, 2000
Posts: 10065
Bertrand Meyer. Software Engineering in the Academy. (IEEE Computer, May 2001). PDF.
I liked this text a lot so I felt it's my duty to share some quotes with you
"While just teaching use of the tools fashionable at a certain time may curry favor with students and their families (who can relate them to the skills most often requested in employment ads), doing so is not necessarily the best service you can give to future professionals. What matters is teaching them fundamental modes of thought that will accompany them throughout their careers and help them grow in this ever-changing field."
"Among the most important things that professional software engineers know are concepts that recur throughout their work. Most of these concepts are not specific techniques. If they include a technique, they go beyond it to encompass a mode of reasoning. This defines the most exciting aspect of being a professional software engineer: the mastery of some of these powerful and elegant intellectual schemes that, more than any particular trick of the trade, constitute our profession’s common treasure. Most of them cannot be taught in one sitting but rather are learned little by little through trial, error, and skillful mentoring. I retain the same awe that I first felt when I started discovering them, and they make up the most important, if sometimes immaterial, body of knowledge that, as a teacher, I try to impart to novices."


Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Johannes de Jong
tumbleweed
Bartender

Joined: Jan 27, 2001
Posts: 5089
Ok I'll reply to this one
The 1st statement. Which is exactly why Paul has decided that the students choose their own "development tool", for all he cares we use notepad. The Cattle Drive teaches us fundamentals ie. building blocks to how to use Java and OO. The tool is totally ignored.
The 2nd statement. What he basically says here is that a short course can only teach you basics and that it's a hard "slog" to really learn it by trail and error. Which again makes the Cattle Drive so damn unique.
Thanks for sharing Meyer's document with us Map. I'll print it out as soon as I can find a printer that work's.
Johannes de Jong
tumbleweed
Bartender

Joined: Jan 27, 2001
Posts: 5089
By the way Map your wide level of knowledge will never cease to amaze me
Mapraputa Is
Leverager of our synergies
Sheriff

Joined: Aug 26, 2000
Posts: 10065
Wide level of knowledge? Jo, I did not write this text, I only found it
Michael Ernest
High Plains Drifter
Sheriff

Joined: Oct 25, 2000
Posts: 7292

She's a googler par excellence, no bout adoubt it.
In my own teaching, I'm with Meyer. I don't really try to teach C or Java. My students are professionals or want-to-be professionals; they have the motivation they need to learn a tool that will get them a job or a pretty girl's attention.
I want to teach them is programming, where the language is just a means, and where it's far more interesting to draw parallels between languages than distinctions. This may also be a way to explain my feelings about the various ?ML's: formatting is not programming (HTML/SGML/XML), and design is not programming (UML).
Whether these technologies are useful is so completely not the point; of course they're useful. How can you argue otherwise when they're used so much? But they're tools that are peripheral to programming itself, and central to talking about work that probably someone else is going to do. They're seductive tangents.
The last time I read some topics in the UML forum, I thought back to a conference of new managers I had the sorry fortune to attend. None of those people cared about the business at hand; they didn't know anything about it, which is ok, but they didn't want to know about it, either. They wanted "be managers." It isn't much different in feel from people who want to "be designers" or "be architects." The real path becomes evident when one admits his ignorance and endeavors to "become" instead.
When I am hired to work on projects where the amount of jabbering done on design corresponds to the amount of work done in design, I'll probably change my tune. Something tells me though I won't be whistling anything different for a while. Meanwhile, I'll focus on teaching as many people as I can the way of all code.
------------------
Michael Ernest, co-author of: The Complete Java 2 Certification Study Guide


Make visible what, without you, might perhaps never have been seen.
- Robert Bresson
Pauline McNamara
Sheriff

Joined: Jan 19, 2001
Posts: 4012
    
    6
Good food for thought, Map.
I read this article in spite of myself. My initial reaction was, oh this is about engineering degree programs, i.e. less applicable to the case that I can relate to best: crossing over from some other field without formal training in engineering or computer science.
Much of the basic material he lists as requisite to a software engineer's education are things I haven't heard of and won't pick up either. (Since I'm not learning programming in order to follow a certain career path, this probably doesn't matter anyway.)
It was interesting to note, however, that some conceptual skills that Meyer considers essential (abstract thinking, problem analysis, etc.) are not exclusive to an engineering program. In fact, these skills, though acquired elsewhere, have come in quite handy in this process of trying to understand programming from a crossover perspective.
Most encouraging was his list of "What Software Professionals Know"; many points are just the things I've been hearing/learning a lot about along the way. All this to say that picking up the right "conceptual attitude" in order to be a good programmer isn't necessarily limited to those who've gone through the strict training Meyer suggests in order to claim the title "software engineer". Good news for us non-engineers.
So, just out of curiosity, how was it you came upon this article? Looking for it specifically? Interest in teaching?
Cheers,
Pauline
Mapraputa Is
Leverager of our synergies
Sheriff

Joined: Aug 26, 2000
Posts: 10065
Pauline, sorry.
Today I posted a link to this thread in "What are your long term career strategies?" discussion and found your question that I never answered Must be New Year's mess. Frankly, I do not remember how I came upon this article. Do not think I was looking for it specifically.... Maybe just found it on Mr Meyer's site when looking for something else. I *am* interested in learning/teaching, though. Learning has more practical applications for me right now, but the main discovery this site brought to me is that when there is no artificial separation into "pupils" and "teachers", learning is much more effective, for adults at least. So am interested in teaching as well.
-------------------------
"There are no answers, only cross references."
[ June 05, 2002: Message edited by: Mapraputa Is ]
Pauline McNamara
Sheriff

Joined: Jan 19, 2001
Posts: 4012
    
    6
Happy New Year Map!!
Like that about less separation between teacher and pupil - along the lines of the best way to learn something is to try to teach it to someone else.
[ June 08, 2002: Message edited by: Pauline McNamara ]
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Bertrand Meyer on teaching programming
 
Similar Threads
Who uses C these days, and why?
Social aspect of eXtreme Programming
Is a class subclass of itself?
XML Certified.
XML Certified.