Chap Percival

Teaching .NET in Computer Science

  Home  |   Contact  |   Syndication    |   Login
  9 Posts | 0 Stories | 1 Comments | 7 Trackbacks

News



Archives

Blogs I like to Read

Sunday, January 22, 2006 #

As a HS CS teacher, one of the ways that I can promote the subject is by seeing that students are recognized for their skills. One such way is to participate, (and maybe do well) in programming contests for high school students. This year there are 3 contest in Florida that we will send teams to: at Stetson University (held in November already), the University of Florida (April), and the University of Central Florida (May). These contests give our students the opportunity to see other students with like interests and skills. Every student that I have taken to these contests, even when they perform poorly, has said that it was a great experience, well worth the time. Well, most of you do not live in Florida, so you may not be interested in those contests, but I have found out about a national contest open to high school students. It is sponsored by Microsoft. It is called the Project Hoshimi Programming Battle and registration has opened for the event which will take place in March. There is information at the mainfunction website: http://www.mainfunction.com/ . If you are interested you should check out Daryll McDade's blog entry on this contest: http://blogs.msdn.com/daryllmc/archive/2006/01/20/515693.aspx It doesn't hurt that the prizes include X Box 360s. Let me know if you have any students participate. I'm going to let my students know about this week.
  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Monday, January 09, 2006 #

I came across an O'Reilly Book by James Avery called "Visual Studio Hacks." (The word "Hacks" in the title is misleading.) It has over 400 pages of ideas on ways to improve your usage of VS. I like the book and even picked up a few things new to me. Here's one of them. There are times when you want to copy a portion of several lines of code, but NOT the whole of ANY line(s) of code. In the early days of computers, some programs allowed Block selection of characters, which is like superimposing a rectangle on the screen highlighting (selecting) anywhere on the screen. In VS, if you press "Alt" you can click and drag a rectangle ANYWHERE in the current file, allowing you to, say, strip off the first 10 characters from every line. When pasting, no new lines are inserted, so make sure there is room for the lines you are copying. Try it a couple time to see how it works. Also, if you just press "Ctrl" - C with nothing highlighted, what happens? VS 2005 ASSUMES that you want to copy the current line. Move the cursor to a new line and paste as usual. "Ctrl" - X cuts the current line if nothing is highlighted. Again, paste as usual. I'll post one or two other ideas that I got from the book next time.
  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Sunday, December 18, 2005 #

On Friday, December 16, I had a special visitor come speak to my programming classes. His name is Brandon McMillon. His official title is Academic Developer Evangelist. He lives in Tampa and covers Florida, Alabama, and Mississippi. He started working for Microsoft in 1996, working for the Visual Interdev test team. In 1999, he moved to the Windows product team, spending 5 years there as a program manager and lead program manager. He was involved with shipping Windows 2000, Windows XP, and Windows Server 2003. He mainly works with colleges and universities but, as I can attest, he is more than willing to come talk to high schools about almost anything related to Computers, hardware and software. My classes cover a span with one mostly Freshmen in an Intro to Programming in VB.Net to AP Computer Science with a lot of seniors looking to college and careers. Brandon was able to speak to all the classes with enthusiasm, keeping their interest. He spoke about his career at Microsoft and preparation for it. He also talked about some upcoming releases. The tablet computer was a topic of interest for many. I appreciated his openness and candor.

If you would like a speaker, check into a Microsoft Academic Evangelist. And don't let the title sway your opinion. He spoke very little about Microsoft; really , only when he was asked a question that dealt with it. And your students will probably enjoy a break from hearing you .

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Sunday, December 11, 2005 #

This is in response to a question about our school system's policy toward giving support and training to teachers along with new hardware. Well, the situation is not perfect by a long shot but they are making an effort. In fact the RFP for the laptop initiative included training to be provided by the vendor on the equipment. That is the good news. The bad news is that the training was mixed. Some good, some so-so, and some really bad. In terms of on-going support, my school (2100 students) has 2 full time teacher positions dedicated to staff training and support. We also have 2 full-time tech support positions. That said, it still is not enough. But it is better than most. Since I teach Computer Science, I am regularly accosted on campus by teachers with a question about hardware or software. When I'm able, I am more than willing to help.

It will be nice when computers become a mature technology that everyone is comfortable with. Unfortunately, I think I will be retired before that happens .

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Whenever I get to array data structures or strings in my classes, it is always with some trepidation that I point out that array indices start at 0 not 1, as might seem more natural to a beginning programmer. If the class is the non-questioning sort, I just go on. But if some one asks, "Why?", and I think they can handle it, I take the opening. Most of these students have no real understanding of what a compiler or translator is or does. This is a chance to explain on a level they can understand, one of the jobs of a compiler, keeping track of addresses.

When you declare an array such as, int [] nums = new int[10];

nums is a reference to the address of the start of the array, sometimes known as the base address. It is assigned by the compile and is duly noted in the table of variables. Let's say for nums, that address is 2000. Sometime earlier we talked about the different number of bytes that each primative type needs for storing a value. For type int, it is 4 bytes in Java.

Here is the formula the compiler uses to determine the address of each element of the array nums:

address of element as index x = base address + size of each element in bytes * the index x.

The portion of the formula, size of each element in bytes * the index x, is known as the offset address. Now here is the cool part: since the index of the first element in the array is 0, the offset address works out to be 0 (0 times anything is still 0). So the base address just happens to be the base address of the array.

. Let's look at a differnet element. What is the address of element [7] (We are actually asking what is the address of the first byte of [7]). According to the formula: address of element[7] = base address (2000) + size of each element in bytes (4) * the index [7].

