Why so few Computer Science degrees granted?

<br>

<br>

<p>I have an IS degree and a CS graduate degree. I worked in IS for many years. Getting the CS degree really opened my eyes to the math and science involved in CS - it basically explained a lot of the stuff that I just took for granted (as in it’s just magic). I had no idea as to how hardware worked or what operating systems did. I had an OS, and programming languages available to me and I just created software with these tools.</p>

<p>IS/IT is not CS. There are lots of materials at MIT OCW where you can get a flavor (or more) of CS. Or you can pick up a copy of [Amazon.com:</a> Introduction to Algorithms, Second Edition (9780262032933): Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Books](<a href=“http://www.amazon.com/Introduction-Algorithms-Second-Edition-Thomas/dp/0262032937]Amazon.com:”>http://www.amazon.com/Introduction-Algorithms-Second-Edition-Thomas/dp/0262032937) and try to read through it. It’s not very easy if you don’t have the math background.</p>

<p>Knowing programming languages and algorithm is just the first step to write software. To write good software one needs to learn more. This free class teaches a lot of things:</p>

<p>[Lec</a> 1 | MIT 6.172 Performance Engineering of Software Systems, Fall 2010 - YouTube](<a href=“Lec 1 | MIT 6.172 Performance Engineering of Software Systems, Fall 2010 - YouTube”>Lec 1 | MIT 6.172 Performance Engineering of Software Systems, Fall 2010 - YouTube)</p>

<p>Algorithms is just one area in the divergence between IT/IS and CS and a look at Cormen should be enough to convince someone that math is involved in CS.</p>

<p>One could also look at assembler programming. Your typical IS/IT person would ask why anyone would ever need to do assembler programming as you can do everything with HLLs. A simple answer would be access to specialized hardware instructions to perform some operations many times faster than with conventional instructions.</p>

<p>

</p>

<p>And at one time, to pack the maximum amount of functionality into 16K.</p>

<p>“IS/IT, where one is managing computers from a “business” standpoint, is not the same as CS, where one is designing algorithms, software, and hardware.”</p>

<p>-I have no idea what is “managing computers from a “business” standpoint” means.
I have been writing software for aver 30 years. Before that, I was in EE, I believe that EE people are designing hardware. Here I understand, being IT professional, the one who writes computer programs a.k.a “software” and being EE (in previous life) who is also has EE spouse, I know the diff. But I have no idea what is “managing computers from a “business” standpoint” means at all after working in many IT departments in un-related industries, none of IT departements were in “managing computers from a “business” standpoint”. Frankly, I have very limited knowledge of PCs and whenever I have a problem with mine, I have to call our IS service. Maybe that is what you mean? But these are very few people, they are actually in different country as we are international company with global services. My team “services” whole globe also, 24/7. But we are writing new software all the time or correcting existing programs or modifying them for new business requirements. I do not know what “algorithm” is either.</p>

<p>

</p>

<p>I think you have just blown your credibility.</p>

<br>

<br>

<p>Or 256 instructions. My HP-67 programmable calculator has 256 instructions worth of programmable memory. I wrote a few games and other programs for it in high-school.</p>

<p>Back then there was the KIM and ELF SBCs that hobbyists could play with. I think that the KIM just had a four character display, maybe just the old 7-segment LED display.</p>

<br>

<br>

<p>This sounds like application software.</p>

<p>You can look at Mozilla’s Javascript interpreter/JIT compiler modules here:</p>

<p>[mozilla-central</a> mozilla/js/src/](<a href=“http://mxr.mozilla.org/mozilla-central/source/js/src/]mozilla-central”>http://mxr.mozilla.org/mozilla-central/source/js/src/)</p>

<p>It appears that you really don’t know anything about computer science and equate it with IT and IS. I think that it would require some work on your part looking at computer science work for you to understand it. We’ve provided pointers to get a flavor or inkling of an idea but I don’t think that there’s anything that we can do outside of leading a horse to water.</p>

<p>Credibility? What it has to do with trying to undertand the subject of discussion. I never cared about any kind of “credibility”, I am not a witness to any law suit.
Well, anyway, I did not understand it before as much as I do not understand now, it does not matter, we are who we are, as long as we are enjoying what we are doing, right? I am very happy with what I am doing, and it sounds like CS would not be for me, just like EE was not, hated it, even after many years working…I am glad I I switched to Computer Programming, as I do not know how to call any other name.</p>

<p>Now, enough with the arguing…</p>

<p>Pulling up a chair and popcorn.</p>

<p>

</p>

<p>Really? Never?</p>

<p>I don’t believe you. :)</p>

<p>Oh wait. You don’t care.</p>

<p>

And it isn’t anybody’s business anyway :)</p>

