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

September, 2006

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Ten Programming Languages You Should Teach - You may want to learn them first

    • 2 Comments

    Seriously I don't expect that high schools should teach ten languages. I'm not sure that its a good idea for universities either. But I am a strong believer that someone who plans a career in software development or other computer science related fields should know more than one or two programming languages.

    I don't see this as a "learn this language to get a job" logic either. Oh sure that can help but the programming language of the day is a fleeting thing. Where are the FORTRAN and COBOL jobs of my youth? Fortunately there are still BASIC jobs but look how that language has changed. I found that I had to learn a new programming language every two to three years just to keep pace in the field. Having that grounding in multiple languages really helped me pick up the new ones.

    The important concepts of different languages are also different. Knowing languages with different features helps to understand them better. Want to understand late binding? Python and Visual Basic .NET are good languages to know for that. Want only early binding? C# and Java are the way to go. Recursion something you really want? Almost all languages support it but Scheme makes it an integral part of the way things are done. Want to really get into regular expressions and parsing? Perl may be just what the doctor ordered. The list goes on and on.

    Eweek has a list of "10 Programming Languages You Should Learn Right Now" that is pretty interesting. I know about half of them and can read most of the rest. A lot of languages I used to know very well and used a lot earlier in my career are not on the list. Python and Ruby/Ruby on Rails are high on my list to learn better.  I think the interesting thing in the list is not so much the languages as the reasons that are given for them being important. They are all a good bit different. Some are Internet/web development tools primarily and some are mostly applications development. C# is seen as essential if you want to develop on Microsoft platforms. Java if you want to develop on non-Microsoft platforms. To me it would seem to be a missed opportunity not to learn both.

    One thing I would add to the list that Eweek doesn't show? Assembly language. Everyone should learn on and be forced to use it for something real at least once in their academic career. If that doesn't make you appreciate higher level languages I don't know what will.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Judging from my inbox it must be back to school time

    • 1 Comments

    Actually I knew it was back to school time because friends have been starting back since early August. How they start that early in Florida and Texas I'll never know. My wife and son both started with their students last Monday. I've been hearing about the School of the Future opening in Philadelphia later this week for a while as well. But over the long weekend my inbox really started to fill up with help requests from teachers and tech support people all over the US (and I think one from Canada). I do my best to help as much as I can and I am really glad that people take the time to send me an email rather than just give up in frustration. What I decided to do today was to summarize the questions I have been getting in hopes that maybe others will be helped by my answers. If I use the right terms and words maybe search engines will help point people here sooner. It's worth a try.

    Security problems

    Most often these happen when code is being stored and run from a network device. Visual Studio and Windows try very hard to protect people from malicious code on network shares. Sometimes they try to hard. You might see something like;

    A warning comes up warning that "The project location is not fully trusted by the .NET runtime."

    or

    When  trying to access databases, image files, text files and I am getting System.Security.Permissions.FileIOPermission and System.Data.OleDB.OleDBPermission errors that all refer to mscorlib.

    Most often these are caused by the need to designate a share as a trusted location. Instructions for doing this are at http://www.acthompson.net/dotnet/setting_a_trusted... I updated those instructions so that they include Visual Studio 2005 as well as 2003.

    Text not showing in Message Boxes or InputBoxes

    There is a known problem with McAfee Enterprise version 8.0 that causes MessageBoxes and Textboxes (in Visual basic at least) to not show up. there is a fix available from McAfee but I can't seem to find a direct link. There is a cumulative set of patches and you should contact McAfee to get and  install that. In fact even if you are not seeing problems there are enough issues that you should insist that McAfee Enterprise version 8.0 is fully patched.

    You (or your system administrator) can also disable the McAfee's Buffer Overflow Protection on those computer where you need this until you get the hotfix installed.

    Missing Manifest

    You might see something like this:

    This code caused a MissingManifestResourceException:
    name = InputBox("Enter your name in this format:" & vbNewLine & _
    vbNewLine & "LastName, FirstName", "Input name", "Last, First")
    Explanation in error message: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "Microsoft.VisualBasic.CompilerServices.VBInputBox.resources" was correctly embedded or linked into assembly "Microsoft.VisualBasic" at compile time, or that all the satellite assemblies required are loadable and fully signed.
    from Help: The exception that is thrown if the main assembly does not contain the resources for the neutral culture, but those resources are required because the appropriate satellite assembly is missing.

    I am told that this exception is usually caused by putting other classes BEFORE the form class in the source file. I think that defining ENUMs before the form class is defined will do the same thing.

    Getting Visual Studio (or Visual Basic) for the class room

    The least expensive way to buy Visual Studio .NET 2005 (which includes C#, J# and C++ as well as Visual Basic) is through the MSDN AA program. The price for a license to use it on all of your teaching lab equipment, your teacher prep systems and make copies that students in courses can borrow to install at home is $299. Full information is at http://msdn.microsoft.com/academic/program/highschool/

    Another option and also a way to try some things out first is the Visual Basic Express Edition. This is a smaller (50 MB download) simpler version that is just Visual Basic and does not include things like web development or PDA development but is completely free. I'd personally rather have the full Visual Studio for a classroom but there are people happily teaching using the Express editions and it should not be a problem to use it with most current textbooks. You can get it at http://msdn.microsoft.com/vstudio/express/ The express editions are free to everyone so students can also download and install it if they want to.

    What Textbooks are good for Visual Basic?

    There has been some discussion around textbooks for Visual Basic .NET at the forums on www.mainfunction.com. There is an older thread at https://www.mainfunction.com/AspNetForums/ShowPost.aspx?PostID=172 but I opened a brand new one today at https://www.mainfunction.com/AspNetForums/ShowPost.aspx?PostID=1370

    I have also written my opinions about some textbooks here on my blog at http://blogs.msdn.com/alfredth/archive/2005/12/15/course_links.aspx Comments are closed on that older post but feel free to leave comments about textbooks here or at the forums on MainFunction.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    High School Computer Science - What's it all about?

    • 6 Comments

    Kathleen Weaver relates a couple of frustrating conversations in her blog today. The other people in her building don't have much of an idea about what she does. Isn’t asking a computer science teacher if they program is sort of like asking a math teacher if they can calculate lowest common denominators? On the other hand, it isn’t always the case.

    Part of the confusion comes from schools that label any teaching of anything that involves using computers as "computer science."

     

    To those of us who take computer science seriously, at the high school level or otherwise, a course in Office Suite applications (Word, Excel, PowerPoint and the like) is not a course in computer science. A social studies course may involve looking at tables of numbers, building graphs and predicting population growth (in other words using math) but we don’t move the course from the social studies department to the math department. That is because most people understand the difference between using math and learning math for its own value. Computer science is not so well understood though.

     

    So what do you tell people when they ask what computer science is or what do you do in computer science courses? It’s easy and it is complicated. The easy part is that, for the most part, in high school computer science we teach students how to write computer programs. The hard part is that there is really much more to it than that. Learning how to program, when done correctly, is about problem solving, critical thinking and looking at the world from a slightly different angle. In short computer science, even in high school, has the potential to make a large difference for students. It’s too bad that more of them don’t get the chance to find that out.

Page 1 of 9 (26 items) 12345»