So the address of index [7] is 2000 + 4 * 7 = 2028.

Again the compiler keeps track of this. Of course, if you are programming in assembly language you will have to assume the responsibility of keeping track of addresses.

Now I admit I my explanation may not be totally correct in all cases but it serves as a good lesson on how math is used in programming even when the programmer doesn't do any.

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Monday, December 05, 2005 #

The continuation of my day at Windows XP training has been delayed a few days while I battled a "home made" dose of food poisoning. The details are quite gruesome, so I won't post them here. Suffice it to say that I have been weak, without energy, (more than usual ;-) for the past few days. But I'm good to go now.

The bulk of the day of XP training was spent covering several modules in a Microsoft Official Course book, #2261B, Supporting Users Running the Microsoft Windows XP Operating System.

The course is designed wfor people who have little or no job experience in the IT industry but have some experience working with Windows XP. Completeing this course could lead to the student obtaining a Microsoft Certified Desktop Support Technician credential. The titles of the modules are:

Exploring and Configuing the Windowsw XP User Interace, Resolving Desktop Management Issues, Resolving Network Connectivity Issues, Resolving Hardware Issues, Resolving File and Folder Issues, Resolving Printer Issues, Resolving Installation Issues.

As you can see, the heart of the course is Resolving ... Issues.

A fair amount of time was spent on the Group Policy Management Console. If you haven't used it to help control your network, it is certainly worth looking at. It has some powerful options for controlling student access to controls and resources.

The last 2 hours of the day were spent in one module of course 2262B, Supporting Users Running Applications on a Microsoft Windows XP Operating System. This course can lead to the Microsoft Certified Professional credential. The titles in this module are:

Troubleshooting Desktop Application Support Issues, Troubleshooting Issues Related to Internet Explorer Troubleshooting Issues Related to Outlook Troubleshooting Issues Related to Office Troubleshooting Issues Related to Outlook Express.

Our focus was on Internet Explorer and connectivity issues.

Overall this was a day well spent. I have been using Windows XP for nearly 3 years, so very little was new to me, but Suzanne Huuf, the leader, had enough tips and extras to keep me interested. The material is well organized and layed-out. Of course, the instructor can make or break the course. Ours was a good 'un. If you have the opportunity to participate in one of these Microsoft courses, I would recommend that you give it a shot.

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Tuesday, November 29, 2005 #

This is a first response to my day today. I'll post this intro now and then add more in a later post. I spent today with 40 of my Sarasota County Schools tech related collegues in an all day training session. It all started as part of a laptop initiative that our district started this past summer with several schools piloting the program. It gives (loans) each ninth grade student an (HP) PC laptop for the duration of their high school career in Sarasota. Since many schools in our district are predominantly Mac, Tech Support staff have been training real hard on this new platform, as have the 9th grade teachers. In addition, newly built schools are going to have Windows machine from the start and existing schools will gradually transition from Macs to Windows unless a convincing rationale can be given not to. So today was a day for XP training. The trainer, Suzanne Huff, is from HP. She did a credible job considering that this was a condensed version of a week long course. It covered a lot. The downside was that we weren't given much (any) time for hands on practice. The 2 books that we were given have CDs with the activity files on them, so we can practice on our own. The class was very good. I have been using XP for a few years so there wasn't much in the way of "new" material. There were a few good ideas presented and I came away feeling that it had been worth the time.
  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Sunday, November 13, 2005 #

For the past couple weeks in my Visual BASIC .NET class (9th and 10th grade novice programmers), we have been dealing with subroutines. The rationale for using them is another entire post. I want to focus on parameters. The key point is to distinguish between ByVal and ByRef. Since ByVal parameters receive a copy of the argument when the Sub is called, they are the perfect tool for protecting your data. Now beginner programmers are not really familiar with the concept of or need to protect your data, so this is a bit of a stretch for them. But my students generally trust me when I say that this will be more evident later on. In the meantime the rule for them to live by is use ByVal unless there is a very good reason for not. The alternative to using ByVal is ByRef. I like to think of reference as being the address. When introducing this concept, I draw a pretty big array of memory locations on the board with the address of each location. We then do a role play of a program calling a Sub with ByVal parameters, another with ByRef parameters and a third Sub with at least one of each. We go through the motions of giving students (acting as parameters) a copy of the argument being passed or the address being passed and write the values in the appropriate locations in the memory array on the board as each line of code is executed. This method seems pretty effective in making sure that all my students "get it."
  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Saturday, November 05, 2005 #

Welcome to my blog! I am here as part of the growing community of support for Computer Science Teachers. This blog is a vehicle for relating lessons and experiences that may be helpful to others in teaching CS to high school students. In this post, I will introduce myself and provide some background info.

I teach Computer Science and Astronomy at Pine View School in Sarasota County, Florida. I am in my 32nd year of teaching and 18th year at Pine View. I teach in a lab with 30 Dell computers running Windows XP. I have been an adjunct professor at the University of South Florida in Sarasota and Goshen College in Sarasota. I am currently teaching VB.NET and Advanced Placement Computer Science A and AB as well as Honors Astronomy. The textbook I use for VB.NET is "An Introduction to Programming Using Microsoft Visual BASIC .NET" by Brown and Presley, published by Lawrenceville Press. For APCS I am using "Java Software Solutions for AP Computer Science" by Lewis, Loftus and Cocking and the Institute of Computer Technology (ICT) curriculum, which I find very helpful.
  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati