Thursday, September 24, 2009

Visual Basic Resources

I was asked on Twitter if I had a Visual Basic resource page for teachers and I had to admit that the one I used to maintain was sadly out of date. That’s just wrong. So I went through all the Visual Basic keyworded post on this blog, visited a couple of other sites and put this list together. I’m going to try and keep it up to date. Please let me know (at my main blog) if you find other things that should be here, broken links or any other recommendations you may have.

Curriculum Sites

K-12 Faculty Community Site A source for curriculum resources, teacher forums, and program announcements

Beginner Developer Learning Center A web site for people of all ages who want to learn programming and web development. Tutorials, videos, projects and web casts

Projects and Feature Discussions

Visual Basic .NET Projects - A set of projects for the classroom. There are teachers notes for each project as well as pages that can be duplicated for distribution to students  as programming assignments. You can find this (and more) at the K-12 Faculty Community Site as well.

An article I wrote on creating control arrays. This article covers both Visual Basic .NET and C#. It is suitable for beginners. Teachers who are used to teaching with control arrays in Visual Basic 6.0 and earlier will find this useful.

Simon is a simple game I wrote. Simon is a game that involves four different colored buttons that randomly depress and beep. The player then has to press the buttons in the same order that they beeped. This most useful part of this project is a special button class that inherits from the PictureBox object.

Fun With Colors – This little project with about six lines of code may be a more interesting “hello world” than “hello world.” It uses some sliders to select a color to show up in a picture box. This is also a nice way to introduce how computers handle colors. Yes, the code looks like C# but if you remove the semi-colons it works just fine in VB.

When Is A Short Circuit a Good Thing? Confused about the difference between And and AndAlso and Or and OrElse? This post explains it all.

Sshhh… it’s a secret (Matt Gertz) Matt Gertz shows you how to code up and deal with substitution ciphers. Ciphers are a lot of fun and seem to interest both boys and girls.

Prime Numbers, Code Challenges, and Programming Languages Coding up a solution for generating prime numbers. With some added discussion about different programming languages.

Coding 4 Fun A web site for hobbyists and computer tinkerers - sample projects and information for doing fun and interesting thing with programming; often combined with interesting or unusual hardware.

