Archive for January, 2012

What did you think of your first programming class?

Thursday, January 5th, 2012
There are a number of different approaches to teaching programming. Some walk through one language and introduce its features in writing a series of small programs. Other courses might dive in with a “code reading” approach. Ever more popular are offerings built around using graphical programming environments to drive animations or script robots. Traditionalists might build a course around “The Structure and Interpretation of Computer Programs” and heavily emphasize theory.

Here at the IEUC we would very much like to hear from you about your experiences with any of these models. If you are a student or would like to share recollections of your student days, please email us so we can sample your opinions of what works and what doesn’t from a student’s perspective. Also if you’ve taught such a course, we would be equally eager to get your perspective as well!

In any case, we look forward to your email.

Book of the Day ::: The Architecture of Open Source Applications

Wednesday, January 4th, 2012
While there are countless books about writing small programs,the real test of one’s skills comes when you tackle a large project, perhaps with a group of colleagues. As the number of lines of code rapidly mounts it becomes nessessary to think about how to organize it all.

The Architecture of Open Source Applications is an incredibly valuable source of illumination in this regard, since it shows you how others have tackled this very challenge. You can read it online or procure a hard copy to join the contributors in exploring the design of 25 impressive pieces of Open Source software.

Resolve to Learn How to Program

Tuesday, January 3rd, 2012
If you haven’t chosen a New Year’s Resolution, why not resolve to learn how to program? It can be an incredibly rewarding experience that might even help you land or hold onto a job. Best of all, it is incredibly empowering to be able to bend a machine to your will and come to the perhaps startling realization that you are no less capable of creating useful tools than those other guys and gals who created the high tech cocoon in which we live.

It won’t be easy at first, but it truly can change your life, and we are here to guide you through the process. All you have to do to start is to reach out and contact us!

Function of the Day ::: Bijective Hexavigesimal Encoding in Ruby

Monday, January 2nd, 2012

Have you ever noticed how column headers are labeled using letters instead of numbers in a spread sheet? After running from A to Z, the sequence picks up with AA to AZ, then AAA to AAZ, and so forth.

This is a Base-26 (i.e. hexavigesimal) encoding, that doesn’t employ any of its symbols to represent zero (i.e. bijective). As such it is only defined for the Counting Numbers (i.e. 1, 2, 3, …)

This is can be implemented in the Ruby programming language with this utility function:

def bijective_hexavigesimal(n)

   #  Copyright 2012 by Peter J. Wasilko and The Institute for End User Computing, Inc.
   #
   #      Website: http://www.ieuc.org
   #
   #      Email:   info@ieuc.org
   #
   #   Converts a Counting Number to Bijective Hexavigesimal form.
   #
   #      Example: bijective_hexavigesimal(27) => "aa"
   #
   #      Tested under Ruby 1.9.3p0
   #
   #   Please use freely for any non-commercial purposes.
   #

   if ((n < 1) || !(n.is_a? Integer)) then
      raise "Bijective Hexavigesimal encoding is only defined for counting numbers"
   end

   alphabet = %w[a b c d e f g h i j k l m n o p q r s t u v w x y z]

   hexavigesimal_digits = []

   while (n > 0) do
      remainder = (n - 1).remainder 26
      hexavigesimal_digits.unshift alphabet[remainder]
      n = ((n + 1) - remainder) / 26
   end

   return hexavigesimal_digits.join.to_s

end

Happy New Year!

Sunday, January 1st, 2012

From all of us at the The Institute for End User Computing, Inc., may you and yours enjoy a happy, healthy, and prosperous New Year.