<?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/"
		>
<channel>
	<title>Comments on: 12 Bonehead Misconceptions of Computer Science Professors</title>
	<atom:link href="http://thewaronbullshit.com/2009/10/19/compsci/feed/" rel="self" type="application/rss+xml" />
	<link>http://thewaronbullshit.com/2009/10/19/compsci/</link>
	<description>Take no prisoners</description>
	<lastBuildDate>Mon, 08 Mar 2010 06:19:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Bugong</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1512</link>
		<dc:creator>Bugong</dc:creator>
		<pubDate>Mon, 08 Mar 2010 06:19:30 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1512</guid>
		<description>While i do agree with most of what you wrote, i have certain quibbles with some of them.

1. I agree, Java is difficult to learn at first but it&#039;s biggest advantage compared to many other languages is it has a very very well documented API. If you need anything, you can just look it up there. I cannot say the same for C even if. Also, most of the things you need are already provided like parsing libraries or linked list libraries which isn&#039;t provided with C.

3. While writing on paper may seem stupid, it does help to organize your thoughts. You don&#039;t have to write perfectly correct code. It helps you see the logic flow. I write pseudocode on paper so i could see the flow. Then when I&#039;ve got it down, i&#039;ll write the proper code. This also useful when you&#039;re in a team. If other people see the way your code works with the psuedocode, it will be easy for them to read your code and improve on it. That&#039;s why there are whiteboards everywhere in Software Engineering companies.=D It reduces cost because when you&#039;ve sorted the kinks out on paper first, you don&#039;t have to redo everything if something happens.=D

4. Lectures are needed. They teach you the programming concepts that you need to know. If you need actual programming lessons, internet tutorials are better. But again, they won&#039;t teach you new algorithms.

5. There aren&#039;t really new algorithms. &quot;New&quot; algorithms are actually mashups of different existing algorithms. Unfortunately, most of them involves problems you&#039;ve never seen before so it is unavoidable that you will have to learn an algorithm which solves a problem you think is stupid.

6. You don&#039;t need to pick it up immediately. Short &quot;prolog&quot; courses are there to get you started. Also, if two different programming languages follow more-or-less the same paradigm, it&#039;s easy to switch in between, like C or Java

9. Amazingly enough, I&#039;ve seen a lot of math in programming. It&#039;s just not as obvious as you&#039;d think.

