Additional profile information on Alfred Thompson at Google+
As the old joke goes there are 10 types of people in the world. Those who understand Binary and those who don't. There seem to be fewer of those Binary understanding people in the world today. Or do I just ravel in the wrong circles? Does computer science really require a knowledge of different number systems anymore?
I learned different number bases in around 5th or 6th grade. I thought they were a blast. I played around counting in things like base 5 and 7 for weeks afterwards. The pattern and structure of numbers just made so much sense to me after that and it was fun seeing how it worked in different variations.
Then when I started taking computer science classes and Binary and Octal (Octal works very nicely to group things on computers with 12 bit words) were part of the daily vocabulary I felt right at home. Later using Hexadecimal was also pretty easy though I admit to being geek enough that I had a calculator that used Decimal, Hex, Octal and Binary and I used it quite a bit.
Back in the day I used Octal and Hex arithmetic to work my way through stack dumps, crash dumps, and to make patches in code of all sorts. Binary was the number system of choice for bit flags and setting and checking bits was something I did every day - especially when I was doing OS development those many years ago. I was as likely to want to know an ASCII code in Octal as Decimal or Hex when looking at data dumps. Today I still enjoy my binary coded decimal clock. In spite of the fact (or perhaps because of the fact) that it drives my wife crazy when I point to it and ask her what time it is. There was a time when she could have told me faster than I can but she's a little out of practice.
These days it seems as though Binary, Hex and especially Octal have fallen into disuse. Memory is cheap so people fell ok using a whole word to serve as a Binary flag. Sure there are people doing programming in C/C++ where they occasionally look at raw data but how many recognize that "20" means a space? Or maybe I'm wrong and people are teaching it. But are they teaching it as fun?
I've never been a math geek. Sad but true. Still learning binary and octal and hex (and more) gave me an appreciation for how numbers really worked. Just like learning different natural languages helps people understand how their own works I found that learning these other systems gave me a deeper understanding of Decimal. It was a great thing to learn at an early age. Its a shame that it doesn't seem to be part of elementary school math anymore.
I don't see many people getting down to the bits and bytes anymore - especially not to the bits. Are the days when one needs to know the bits gone or are they still around? Does understanding Binary (at least) still add an important component to a liberal computer science education? What do you think?
[Welcome Oregon Ducks from CIS 210 - if you are interested in a possibly interesting binary number project check out Binary Number Game.]
I'm not much of a hardware guy. Oh sure I have built a few systems and I can add and replace hardware with the best of them. I've installed hardware since back in the days when installing software meant bringing a tool kit so you could connect wires and cables and all sorts of things that aren't even included in computers today. So I can do it. It's just not something I think of as fun. So I buy my computers "off the shelf" with most additions added at the factory. More on that later.
Now not everyone feels the same way. My friend Max had a great Max Builds a PC series on Channel 8. It was very interesting and he got a lot of great feedback about what parts to use. On paper the system looks wonderful. It's probably pretty good in real life as well. But while it works for one of a kind systems how well does it scale?
Build it your self systems are very tempting as a way to save money. They and their close cousin the "white box" are some of the things that some companies and more and more schools are looking at to save money. Take for example this post by Christopher Dawson. He suggests that by putting his students to work (free labor) and buying parts he can build computers for his school at a much lower cost than he can by buying complete systems from a hardware company. The traditional "white box" vendor follows pretty much the same model but without the free labor. The lack of engineering and other costs (marketing, shipping, etc) lets them sell for less. It all seems so good.
I'm skeptical though. Not because I have any great love for the big hardware companies or because I have a careless attitude about money. No, rather it is that I have had some bad experiences in my short 35 year career and they leave me gun shy. That and because I have worked first hand at a number of companies who design and make computer hardware I have some appreciation for what goes into their boxes. It's not as easy or as simple as it appears. There is some real value in having professionally engineered computer systems.
When I first started teaching high school the school had built a lab out of "white box" computers. They had saved a lot of money. Unfortunately we had a lot of problems with them. Not just the usual early life failures but some of the pieces just didn't seem to work together well. The systems never really became reliable and I was happy to see them go a few years later. The time and effort we (staff) spent and the lost opportunity costs of students not having working computers really seemed to me to exceed the value of the money that (in theory) we saved. I've heard good stories and bad so your mileage may well vary.
Computer hardware is complicated and things do not always work as well together as one might think. How many people build their own Apple computers from scratch parts? Not many. Apple keeps tight control over the computers that are supported under their operating system for some good reasons. First among those is that it allows them to better control the quality of the user experience. PCs don't have that same tight control. The big companies on the other hand do have engineers and testers who do a strong job of making sure the components they use work together. That has added value to me. Perhaps not as much as the cost to everyone but it works for me. Because I do not want to spend my time fooling with hardware I buy off the shelf. Its a matter of priorities.
Now money is tight in schools and nowhere is it more tight then in technology. So building your own is doubly tempting. What I did when I was a school technology director was to buy top of the line off the shelf hardware for key applications - the things we absolutely needed to work everyday. The servers were designed and engineered as servers because a number of people who ran servers for businesses recommended that there was a lot of difference there. That worked out great for us. The business manager had a top of the line off the shelf name brand. Getting receipts in, payments (especially payroll) and managing the business of education was key.
In the labs and for many of the others we went down a notch. We didn't build our own (employee time was valuable and we paid students for their work - rightly so I think) but we didn't go with the most expensive brand names. That worked as well. We did maintain a spare parts inventory - mostly disk drives, keyboards, mice and some optical drives - and that let us repair most systems pretty quickly. But we started with professionally engineered systems and I think that was the way to go.
I imagine that in a vo-tech or other school with a computer hardware program building more computers from parts might work out. There are always trade offs though. I wonder how many of them build their own school buildings and school busses with student labor and in the school shops.
The Computer Research Association (CRA) has a new report out on computer science enrollment. The discussions online are a real mix of the glass being half full and half empty. If you look at the long term you see things like enrollment dropping about 70% in the last 7-8 years. Articles in the Chronicle of Higher Education and Computerworld are reporting the long term picture and are pretty much in the doom and gloom school of thought.
On the other hand Inside Higher Education is looking closely at the most recent year's numbers and suggesting that the decline may be over. This year's numbers are up slightly (at least at schools that offer graduate as well as undergraduate programs in computer science). Personally that is not enough to prove to me that things are moving up but it may indicate that the fall has been stopped.
The Inside Higher Education article is more valuable (I think) because it also highlights some of the things that schools are doing to attract and retain more students. Computer forensics is a new and growing area for example. Places like Bryn Mayr has a three year old computer science major and one of the things they are doing is using robotics. They are part of the IPRE program with Georgia Tech. Georgia Tech has done a lot to revise their curriculum and besides robotics they have a pretty cool media computation program that is attracting a lot of students.
Of course game development is getting to be a big deal in a lot of places as well. Multi disciplinary programs that involve fields as diverse as biology, psychology and even theatre are showing more students the relevance of computer science far beyond "just" programming.
I'm not sure that I agree with Giselle Martin of Georgia Tech when she says that "Computer science is the new sexy" but maybe - just maybe - that is coming.