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

September, 2009

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    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 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


  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    What Does It Take to Make Change in CS Education?


    This started out as a comment on Mark Guzdial’s blog post What changes CS Education? which you of course must read. No really. I’ll even wait. Back? OK a key summary jumped out at me:

    My first pass analysis suggests that, to make change in CS, invent a language or tool at a well-known institution.  Textbooks or curricula rarely make change, and it’s really hard to get attention when you’re not at a “name” institution.

    I tend to agree that to effect change in CS education you have to have a tool or language from a name institution. Would BASIC exist today if it hadn't been invented at Dartmouth? Probably not. But even that pedigree hasn't been enough to keep it going as a main stream first CS language. Why? That I’m not sure since I firmly believe that Visual Basic .NET is as good an object oriented programming language out there (better than C++ or Java – again my opinion) and much better as a teaching language (again an opinion I am aware many do not share – but what do they know? :-) ) There is probably some industry influence though.

    What I have observed, or think I have observed, is that many ideas come first in industry and win over academics before or at best in parallel with industry. I go way back to structured programming which was the up and coming paradigm when I was an undergraduate. It seems to have started in industry because existing code at the time was a mess to debug and maintain. There was some resistance to it in industry in some circles because it required some re-learning. Educational institutions seemed to welcome it quickly. I saw it very quickly come to dominate the curriculum at the university I was attending. As students graduated they brought this paradigm into industry and it took over every where. So I saw what seemed as a circular path where an idea started on one side, moved to another and then won in both sides.

    When PASCAL came out I had been working in industry for a while. A number of new hires had come to work in my development group and had been well trained in PASCAL. It soon became a dominate language in our team. IN this case PASCAL started in education and because it was good, or perceived as good, industry started adopting it and that drove more acceptance in academia.

    With C++ we saw a reverting to what I saw in structured programming. IN spite of being developed at the influential Bell Labs C++ and object oriented programming was slow to be adopted in industry. While many people loved the idea they were not ready for a new paradigm. A lot of C++ programming was C programming using a C++ compiler. That is until academics saw the real potential and started teaching it for real. Now you’d think academia was following industry when that is not quite the case.

    SO what if you want to make a change now? Tools are critical. Alice came from Carnegie Mellon and was an early entry into that particular model of development. Scratch is from MIT and has come along later. Scratch is rapidly growing but would it be doing so if it were not from MIT? Frankly I doubt it. Not that it isn’t any good – to the contrary I love it. But rather because many educators would not look beyond the differences between Scratch and Alice if the name MIT were not attached. I wonder if we are missing good, perhaps even great, tools because they are not from name institutions? Could be.

    How about industry in all this? Well some parts of industry are name institutions. Bell Labs certainly was in its day. Microsoft Research is an interesting hybrid of a semi-academic institution that is part of a for profit company. Kodu is certainly getting a good look these days. While the graphics are amazing and the tool looks like it has huge potential coming from Microsoft Research clearly gets people to look at it. But clearly it is harder for a commercial development to make it into academia that it is for a tool/language developed at an academic institution in general.

    Java did some from industry but in many ways it was the right tool at the right time. C++ while being very powerful tends to still be somewhat dangerous with memory management being only the most obvious pitfall. Garbage collection, while not a new idea, when joined with object oriented programming was a natural adoption for academia. C# and VB have the same attributes but there is inertia – what is the added value in changing languages away from Java? Probably more of an advantage for professional programmers than for student programmers. (Though I will continue to say that I think VB is a great first language be cause I have been a fan of BASIC for over 35 years.)

    So what is the next educational change? I think it is probably the sort of programming that Alice, Scratch and Kodu provide. Make it visual and pretty. Remove the syntax issues from the equation. I think there are some limitations in these tools that make a transition to a more traditional language a requirement sooner rather than later. Variables are one big issue I see for example. So is programming solutions beyond those limited domains. Despite the popularity of Java I don’t see that as the logical next (or first real language depending on your view) because it is just too complicated a next step. More likely is a dynamic language like Python or perhaps a very simple language like Small Basic. Small Basic has a disadvantage of not coming from a name institution (it’s from Microsoft but not from Microsoft Research – people make a distinction) though as well as being a late comer. Python has more fans and already much more support material.

    I could be wrong. The Alice team is spending a lot of time and effort making the move from Alice to Java easier. And CMU is still a big name institution. What I’d really like to see is a tool that takes the Alice/Scratch/Squeak paradigm of programming and expands it to allow for programming more solutions in more domains. Add data base support for example. make it easier and faster to create and use variables. Better parameter support. Break through the walled gardens. Let people create web applications, cell phone applications, and support more means of IO. Make it less necessary to move to more conventional languages as soon as currently Where would that take us?

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Why Does Diversity Matter


    One of the things I make clear in a lot of talks and meetings is that I want to see more women and minorities in the computer field. Surprisingly a lot of people ask me “why?” I get that question from women and minorities as much if not more than I do from white males. I’m not sure if they wonder why “I” care or if they wonder why anyone should care. Certainly a lot of women and minorities are under the impression that they are unwanted or unneeded in computer science careers. This is sort of surprising to me. I think most people understand that different groups often view the world differently, from different perspectives and want different things. Clearly many fields in the market place have gotten serious about targeting products and marketing to different groups. But computer science? Not so much.

    I found this message on Twitter the other day and it serves as a great example of the problem of having a majority men in the field.

    Why is the "default" image on most sites a male silhouette? I find it offensive when women are represented as a shadow of a man. by danah boyd

    Well that should be an obvious problem right? Apparently not to a lot of men. Frankly I never thought about the impact on a male silhouette on women. I’m a little embarrassed to admit that BTW. But frankly I am a middle aged white male and that means there are some filters that I have grown up with. We all have these filters and I’m not convinced that is necessarily bad or good. But I am convinced that it exists and that we have to find ways around that to make sure that products, career fields and society in general is inclusive. I think you require diversity of participation to make that happen.

    As I explained to a young African-American female at one talk I gave “I’m very good at knowing what middle aged white men want but figuring out what African-American teenage girls want is a little outside of my experience.” As a selfish capitalist I want/need a society where products, services and opportunity are open to everyone and where everyone at least has a chance to have their needs met. The way I see it, to paraphrase a commercial I have heard for decades, “an educated consumer is our best hope for a bright economic future.” I believe that an education in computer science is an absolutely critical piece of that education.

    I’ll leave you with one example of how diversity can change things. Once upon a time almost all business travelers were men. Suitcases might get heavy but the male attitude was “I can carry it.” Then women started to enter fields in which business travel was a big thing. The attitude over heavy suitcases by women was more along the lines of “I’m not carrying that thing. Put wheels on it.” Most suitcases today have wheels on them and men happily drag them behind rather than carry them. Women made a difference. (Thanks BTW :-) )

    You have to wonder what sort of differences we’d be seeing in computer user interfaces (besides a default male silhouette) if more women were in the field and having both the ability and the authority to make changes. Maybe there will be the next “wheels on suitcases” idea that will transform how we all use computers. We can hope.

  • Page 1 of 6 (17 items) 12345»