All in all, i think you&#039;re mixing up computer science and programming. Big difference. Programming&#039;s the tool. Computer science is the knowledge needed to use it.</description>
		<content:encoded><![CDATA[<p>While i do agree with most of what you wrote, i have certain quibbles with some of them.</p>
<p>1. I agree, Java is difficult to learn at first but it&#8217;s biggest advantage compared to many other languages is it has a very very well documented API. If you need anything, you can just look it up there. I cannot say the same for C even if. Also, most of the things you need are already provided like parsing libraries or linked list libraries which isn&#8217;t provided with C.</p>
<p>3. While writing on paper may seem stupid, it does help to organize your thoughts. You don&#8217;t have to write perfectly correct code. It helps you see the logic flow. I write pseudocode on paper so i could see the flow. Then when I&#8217;ve got it down, i&#8217;ll write the proper code. This also useful when you&#8217;re in a team. If other people see the way your code works with the psuedocode, it will be easy for them to read your code and improve on it. That&#8217;s why there are whiteboards everywhere in Software Engineering companies.=D It reduces cost because when you&#8217;ve sorted the kinks out on paper first, you don&#8217;t have to redo everything if something happens.=D</p>
<p>4. Lectures are needed. They teach you the programming concepts that you need to know. If you need actual programming lessons, internet tutorials are better. But again, they won&#8217;t teach you new algorithms.</p>
<p>5. There aren&#8217;t really new algorithms. &#8220;New&#8221; algorithms are actually mashups of different existing algorithms. Unfortunately, most of them involves problems you&#8217;ve never seen before so it is unavoidable that you will have to learn an algorithm which solves a problem you think is stupid.</p>
<p>6. You don&#8217;t need to pick it up immediately. Short &#8220;prolog&#8221; courses are there to get you started. Also, if two different programming languages follow more-or-less the same paradigm, it&#8217;s easy to switch in between, like C or Java</p>
<p>9. Amazingly enough, I&#8217;ve seen a lot of math in programming. It&#8217;s just not as obvious as you&#8217;d think.</p>
<p>All in all, i think you&#8217;re mixing up computer science and programming. Big difference. Programming&#8217;s the tool. Computer science is the knowledge needed to use it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: elhombre</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1511</link>
		<dc:creator>elhombre</dc:creator>
		<pubDate>Mon, 01 Mar 2010 07:11:54 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1511</guid>
		<description>Skip anything you like son, the real world will soon kick that 13 year old emo-fag attitude out of you. As smart as you think you are, it counts for nothing. The world is full of failed geniuses. I strongly suspect that companies turn you down because you&#039;re an insufferable, immature little drama queen. Don&#039;t feel bad, though, you will mature with time.</description>
		<content:encoded><![CDATA[<p>Skip anything you like son, the real world will soon kick that 13 year old emo-fag attitude out of you. As smart as you think you are, it counts for nothing. The world is full of failed geniuses. I strongly suspect that companies turn you down because you&#8217;re an insufferable, immature little drama queen. Don&#8217;t feel bad, though, you will mature with time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allen</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1508</link>
		<dc:creator>Allen</dc:creator>
		<pubDate>Wed, 24 Feb 2010 22:29:47 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1508</guid>
		<description>Mostly a reasonable position.
I take exception to 8,9 and 12 though....

8 GUI&#039;s not important to learning to code.
They are not important.
Just like parsing is not important to learning to code.
And algorithms are not important to coding.
Knowing how to properly write a novel is not important to learning
how to write.
Algorithm&#039;s are important tools. GUI&#039;s are important tools.
Neither of them is coding.
Coding and design are separate but inter-related. I can design
algorithms without knowing anything about coding. Coding is the
process of converting the algorithm&#039;s into executable form.


9) Programming needs Calculus.
Animations/graphics are not the only fields that need calculus.
Advanced financial analysis, datamining, engineering, physics,
advanced chemistry, protein folding all require calculus at
some level. Some more than others.


12 Gates at Radio Shack: Yes you can buy gates, those are the 7400 series devices that have 4 nand gates (or other things like DFF&#039;s) in a 14 pin package. Though it is getting harder to find in many of the Radio Shacks as they cater less to the hobbyist. You can even buy experimentors borads and some simple &quot;toy&quot; learning kits. You can not actually see the gates but you can play with them and learn about them.</description>
		<content:encoded><![CDATA[<p>Mostly a reasonable position.<br />
I take exception to 8,9 and 12 though&#8230;.</p>
<p>8 GUI&#8217;s not important to learning to code.<br />
They are not important.<br />
Just like parsing is not important to learning to code.<br />
And algorithms are not important to coding.<br />
Knowing how to properly write a novel is not important to learning<br />
how to write.<br />
Algorithm&#8217;s are important tools. GUI&#8217;s are important tools.<br />
Neither of them is coding.<br />
Coding and design are separate but inter-related. I can design<br />
algorithms without knowing anything about coding. Coding is the<br />
process of converting the algorithm&#8217;s into executable form.</p>
<p>9) Programming needs Calculus.<br />
Animations/graphics are not the only fields that need calculus.<br />
Advanced financial analysis, datamining, engineering, physics,<br />
advanced chemistry, protein folding all require calculus at<br />
some level. Some more than others.</p>
<p>12 Gates at Radio Shack: Yes you can buy gates, those are the 7400 series devices that have 4 nand gates (or other things like DFF&#8217;s) in a 14 pin package. Though it is getting harder to find in many of the Radio Shacks as they cater less to the hobbyist. You can even buy experimentors borads and some simple &#8220;toy&#8221; learning kits. You can not actually see the gates but you can play with them and learn about them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jkuehn</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1507</link>
		<dc:creator>jkuehn</dc:creator>
		<pubDate>Tue, 23 Feb 2010 09:57:02 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1507</guid>
		<description>You can still purchase a FET at radioshack and make a logic gate.  The OP didn&#039;t know what he was talking about.  Yes, there are cheaper places.  No, the prof&#039;s advice didn&#039;t make a lot of sense because configuring a logic gate at the transistor level relies on electronics experience that most CS guys don&#039;t have.</description>
		<content:encoded><![CDATA[<p>You can still purchase a FET at radioshack and make a logic gate.  The OP didn&#8217;t know what he was talking about.  Yes, there are cheaper places.  No, the prof&#8217;s advice didn&#8217;t make a lot of sense because configuring a logic gate at the transistor level relies on electronics experience that most CS guys don&#8217;t have.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aeiluindae</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1506</link>
		<dc:creator>Aeiluindae</dc:creator>
		<pubDate>Sat, 20 Feb 2010 15:18:02 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1506</guid>
		<description>Odds are, they are not available at most radio shack stores, any more. disappointing, because they are easier to find than dedicated electronic component retailers.</description>
		<content:encoded><![CDATA[<p>Odds are, they are not available at most radio shack stores, any more. disappointing, because they are easier to find than dedicated electronic component retailers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Cage</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1505</link>
		<dc:creator>Jon Cage</dc:creator>
		<pubDate>Fri, 19 Feb 2010 08:42:25 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1505</guid>
		<description>I tend to agree with Brendan. Java&#039;s not a bad first language (although Python would be better IMHO). It teaches your at a reasonably high level about object oriented programming without so many of the opportunities to shoot yourself in the foot as C++ provides.

@Izkata: Why on earth would you want to waste time re-writing code which other people have already written for you? Do you implement string handling routines each time you write any software or do you use the STL? If CS degrees teach you one thing; that it&#039;s okay to make use of other people&#039;s hard work to help you solve really interesting problems then why waste time on the little things?</description>
		<content:encoded><![CDATA[<p>I tend to agree with Brendan. Java&#8217;s not a bad first language (although Python would be better IMHO). It teaches your at a reasonably high level about object oriented programming without so many of the opportunities to shoot yourself in the foot as C++ provides.</p>
<p>@Izkata: Why on earth would you want to waste time re-writing code which other people have already written for you? Do you implement string handling routines each time you write any software or do you use the STL? If CS degrees teach you one thing; that it&#8217;s okay to make use of other people&#8217;s hard work to help you solve really interesting problems then why waste time on the little things?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1504</link>
		<dc:creator>Justin</dc:creator>
		<pubDate>Sun, 07 Feb 2010 23:11:53 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1504</guid>
		<description>I disagree with many of your points; the reasons for which have mostly been stated by others.  This come from my experience as I &quot;did&quot; my undergrad in CS with a software engineering specialization, as well as from teaching programming at the high school level.  Java is a fine language to start students with.  If you are intelligent and hard working enough to attend a decent school, you should be able to be taught what &quot;static&quot;, &quot;void&quot; and &quot;main&quot; mean pretty quickly.  My 15 year old students don&#039;t take all that long.  I agree that lectures are not effective means to teach the process of programming.  But that is only true if it is the only means of learning.  I had an abundant amount of assignments to complete where I could apply what I picked up through lectures.  I do agree that a GUI is secondary.  At the University level the focus is on higher level concepts such as algorithm design, time and space complexities, etc.  These are concerns that address every programming language.  Learning to create a GUI is in some respects a language tethered skill.  It is an application of skills probably better suited to earn in a college program.  Human Computer Interaction (HCI) is a different matter.  It involves understanding human psychology and the way in which we use a computer; knowledge very useful for GUI design.  This is something suited to being taught in a classroom while learning to create a Jframe can be done later on your own time, or on the job.</description>
		<content:encoded><![CDATA[<p>I disagree with many of your points; the reasons for which have mostly been stated by others.  This come from my experience as I &#8220;did&#8221; my undergrad in CS with a software engineering specialization, as well as from teaching programming at the high school level.  Java is a fine language to start students with.  If you are intelligent and hard working enough to attend a decent school, you should be able to be taught what &#8220;static&#8221;, &#8220;void&#8221; and &#8220;main&#8221; mean pretty quickly.  My 15 year old students don&#8217;t take all that long.  I agree that lectures are not effective means to teach the process of programming.  But that is only true if it is the only means of learning.  I had an abundant amount of assignments to complete where I could apply what I picked up through lectures.  I do agree that a GUI is secondary.  At the University level the focus is on higher level concepts such as algorithm design, time and space complexities, etc.  These are concerns that address every programming language.  Learning to create a GUI is in some respects a language tethered skill.  It is an application of skills probably better suited to earn in a college program.  Human Computer Interaction (HCI) is a different matter.  It involves understanding human psychology and the way in which we use a computer; knowledge very useful for GUI design.  This is something suited to being taught in a classroom while learning to create a Jframe can be done later on your own time, or on the job.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: I K</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1503</link>
		<dc:creator>I K</dc:creator>
		<pubDate>Sun, 07 Feb 2010 16:21:06 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1503</guid>
		<description>This blog sounds like the typical comp-sci geek rant going through college/university.  While I agree with most things that you stated, I think that are a few things that you&#039;re missing.  The most important thing is: education gives you a foundation for coding, but experience teaches you the rest.  I learnt to program in many languages on my own between the age of 14 and 19, and if I mus say, I am good at it.  When I took some computer science courses in college, I realized that there were a few BASIC things that I missed that would make me a more &quot;elite&quot; coder.  We had a lot of nerds in my courses, and I was one of them in disguise.  They thought they knew it all because of their &quot;pesonal/1337&quot; experience. Ask them to code simple algorithms for simple problems and you will see the foundation they lack.  They&#039;ll write the most horendous, poorly structured, and non-functional code you&#039;ve ever seen.</description>
		<content:encoded><![CDATA[<p>This blog sounds like the typical comp-sci geek rant going through college/university.  While I agree with most things that you stated, I think that are a few things that you&#8217;re missing.  The most important thing is: education gives you a foundation for coding, but experience teaches you the rest.  I learnt to program in many languages on my own between the age of 14 and 19, and if I mus say, I am good at it.  When I took some computer science courses in college, I realized that there were a few BASIC things that I missed that would make me a more &#8220;elite&#8221; coder.  We had a lot of nerds in my courses, and I was one of them in disguise.  They thought they knew it all because of their &#8220;pesonal/1337&#8243; experience. Ask them to code simple algorithms for simple problems and you will see the foundation they lack.  They&#8217;ll write the most horendous, poorly structured, and non-functional code you&#8217;ve ever seen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dash</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1502</link>
		<dc:creator>dash</dc:creator>
		<pubDate>Sat, 06 Feb 2010 17:23:38 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1502</guid>
		<description>I have to take issue with #5. The only way to learn how to attack a problem that remains unsolved, is to see how other people attacked their problems. You&#039;re not going to learn the solution to EVERYTHING by studying a previous example obviously, but you will learn how problem solve, which is a pretty important skill when it comes to designing algorithms.

Most everything else I agree with. I hated learning Java for the exact reason you said, &quot;What the hell does public static void(String args[]) mean?&quot; to which my prof replied, &quot;Don&#039;t worry about that just yet&quot;. Wouldn&#039;t it be easier to learn how to do for loops and arrays in something like Python, or PHP?</description>
		<content:encoded><![CDATA[<p>I have to take issue with #5. The only way to learn how to attack a problem that remains unsolved, is to see how other people attacked their problems. You&#8217;re not going to learn the solution to EVERYTHING by studying a previous example obviously, but you will learn how problem solve, which is a pretty important skill when it comes to designing algorithms.</p>
<p>Most everything else I agree with. I hated learning Java for the exact reason you said, &#8220;What the hell does public static void(String args[]) mean?&#8221; to which my prof replied, &#8220;Don&#8217;t worry about that just yet&#8221;. Wouldn&#8217;t it be easier to learn how to do for loops and arrays in something like Python, or PHP?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fingerprint211b</title>
		<link>http://thewaronbullshit.com/2009/10/19/compsci/comment-page-1/#comment-1501</link>
		<dc:creator>fingerprint211b</dc:creator>
		<pubDate>Thu, 04 Feb 2010 22:34:16 +0000</pubDate>
		<guid isPermaLink="false">http://thewaronbullshit.com/?p=373#comment-1501</guid>
		<description>1. I don&#039;t agree, really. Java is a very easy and beginner friendly language, and if you&#039;re going to learn programming, you should learn it the right way from the start.
2. I never heard of anyone &quot;writing in machine language&quot; since the punch cards. If you mean assembly languages, then I disagree.
3. I agree.
4. That&#039;s right, but you won&#039;t know what to do unless someone shows you.
5. Usually, an example problem is an EXAMPLE, it&#039;s used to show how an algorithm works, and how to use it. I&#039;m not sure what your problem is.
6. Languages that have similar syntax and belong to the same programming paradigm are generally easy to switch. For example, going from C# to Java is a piece of cake.
9. You probably can get buy without math if you&#039;re an IT engineer, but not if you&#039;re a CS.
12. Please don&#039;t talk about things you don&#039;t have a clue about. Your professor didn&#039;t mean gate as in a part of a FET transistor, he meant a logic gate. Both transistors and gates come in different sizes, not just as parts of integrated circuits, so you CAN buy them in a radio shack.</description>
		<content:encoded><![CDATA[<p>1. I don&#8217;t agree, really. Java is a very easy and beginner friendly language, and if you&#8217;re going to learn programming, you should learn it the right way from the start.<br />
2. I never heard of anyone &#8220;writing in machine language&#8221; since the punch cards. If you mean assembly languages, then I disagree.<br />
3. I agree.<br />
4. That&#8217;s right, but you won&#8217;t know what to do unless someone shows you.<br />
5. Usually, an example problem is an EXAMPLE, it&#8217;s used to show how an algorithm works, and how to use it. I&#8217;m not sure what your problem is.<br />
6. Languages that have similar syntax and belong to the same programming paradigm are generally easy to switch. For example, going from C# to Java is a piece of cake.<br />
9. You probably can get buy without math if you&#8217;re an IT engineer, but not if you&#8217;re a CS.<br />
12. Please don&#8217;t talk about things you don&#8217;t have a clue about. Your professor didn&#8217;t mean gate as in a part of a FET transistor, he meant a logic gate. Both transistors and gates come in different sizes, not just as parts of integrated circuits, so you CAN buy them in a radio shack.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
