What are you using?
I blog about a lot of resources here and I’m curious about what sorts of things teachers are finding useful. In some ways I am shooting arrows in the air with no idea where they come down. In other words, what things are people finding useful? What courses and age groups are people using the things I blog about? Is anyone out there? OK I know there are people out there. I get statistics (raw numbers with no detail) that tell me people are reading. And from time to time I get an email or a message from the contact form that tells me someone is using something. But generally I don’t know how much is actually being used.
Yesterday Garth Flint (Sacred Heart High School Missoula Catholic Schools in Montana) left a comment on my post about Small Basic curriculum that he will be using those presentations in his intro programming course. In fact he is going to directly use it to put the students to work.As he said in part:
The scheme is to have the kids critique the PowerPoint slides and the curriculum overall. Of course that means they will have to learn the SB along with writing comments about the curriculum.
That’s a pretty interesting way to use the resources. And I think it will work out well for him. On a personal note though it let me know that someone was following the link, finding something potentially useful and trying it out. It’s the sort of thing that really helps me keep going. So if I could ask a personal favor or you? If you have found something I have blogged about useful and used it in a class or used it to create or make a change to an existing class would you please leave me a little comment here?
Just a few lines about what resource, where/how you used or are using it and if you feel like going public your name and school. Of course if you want to write more that would be great as well.The more information I have the better the job I can do about sharing information and resources that are genuinely useful to teachers. Your comments may just give someone else a good idea as well. Thanks in advance.
Source: Alfred Thompson
web design nottingham Absolute Design are a leading design agency based in Nottingham, offering a wide range of services including Internet Marketing, SEO,
Web Design/Development & Graphic Design.
IT managed services Control Circle are leading specialists and providers of managed hosting, data migration, data storage, dedicated hosting and online data storage
SEO Company IndiaCNET Infosystem: A true web and SEO Company India provides SEO services, Internet Marketing Services and Software solutions in India and globally.
SEO IndiaEconomical SEO provide SEO services India and globally. Helps achieve high rankings on major search engines and drive relevant traffic through internet marketing strategies.
Pretty Code
Way back in the old days when programmers coded using simple text editors and command line editors there was a utility called Pretty Print (or some variation). These utilities would take text files as input and output code that was made more “pretty” and so easy to use. They would add consistent formatting of loops, comments, tab stops and space between keywords, variables and other elements of code. The results looked better when printed. One major benefit of all this is that reading code looking for bugs was a lot easier. I was reminded of this old utility when I read the post “You code like a girl!” which I included in my interesting links post.
Modern IDEs like Visual Studio make consistent formatting much easier than the old text editors did. They even color code things for you so that the difference between reserved words and variable names jump out at you. The obvious effect of all this is that the formatting looks nicer to some definitions of nice. It’s largely superficial as the code would run just as well if the formatting was poor, spacing was inconsistent, and there were no color coding at all. The compiler ignores all of those things of course. And here we start the search for “inner beauty” of code.
This is more complex a question. It also means that one has to be concerned about the difference between clever code and efficient code. Some are impressed by code that is difficult to understand but used as a means of impressing the reader rather than the compiler. Ternary operators and recursion sometimes run the risk of being incorrectly seen as beautiful when in reality they add unnecessary complexity. Though like so many things beauty can be in the eye of the beholder.
I remember a recursive bit of code I once wrote that I just found elegant and cool. No one else in the group agreed with me and I had to rewrite it. It was clever (in my opinion) but it was also unnecessarily hard to understand. Is it really beautiful code of no one else can understand it? Isn’t that the modern art sort of question? But code has to be used, modified, expanded, and understood easily by everyone who views it. Art tends not to have those requirements.
I’m not sure I have a good operational definition of beautiful code. Of course it is formatted nicely. Big deal! Highlight the code in Visual Studio and hit the Ctrl-e, Ctrl-f key sequence and everything will be lined up nicely for you if it is not already. For inner beauty I look for things like names that make sense without being obnoxiously wordy. I look for classes that properly handle public and private access and have clear methods for dealing with data. I look for methods that are not too long as to be hard to follow. I look for code that is as complex as necessary but no more complex. I look for comments that make things clear but don’t hide what is going on. I look for code that looks like it was designed and not patched together by adding semi-random code until things seem to work. I guess I sort of just know it when I see it.
What do you think of as beautiful code? Does it exist in your world few or is it just the ravings of people who are just a little too much geek?
Useful Resource
iPhone marketing – iPhone marketing
Who IP Address Looking for WHO IP Address information? Better known as WHOIS Information, you will find WHOIPAddress.com a useful site for IP Address related information!
Managed Hosting Experienced System Admins from Managed Hosting providers maintain and monitor client servers and applications for high-availability and optimal performance
sarkari naukri – Job portal about all Sarkari and Government Jobs in Central/State Government, Universities, Public Sector Companies and Banks, jobs, vacancy, opportunity
NCWIT Award for Aspirations in Computing 2010
I really like this award program so I am happy to promote it on my blog. The following is from the official announcement. I strongly encourage you to share this opportunity with high school women and with teachers who may be able to suggest it to their students.
The NCWIT Award for Aspirations in Computing honors young women at the high-school level for their computing-related achievements and interests. Awardees are selected for their computing and IT aptitude, leadership ability, academic history, and plans for post-secondary education. The NCWIT Award for Aspirations in Computing offers both national and local "affiliate" competitions to generate support and visibility for women’s participation in communities nationwide.
PLEASE help us spread the word about this competition with any K-12 or groups who serve young high school women!
National Award-winners receive:
- $500 in cash
- a laptop computer, provided by Bank of America
- a trip to attend the Bank of America Technology Showcase and Awards Ceremony in Charlotte, North Carolina
- an engraved award for both the student and the student’s school
Affiliate Award-winners receive an engraved award for their home and school, and a range of great prizes from local sponsors. Visit Find a Competition to see details.
Young women in grades 9-12 interested in computing and technology are STRONGLY encouraged to apply.
Applications will be accepted until 11:59 pm Eastern Time on Friday, October 15, 2010. Check out the Preparing Your Application guide to learn more about the application process and information needed. Instructions are also available in Spanish!
Please let us know if you have any questions and thank you so much for helping us spread the word about this exciting competition and opportunity for our young women interested in technology!
If you have any questions, please contact us at aspirations@ncwit.org.
Source: Alfred Thompson
High capacity Laptop Battery Buy laptop battery of high capacity. Click on our website and place your order today.
Pex for Fun
Can you read code in C#, F# or Visual Basic? Do you like programming puzzles we (well the Pex Team, part of the Research in Software Engineering (RiSE) group at Microsoft Research) has a site for you. Pex for Fun is a web site with programming puzzles in those three languages. The idea is that you are presented with a programming stub and asked to fill it in with code to solve a problem. The catch is that you are not told up front what the program is supposed to do. Pex will run and compare the results of your code with the results of a perfect solution. By examining the differences you try to determine what is desired and write code that matches the test cases that Pex comes up with.
Pex for fun on the web is a radically simplified version of the fully featured Pex Power Tool for Visual Studio. You do not need to install anything; all the work happens in the cloud. You can write code in C#, Visual Basic, or F#. Go to www.pexforfun.com, which comes with a set of code puzzles. Then click on the “Ask Pex!” button to get the answer yourself. Share your puzzles with your friends. Watch the tutorial, and read the documentation to learn more!
I have to tell you that I visited the site yesterday and was occupied for hours solving puzzles. It was great fun. And you can creat your own puzzles as well. There is a section about teaching with Pex for Fun as well.
Source: Alfred Thompson
Being Careful About Examples
Yesterday I posted some very simple sample code. I have to admit that I spent a lot of time on some of the details but may not have spent enough on some of the other details. This is always an issue when working on sample code for demonstrating a specific, often detailed concept. This is also an issue with code for tests and quizzes BTW. I remember one of my APCS students complaining that the APCS test was all about showing bad coding examples. A bit harsh perhaps but when writing code for a test one is very constrained by space. The good news is that these examples can lead to having some great conversations with students. For example, in the case of yesterday’s code samples I received email from a teacher friend of mine calling me out. Sort of.
Should you teach students to break out of loops or to use a better loop to meet the need? In your programs today(?) you use a for loop to go through the elements until the end, but if you find a bad value break out. Shouldn’t you have used a do while loop? That way you place clear conditions for when to stop looping?
One example of the code in question is this C# example.
for (int i = 0; i < t.Length; i++)
{
if (!Char.IsLetter(t, i))
{
MessageBox.Show("Alphabetic characters required");
break;
}
}
In that code I use a break statement to exit the loop early. Standard structured programming, as I learned in college many years ago, says that is bad. The “rule” is that a loop should have one and only one exit point. When you add more exit points you add the potential for problems with people understanding the code, maintenance issues, and unexpected consequences when programs are extended or modified in the future.
A more strictly by the rules structured programming code might me something like:
int i = 0;
while ( i < t.Length && Char.IsLetter(t, i))
{
i++;
}
if (!Char.IsLetter(t, i))
{
MessageBox.Show("Alphabetic characters required");
}
That’s probably still not the best way but it at least demonstrates the principle of one exit for the loop. This brings up the point I was making earlier about simple samples being more difficult than it may seem. The first example shows the comparison pretty clearly in a simple if statement. The second example shows the same thing but the Boolean expression in the while is more complicated then the one in if statement. Also in the second example the loop “feels” kind of forced to me. Of course often times in a real program there would be other things going on inside a loop that we are using. In a more complex “real” program the value of using the while loop might actually be more obvious.
We could write a very complicated example that would demonstrate several concepts or features of course. The problem there is both one of focus and potentially too much complexity making it hard for beginners to understand the code. Often then we are faced with the real trade off between great code all up and simple easy to understand samples that may not be ideal code.
When these examples sparks conversation in or outside of class be sure to take advantage of these as real learning opportunities. You can always pretend you did it on purpose. ![]()
Source: Alfred Thompson