Code Samples A large collection of code samples in Visual Basic for doing all sorts of things. Looking for sample code for students to review and/or use? Send them here. (Provided by Microsoft) See also:

  • How Do I in Visual Basic
  • “How Do I” Videos — Visual Basic

    Exceptions, Data Validation and Political Correctness A discussion on the differences between different styles of error handling and data validation.

    Software Access

    MSDN Academic Alliance A Microsoft program for schools to get Microsoft Development software for labs, teachers, and students for very little money.

    DreamSpark for High schools DreamSpark High School provides professional-level development and design tools to students enrolled in an accredited, secondary educational institution at no charge. Sign your school up today and start handing out access codes to students and get out of their way. :-)

    Visual Studio Express Editions Free development tools (IDEs) for Visual Basic, Visual C++, Visual C# and Visual Web Developer

    Add ons and Tools

    The Visual Studio Learning Pack 2.0 is a software package created by Microsoft to help students learn about computer programming. It consists of the following five components: Sort Designer Control, Search Designer Control, Visual Declarative Designer, Assistant Class Designer and Visual Programming Flow Chart

    VB Coding Standards Document Not from Microsoft but still a very interesting look at what coding standards look like in the “real world.”

    Career Information

    Are you students asking who uses this Visual Basic stuff? Send them to the “I’m a VB” web site for interviews and videos with members of the Visual Basic team and lots of professional developers who use Visual Basic.

    Third Party Web Sites (Not Microsoft and I can’t vouch for everything there)

    Temple of VB web

    VB-Helper

  • Friday, September 18, 2009

    Engaging Students in Computer Science – Teacher Workshop in New Jersey

    I’ll be heading to New Jersey in a couple of weeks. Now if you are not from New jersey you may not think that is a good thing. A lot of people have a very limited perception about New Jersey from some TV shows and movies I don’t have to name. But those of us in the know understand that New Jersey is aptly named “The Garden State.” The people there are great and I enjoy attending and speaking at events there a couple of times a year. So I’m pleased that I will be speaking at a workshop day at Drew University that is being organized with the Computer Science Teachers Association NJ chapter Saturday, October 17, 2009.

    Drew University and CSTA Northern-NJ Chapter will host a CSTA TECS workshop for computing teachers on Engaging Students in Computer Science.  The workshop will be held at Drew University on

    Saturday, October 17, 2009.

    The workshop will include the following presentations:

    • The Real Projects for Real  Clients Course ( RPRCC) Initiative: Attracting Young Women to Computing Majors: An ACM-W Project Presented by David Klappholz from Stevens Institute of Technology
    • Introduction to Alice2.2 and Alice 3 Presented by Don Slater from CMU and part of the Alice team there
    • Promoting a Code of Ethics and Professional  Conduct throughout your Computer Science Curriculum Presented by Steve Kass from Drew University
    • Introduction to Programming Through Game Development Using Microsoft XNA Game Studio Presented by Alfred Thompson which would be me. :-)

    For more information about the workshop visit http://www.users.drew.edu/ftrees/TECS

    It promises to be a very interesting and educational day. I’m really looking forward to it. I hope to see some of my blog readers there.

    Wednesday, September 09, 2009

    Firestarter Event Series – Information about Microsoft Technologies

    Are you a school or district IT person looking for more information about the latest Microsoft technologies. Or perhaps you are a teacher looking to introduce some of these technologies to your students. In either case these free sessions may be useful for you.

    Heat up your skills with the all-new Firestarter event series. Each day tackles a single Microsoft technology, including free sessions presented live by Microsoft developer and IT pro evangelists and technology specialists - with special appearances from community luminaries. Attend in person, via live meeting or download the webcast at your convenience.

    firestarter_black

    DEVELOPER EVENTS

    Seattle - Silverlight

    Thursday, Sept 17, 2009

    8:45 AM - 5:00 PM Pacific Time

    KEYNOTE SPEAKER: SCOTT GUTHRIE

    Microsoft Conference Center/ Bldg. 33

    1st Floor, Cascade Room, 16070 NE 36th Way

    Redmond, WA 98052 – USA

    LIVE EVENT | REGISTER >>  http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422412&Culture=en-US

    LIVE WEBCAST | REGISTER >> http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032423163&EventCategory=2&culture=en-US&CountryCode=US

    Get ready for this season's hottest technology event. The FREE Silverlight™ 3 Firestarter sessions will burn up Redmond, WA on Thursday September 17th and we've got a stellar line-up of Microsoft speakers, including a keynote from Scott Guthrie and presentations from Tim Heuer, Brad Abrams, Karl Shifflett and other community leaders. You'll learn what's new and noteworthy in the latest releases of Silverlight and Expression® 3. We'll also give you a rundown on .NET RIA services, toolkit, and more. Don't miss this sizzling opportunity to go deep into Silverlight 3 with Microsoft's best and brightest.

    Seating for the live event is limited, so register today. If you can't join us for the in-person event, register for the online event experience.

    New York - ASP.NET MVC

    Saturday, Oct 3, 2009

    8:30 AM - 5:15 PM Eastern Time

    Grand Hyatt New York Hotel/ Ballroom B

    109 East 42nd Street

    New York, NY 10017

    LIVE EVENT | REGISTER >>  http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032424184&Culture=en-US

    LIVE WEBCAST | REGISTER >> http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032424194&Culture=en-US

    In March 2009, Microsoft added a new option for developing web applications on the .NET platform: the ASP.NET MVC Framework 1.0. You've probably heard quite a bit of buzz in the Microsoft web development community about it. But perhaps you haven't had a chance to take a deeper look at it yet. Then we have an event for you! We will be hosting a full-day ASP.NET MVC Firestarter event live from New York and online to take you from 0-300 level in a day.

    At the ASP.NET MVC Firestarter, we'll give you a quick tour of the framework, then peel back the layers and dive deeper into how it works. As part of that, we'll spend time discussing the design and development practices that lead to the creation of the MVC framework. By the time you leave, you'll have enough knowledge to get fired up and start building web applications on the .NET platform.

    Seating for the live event is limited, so register today. If you can't join us for the in-person event, register for the online event experience.

    IT PRO EVENTS

    Seattle - Windows

    Friday, Sept 18, 2009

    8:00 AM - 5:00 PM Pacific Time

    Microsoft Conference Center/ Bldg. 33

    1st Floor, Cascade Room, 16070 NE 36th Way

    Redmond, WA 98052 - USA

    LIVE EVENT | REGISTER >> http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422413&Culture=en-US

    LIVE WEBCAST | REGISTER >> http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032423124&Culture=en-US

    Windows® 7 and Windows 2008 R2 introduce fantastic new technologies to streamline your business, enhance security and save you money. This Windows Firestarter event will introduce you to these features and then dive deep into how they work. See how DirectAccess provides the remote user with virtually the same experience they would have if they were in the office. Learn how Group Policy and PowerShell can simplify the administration of your network, regardless of how large or small it is. Experience a simpler yet more rich Web surfing experience with new Internet Explorer® 8 features. See new BitLocker™, AppLocker and User Account Control Features that are designed to protect your data no matter where it is. We will also dive into how easy it is to deploy Windows 7 the way you want it deployed - your image, your way - even if you are migrating from Windows XP. Join us for this demo heavy session on all of this and more at Windows Firestarter.

    Seating for the live event is limited, so register today. If you can't join us for the in-person event, register for the online event experience.

    Alpharetta - Windows 7

    Saturday, Oct 17, 2009

    8:00 AM - 4:45 PM Eastern Time

    Microsoft Alpharetta Office

    Centennial Park 1125 Sanctuary Pkwy Suite 300

    Alpharetta GA 30009

    LIVE EVENT | REGISTER >>  http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032424192&Culture=en-US

    LIVE WEBCAST | REGISTER >> http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424195&EventCategory=2&culture=en-US&CountryCode=US

    Windows® 7 introduces some fantastic new technologies to streamline your business, enhance security and save you money. We'll start this Windows Firestarter event from the users point of view and have a fun and lively introduction to some of the new features in Windows 7. Next we'll move onto DirectAccess and show how remote users can connect seamlessly to the corporate network, giving them virtually the same experience as being in the office, all of this without VPN! We'll then move on and learn how to protect your drives and data with BitLocker™ and show how Windows 7 extends this protection to USB drives with BitLocker-To-Go™.

    Finally we'll round off the day with an in-depth look at how to automate your deployments of Windows 7 with System Center Configuration Manager. This information packed, demo intensive day will kick-start your Windows 7 knowledge and get you well on the way to being prepared for deploying Windows 7.

    Seating for the live event is limited, so register today. If you can't join us for the in-person event, register for the online event experience.

    Monday, September 07, 2009

    Interesting Links Labor Day 2009

    I’m not really working today. Well just this post really. For the most part I have been largely offline for Labor Day weekend. Enjoying family, sun, books, and relaxing. My wife and son start school with their students tomorrow. They’ve been doing the usual back to school teacher days last week. Their rooms are ready. Plans are in place and tomorrow it is what I like to call “show time!” But to help you get going I have a few links from the previous week to share.

    Glen Westbroek a teacher I follow on Twitter @gardenglen has been sharing posters from his classroom. I thought this one about how many days without a failing grade was fun.

    According to this post at the CSTA blog Race to the Top should make STEM a higher priority and make sure it includes computer science. I have to say that I completely agree. Speaking of the CSTA, are you a Computer Science Teachers in K-12? Are you a member of the CSTA? What is the CSTA? You should join!

    Angela Maiers (@AngelaMaiers) continues to Tweet interesting links  “Yes Yes! We should be teaching our children to think  - The Observer”

    From Leigh Ann Sudol (@lsudol) Programmers top 10 sentences Though you may want to be careful with what WTF means.

    If you use or want to create Math worksheets Microsoft has released a new prototype Math Worksheet Generator from Education Labs http://bit.ly/2POnxm There are more tools for teachers coming from Microsoft

    The US Imagine Cup web site is online http://www.imaginecup.us/ The US rules have been changed this year to allow high schools students 16 and older to participate. Some of my co-workers are a little afraid of the idea that high school student teams may show up some of the college teams. I say go for it. Make a name from your self as a high school student.

    Interested in astronomy? The Worldwide Telescope team at Microsoft Research launched a big update last week. Read about the new worldwide telescope changes here.

    From Microsoft Learning (@MSLearning) there is a new (and free!) E-Learning Course: Introduction to XAML

    Dimitris Gkanatsios (@dgkanatsios) has a new blog post (in English he’s in Greece) on a simple shooting game with Silverlight 3 and C#

    I found this interesting leaning game - Fun with Math Imaginary Blackjack Game in a blog post by Megan Golding (@mgolding) which is more a math thing – imaginary numbers are a big part of it – but I thought it worth sharing more widely.

    Have interesting links to share? Feel free to email me (alfredth (at) microsoft.com), leave a comment or Twitter me @AlfredTwo

    Tuesday, September 01, 2009

    Latest Interesting Links September 1 2009

    August was something else for me. I had some travel. I had a lot of work. And I did some things around the house. That’s what August is for right? You may or may not have noticed but blogging was a little lighter than usual for me in August. Only the third time in the last close to four years that I posted fewer than 20 posts in a month. I’m trying to work on quality over quantity. Judging by the large numbers of comments it may be that I am improving. I hope so. I want to provide value, provoke discussion, and ideally build a little bit of community. It’s a work in progress.

    Community leads me to my first link of the week entry. Scott McLeod is continuing his PUSH to get links to top blogs in PK-12 education. Last week one item he was looking for was excellent PK-12 business and computer science education blogs. Mine is there as are several I have listed on the side of my blog. We could use many more though so I hope if you know some you will contribute. They are looking for a lot of other subject matter blogs as well so jump on in. Thanks!

    Are you still running Internet Explorer 6 at your school or on your home computer? Time to upgrade. Microsoft is donating 16 meals to Feeding America for everyone who upgrades from IE 6 to IE 8. They are donating 8 meals if you upgrade something else. If nothing else this should be an incentive to at least give IE 8 a try. I’m using it and have been since early beta.

    I get the occasional question about people who want to teach and/or learn something of the more important, key features of Silverlight 3. Well a number of hands on labs were developed for and with the National University of Singapore and they are available now. in a hands-on manner I am hopeful that well see more soon so keep looking here for news.

    I love the Computer History Museum and recently came across a small Photo Gallery showing some of the  weird, fascinating objects including a giant Cray super computer and a 60Kg hard drive that they have on display. You can’t see it in any of those pictures but some of the early military computers actually had ashtrays and cigarette lighters built into the console tables. My how things have changed!

    WIPTE.ORG is running an educational video contest. $3000 for 3 Minutes: Tablet PC in Edu Video Contest from WIPTE.ORG Check it out if you use Tablet PCs in your school or classroom.

    Well Popfly is not mostly gone which makes me very sad. But the Popfly Game Engine Code has been released on Codeplex under the MS-PL.

    Also last week I found http://robotevents.com/ "The community portal for robotics and education" Looks like some good links.

    Foundations of Digital Games conference calls for papers are out. It will not be on a ship this year which is good for people who could not convince deans and principals and business manager that it was a real conference. Some of us will miss the ship venue however.

    BTW Microsoft has opened a new higher education portal for faculty, students and administrators at http://www.microsoft.com/education/highered/

    Monday, August 31, 2009

    CareerForward: Career Preparation in a Global Economy (cFWD)

    Course background:  CareerForward is a media-rich online learning program, developed through a unique public-private partnership between the Michigan Department of Education, Michigan Virtual University and Microsoft. The program helps students wrestle with some of the burning questions about their futures: What am I going to do with my life? What is the world of work like? What will I need to succeed? What’s next for me? Using a variety of multimedia, course topics explore these questions and more. Throughout the course, students are asked frequently to reflect on what they’re learning, to write their thoughts down as a continual refinement of their thinking, and to discuss their thoughts with other students, either in-person or online.  Students can work with local educators to access the online course, which takes about four to six weeks or approximately 20 hours to complete. The course is designed to be facilitated by a local teacher and can be used independently or as part of an existing face-to-face course in career planning, business or global studies.

    cFWD student/teacher video:

    http://www.microsoft.com/video/en/us/details/031c7926-608f-42eb-aa7f-a29

    cFWD course location:

    http://nroc.careerforward.org/careerforward/

    cFWD trailer:

    http://www.mivhs.org/coursefiles/careerforward/index.htm

    cFWD online teacher webcast

    http://educationwebcasts.com/Webcast.aspx?i=4265

    Saturday, August 29, 2009

    New XNA Curriculum Resources

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 1: Computers, C#, XNA and You

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 2: Programs and Colors

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 3: Getting Player Input

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 4: Displaying Images

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 5: Writing Text

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 6: Creating a Multi-Player Game

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 7: Playing Sounds

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 8: Creating a Timer

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Chapter 9: Reading Text Input

    · Introduction to Programming Through Game Development Using Microsoft XNA Game Studio - Text Sample Code

    Here is a quick overview of the first item in the list.

    Learn the underlying skills and principles of software development--as you design and build your first games for Xbox 360, Windows, and Zune.

    Designed specifically for students with no computer science background, this curriculum teaches the fundamentals of C# programming and the XNA Game Studio framework--for skills you can apply to game programming and beyond.

    · Write code to create and control game behavior

    · Build the game display--color, graphics, text

    · Create multiplayer features

    · Capture and cue sounds

    · Process input from gamepads and keyboards

    Thursday, August 20, 2009

    New Windows Live Movie Maker Available

    I’m a huge fan of the Windows Live set of tools. I use Windows Live Writer to write and post all of my blog posts (to several different blog engines – I used it to cross post this from my main computer science teacher blog for example) and Windows Live Messenger keeps me connected to friends all over the world. And Photo Gallery has a lot of great features. Sticking together several shots into panoramas is a big favorite of mine. The version of Movie Maker that was available for Windows Vista and Windows 7 lagged behind a bit. The version for Windows XP was actually a little better. But that has changed. I found this announcement in my email yesterday.

    Today, Microsoft announced the global availability of the new Windows Live Movie Maker. With the new Windows Live Movie Maker, it’s easier to turn videos and photos into great-looking movies and slideshows, using many popular camera types and file formats on the market today. It’s an effective tool for teachers to bring the benefits of multimedia to the classroom, where it can help engage students and increase retention.

    One of the key enhancements that teachers and students will use is the sharing capability. Once a movie is complete, it can be easily shared with other teachers, students or even friends and family across TV, PC or mobile device or by uploading them to video-sharing sites.

    Teachers and students can download the new Windows Live Movie Maker for free by going to download.live.com.

    I really like the idea of easy sharing for example. Students love to share their work and of course many of them are already excited about the idea of making movies. This is a multi-media generation and they are not interested in static poster board displays. Not in seeing them and not in creating them. My wife has been using a Flip video with her students and I know she is excited to do more with it this school year. I know a lot of other teachers who are doing the same. Making movies engages students. So I think the timing on this announcement is great.

    BTW I am hoping to put some educational videos together about various computer science concepts. This is the tool I plan to use to edit them. Are you working on video demos? I’d love to hear about them if you are.

    To learn more about the new Movie Maker (for Vista and Windows 7) and see real movies created with Movie Maker, please visit www.moviemakerpreview.com or check out the Windows Live team blog post. (Lots of helpful links and information at the Windows Live Movie Maker Blog Post BTW so I might start there.

    Monday, August 17, 2009

    DeVaris Brown is in the house, ah, Blogosphere

    One of the younger and much hipper members of the Microsoft academic team, DeVaris Brown just opened a new blog called Tales From the Road. Besides technology he'll be blogging about what his life as a technology evangelist is about. I'm subscribed.

    You can follow him on Twitter at http://twitter.com/devarispbrown

    Monday, August 10, 2009

    CSTA Podcast Series

    Getting ready for school to start? I understand that students are already returning in some parts of the US. Over the next three weeks or so most students will be back in class again. Are you interested in listening to some interesting podcasts to get yourself ready and get some ideas for the new year? Check out the CSTA Podcasts. Several new ones were added recently including one interview with yours truly.

    Thursday, July 30, 2009

    Figuring Out What Will Get Attention

    I think a lot of us have trouble knowing what will be interesting to others. I think this is true in the classroom (“What do you mean kids don’t find learning binary interesting? I LOVED IT!”) and it is clearly true in blogging. I’ve been looking over the blog posts from the last month and the statistics around each one. I am surprised by the posts I thought would get a lot of attention and comments but didn’t. Others that I expected to be largely ignored – read and forget – have a bunch of comments. How do you know what is going to resonate and what will not? Honestly I don’t think you can. Not with any real certainty anyway. But I have examples. Anyone what to explain things to me?

    I’m going to give you some examples from this month both to show you want I mean and (more selfishly) try to highlight some posts that I think deserve more attention and give you a chance to see what did get attention that maybe you missed.

    On the more attention than I expected clearly Teacher Web Sites comes first. This one was one I hoped would be interesting for a few people but turned out differently. Largely this is because one of the companies I mentioned in passing put a link to the post with the suggestion that people “help” me out. I saw an amazing amount of traffic referred from Facebook. More than came from search engines even! That’s rare.

    What It Is Like to be A Student? received more traffic than most as well as four comments. Honestly that surprised me because I posted it primarily to link to someone else’s blog! I hope you will read those posts (Lost in syntax part 1, Lost in syntax part 2) as they are more interesting than that post of mine.

    I really expected comments on On The Value Of Testing but there are none and not much traffic either. Why is that? Was it too obvious and every says “oh yeah sure” and goes on about their business? No idea.

    I really had high hopes for Who’s Afraid of Smart Machines? but perhaps people are just discussing that too much in too many other places. Still I was hoping teachers would weigh in on this as suitable for classroom discussion. And that people  who give opinions as to how they felt about smart machines and what the potential meaning for humanity is. Oh well. I did try.

    Two posts inspired by NECC Sponges and Participants and Would You Wear A Ribbon That Labeled You a Trouble Maker? had a lot of readers. Only two comments though. Again I’m not sure why but I’d really hoped for more comments especially on the Sponges and Participants one. I really want to know if other people see conference participants the same way I do or hear some alternative views.

    Sometimes I do get it (somewhat) right though. Are We Doing It Right? had five comments. Not a huge number and not quite as many as I would have liked but at least there was conversation and that is what I was aiming for.

    SO there you have it – proof that I don’t really know what I am doing or what my audience wants. I’m trying though and I am always open to feedback. So any advice you have for me to make my blog better for you and for computer science teachers/education in general let me know.

    Thursday, July 23, 2009

    RoboZZle – a social puzzle game

    RoboZZle bills itself as “a social puzzle game” but to me is is a fun and interesting way to introduce programming concepts. Yes it is a puzzle. The social aspect is that members of the community can create their own games. There are a series of tutorial puzzles to start things off. One of the things you will find is that the tutorials introduce recursion (without bringing up the term to scare people) very early in the process. I have to say that makes it a particularly interesting teaching tool for me.

    Check it out at http://www.robozzle.com I think you’ll find it fun. And perhaps it is a game to get young  people interested in programming.

    The description of RoboZZle from the Coding 4 Fun blog is:

    Robozzle is a Silverlight game that helps teach players the art of programming logic through a series of fun and challenging community-created puzzles.  What's more, the game is "community sourced" meaning not only can you contribute new levels - but actually help expand the game and shape it's future.

    There is a community around a part of the server-side RoboZZle code at Codeplex if you are looking for a projet  like this to get involved with.

    Monday, July 20, 2009

    Interesting Links Twittered July 20 2009

     

    Things are a little conversation focused lately on Twitter. It seems like a lot of the people I follow are teachers on summer break. So while there is a good bit of educational conversation going on there is also a lot of just people chatting. I think that is good though. I feel like I am getting to know people better. That doesn’t mean that useful and educational things didn’t come my way and get passed along though. Here now my picks of the week.

    Mr. Higgins has updated his list of math related links on his school webpage. If you teach math or know someone who does you will want to check that out.

    Matt MacLaurin (@mmaclaurin) announced the new Kodu blog. Speaking of Kodu:

    ACM Women's CIS Newsletter v02.01 - Celebrate, Inform & Support (PDF)

    RT @SpringboardBlog: New Blog Post: Technical Book Club: Code Complete - Selection of Major Construction Practices http://bit.ly/HbEbd11:50 PM Jul 13th from TweetDeck

    The CSTA blog had an interesting post - A Computer Science Honor Society: Is it Worth the Work?? What do you think? Join the conversation on their blog.

    Are you interested in seeing what Office 2010 looks like?Robert Scoble (@Scobleizer) has posted a bunch of video demos of Office 2010.

    BTW one of the things I learned on vacation is that the Mayan calendar runs out in 2012. I think that means that Mayan Civilization may also be gone by then. :-) Seriously though maybe the Y2K problem didn’t start with the computer age. Something to think about.

    Monday, July 13, 2009

    Kodu Demo – Programming for little kids

    The other week while I was at NECC (what a great time meeting with and learning from some wonderful educators) we filmed a video of me demonstrating Kodu. You can see it and read some thoughts from the Microsoft Education team at the Microsoft US Education blog.

    Some useful highlights I borrowed from the Microsoft US Education blog are:

    If you are with a school or an educator interested in using Kodu in your curriculum, you can sign up here to get involved in the academic beta program on the PC. Space is limited, and it requires an Xbox 360 controller for Windows and a reasonable graphics card. You can read more about Kodu’s potential use in the classroom here, and how kids at a Michigan elementary school took Kodu for an early test drive during the development phase here.

    Note that Kodu is now officially available on the Xbox Live Community Games channel for the Xbox 360 and for a very reasonable price!

     Kodu game lab

    Technorati Tags: ,

    Saturday, June 13, 2009

    Real Life Is An Open Book Test

    The other day a regular reader of my primary high school computer science blog (thanks Avi Burstein) sent me a link to an article titled Academic source code dust-up symptom of CS education ills. The short version is that a college student posted the source code from a school project to the Internet and his professor objected strongly. The professor was concerned that future students would be able to find the code on the Internet and turn it in as their own. The student believes that his right of expression allows him to post his work. Eventually an academic judicial affairs office sided with the student. Kyle Brady the student involved tells his version of the story on his blog.  I don’t expect this to be the last of this sort of conflict though. And that is a shame.

    I’ve been programming for school, for fun and to make my living for about 37 years know. And while I have learned a great deal from course work and from “book learning” I have learned even more from reading the code other people have written. In fact many textbooks include sample code. Certainly the books I have written have included sample code. But professional developers spend a lot of time reading other people’s code. Formally, informally and in any way you can imagine. They also look to reuse code. And they keep documentation around. Even today when much of what one wants to learn professional software developers often have shelves filled with books. Believe it or not they actually reference them too!

    I don’t remember when I first heard someone say “real life is an open book test” but it really stopped me on my feet one day. It also influenced me as a teacher. While I often expected students to memorize some things and gave my share of closed book tests and quizzes I always expected students to take advantage of external resources for projects. That included the textbooks of course and the help files and programming language documentation. It also includes asking for help – though one does have to be careful about explaining the difference between getting help and getting someone else to do the work. And yes, even looking things up on the Internet. That’s how professionals work.

    There are people, often great educators whom I respect, that want to put more limits on students. For example they want to avoid things like Intellisense (IDE features that show programmers options for function/method calls and parameters) because if means they don’t have to memorize as many of those things. I disagree because I see greater value in the experimentation and “accidental learning” that provides. But that is ok I think.

    Stealing (or borrowing) code from the Internet is a real and justifiable concern for many people teaching computer science (well programming anyway). I would argue that faculty should know their students programming styles well enough to spot clear cheating just as English teachers can pick it up in student essays. Sure that is not very practical in sections of 300 but I don’t approve of sections that are too large for the instructor to know their students. (So there :-P ) IF you are going to have sections of 300 you are begging for cheating to occur so you should not whine when it happens. That doesn’t mean I approve of cheating – I don’t. But you already heard me write disapprovingly of overly large sections and cheating is one reason for that.

    One thing I used to do with semester end projects was to have one on one mini-code reviews with each student. They would do a demo and I would test a few things. Then we would talk about the code. I came prepared and if there was code that seemed to advanced for the student or too different from their normal work I asked them to explain it. If a student can explain code in a way that makes it clear to me that they know how it works, can debug it, can modify it and can make it fit their particular application why should I care if they wrote it from a blank slate or took some ideas and code snippets from someone else? It would be like penalizing a student in shop class because they borrowed a saw.

    School is about learning. It is not teaching students to work with one hand tied behind their back. It is about helping to understand what they read (or find on the Internet) not making them reinvent the wheel. I’ve blogged  before that I think it is important to have computer science students read more code. IF they find student code on the Internet and learn something from that I think that is great. I suspect they’ll learn how not to do things more often that how to do things but that is valuable learning too. In the mean time there are a great many code samples on the Internet. Microsoft posts lots of code that answers the question “How do I?” (some links below) There are many other sites that do the same thing. Students will find sample code. But they will learn for it and that is what we’re all after isn’t it?

     

    Friday, June 05, 2009

    It Ain’t Heavy It’s My Software

    The trend these days seems to be moving applications to the web browser. The ideas behind that are having access anywhere – from any location, from any computer, and at any time. Sounds great. But I resist. I like my so-called heavy applications. OH I understand the benefits of light applications that run from the web browser. I also understand the limitations of computer based heavy applications – operating systems dependence and lack of availability when one is away from their “home” computer. And there is installation costs. I get all that. 

    I do happily use Outlook Web Access and Hotmail for email  when I need to for example. But I’d still rather use real Outlook or another “real” email application. I use twitter from the web interface from time to time but the power and flexibility of TweetDeck or other special twitter applications wins me over when I have a choice.

    I think this is as much a result of my perception that special purpose tools in most areas give one better results than general purpose tools. Sure a Swiss Army knife will let you do a lot of things with one tool. But as well as separate screw drivers, scissors, knifes, etc? No not even close. You can use one hammer for everything you need to hit but a wrecking hammer will not do as good a job putting in nails as a framing hammer. And getting a table saw to do what a scroll saw can do is going to lead to frustration. Likewise a web based email client will do a lot – and they are much improved in recent years – but a dedicated application on your computer can do more, faster, easier, and still let you do a lot when you are not connected to the Internet.

    Which brings me to the next piece. I didn’t grow up with ubiquitous network access. And I still find myself in places where I can’t get connected easily. So the idea of only being able to use an application when connected to the Internet scares me a little. Well maybe concerns me would be a better way to phrase it.

    I do like cloud computing to some extent. The idea that I can place data on the cloud and get it from anywhere is great. The idea that there are cloud applications that I can use and access when I am connected is great. But I still what to work locally. I still want some control over my data. That control piece may actually be what concerns me the most. I have always taken responsibility for backing up my own data. Sure I have worked on commercial systems where formal and regular backups were taken. But I have always also done my own backups. I still have copies of programs from college – over 30 years ago. I trust me. not that I haven’t ever lost anything but nothing I haven’t been pretty sure I didn’t need anymore. Well mostly. :-)

    Do people – thinking students really – think about and discuss the pros and cons of heavy apps against light apps? I’m not sure too many programming courses really teach light apps. most web-based development I see done in high schools and early years in university are heavy apps. That concerns me a bit. I guess some web development courses cover simple web applications with some database access. That’s great as far as it goes. But I’m not sure it teachers the complexity of building the sort of web applications that many in industry are moving to. While it is true that I am not a huge fan of that sort of thing I recognize that for the near future they are the future. Students need to know about creating them. At the very least they should be exposed to the discussion and presented with the issues to think about. The sooner that happens the sooner they can build applications that old school people like me will be comfortable using.

    Or maybe they’ll see the pros and cons differently and the pendulum will swing back to locally run applications. Stranger things have happened.

    Thursday, May 28, 2009

    Computing at School Working Group

    What did I learn about on Twitter today? The UK based Computing at School Working Group is what I learned about. From their home page:

    The Computing at School Working Group is an informal group that aims to promote the teaching of computing at school. Our membership is broad, and includes teachers, examiners, parents, university faculty, and employers.

    CAS was born out of our excitement with our discipline, combined with a serious concern that our brightest students are being turned off computing by a combination of factors that have conspired to make the subject seem dull and pedestrian. Our goal is to put the fun back into computing at school.

    They have a conference and regional support groups called hubs. So if you are a pre-collegiate computer science teacher or a university faculty/lecturer with an interest in helping support such education in the United Kingdom you will want to look into this program.

    In the US there is still the Computer Science Teachers Association which, while is largest in the US, is really international in scope and membership.

    Speaking of the CSTA, they just released the draft of a model curriculum (Level I Course: Foundations of Computer Science) that covers K-8 computer science. They are looking for comments and opinions on it so take a look.

    ADE Team Member Blogs

    Hilary Pike & Diane Curtis Springboard from Mortarboard to Onboard (RSS)

    Clint Rutkas BetterThanEveryone (RSS) & Coding 4 Fun (RSS)

    Sam Stokes on Research in your life and studies (RSS) & on Game Programming using C#, Lua, XNA, XML, Zune, XBox and World of Warcraft (RSS) & on Building games based on Silverlight and Expressions (RSS)

    Randy Guthrie MIS Laboratory - Resources for Information Systems Faculty and Students (RSS)

    Alfred Thompson Notes for High School Computer Science Teachers

    Thursday, May 21, 2009

    Revisiting the GoTo Statement

    In yesterday’s post I named the “GoTo” statement as basically a bad thing. To my surprise this started a short Twitter discussion and also came up in the comments. So I did a bit more research. I found this fairly balanced article called “Using gotos” by Steve McConnell. And Mark Guzdial twittered a link to an older post he wrote titled “Plea to Language Designers: Bring Back GoTo!” Wikipedia also covers the issue fairly well with a bunch of external links. So clearly  there are multiple sides in this issue. I made the comment in Twitter that this issue is far from settled science.

    By settled science I mean that there is still a lot of discussion going on. Arguably there are cases where GoTo statements have a place. One of the things that Mark Guzdial pointed out in twitter “When non-programmers define processes, they use goto's. GoTo is natural.” There is a lot of truth there. Of course one could argue either for or against what is “natural” and people do. Another thing to consider is how an understanding of GoTo helps with understanding other concepts. Ian Bogost (@ibogost)Twittered “GOTO made understanding machine branches easy.” Let’s face it most assembly languages could not function without the equivalent of a GoTo statement!

    Most programming languages do include a GoTo statement of some form. Why? Well the discussion comes up every time and people ultimately decide to include it and yet at the same time hope people will not use it. Even the venerable Programming Proverb 7 says “Avoid unnecessary GOTO's” and not avoid all use of the GOTO. I suspect that this is a debate that will go on for ever. Not that there is anything wrong with that. I think I learn something new every time it comes up.

    Friday, May 15, 2009

    A First Computer Science Course

    Starting back this past winter I started hearing about a National Science Foundation (NSF) project to create or perhaps promote might be a better way of putting it a new three course computer science curriculum for high schools. This is part of the Broadening Participation in Computing  (BPC) program at NSF. I heard some of it at TCEA and more still at SIGCSE. It sounds pretty interesting. Clearly, in my opinion and in that of many others, we need to expand computer science education. We especially need more diversity in the field. Only some 20,000 high school students take the APCS A exam these days. That compares pretty poorly with over 80,000 in statistics which is a fairly new and still small (in AP terms) exam. Would a good course before the APCS course help matters?

    What I have been specifically thinking about lately is this so-called first course. Some people refer to it as a pre-AP course but others see this as a course for far more students than just those who are headed for the Advanced Placement Computer Science course. I tend to agree. While it might be nice to have a lot more kids take the AP course – ok yeah it would be nice – I keep coming to the idea that what we need to do most in high school is:

    a) get students interested in computer science and

    b) give them some basics so that when they get to college/university they are ready to start if they have the interest

    I’ve seen a number of my own students over the years take just one computer science course in high school and then do just fine as CS majors in college. Not taking APCS did not stop them because they had interest and some basics. So the question is – what should that first computer science course be like?

    Should it have some programming in it? I’d have to say yes. But it doesn’t have to be boring or especially difficult programming. Start with Alice, Scratch, squeak/eToys or something along those lines. Then move to something a little more “real” like Small Basic, Visual Basic or perhaps Python or a functional language like F# or Scheme. Personally I’d avoid curly bracket and semi-colon languages but for some people C#, Java or even C++ will work out just fine. The important thing I think is to give teachers some choices. Let people teach with what they are comfortable with. If they like the tools teachers are much more likely to spread enthusiasm to their students. That to me is a key piece.

    I think you also have to be concepts focused more than tool focused. I think that the activities at Computer Science Unplugged are great for that. its not just that they are fun and interesting it is that they move some of the focus from the physical computer and to the concepts themselves. That’s a big plus.

    I’d like to see some computer history covered as well. I know. Everyone tells me history is boring. But maybe that just means we are teaching it wrong. We’ve got some real characters in the history of computers and we should play that up. There were some out of the box inspiring people like Grace Hopper for example. Let’s get some creative people to tell those stories in the best way possible. And stories are the way to do it – no dry recitation of facts and dates. That would be boring. But talk about the things that made change and innovation necessary. World War II and everything from code breaking to simple cannon trajectory calculations. Why was computing necessary for just in time inventory? And there are lots more we could come up with after a little brainstorming.

    What else do we need? What concepts are key? Remember that in a single semester or even year course we can’t cover it all. Loops and decision structures? Absolutely! Right? What about object oriented design/programming? Is the first course too soon? Or should we use objects even if we don’t teach how to create them? Is recursion in or out?  Can we use games as projects? Why or why not? What are good projects that build interest while teaching concepts?

    Do you have or know of a scope and sequence document (or more complete package) for a first computer science course? Please send me a link at alfredth (at) microsoft.com or add it to the comments on my main blog? Strong opinions about what this course should look like? Let me know in the comments, by email or write about it in your own blog and let me know about it. This is something I think needs a broad background of ideas and support.