Agreed. The other thing is that, in most academic circles for sure, and
most of the publishing areas of our stuff, there is supposed to be
something sexy, for lack of a better word, about being independent,
bland and generic. I wonder if some based these idea on MIX, missing,
among other things, that there was a tremendous amount of substance in
those books. There are plenty of books and even courses dedicated to
things that are, by any reasonable standard, essentially an oxymoron; i.
e. - a generic approach to optimization, independent of the
underlying…, with the pathological case being that of performance
analysis. I say by any reasonable standard, because what might be said
in defense of items like this is they teach students/readers to favor
hashing over , without any specific data. This also tends to
ignore that the decision that mostly gets made is whether to use, say,
strcmp, over, say, strcmp, or, say, strcmp.
Incidentally, In addition to having this generic, independent approach
being a great way to learn very little, it is an even better way to
cover that fact up.
>>> xxxxx@gmail.com 2007-04-04 14:19:08 >>>
Just my two cents on the topic.
I came out of the university not long ago from Italy. I studied EE and
then
moved to CompEng and networking. I work in the driver dev field and i’m
far
from being an expert. I know something. I just usually know my limits.
My experience in italy (in my university) is that
1. students are not pushed too much to their limits. Most of the
assignments
are too trivial and students are not stimulated to use their brains to
find
their solutions. Maybe because the same assignments are used over the
years?!?
2. i’ve been told that the university has to teach you how to program,
how
to design an application, bla bla bla. And they don’t want to stick
with a
specific IDE or tool because of that. The neat result is that you come
out
of the university without practical experience in working with a
project
with 500+ LOC. And worse. Without having any idea of how to use a
debugger.
And I’m not talking about windbg, the VS debugger, gdb or any other.
Just
know how to use something more that printf’s in the code. I wonder if
this
is the reason why there are so many posts on this mailing list like “my
driver crashes. Help!”.
3. Regarding driver dev and OS architecture, if you study CS or EE
you’ll
have had a class on OS fundamentals at a certain point. But very little
is
done to have the students really “touch” the OS and understand what’s
really
going on. Students are neither motivated (by the instructors) nor
interested
in learning that (too difficult?). And the result is that students
(including myself up to some years ago) don’t have a clear idea of what
a
virtual address space is. What surprises me is that if you do know how
your
OS works, it’s way easier to develop any piece of software. From a
driver to
a C# application.
4. There’s been a push in teaching C#/Java instead of C. Good? Bad? I
don’t
know. I think that knowing C is important, as much as I think that
using a
strongly typed language like C# should be favoured when possible. Less
chances of mixing apples with pears and messing up with void
pointers… yay
(yes, I’m also a big fan of .NET, together with Windows internals. It’s
kinda weird). But you also need to know how a VM like the CLR for .NET
or
the JVM for Java works. Hearing phrases like “oh, with java/C# it’s
easier
beacuse you don’t need to free memory” is really discouraging.
Maybe I’m too demanding (even to myself). But I want to know things
work.
Have a nice day
GV
----- Original Message -----
From: “Lyndon J Clarke”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Wednesday, April 04, 2007 9:46 AM
Subject: Re:[ntdev] About CS curricula, OS architecture and driver
programming, was Re: Two Rings Good, Four Rings Bad
> Simple answer: The world is awash with C# .NET Java opportunities but
in
> contrast there are few kernel opportunities. The world of schools,
> colleges, universities has less of an ‘academic’ focus and more of a
> ‘vocational’ focus. The extent of this might, or might no, be
variable
> across geographies.
>
> “Sandor LUKACS” wrote in message
> news:xxxxx@ntdev…
>> lists.osr.com wrote:
>>>> What on earth
>>>> does the typical computer science curricula teach these days?
Visual
>>>> C#
>>>> .NET and nothing else?
>>>>
>>>>
>>>
>>> Since I’m currently working on my Masters in CompSci right now, I’d
like
>>> to report that the language of choice at the school I’m attending
>>> appears to be Java, followed (way behind) by C. The OS(s) of
choice are
>>> Solaris and Linux.
>>>
>>> No classes even exist for anything like Device Drivers, Low level
OS
>>> architecture, or Embedded Systems, at least not through Computer
>>> Science.
>>>
>>> sigh
>>>
>>>
>> I’m also very sad about the fact, that low level programming, OS
>> architecture (NT / Linux,
>> anything), driver programming and so on are almost entirely missing
from
>> all CS curricula
>> in practically all faculties which I know about around me (Romania).
It
>> there is anything,
>> then that is very theoretical and has little to do with real life
>> practical stuffs.
>>
>> On the other hand, I taught last year a one semester course for
Masters
>> degree students
>> about low level processor architecture and programming, basics of
the NT
>> architecture and
>> some little NT driver programming. I was deeply sad by the fact,
that
>> even that I was
>> showing up real life examples most students where just not
interested
>> about the topics.
>> I got the feedback repeatedly from over 80% of the students, that
>> databases, Java, C# and
>> .NET are much more fun and much easier to do than stuffs like ASM,
OS
>> kernel stuffs or
>> driver programming. Even coding Win32 with C, or concepts like
>> synchronizations, thread
>> contexts, semaphores, events and so on tend to be scary for quite a
lot
>> of the students.
>>
>> Did somebody experienced similar results? Why is that as the years
are
>> passing, it is
>> more and more difficult to find somebody really interested in
low-level
>> stuffs?
>>
>> have a nice day,
>>
>> Sandor LUKACS
>> Virus Analyst, SOFTWIN
>> www.bitdefender.com
>>
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer