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

February, 2011

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Prototypes from Microsoft Education Labs


    Microsoft Education Labs is a sort of technology playground for the Microsoft Education Products group. They have a blog and other pages to share ideas and have discussions about ideas for technology in education for example. They also have some, well let’s call them experimental prototypes. Good software but not quite full time products. I’m blogged about a number of these prototypes in the past but this seemed like a good time to grab a bunch of information and links and share the whole bunch of them at once. Note that if you use Moodle there are several Moodle related prototypes here.

    Prototypes From Education Labs

    Ready to get your hands dirty? Now that you’re an honorary member of the Education Labs team, you can start exploring our prototypes. Remember, these projects are concept tests with no current plans to be included in any shipped product, so roll up your sleeves, because they may be a little rough around the edges.  We hope you'll give them a try and tell us what you think.


    Collage is a presentation tool that has been created exclusively for supporting instruction in K-12 classrooms. The tool enables teachers to interactively display paper-based materials (like curricular textbooks, and hand-made notes) along with relevant digital multimedia.

    Chemistry Add-in for Word

    This Add-in enables you to easily author documents that include chemistry symbols and notations. It even has a 2D molecule editor!


    Check out this site where you can play with online flashcards. It keeps track of what you know, and uses that information to determine which card to show you next. It's memory optimization based on science combined with a fun, flashy look and feel.

    Math Worksheet Generator

    This tool makes it easy to create a printable worksheet of practice problems. Just type in a sample expression, and the tool will create a worksheet of more problems just like it.

    Microsoft Live Services Plug-in for Moodle

    Tired of having to leave Moodle to check your e-mail and chat with a friend? Now Moodle administrators can add Live Services to Moodle sites with the Microsoft Live Services Plug-in. Students and teachers can then use their Windows Live IDs to sign into Moodle and access their Live Services, such as e-mail, instant messenger, and calendar without leaving Moodle.

    Office Add-in for Moodle

    Uploading files to Moodle has never been easier. You can save documents directly to Moodle courses from Word, Excel, and PowerPoint. Microsoft Add-in for Moodle eliminates the need to save a document on your PC and the tedious browse and upload steps to upload to Moodle. Open Moodle documents from within Office applications, change them and save them. That’s all there is to it.

    Enabling Microsoft Office SharePoint Server as the File System for Moodle

    Learn how to hook up your Moodle to SharePoint to take advantage of versioning and other file management features.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Recursive Loops


    Last week I wrote about loops and how some students seem to have trouble with them. On the link to it from Facebook one friend of mine asked “what’s a for loop?” He’s a Scheme sort of guy and a lot of looping in functional languages like Scheme is done with recursion. So I thought I should play with recursive loops a bit. Just for the fun of it. Yeah, some of us do play with code for fun. Recursion in general gives some students trouble. I must confess that I struggled with it for a while. For me I found the idea of using recursion for looping to be unnecessarily complicated. That is probably a function of not using a functional language though. This is probably a good part of the argument for students learning several programming paradigms BTW.

    Students of mine have several times discovered recursion on their own. Often this is because they are learning a new programming language so they know that loops exist but they do not know the syntax in the new language. So they think “well I can have the function call itself.” Often they decide to have main (or equivalent) call itself. Generally not a great idea. The worst part is that they don’t think about all the parts of a loop – specifically they forget about the check to see if the loop is finished. This is when we have a teachable moment to talk about stack overflows.” So generally it is best to have a separate routine that calls itself after being called initially from outside. For example:

    Module Module1
        Sub Main()
            GoDeep(0)       ' Set initial condition in first call
        End Sub
        Sub GoDeep(ByVal i As Integer)
            Console.WriteLine("Up   " & i.ToString)
            If i < 9 Then       ' Are we done yet?
                GoDeep(i + 1)   ' if not, change the condition and call ourselves again
            End If
            Console.WriteLine("Down " & i.ToString)
        End Sub
    End Module

    This program prints out the following:


    It’s still a loop of sorts and it follows all the same rules for for loops, while loops, do loops and all the other sorts of loops in procedural languages.

    Of course if you use recursion too deeply you get something like this:


    This demonstrates one other problem with recursion though – it takes a lot of resources. So while there are times when nothing but recursion will do I generally prefer “regular” loops when those will do the trick.

Page 7 of 7 (20 items) «34567