<p>

Well the question was why so few Computer Science majors, not why so few IS/IT majors, and not why don’t we just forget CS and just teach the programming that’s been good enough for the kind of jobs I’ve had.</p>

<p>

</p>

<p>When you claim to have two computer-related degrees and 30 years of experience in the field, you’re asking us to find your otherwise unsupported opinions credible, based on that claim. So it has quite a lot to do with “the subject of discussion” when you say you “don’t know what algorithm is.” And if you’re programming, you’re using algorithms, whether you know it or not.</p>

<p>I just opened a pack of Twizzler!</p>

<p>^
I have a yummy pint of cookie dough ice cream!</p>

<p>The industry has changed so much in a generation that the classic comp sci skills of yesteryear are not that valuable. In the 70s we had so many mini computer companies each with their own OS and compilers and such that there was a need for programmers with, say a good knowledge of parsing techniques, memory management, etc. Independent application developers preferred to build their own data management systems into their applications rather than use the database tools that the computer vendor provided, creating a demand for people with skills taught in comp sci courses.</p>

<p>Now the demand seems to be overwhelmingly in matching applications and customer workflows where the nitty gritty skills of an old school comp sci major are far less valuable than the business knowledge of an MIS major. Much like saying there’s far more use for an average person to know how to handle a calculator than be able to do long division or square roots by hand. What money buys has also changed - while it would have made sense to pay 10 grand a year to a programmer to fine-tune code to use memory more efficiently, it makes more sense today to just pay for bigger hardware and not try to tweak the last bit of efficiency in the code.</p>

<p>There is still a fair amount of demand for low-level and classic skills. A lot of the jobs are at higher levels but there are new kinds of problems involving huge amounts of data and computational power where low-level coding has its advantages. There are classes of data analysis where we don’t have the storage and computational power to solve them yet and knowing about the hardware or algorithms can mean the difference in solving a problem and not being able to solve a problem.</p>

<p>There are high level languages which could handle those low level operations more efficiently than average programmers could write. Some languages also use inverted matrix to handle data, so it could handle many more rows of data (billions) than traditional database. It’s the new frontier - Big data.</p>

<p>Modern Intel processors support 256-bit vector operations which can do multiple arithmetic, logical and string manipulation operations in parallel. To get the best performance from a processor, you have to use vectors. </p>

<p>In general, modern compilers are horrible at autovectorizing code.</p>

<p>If you have a recent Visual Studio kit, you’ll find C and assembler code for the runtime library. You’ll also see some assembler vector code and assembler code in general. Why do you think Microsoft uses hand-coded assembler in their development tools if it were so easy to do the same thing in an HLL?</p>

<br>

<br>

<p>Language constructs typically imply storage in main memory. Traditional databases store data on disks. I think that the largest disk installations are at least an order of magnitude larger than the largest memory installations.</p>

<br>

<br>

<p>Please provide an example. I do database engineering so what do I know?</p>

<p>edit: here are some examples of performance instructions that generally aren’t supported by HLLS:</p>

<p><a href=“http://en.wikipedia.org/wiki/SSE4[/url]”>http://en.wikipedia.org/wiki/SSE4&lt;/a&gt;&lt;/p&gt;

<p>One of these instructions allows you to do a 16-byte substring in one cycle. Normally, you’d need at least 16 cycles just to read through the source string.</p>