How can anyone be "old school" with a subject that is only decades old. OF COUSE YOU SHOULD USE IDEs. The most valuable think you can teach is how to use the debugger. Writing good code is an engineering dicipline, and unlike something like civil engineering, the tools for developing software have not evolved over many millennia. You should also know that the tools that your students actually use over their careers will be sooooo much better than the tools you teach them to use. This is the observation of someone who both learned and taught comupter science 25 years ago, then went into the private sector. Because I didn't want to learn what HAD been done, but was more interested in WHERE things were going, I didn't worry too much about languages like COBOL. I knew systems like ORACLE were coming. Pascal was relatively new, and was worth learning, but there was this edgy language called C that we spent some time on in a language survey class. It seems like we used sharpened sticks to kill the elephant, but with my 2006 goggles on, I see that the elephant was a mouse. How did the elephant turn into a mouse? I GOT BETTER TOOLS!!! Better languages (C++, Ruby), better development environments, better debuggers, better utilities (Rails, STL, Php). Would you teach a civil engineer to build an interstate spagetti bowl interchange without using a transit?
Computer Scientists are still building Rube Goldberg devices, is it a suprise to you that many poor programmers want the uninitiated to see programming as an art, not an engineering dicipline?
Get over it. There is gold in them there hills. The game biz is going the same direction as all other creative entertainment. Formulaic crap to make money. Nothing innovative that introduces risk. These companies are required BY LAW to do this since they are publicly traded.
Anyway, just like there are garage bands and independent films there will be independent game developers that DONT fit the mold but go on and create anyway. Not for money, but because they are driven to. All you have to do is support them with your money. Seek them out, buy their stuff.
(
I'm all for Open Source, and I am not an "Objectivist" in the pure sense, but you just need to read Ayn Rand's Atlas Shrugged to understand what will happen if all software goes Open Source. Altruistic Open Source Software development is GREAT, but greed is "good." Anyone who blindly follows their "principals" of open source and the GPL really needs to read the work I cited above. Admittedly it's an overexaggeration but there are alot of lessons to learn there about what really drives human nature.
Think what would happen if MS, Oracle, PeopleSoft, SAP, Adobe, EA, Symantic, McAffee, etc all revoked all of their EULAs simultaneously and basically said that if you want a refund take us to court. No bug fixes, patches, security fixes. No nuthin. How long until the economy is on it's knees? How long until the government is on it's knees?
I don't expect this'll be modded up because this place is the gathering place for the Open Source Nazi Horde (A cult of geeks) but I just had to add my $0.02.
Well, I always use patterns on the keyboard. They are very easy to remember. For instance I can easily remember every password I have used for the last 5 years.
By pattern I mean something like this:
xdrfvgy, or cfvghnjm, or azsdcfgbhjmkl
anyway, this seems to work well because when our sysads run their password cracking stuff to check that people are using good passwords mine is always the last one to get cracked, sometimes by up to 40 hours.
WOW, that is an astute observation actually. WHich is more important, math or English for a CS career. I would say that if you want a CS job that you actually ENJOY then the more math the better. I am a development manager for a game development company and in response to the original question I would say that I would rather hire a Math or other hard science major than a CS major with very little math. I have hired chemists, EEs, MEs, physicists, and the odd CS major;) However I have never hired anyone that I saw as either being in, or growing into, a leadership position that didn't have excellent communication skills, both written and verbal.
The assembly code will depend on the assembler being used. The machine code will work within the common instruction set.
As someone who has worked in about 15 assembly languages over 20 years, from Honeywell Mainframe Assembly to machine code, 8080 to risc, and from using no embedded OS at all to a full RTOS, I personally believe that the original premise of this article is as wrong as you can get. Knowing the mid-level workings of the electronics will teach nothing about Computer Science. Computer Science involves creating and working with an abstraction layer which is appropriate to the problem. The actual language used to implement this abstraction is irrelevent.
I look back on the old days of assembly language hacking with nostalgia as much as the next person. I see what you can do these days with the support of all the great tools available and say "man, if they had to do this on an 8051 with 2k of ram this would sure be done differently." but that is not the case today, and that is a good thing. Looking back over the years and seeing the developments in the industry and what we are able to do now compared to then makes me wonder what the development tools of the next 20 years will be like. Program development has yet to move much past the command line driven methods of 20 years ago. I believe this will change to a more visual and sensual method before the next 20 years is up.
Again, Computer Science is about using tools and choosing the correct tool for the job. While assembly language programming will never go away it is only one tool out of the many which are available today.
Were actually added in the '50s if I remember correctly. Just take them back out. And while you are at it, get rid of that idiotic Star Spangled Banner and bring back America The Beautiful as the National Anthem.
Back in the late 80 when I was working in a NASA robotics research lab we were exploring applications of fuzzy logic and neural nets. Well, one of the problems that we were working with was the inverted pendulum problem. It is relatively easy to develop a neural net that can learn to balance a broomstick. Admittedly balancing a flexible body such as a human is a little more difficult, but not a great deal more difficult. The mechanism controlled just like the Segway, which ever way you pushed the broomstick was the direction of motion. This was not mounted on wheels but the principle is exactly the same.
If I were to design the Segway I would use 4 wheels for additional stability and have a roof to protect you from the elements. Hmm, actually I guess I have one of those parked right outside. I remember when IT was being so overhyped and it really turned me off when it finally was announced. I'm not saying that it doesn't have ANY practical applications but I thik for the most part it's just an expensive novelty item. What the world really needs is a self balancing unicycle, now THAT would be useful at least under the big top.
Personally I thought that Bush's face plant was a nice bit of foreshadowing.
Get yourself a split keyboard, force yourself to use it. When you notice that you are making more errors when you are looking at your fingers than when you are watching the letters come up on the screen you are touch typing. I don't use the traditional finger to key mapping but I can do it with my eyes closed.
I had to go to a split style keyboard when my hands started hurting all the time. Symptoms went away in a couple weeks.
IT guys are too grounded in reality to take up the bullsh*t marketing crap that a CEO has to do.
How can anyone be "old school" with a subject that is only decades old. OF COUSE YOU SHOULD USE IDEs. The most valuable think you can teach is how to use the debugger. Writing good code is an engineering dicipline, and unlike something like civil engineering, the tools for developing software have not evolved over many millennia. You should also know that the tools that your students actually use over their careers will be sooooo much better than the tools you teach them to use. This is the observation of someone who both learned and taught comupter science 25 years ago, then went into the private sector. Because I didn't want to learn what HAD been done, but was more interested in WHERE things were going, I didn't worry too much about languages like COBOL. I knew systems like ORACLE were coming. Pascal was relatively new, and was worth learning, but there was this edgy language called C that we spent some time on in a language survey class. It seems like we used sharpened sticks to kill the elephant, but with my 2006 goggles on, I see that the elephant was a mouse. How did the elephant turn into a mouse? I GOT BETTER TOOLS!!! Better languages (C++, Ruby), better development environments, better debuggers, better utilities (Rails, STL, Php). Would you teach a civil engineer to build an interstate spagetti bowl interchange without using a transit? Computer Scientists are still building Rube Goldberg devices, is it a suprise to you that many poor programmers want the uninitiated to see programming as an art, not an engineering dicipline?
Get over it. There is gold in them there hills. The game biz is going the same direction as all other creative entertainment. Formulaic crap to make money. Nothing innovative that introduces risk. These companies are required BY LAW to do this since they are publicly traded. Anyway, just like there are garage bands and independent films there will be independent game developers that DONT fit the mold but go on and create anyway. Not for money, but because they are driven to. All you have to do is support them with your money. Seek them out, buy their stuff. (
It's a mongrel with more idioms than idiots.
I'm all for Open Source, and I am not an "Objectivist" in the pure sense, but you just need to read Ayn Rand's Atlas Shrugged to understand what will happen if all software goes Open Source. Altruistic Open Source Software development is GREAT, but greed is "good." Anyone who blindly follows their "principals" of open source and the GPL really needs to read the work I cited above. Admittedly it's an overexaggeration but there are alot of lessons to learn there about what really drives human nature. Think what would happen if MS, Oracle, PeopleSoft, SAP, Adobe, EA, Symantic, McAffee, etc all revoked all of their EULAs simultaneously and basically said that if you want a refund take us to court. No bug fixes, patches, security fixes. No nuthin. How long until the economy is on it's knees? How long until the government is on it's knees? I don't expect this'll be modded up because this place is the gathering place for the Open Source Nazi Horde (A cult of geeks) but I just had to add my $0.02.
Incidentally, you have to actually type the password to see the pattern. Also they may not work on International keyboards.
Well, I always use patterns on the keyboard. They are very easy to remember. For instance I can easily remember every password I have used for the last 5 years. By pattern I mean something like this: xdrfvgy, or cfvghnjm, or azsdcfgbhjmkl anyway, this seems to work well because when our sysads run their password cracking stuff to check that people are using good passwords mine is always the last one to get cracked, sometimes by up to 40 hours.
WOW, that is an astute observation actually. WHich is more important, math or English for a CS career. I would say that if you want a CS job that you actually ENJOY then the more math the better. I am a development manager for a game development company and in response to the original question I would say that I would rather hire a Math or other hard science major than a CS major with very little math. I have hired chemists, EEs, MEs, physicists, and the odd CS major ;) However I have never hired anyone that I saw as either being in, or growing into, a leadership position that didn't have excellent communication skills, both written and verbal.
The assembly code will depend on the assembler being used. The machine code will work within the common instruction set.
As someone who has worked in about 15 assembly languages over 20 years, from Honeywell Mainframe Assembly to machine code, 8080 to risc, and from using no embedded OS at all to a full RTOS, I personally believe that the original premise of this article is as wrong as you can get. Knowing the mid-level workings of the electronics will teach nothing about Computer Science. Computer Science involves creating and working with an abstraction layer which is appropriate to the problem. The actual language used to implement this abstraction is irrelevent.
I look back on the old days of assembly language hacking with nostalgia as much as the next person. I see what you can do these days with the support of all the great tools available and say "man, if they had to do this on an 8051 with 2k of ram this would sure be done differently." but that is not the case today, and that is a good thing. Looking back over the years and seeing the developments in the industry and what we are able to do now compared to then makes me wonder what the development tools of the next 20 years will be like. Program development has yet to move much past the command line driven methods of 20 years ago. I believe this will change to a more visual and sensual method before the next 20 years is up.
Again, Computer Science is about using tools and choosing the correct tool for the job. While assembly language programming will never go away it is only one tool out of the many which are available today.
I give you American, but I keep under. ;)
Of course that goes against my guiding mantra of "You can never underestimate the intellegence of the average American consumer."
Were actually added in the '50s if I remember correctly. Just take them back out. And while you are at it, get rid of that idiotic Star Spangled Banner and bring back America The Beautiful as the National Anthem.
Back in the late 80 when I was working in a NASA robotics research lab we were exploring applications of fuzzy logic and neural nets. Well, one of the problems that we were working with was the inverted pendulum problem. It is relatively easy to develop a neural net that can learn to balance a broomstick. Admittedly balancing a flexible body such as a human is a little more difficult, but not a great deal more difficult. The mechanism controlled just like the Segway, which ever way you pushed the broomstick was the direction of motion. This was not mounted on wheels but the principle is exactly the same.
If I were to design the Segway I would use 4 wheels for additional stability and have a roof to protect you from the elements. Hmm, actually I guess I have one of those parked right outside. I remember when IT was being so overhyped and it really turned me off when it finally was announced. I'm not saying that it doesn't have ANY practical applications but I thik for the most part it's just an expensive novelty item. What the world really needs is a self balancing unicycle, now THAT would be useful at least under the big top.
Personally I thought that Bush's face plant was a nice bit of foreshadowing.
Captain Wasabi
Get yourself a split keyboard, force yourself to use it. When you notice that you are making more errors when you are looking at your fingers than when you are watching the letters come up on the screen you are touch typing. I don't use the traditional finger to key mapping but I can do it with my eyes closed. I had to go to a split style keyboard when my hands started hurting all the time. Symptoms went away in a couple weeks.