On Sun, Nov 16, 2003 at 12:24:52AM +0800, Andy Sy wrote: > But maybe the problem is that the curriculum is too confined to the > ivory tower of 'hardcore' CS subjects (i.e. data structures, algorithms, > CS theory), of which advanced study is only suitable for a handful of
However, this is the bedrock on which all of the foundation of computer science stands. This is something that cannot and should not be ignored by any computer science curriculum. Without these subjects, CS becomes more like stamp collecting. > minds. The field of IT is vast enough and the industry demands skills > in more high level areas like Computer Graphics, GUI, OS, Database, > Network protocol design which might turn out to be more appealing to > others. In other words the *type* of programming involved may be what's > holding certain people back from liking the subject. True, but the core subjects such as data structures, algorithms, and the theory of computation should never be neglected. Computer graphics, graphical user interfaces, OSes, databases, and network protocols all depend on these. Computer graphics was actually what motivated me to study advanced linear algebra when I was back in high school, and provided much of the motivation for what I eventually got myself into later on in life. I got a copy of Sedgewick's Algorithms way back in 1991 as a sophomore high school student mainly because I was writing a simple 3D graphics program using Turbo C back then and needed some advanced algorithms and data structures. Perhaps it is better to present the core subjects in a setting that provides a *motivation* for their real applications, rather than as an end in itself as seems to be the case today. Admittedly, had I never had a prior exposure to these subjects as a part of my independent studies in computer graphics, I'd have found all of these theory subjects incredibly dull and boring work. Instead, having been able to relate them to a project I had done on my own time which gave me a lot of visual satisfaction made them come alive in a way that would otherwise have been impossible. > > Math (or CS theory or hardcore data structure and algorithm analysis) is > clearly just harder or initially immensely boring for some people, and to > force them to like it for its own sake will do no good. As it is possible Amen. It was only after I had gained a certain degree of maturity (many, many years later becoming much older and wiser), that I find these subjects interesting enough to study for their own sake. > to make a good deal of progress in most IT fields without resorting to > heavy math or theory, the curriculum should not force such topics down the > students throat before he is mature enough for it, otherwise you risk his > totally losing interest in the field. > True, true. Perhaps the way to provide motivation for a young student is to provide a real application using these principles that gives them a lot of quick instant gratification, e.g. computer graphics. > I can see so many examples of topics where a writer would resort to using > highfalutin equations complete with greek characters to explain a certain > concept, when there is a far more accessible way to do it(*). I would give traditional compiler design books as another bad example of using heavy math where it is not absolutely necessary to the motivation of the subject. Had I never read Kernighan and Pike's book where they present a programmable calculator project using Lex and Yacc in an accessible way I would have been put off compiler design totally. The Dragon Book is not something I would recommend to beginning CS students as an elementary introduction to the craft of compiler design. Andy, you yourself once posted a bunch of web pages on the compsci list that presents a far gentler introduction to compiler design than the Dragon Book or any other dead tree book I have ever seen. As before, the main principle I think is that actual practice should motivate the theory rather than the other way around. The traditional way will have a hard time flying with the culture we have. -- Philippine Linux Users' Group (PLUG) Mailing List [EMAIL PROTECTED] (#PLUG @ irc.free.net.ph) Official Website: http://plug.linux.org.ph Searchable Archives: http://marc.free.net.ph . To leave, go to http://lists.q-linux.com/mailman/listinfo/plug . Are you a Linux newbie? To join the newbie list, go to http://lists.q-linux.com/mailman/listinfo/ph-linux-newbie
