<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: What&#8217;s in a CS degree?</title>
	<atom:link href="http://mendicantbug.com/2008/01/28/whats-in-a-cs-degree/feed/" rel="self" type="application/rss+xml" />
	<link>http://mendicantbug.com/2008/01/28/whats-in-a-cs-degree/</link>
	<description>Wanderings into computational linguistics, science, social media and life...</description>
	<lastBuildDate>Mon, 23 Apr 2012 02:02:52 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Future of Computing Education &#171; The Mendicant Bug</title>
		<link>http://mendicantbug.com/2008/01/28/whats-in-a-cs-degree/#comment-532</link>
		<dc:creator><![CDATA[Future of Computing Education &#171; The Mendicant Bug]]></dc:creator>
		<pubDate>Mon, 11 Feb 2008 23:36:28 +0000</pubDate>
		<guid isPermaLink="false">http://ealdent.wordpress.com/?p=484#comment-532</guid>
		<description><![CDATA[[...] around out there, trying to figure out just where we&#8217;re going wrong. Recently I wrote about Robert Dewar&#8217;s views on where CS education has failed. He made the case that graduates of most CS programs are incompetent and that employers have to go [...]]]></description>
		<content:encoded><![CDATA[<p>[...] around out there, trying to figure out just where we&#8217;re going wrong. Recently I wrote about Robert Dewar&#8217;s views on where CS education has failed. He made the case that graduates of most CS programs are incompetent and that employers have to go [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Josh</title>
		<link>http://mendicantbug.com/2008/01/28/whats-in-a-cs-degree/#comment-521</link>
		<dc:creator><![CDATA[Josh]]></dc:creator>
		<pubDate>Tue, 05 Feb 2008 02:28:18 +0000</pubDate>
		<guid isPermaLink="false">http://ealdent.wordpress.com/?p=484#comment-521</guid>
		<description><![CDATA[I&#039;ve read other articles about this very topic - I believe Joel on Software discussed it last year, or perhaps two years ago (or maybe even older and I only read it that recently). They brought up the same points. They then had a link to a &lt;a href=&quot;http://www.joelonsoftware.com/articles/TestYourself.html&quot; rel=&quot;nofollow&quot;&gt;test&lt;/a&gt; which requires at least - probably more than - passing familiarity with several real CS topics: functional programming (particularly, aspects of lambda calculus and how they&#039;re used in programming) and pointers.

I feel my education in CS was pretty good, but then again I started before the dot-com-boom (although only by a few years). I did not learn how to expertly program in any particular language, but was taught the paradigms, tools, and capabilities of many languages: Pascal and C for modular and system programming, Lisp for functional programming, MIPS RISC Assembler for low-level programming (though we only &quot;ran&quot; our programs on a MIPS emulator for Windows that &lt;b&gt;greatly&lt;/b&gt; over-simplified I/O - but the point wasn&#039;t to learn I/O in assembly but to be familiar with assembly, how it is an analog to the way modern processors function, and how it was a precursor to higher-level languages), and Smalltalk for object-oriented programming. I then had a junior-level class that was a survey of programming languages and paradigms which projects in C++ and Prolog. The focus wasn&#039;t on learning everything about a particular language, but learning concepts - like OOA/OOD, functional programming, decomposition and abstraction, and (everyone&#039;s favorite) pointers.

Prolog, the declarative language that relies on a predicate calculus resolution engine, was the coolest - but also seemed the least practical due to the level of abstraction in which one had to work in order to accomplish even simple concepts - like data structures. It is cool because it is different and makes for great problem-solving exercises. Despite its impracticality for most problem domains, it is absolutely essential for others.

I do agree that newer graduates and students - since the dot-com-boom - seem to be taught some of these concepts more superficially. And, as Melinda also observed, it was scary how many students had great difficulty really grasping some of the programming concepts but were still able to pass.

I&#039;m fairly certain that math and science are still at the core of Georgia Tech&#039;s program - which required a decent bit of physics, calculus, and lab science of all science and engineering students. And when I was there I had to take some painful algorithm classes, too (I can think of at least one sophomore class and one junior class). But that isn&#039;t enough for CS. Skills needed by serious software engineers (vs. code monkeys) include a much greater ability to think abstractly. I think this is where learning lambda and predicate calculus really pay off. This level of abstraction requires a different way of looking at problems - something that can&#039;t simply be learned while learning match and science or while learning how to program in a particular language.]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve read other articles about this very topic &#8211; I believe Joel on Software discussed it last year, or perhaps two years ago (or maybe even older and I only read it that recently). They brought up the same points. They then had a link to a <a href="http://www.joelonsoftware.com/articles/TestYourself.html" rel="nofollow">test</a> which requires at least &#8211; probably more than &#8211; passing familiarity with several real CS topics: functional programming (particularly, aspects of lambda calculus and how they&#8217;re used in programming) and pointers.</p>
<p>I feel my education in CS was pretty good, but then again I started before the dot-com-boom (although only by a few years). I did not learn how to expertly program in any particular language, but was taught the paradigms, tools, and capabilities of many languages: Pascal and C for modular and system programming, Lisp for functional programming, MIPS RISC Assembler for low-level programming (though we only &#8220;ran&#8221; our programs on a MIPS emulator for Windows that <b>greatly</b> over-simplified I/O &#8211; but the point wasn&#8217;t to learn I/O in assembly but to be familiar with assembly, how it is an analog to the way modern processors function, and how it was a precursor to higher-level languages), and Smalltalk for object-oriented programming. I then had a junior-level class that was a survey of programming languages and paradigms which projects in C++ and Prolog. The focus wasn&#8217;t on learning everything about a particular language, but learning concepts &#8211; like OOA/OOD, functional programming, decomposition and abstraction, and (everyone&#8217;s favorite) pointers.</p>
<p>Prolog, the declarative language that relies on a predicate calculus resolution engine, was the coolest &#8211; but also seemed the least practical due to the level of abstraction in which one had to work in order to accomplish even simple concepts &#8211; like data structures. It is cool because it is different and makes for great problem-solving exercises. Despite its impracticality for most problem domains, it is absolutely essential for others.</p>
<p>I do agree that newer graduates and students &#8211; since the dot-com-boom &#8211; seem to be taught some of these concepts more superficially. And, as Melinda also observed, it was scary how many students had great difficulty really grasping some of the programming concepts but were still able to pass.</p>
<p>I&#8217;m fairly certain that math and science are still at the core of Georgia Tech&#8217;s program &#8211; which required a decent bit of physics, calculus, and lab science of all science and engineering students. And when I was there I had to take some painful algorithm classes, too (I can think of at least one sophomore class and one junior class). But that isn&#8217;t enough for CS. Skills needed by serious software engineers (vs. code monkeys) include a much greater ability to think abstractly. I think this is where learning lambda and predicate calculus really pay off. This level of abstraction requires a different way of looking at problems &#8211; something that can&#8217;t simply be learned while learning match and science or while learning how to program in a particular language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris</title>
		<link>http://mendicantbug.com/2008/01/28/whats-in-a-cs-degree/#comment-515</link>
		<dc:creator><![CDATA[Chris]]></dc:creator>
		<pubDate>Thu, 31 Jan 2008 14:39:08 +0000</pubDate>
		<guid isPermaLink="false">http://ealdent.wordpress.com/?p=484#comment-515</guid>
		<description><![CDATA[I fear I may be making an argument in defense of bad CS, but here I go anyway.  Let&#039;s realize that the world exploded with demand for developers only a short while ago.  Up until the late 1980s, getting a CS degree was a bit like getting a degree in logic: only seriously smart, internally motivated individuals did it.  Often, these were people who had been playing with programing since they were kids, so they already knew how to write code.  Therefore, a program could be focused on algorithm development and math and not scare off potential enrollment.

It wasn&#039;t until the 1990s that the demand for developers became so great that just about anyone who could read an O&#039;Reilly book could get a job writing code.  CS programs began advertising themselves (quite of their own accord) as the hottest ticket on campus -- the best way to get a great job fast.  So they attracted an entirely different sort of student (the sort with no background in actual programming).  Now, CS programs are seen a lot like accounting programs: just dull job training.

And there&#039;s something good about this.  Because the world needs a lot of code written.  So, if standard libraries help average people write code that gets the job done, so be it.  Would you really expect the average construction worker to have a degree in architecture?  How many houses would get built if that were the case?

So, in defense of code monkeys, there&#039;s a lot of code to be written, and the logicians sure ain&#039;t gonna do it.]]></description>
		<content:encoded><![CDATA[<p>I fear I may be making an argument in defense of bad CS, but here I go anyway.  Let&#8217;s realize that the world exploded with demand for developers only a short while ago.  Up until the late 1980s, getting a CS degree was a bit like getting a degree in logic: only seriously smart, internally motivated individuals did it.  Often, these were people who had been playing with programing since they were kids, so they already knew how to write code.  Therefore, a program could be focused on algorithm development and math and not scare off potential enrollment.</p>
<p>It wasn&#8217;t until the 1990s that the demand for developers became so great that just about anyone who could read an O&#8217;Reilly book could get a job writing code.  CS programs began advertising themselves (quite of their own accord) as the hottest ticket on campus &#8212; the best way to get a great job fast.  So they attracted an entirely different sort of student (the sort with no background in actual programming).  Now, CS programs are seen a lot like accounting programs: just dull job training.</p>
<p>And there&#8217;s something good about this.  Because the world needs a lot of code written.  So, if standard libraries help average people write code that gets the job done, so be it.  Would you really expect the average construction worker to have a degree in architecture?  How many houses would get built if that were the case?</p>
<p>So, in defense of code monkeys, there&#8217;s a lot of code to be written, and the logicians sure ain&#8217;t gonna do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brokenbokken</title>
		<link>http://mendicantbug.com/2008/01/28/whats-in-a-cs-degree/#comment-506</link>
		<dc:creator><![CDATA[brokenbokken]]></dc:creator>
		<pubDate>Tue, 29 Jan 2008 21:02:07 +0000</pubDate>
		<guid isPermaLink="false">http://ealdent.wordpress.com/?p=484#comment-506</guid>
		<description><![CDATA[This is a good article.  I agree that the concepts needed to become a good software engineer are taught, but most students just don&#039;t grasp them.  I think it&#039;s better to teach practices than languages.  Who cares that I can program in 13 different programming languages if I can&#039;t even produce a decent architecture?  

As an IT Consultant, I have begun to realize how important it is to focus away from a specific language and focus more on the basic concepts, commonly used algorithms, and best practices.  Anyone can pick up a book and learn to program in a language, but without a foundation that crosses the programming language barrier, you&#039;re just a code monkey.]]></description>
		<content:encoded><![CDATA[<p>This is a good article.  I agree that the concepts needed to become a good software engineer are taught, but most students just don&#8217;t grasp them.  I think it&#8217;s better to teach practices than languages.  Who cares that I can program in 13 different programming languages if I can&#8217;t even produce a decent architecture?  </p>
<p>As an IT Consultant, I have begun to realize how important it is to focus away from a specific language and focus more on the basic concepts, commonly used algorithms, and best practices.  Anyone can pick up a book and learn to program in a language, but without a foundation that crosses the programming language barrier, you&#8217;re just a code monkey.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Adams</title>
		<link>http://mendicantbug.com/2008/01/28/whats-in-a-cs-degree/#comment-505</link>
		<dc:creator><![CDATA[Jason Adams]]></dc:creator>
		<pubDate>Tue, 29 Jan 2008 19:54:33 +0000</pubDate>
		<guid isPermaLink="false">http://ealdent.wordpress.com/?p=484#comment-505</guid>
		<description><![CDATA[From a personal development perspective, I would think that going back to take some more math and algorithms courses would probably benefit you more than trying to fulfill the requirements of a degree, since they are sometimes arbitrary and/or ridiculous.  Of course, if all you are missing are those classes, that would work out well.  I&#039;m always the wrong person to ask whether you should go back to school.  My answer is unequivocally &quot;YES!!!!!1111zomglol1123eleventytwo111&quot;]]></description>
		<content:encoded><![CDATA[<p>From a personal development perspective, I would think that going back to take some more math and algorithms courses would probably benefit you more than trying to fulfill the requirements of a degree, since they are sometimes arbitrary and/or ridiculous.  Of course, if all you are missing are those classes, that would work out well.  I&#8217;m always the wrong person to ask whether you should go back to school.  My answer is unequivocally &#8220;YES!!!!!1111zomglol1123eleventytwo111&#8243;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Melinda Weathers</title>
		<link>http://mendicantbug.com/2008/01/28/whats-in-a-cs-degree/#comment-503</link>
		<dc:creator><![CDATA[Melinda Weathers]]></dc:creator>
		<pubDate>Tue, 29 Jan 2008 14:05:11 +0000</pubDate>
		<guid isPermaLink="false">http://ealdent.wordpress.com/?p=484#comment-503</guid>
		<description><![CDATA[Yeah, as a CS Teaching Assistant, I was surprised at how many programming assignments just didn&#039;t work.  More surprisingly, in my class with the other Teaching Assistants where we would grade each other&#039;s projects, many of their projects didn&#039;t work either!

This degree business is a bit of a touchy subject with me since I don&#039;t have a CS degree, and I haven&#039;t decided if it makes sense to go back and get one or not.  So this was an interesting post.]]></description>
		<content:encoded><![CDATA[<p>Yeah, as a CS Teaching Assistant, I was surprised at how many programming assignments just didn&#8217;t work.  More surprisingly, in my class with the other Teaching Assistants where we would grade each other&#8217;s projects, many of their projects didn&#8217;t work either!</p>
<p>This degree business is a bit of a touchy subject with me since I don&#8217;t have a CS degree, and I haven&#8217;t decided if it makes sense to go back and get one or not.  So this was an interesting post.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

