Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

September, 2010

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Interesting Links 13 September 2010


    Lots of good links this week. And if you are visiting via the web I wrote a rare week-end post on Object Oriented Programming.Design that I hope you’ll take a look at. Also most of these links were sent out first on Twitter. You can follow me on Twitter at @AlfredTwo.

    The speaker presentations from the 2010 CS&IT Symposium are now available at the CSTA web site. There are two that I had a part in including Computer Science, Game Development and the XNA Game Studio Platform where Steve Scanlan spends more of the presentation talking about how he uses XNA and game development with his students.

    Download presentation as PDF (2 zipped files)
    View streaming video of session

      From @MSTechStudent is the announcement that Microsoft US is giving away an Xbox 360 console with the new Kinect each week to one random person who registered for the Imagine Cup. Visit the Imagine Cup US rules page and scroll down to MICROSOFT IMAGINE CUP "KINECT" SWEEPSTAKES for the details. And if you are a student sign up and put a team together.

        I see that the people at iRobot are running a 20 in 20 robotics roadshow in Massachusetts. I’ve talked to several people at iRobot and they are serious about building interest among students in STEM fields. See their SPARK Starter Programs for the Advancement of Robotics Knowledge web site for more information about what they are doing for education.

        Are you interested in teaching functional programming? Microsoft is offering their first F# in Education Workshop (Cambridge MA 5 Nov 201) and Don Syme (principal person behind F#) talks about the F# in Education workshop on his blog.

        The Microsoft Office team announced the the 2011 calendar template contest which started last week see Office blog or the Calendar Template Contest Home Page for more details.

        I found a post I really liked on the Blog@CACM blog last week - Old Geeks Never Die, They Just Get Grumpier I found this post to express a lot of how I feel about programming language wars and a lot of other sometimes heated discussions in computer science. Am I getting older? For sure. Grumpier? Maybe.

        Charlie Kindel (on Twitter @ckindel) from the Windows Phone 7 system Tweeted “Remember Tetris for Windows (1991?!?)? DaveE wrote it. He also wrote this "Using the Accelerometer on Windows Phone 7"

        Also related to Windows Phone 7 @MSTechStudent Tweeted about an essential guide for developers moving to Windows Phone 7 and C# from the Objective-C or Java languages and this XNA Framework 4.0 training kit.

          Lastly my friend Peter Vogel  @PeterVogel pointed out this good post on the CSTA blog CS Lessons From Facebook. If you are going to use case studies (and I’m a fan) you might as well use case studies that students can relate to. Facebook qualifies.

        • Computer Science Teacher - Thoughts and Information from Alfred Thompson

          Objects When? If Ever?


          This post started as a comment on Mark Guzdial’s blog (Moti asks: Objects Never? Well, Hardly Ever!) but I decided to elaborate some. I think this is an important discussion to have both in education and in industry. Mark’s post was inspired by an article by Moti Ben-Ari Objects Never? Well, Hardly Ever! | September 2010 | Communications of the ACM. (That is premium content so if you are not an ACM member it will not be fully visible – sorry about that) The key comment from the article is probably:

          I claim that the use of OOP is not as prevalent as most people believe, that it is not as successful as its proponents claim, and, therefore, that its central place in the CS curriculum is not justified.

          In computer science education today it is taken pretty much as an article of faith that object oriented design is THE design paradigm to teach. The only debate most of the time is when in the curriculum to introduce it. It took me a while to grok OOP. I'm old school and remember the move to structured programming in the early 70s. There was a lot of discussion back them about having to bend designs to make them fit the “new” structured methodology. Programming  languages changed to reduce that problem but the "go to is bad" argument still remains - albeit somewhat underground. :-) But by and large the benefits were obvious enough that structured programming "won. We got a lot of good things from this change. Loops became more powerful and flexible for example. Design got easier and program maintenance got much easier.

          Some say that OOP is the next step but I'm not so sure. I think it is an additional step that can co-exist with other paradigms. Proponents want to replace other ways of designing software and that is where the object first or objects later debate comes in. There is a third way that is to use objects in parallel. This argument that gets lost in the shuffle though. That is the school of thought I find myself in.

          The way I see it objects fit into more traditional programs and make some things easier. Making everything an object often adds unnecessary and even unhelpful complexity to what can be simple designs. One only has to look at "hello world" written as an OOP program, say in Java. Compare that with the same in old languages like BASIC or even dynamic languages like Python. I don’t see why objects can’t be used with great efficiency when appropriate in a more traditionally designed program but always and for everything? Not so sure about that.

          The problem as I see it is that objects are great tools for what they are good at but poor tools for many other things. Everything doesn’t have to be an object. Not every target in carpentry is a nail and so you need other tools than hammers. Programmers should be about having a full toolbox and not a limited one. To many people this means knowing multiple programing languages and I agree with that. I also think that programmers should be comfortable with multiple paradigms. That means functional programming as well as procedural or object oriented. It means that people should be able to use multiple tools (languages and paradigms) in the same over all project. Why not use F#( a functional language) along with C# and Visual Basic and maybe even Iron Python (a dynamic language) in the same project? Use the right tool a the right time. (This is easy with Microsoft’s .NET framework and Visual Studio of course. I’m not sure how easy it is in other tools and platforms.)

          Anyway I am tired of language wars. You may want to read Old Geeks Never Die, They Just Get Grumpier on the Blog@CACM to better understand that point of view.

        • Computer Science Teacher - Thoughts and Information from Alfred Thompson

          Most Popular Posts From August


          It turns out the be complicated to figure out what the most popular blog posts are for a particular month. There are two sets of data I look through. One set, from Feedburner, shows (in theory) the top number of posts read by subscribers to this blog. The second set of numbers, from the hosting service, shows (again in theory) the top posts as read by web browsers. There is a lot of similarity in the two lists but it is not exact. For one thing the web traffic comes in large part from search engines. It looks like a lot of people in August were searching for things related to “What do you do on the first day of class” which led them to a post from September 2007! My posts from July of this year on Visual Programming languages and the new Microsoft Technology Associate certifications also received a lot of web traffic in August. The top 5 based on being on both lists is below though.

          1. Non-Myths About Programming
          2. Computer Science is NOT Boring!
          3. Free Microsoft Office Add-ins for Education
          4. Windows Phone 7 Sample applications
          5. Girls, Games and Software Development

          I hope you’ll read through these if you missed them. Many of them have some comments which are often well worth the read. I encourage you to add your opinions to those and any other recent posts. And of course any I post in the future. Comments make it all much better for everyone. Are any of your favorite posts from August not on this list? Or any you think were worthless? I could always make a least popular list but somehow I think I would find that less personally satisfying. Smile

        Page 4 of 6 (18 items) «23456