<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx</link><description>digg_url = "http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx";digg_title = "Making a List, Checking it Twice";digg_bgcolor = "#EEEEEE";digg_skin = "normal"; digg_url = undefined;digg_title = undefined;digg_bgcolor</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9805677</link><pubDate>Fri, 26 Jun 2009 19:37:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805677</guid><dc:creator>Leigh Ann</dc:creator><description>&lt;p&gt;How can we choose a language without knowing what the programming goals of the course are?&lt;/p&gt;
&lt;p&gt;Lately I've become more and more convinced that we (as CS educators) take the wrong approach to selecting an introductory language. &amp;nbsp;We argue the merits of the language as a whole, with a small bit about its pedagogical importance.&lt;/p&gt;
&lt;p&gt;I think there needs to be some serious research here as to the aspects of an introductory language and how it affects students educationally.&lt;/p&gt;
&lt;p&gt;Anyway - without knowing what parts of &amp;quot;programming&amp;quot; we are teaching - aren't we putting the cart before the horse?&lt;/p&gt;
</description></item><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9805680</link><pubDate>Fri, 26 Jun 2009 19:42:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805680</guid><dc:creator>Alfred Thompson</dc:creator><description>&lt;p&gt;It's funny you should bring that up. I was thinking the same thing the other day. I thought of this post first but didn't get down to writing it right away. I realized that when ever someone asks about CS curriculum the talk too often turns to tools rather than concepts. I am as guilty of that as any one but how often have you heard someone just jump in with tool talk right away? Pretty offen I'd imagine. I feel another post coming on. :-)&lt;/p&gt;
</description></item><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9805703</link><pubDate>Fri, 26 Jun 2009 20:09:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805703</guid><dc:creator>Ian Bogost</dc:creator><description>&lt;p&gt;Visual Basic is a fascinating programming environment. As much as C has been a sort of lingua franca for programming over the past 20 years, few seem willing to admit that a huge number of computer programs used in business and creative contexts have been written in VB. And often, those programs are written by people who would not identify as &amp;quot;computer scientists.&amp;quot; &lt;/p&gt;
&lt;p&gt;It seems like such a state of affairs does at least suggest taking VB seriously as a platform. I find the suggestion in this post compelling, or at least provocative. &lt;/p&gt;
&lt;p&gt;Perhaps if the CS world were more concerned with getting people to enjoy and use programming in their personal and professional lives, and less concerned with maintaining its major numbers and other meaningless statistics, we would all benefit.&lt;/p&gt;
&lt;p&gt;APCS aside, VB.NET can be used for Windows apps and for web apps. Microsoft is missing an opportunity by limiting their tools to their own OS. Object Basic environments like Real Basic and Blitz have long offered x-platform compilation (Win/Mac/Linux).&lt;/p&gt;
&lt;p&gt;A nitpick: while VB.NET Express is free, it still requires registration with Microsoft to activate. Some of us consider the act of giving our information to corporations an actual cost, not merely a trifle. &lt;/p&gt;
</description></item><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9805707</link><pubDate>Fri, 26 Jun 2009 20:21:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805707</guid><dc:creator>Leigh Ann</dc:creator><description>&lt;p&gt;And why settle on one language? &amp;nbsp;If this course is supposed to be about principles of computer science why wouldnt you compare and contrast different language paradigms?&lt;/p&gt;
&lt;p&gt;How is Java/C++ different from Scheme and should you be able to write a simple instruction in each? &amp;nbsp;Isnt that a principle of CS?&lt;/p&gt;
&lt;p&gt;If we did get rid of APCS AB (the harder exam) - lets NOT add an APCS A &amp;quot;lite&amp;quot; with some extra ethics. &amp;nbsp;Lets give this exam some meat to make it worthy of college credit. &amp;nbsp;Why not make a list of the &amp;quot;Principles&amp;quot; of CS that would make this worthy of credit at major institutions. &amp;nbsp;I'll be even with programming de-emphasized there are lots of other concepts out there begging to be covered.&lt;/p&gt;
&lt;p&gt;* Computability and the Halting Problem&lt;/p&gt;
&lt;p&gt;* Machine Learning (there are some great GUI interfaces like Weka that require NO programming but allow you to build complex data models)&lt;/p&gt;
&lt;p&gt;* Human Computer Interaction - what are some of the basic principles here? Could easily mock up interfaces and talk about design and interactivity&lt;/p&gt;
&lt;p&gt;* Discrete Mathematics - How does RSA work? What is encryption and why is it not REALLY safe?&lt;/p&gt;
&lt;p&gt;* Security and Privacy - I really think students need a much better understanding of this domain&lt;/p&gt;
&lt;p&gt;* Robotics - What are the current SOFTWARE problems with robotics?&lt;/p&gt;
&lt;p&gt;* Graphics - What is the difference between Vector art and traditional pixel graphics&lt;/p&gt;
&lt;p&gt;* Internet and Web technologies - what is a content management system? &amp;nbsp;What is a mash-up? What tools exist for creating them? &amp;nbsp;What is XML and why is it so powerful? &amp;nbsp;What does it mean to have a database behind a web site?&lt;/p&gt;
&lt;p&gt;These are our big ideas. &amp;nbsp;All of them are covered in depth in college level CS courses - why not change our idea of &amp;quot;101&amp;quot; to match other disciplines in a survey? (ie Bio or physics - you get lots of big ideas before diving into the specifics)&lt;/p&gt;
</description></item><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9805725</link><pubDate>Fri, 26 Jun 2009 20:37:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805725</guid><dc:creator>Ian Bogost</dc:creator><description>&lt;p&gt;Leigh Ann, it seems like you're right that all of these ideas are principles of computer science. Well, maybe not robotics, which seems like an application area (why not commerce? why not art?).&lt;/p&gt;
&lt;p&gt;Here's a question I often wonder about:why is it that computer science is so undecided about what it's core principles are? It seems unusual.&lt;/p&gt;
</description></item><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9805827</link><pubDate>Fri, 26 Jun 2009 22:23:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805827</guid><dc:creator>Alfred Thompson</dc:creator><description>&lt;p&gt;Ian, One option is to down load the ISO image for installing all of the Express editions. This is designed for ease of install in classroom/lab situations and the copies installed from these ISO images do not have to be registered to activate. Little known secret. :-)&lt;/p&gt;
</description></item><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9805914</link><pubDate>Fri, 26 Jun 2009 23:00:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805914</guid><dc:creator>Spencer Brody</dc:creator><description>&lt;p&gt;There are a lot of great points here. &amp;nbsp;I like the idea of using multiple languages in this new course to expose students to a variety of languages and so there can be some discussion about the pros and cons of each language. &amp;nbsp;I actually think that Java should NOT be offered as an option for this course, so long as the APCS &amp;quot;programming&amp;quot; remains in Java. &amp;nbsp;I think Java is a great language and since it is so popular right now, it makes a lot of sense to teach it (and especially Object Oriented Programming) in high school, and that makes sense to be done in the &amp;quot;programming&amp;quot; course. &amp;nbsp;But for a &amp;quot;principles&amp;quot; course, there are many other languages that are much better to teach the foundations of computer science in, and students should be exposed to multiple languages to see how the different concepts and techniques show up in different languages. &amp;nbsp;Do you know which course is going to be presented as the &amp;quot;intro&amp;quot; course? &amp;nbsp;In my mind it would make more sense to start with the &amp;quot;principles&amp;quot; course and introduce students to programming with some simpler to pick up languages, then the next year - after the students understand the principles - introduce them to Java and OOP and get into more complicated programming techniques. &amp;nbsp;In that situation, I'd say start with VB for half a year, since its real easy to learn and its GUI interface allows students to create interesting programs they can show off to their friends fairly quickly. &amp;nbsp;After that, I'd say move to Python - its still pretty easy to pick up, but its also more powerful than VB and it's growing rapidly in popularity right now and showing up in college intro courses more and more (along with Scheme, but despite my love of Scheme I think it may be a bit scary to highschoolers in their first programming course). &amp;nbsp;I'm actually not a huge fan of teaching C++ in high school... I agree that it's a very important language that any programmer should know, but it has so many pitfalls and complexities when you are first learning about it that I fear would be too frustrating to someone just learning programming and would be likely to turn the student off to CS in general. &amp;nbsp;I've never used C#, so I can't say much about it... but from what I've heard its very similar to Java, so I'm not sure what would be gained by exposing students to it. &amp;nbsp;In my ideal, the only languages offered for the &amp;quot;principles&amp;quot; course would be VB, Python and Scheme, requiring that 2 of the 3 be taught, and recommending VB and Python.&lt;/p&gt;
&lt;p&gt;I still say, however, that the hard part isn't picking the languages, but deciding the curriculum of concepts that need to be taught and figuring out how to make sure they get taught well. &amp;nbsp;By concepts I don't mean just things like graphics or security (though those are of course important) but also things like software engineering - teaching students how to think about code, how to design and structure a program so as to be clear, modular, efficient, etc. &amp;nbsp;I see very often people learning the syntax and knowing how to make programs that do what they want, but without understanding the value of abstractions and writing modular, reusable code. &amp;nbsp;I think this is something that is much harder to teach and measure, however, as well as to find teachers at the high school level who can really understand these concepts well enough to convey them to students. &amp;nbsp;Defining the curriculum in a way that is clear and covers all the necessary important topics is going to be really important and also really difficult, considering how abstract some of these notions are and considering Ian's point that CS isn't very unified in its idea about what the core principles and concepts of computer science even are...&lt;/p&gt;
</description></item><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9806116</link><pubDate>Sat, 27 Jun 2009 03:00:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9806116</guid><dc:creator>Ryan Rampersad</dc:creator><description>&lt;p&gt;I'm a high school student taking APCS in my junior year. I don't know what the curriculum will cover yet even though I begged the teacher to at least give me last years IB course but he didn't. I actually pointed him to the CB notice that explains the discontinuing of APCSAB.&lt;/p&gt;
&lt;p&gt;When you say first language, do you mean the real _first_ one? If I taught an APCS class, it would have a class before it too, an actual introductory class. It would start with javascript because it runs everywhere. It's easy and effortless and it looks pretty. It also has many computer science concepts like classes/prototypes or strict types/loose types. We'd move into Java or C# after that. I pointed my schools CS teacher to DreamSpart too, he uses Macs and is oblivious to everything else. I think C# is actually better because it can handle those graphics that teens want so much better than Java.&lt;/p&gt;
&lt;p&gt;I'll be able to tell you guys what I think later into the start of the school year once I start that class. I know some programming so I'm not there for that, I'm there for the concepts which have eluded me in books and other places.&lt;/p&gt;
&lt;p&gt;I really want to learn about this but the CB didn't exactly make it any easier.&lt;/p&gt;
&lt;p&gt;Have a good one.&lt;/p&gt;
</description></item><item><title>re: Making a List, Checking it Twice</title><link>http://blogs.msdn.com/alfredth/archive/2009/06/26/making-a-list-checking-it-twice.aspx#9807123</link><pubDate>Sun, 28 Jun 2009 08:34:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9807123</guid><dc:creator>Myra Deister</dc:creator><description>&lt;p&gt;There has been many interesting points made. &amp;nbsp;The only caution I have is that at least at my high school, I have no funding. &amp;nbsp;In the Visual Basic class, I have been using Visual Basic.Net Express, but I don't have a textbook because there are no funds to purchase one. &amp;nbsp;Most of what I do in my computer science classes is what I have managed to put together either free or I have financed it. &amp;nbsp;I would love to do more with robotics, but I haven't found a way to finance it. &amp;nbsp;&lt;/p&gt;
</description></item></channel></rss>