Archive for category BJU

Words of wisdom from Launch Greenville

While a spring Saturday in lovely Greenville SC is not a good setting for a day long business seminar, here I am and here are some tidbits of business wisdom I collected while here.

- it takes a business to grow a product
- “greatest idea ever” has flaws; it will sell itself therefore no market research is done
- the idea becomes sacred; no changes are allowed; no room for improvement; it consumes you
- passion and talent are not linked
- know when to say no to working with a customer; finish what you started but know when to stop
- monopoly is sum zero; you get from others; does your business only get by taking business from competition ?
- life is sum positive; you get from the game; does your business get by generating something knew?
- money doesn’t generate money, it accelerates making or losing money
- pay attention to opportunities; Jim Anthony story
- learn hownto make others’ pain go away; create solutions that eliminate pain; this means I first have to learn what makes others hurt; listen then apply what I am good at to eliminate their pain

No Comments

Computer Science Future is Huge!!

Computer Science/Information Technology continues to be a high-growth, high-paying field. Here’s a summary.

  • According to the latest 10-year Bureau of Labor Statistics projections:
    • The top 3 growth industries are: “Management, scientific, and technical consulting services” (77.9%), “home health care services” (55.4%), and computer systems design and related services” (38.3%).
    • The top 6 more specific occupations are: “Network systems and data communications analysts” (53.4%), “Personal and home care aides” (50.6%), “Home health aides” (48.7%), Computer software engineers, applications” (44.6%), “Medical assistants” (35.4%), and Computer systems analysts” (29.0%).
  • Computing-related jobs constitute 5 out of the 10 highest paid jobs from among the 30 fastest growing jobs in an analysis of slightly older BLS statistics.
    Reference: http://www.cnn.com/2006/US/Careers/01/26/cb.top.jobs.pay/index.html.
  • A study of offshoring by the main professional society for computer scientists has concluded that offshoring is probably good for the economy and computing professions in the U.S.; more information technology jobs are available today in the U.S. than at the height of the recent “dot.com boom”.
    Reference: http://www.acm.org/globalizationreport/summary.htm.
  • Recent data shows job openings far exceeding degree production.
    Reference: http://usacm.acm.org/usacm/weblog/index.php?p=542 (UPDATED GRAPHIC)
  • Studying computer science leads to a wide variety of career possibilities in a very diverse set of industries and agencies.
    References:  http://www.khake.com/page17.html, http://www.luc.edu/career/pdfs/computer.pdf.

It is said that a picture speaks a thousands words. So here’s a thousand words to summarize the future of computer science/information technology jobs.degreesvsjobs

No Comments

Bit Building Contest Results

Not sure what a bit building contest is? Check out my post.

This year we had 28 students competing in a 3 hours contest attempting to solve 10 problems by writing computer software.
Here’s a sampling of the problems.

Miss Pelt – 74 solution attempts; 15 correct

Miss Pelt struggles with a compulsive misspelling habit.  Since she happens to live in the only known Alternate UniverseÔ in which computerized spelling checkers have not yet been invented, you have been called upon to write a program to help her catch her typos before they go public.  Only you can save her self-esteem!

Your program must read in a dictionary of known-correct words.  It must then read in a list of sentences and check each word in each sentence against the dictionary.  Finally, it should print out all the sentences, marking any words that were misspelled (i.e., weren’t in the dictionary).  You may assume that the words in the input sentences are separated by only whitespace and that all comparisons are case-insensitive.

Greedy Gift Givers - 21 solution attempts; 12 correct

This  problem  involves  determining,  for  a  group  of  gift giving friends, how much more each person gives than they receive  (and vice versa for those that view gift giving with cynicism).  In this problem each person sets aside some money for gift giving and divides this money evenly among all those to whom gifts are given.

However, in any group of friends, some people are more giving than others (or at least may have more acquaintances) and some people have more money than others.

Given a group of friends, the money each person  in the  group spends on gifts, and a  (sub)list of  friends to whom each person gives gifts; you are to write a program that  determines how much more (or less) each person in the group gives than they receive.

Leap Year – 82 solution attempts; 23 correct

The ancient race of Gulamatu is very advanced in their year calculation scheme. They understand what leap year is (A year that is divisible by 4 and not divisible by 100 with the exception that years that are divisible by 400 are also leap year.) and they have also similar festival years. One is the Huluculu festival (happens on years divisible by 15) and the Bulukulu festival (Happens on years divisible by 55 provided that is also a leap year). Given a year you will have to state what properties these years have. If the year is not leap year nor festival year, then print the line ‘This is an ordinary year.’ The order of printing (if present) the properties is leapyear–>huluculu–>bulukulu.

Write a program to process years to determine which leap year properties they exhibit.

Here’s the breakdown of computer languages which were used to solve the problems. The numbers represent the correct solutions. Each student selected their language of choice.

  • C++ (Windows) – 36
  • Python – 30
  • Ruby – 19
  • C Sharp – 8
  • C++ (Linux) – 7
  • Java – 4
  • Visual Basic – 1

So what’s the benefit of such a contest? Consider the following

Figures released by the US Department of Labor predict that IT jobs will see some of the strongest growth of any profession in the US by 2010. Demand for applications programmers is expected to grow by more than 100 per cent, and overall the IT sector is forecast to expand by over a third.

The contest helps us to encourage young people to consider a career in the bit business. It also helps us as we seek to show case the talent of our students to the bit business world. Finally, it helps my company identify and attract top bit building talent! That makes it very worthwhile. :-)

No Comments

20th Annual BJU Bit Building Contest

Today I am involved in an atom-building venture as well as a bit-building venture. While the concrete trucks pour yards and yards of atom-based concrete to lay the foundation for a duplex, 29 of my computer science students, aka bit builders, are working feverishly pouring out computer-based solutions to 10 challenging problems in a 3 hour head-to-head contest. The winner will be the one who is able to successfully solve (i.e. no known bugs) the most problems during the 3 hour contest.

I’ve been running this contest for 20 years. As a result we have 5 teams that compete at an intercollegiate level. We’ve gone from 16th place out of 40 some 10 years ago to usually ranking in the top 4 in the same contests. In some contests we consistently rank #1. So what’s a programming contest like? Consider a big game of chess, but instead of only 2 players, bring 30 to the table. Now, remove the chess board, forcing a game of purely mental chess. That’s what I think of when I think of a programming contest. Why do I call it a bit building contest? I like to contrast for folks the similarities between building with atoms (like a duplex) and building with bits (software). Everything on the computer is digital – music, photos, videos, web pages, software. To make something digital, say a piece of music, you represent the music with numbers, hence the term digital. While computers really only know 2 numbers – 1 and 0. These are called bits – binary digits (we love acronyms in computer science). Software tells the computer how to manipulate all the bits. Hence programming, creating software, is working with bits. So I call it bit building!

It is a purely mental activity involving

  • problem solving skills (reading, understanding, assimilating)
  • pattern recognition (hey, this problem looks like another one I’ve solved)
  • coding (speaking a language the computer understands – C, C++, Java, Python, C#, there are thousands)
  • debugging (fixing one’s solution until it generates the correct answers)

It is a skill that very few people care to develop, yet we are in a world that is depending more and more upon software – just consider all the challenges facing Toyota right now with the faulty anti-lock brakes and the sticky gas peddles – both software problems. So in the business world this law of supply and demand kicks in making the value of bit builders increase! One way to foster an interest in something is to turn it into a game or a sport. Hence the bit building contests! Let the games begin.

I also need to mention the sponsors, without which all we could offer to the winner is bragging rights. But with corporate sponsorship comes the opportunity to offer more – cash prizes, books, techie gadgets, etc. So special thanks to these corporate sponsors who help me make this event much more worthwhile! :-)

I appreciate the vision that these organizations have demonstrated by investing in our future bit builders! Thanks for your support!!!

Some of the results of this contest are now posted here.

No Comments

Help me ride for BJU?

Somehow I got roped into starting BJU’s first ever motorcycle club, called the BOJOMO. I ride a Honda 1300 VTX, it is considered a cruiser bike. I especially love riding up in the mountains just north of Greenville, the Blue Ridge Parkway and Tail of the Dragon are two of my favorite rides.

BOJOMO is sponsoring a special ride to help raise funds for this year’s Bible Conference offering. Details of the ride are at http://www.bju.edu/alumni/bojomo.php. I am looking for folks who will make a financial pledge to sponsor my ride.

To sponsor me, go to http://wurl.ws/l07A and select Dan Wooster as the rider. You can pledge a flat amount or per mile. My plan is to do the entire 211 mile ride. :-)

Submit your pledge now and pay later: http://wurl.ws/l07A

No Comments

Worthwhile Software Must Be Robust

From ABS bugs in the Toyota Prius to I can’t print my boarding pass, software issues continue to plague us. To fully understand why, you must grasp this basic fundamental characteristic of software – Software is not flexible! It works sort of like concrete. While the builder is working with concrete, it is a most flexible material. But once water is added and the concrete hardens, good bye flexibility.

The same is true with software. While the builder is writing the software (programming or coding as we call it) it is a most flexible material. That’s why we call it software. But once the system has been built and deployed (i.e. made available for others to run on their computer) it is no longer soft.

One of the 10 qualities of worthwhile software is ROBUSTNESS which defines who well (or not) the software will respond to unexpected conditions. This morning I experienced this lack of robustness when I printed my boarding pass for an early morning flight from Denver back to Greenville.

I was staying with my good friend, Will Senn (pastor of Tri-City Baptist Church in Westminster CO), and needed to print my boarding pass before heading to the airport at 4:30AM (which felt like 3:30AM thanks to the time change forced upon us in the name of saving energy – it certainly didn’t save my energy nor the thousands of people at saw at Denver International this morning). I logged into my Delta account and checked-in. When I hit the print button for my boarding pass, I was shocked to receive a blank paper! An error message popped up from the printer saying “out of ink”. Oh now, no time to run to Office Depot. I had to catch my plane.

On the way to the airport it hit me – how robust is the Delta check in software? Will it let me check in again at the airport. Well, my worst fears were realized when the check in software said “see agent”. I tracked down an agent and told him what happened. Of course he had never heard of anyone every doing this before and had no idea how to check me in. So I got in line to check in the old fashioned way, you know, the way we will tell our grandchildren we use to check into airplanes and they’ll say “you’ve got to be kidding!”. I told my story to the next agent who tried unsuccessfully to check me in. I said you need to find a way to “uncheck me in”. So he went to the super-agent who finally was able to get the system to let me check in again and printed my boarding pass!

Why all the hassle. The software engineers didn’t consider the possibility of someone checking in from home and not being able to print out their boarding pass. Or perhaps they considered it and didn’t have time or money to make the necessary changes to the software before it was deployed. Either way, because software is not soft (i.e. flexible), it was not able to handle my situation.

This demonstrates a point about computational thinking I stress with my students – computers are fast and accurate, but not creative or flexible. People are creative and flexible, but not fast and accurate. They need each other!

So one of the 10 qualities of worthwhile software is robustness – to create the software in such a way as to anticipate every possible error a user might make and figure out in advance (while the software is being built) how to do the right thing. Software developers will have strong job security until someone figures out how to solve this problem!

1 Comment

A sci-fi book with a strong biblical basis!

One of my joys in life is to be involved helping grow the next generation of Christian young people to use their talents and interests in computer technology (or as I like to refer to it – the bit business) to bring glory to their Creator and Savior. I have seen more than 300 computer science and information technology grads. It is most exciting to see how God has blessed and is using them to accomplish their life purpose for his glory. One of them, Sam Batterman has published his first book this year called Wayback. I was priviledged to read the manuscript which at first I put off thinking it would be boring. Boy was I wrong! Once I read the first chapter it became a book I couldn’t put down. Sam has a very clever way of bringing you to the end of each chapter leaving you hanging at the edge of your seat wanting to know what will happen next! The story lines are very engaging, scientifically researched, and biblically accurate. Sam takes the issue of biblical authority most seriously as he takes the reader back on a time machine to the days of Noah to explore just how evil the culture was that would motivate God to judge the world with a global flood of massive proportions! The scientific team Sam assembled presents all the various views on this event based upon each one’s presuppositions.

Sam was motivated to write this book based on his belief that many Christians don’t think deeply about how important the Genesis account is to our faith. It is everything: how we started out, God’s love and desire for a relationship with his creation (in His own image), the rules, the breaking of the rules, the penalty and condition of man, and the promise to restore the
relationship through His Son. The Flood is the story of a world that was destroyed and then “rebooted” because of man’s sin. How that “reboot”
occurred is mind-boggling – not just a rainstorm or a local overflow of a
river, but the single greatest cataclysm our world has ever seen. Much of his support came from the tremendous work done by Ken Ham and Answers in Genesis.

If you are looking for a book that will get folks to think biblically while enjoying the creativity of great sci-fi, I highly recommend Wayback. Read it right away so when the video series comes out you can tell folks you read the first book in the series! :-)

No Comments

How to prepare for a programming contest

One of the joys I experience as a bit building professor (aka computer science professor), is taking teams of students to intercollegiate programming contests. Asked once what these events were liked, I said imagine a huge multi player chess game and then take away the chess board! In other words, very mentally challenging, but definitely not a spectator sport.

However the preparation for such a contest is in some ways similar to that of any other physical sport – practice, practice, practice. So how does one practice for such a competition? By writing computer programs to solves as many problems as one can in as short a time as possible. And being good computational thinkers, we know how to take advantage of the computer to help us!

Meet the UVa Online Judge, web-based tool to which you can submit your computer programming solution to a specific problem and the judge will almost instantly tell you RIGHT or WRONG. And this is precisely the feedback you are given during a contest. Very rewarding when you get it right, very frustrating when you have it wrong. You are not told why it is wrong. It is just wrong! Thus begins the arduous process of trouble shooting, trial and error, to try and determine why your solution doesn’t completely solve the given problem.

Here are some suggested “simple” problems in the UVA problem set to get started with.

These competitions prove to be some of the most engaging mental, problem solving activity the human mind can engage in! :-) Ready to get started? Here’s all you need to do

  • register for a free account on UVa Online Judge
  • pick on of the above problems and solve using C, C++, Java or Pascal
  • submit your results to the Online Judge
  • track your progress and get suggestions for other problems to solve based upon your performance here

For more information about the programming contests available to enter, check out these

1 Comment

Too Many BITs!! Help me see them!

Living in the information age has lots of exciting benefits and challenges. I like to think that working with bits, which are the basic building blocks of digital information, is a lot more fun than building with atoms, relics of the past industrial age. One of the challenges with so many bits is how to see them all? An exciting branch of computer science is starting to gain much attention in the business word. It’s called Data Visualization and its primary goal is to communicate information clearly and effectively through graphical means.

Last week I was pleased to have one of my former students, Sam Batterman, speak to my computer science students about this topic. Sam is a data visualization evangelist @ Microsoft. He is has been working with health care companies to help them make huge decisions about the future our our health care system through the use of data visualization techniques (another great example of the use of computation thinking skills in the 21st century). An interesting side note is that Sam’s new sci-fi novel (WayBack) is the result of his realization that no matter how much data you have to visualize, your presuppositions have a huge impact on your interpretation.

We’ll I just ran across a very fun application of data visualization that I think everyone can understand. It deals with word frequency analysis – a fancy term for “how many times does each word occur within a body of text?” I actually give my freshmen bit-builders an assignment in which they have to build a program which reads in a large text file of words and then tell how many times each word occurs. Well after finding this DV applicaiton, I think I’ll be modifying the assignment! :-)

Here are couple examples of this technique taken from the word frequency dv website.

These were generated from various sources of text – one of my computer science classes, my personal blogspace and my company’s blogspace .


In the past, the key to making good decisions is to have good information. But if you have so much information that you can’t absorb it then you will likely not be able to make good decisions. You need a company like Worthwhile help you make sense out of the bits. That’s why we love working in the bit business. :-)

For more of my blogs on the world of bits, just put in “bits” in my blog’s search engine.

No Comments

When the BITs comingle: Academic + Business

One of the blessings I experience as a professor of computer science and owner of a bit building business, is the opportunity to allow my students to experience a taste of the business world through The Worthwhile Company. I like to call this the “comingling of academic and business bits”.  I first saw the term “comingling of bits” in Negroponte’s Being Digital where he does an outstanding job of helping everyone understand the differences between the bit-based world and the atom-based world.

Last week I had my senior computer science and information technology students go on a tour of Worthwhile. I purposefully avoid being there so that they can see the company from a different perspective. They hear it from me for four years so its nice for them to hear a different perspective. I find its sort of like parenting – as parents we have seen the benefits derived when our children hear the stuff we’ve been trying to instill in their hearts from someone else. :-)

Here are some excerpts from the feedback I received from my students concerning the Worthwhile Tour. I share them because I believe Worthwhile is an excellent instantiation of the class  BitBuildingCompany! (sorry, can’t resist a little C++ lingo)

  • Despite the late hour of Monday’s tour (in terms of typical business hours), the first thing I noticed upon my arrival at Worthwhile was the presentation provided by Beth Honshell.  As a developer, it is not my nature to think about the way a business presents itself, but when clients come, first impressions really do make a difference.  Specifically, my “first impression” of Worthwhile headquarters was not the refreshments – it was the professionalism of the environment.  The building was extremely well-kept, and the big screen on the wall was immediately noticed.
  • From the moment we entered the door, the first impression we had of Worthwhile was excellent. The staff was cheerful and friendly, the lobby was clean and orderly, and the snacks were good. It was a good reminder on the importance of first impressions, and it was clear that Mrs. Honshell was an expert in that field.
  • My first impression of Worthwhile was given to me by none other than the Director of First Impressions herself. I am familiar with the concept of placing someone in charge of ensuring  that guest have a friendly and impressive first impression, but I’d never quite seen how useful it would be in a software development firm. Imagining myself as a non-tech oriented client, it was clear how comforting a warm friendly welcome would be.
  • If I were a client choosing between two software development firms, that good reception would be a definite factor in how I viewed each firm and ultimately my decision of which firm to hire.
  • My most prominent takeaways were two: the importance of first impressions and atmosphere, and the skill with which The Worthwhile Company presented both of these.
  • The next insight I gained was that the clients are not the only non-tech oriented people a developer will have to interact with.
  • Developers should be prepared to communicate with, at the very least, user interface designers that are not well versed in technical computer jargon.
  • The burden is on the developer to become familiar with the jargon of non-programmers in order to be effective in an organization.
  • I was pleased to see biometric security in use in the fingerprint reader.  Biometric security is not just a research topic but is actually being used to protect multi-million dollar data centers.
  • My favorite part was hearing from David Ruse with how he is involved in every step of the production, from the beginning when they are interviewing the client to when the final testing is done before deployment.

This tour helps me accomplish one of my teaching goals of helping my students bridge the gap between the academic world of bits and the business world of bits. It is most encouraging when the start to “get it”. :-)

No Comments

KCEA ‘09 Computational Thinking

I am pleased to be heading to the great Keystone State (PA for those who are a bit weak on their American history) for the annual Keystone Christian Education Association (KCEA) annual conference held at the lovely Willow Valley Resort located in the Amish lands of Lancaster PA. I am giving my Computational Thinking presentation in which I provide instruction to teachers on 1) what is computational thinking 2) why it needs to be taught in K-12  3) how to teach it.

Here is past blog posting on this topic.

KCEA Computation Thinking Presentation – pdf format

KCEA Computational Thinking – ppt format

KCEA Computational Thinking Skills handout

No Comments

KCEA ‘09 Robotics Workshop

I am pleased to be heading to the great Keystone State (PA for those who are a bit weak on their American history) for the annual Keystone Christian Education Association (KCEA) annual conference held at the lovely Willow Valley Resort located in the Amish lands of Lancaster PA. I am presenting 2 robotics workshops in which the teachers will work in teams of 3 to build and program a Lego Mindstorm NXT robot. This is a great exercise for students as it gives them exposure to computer technology, computational thinking skills, team work, communication, problem solving – all the stuff they need to secure a job in the 21st century of the Information Age.

Here are some past blog postings about the robotics teams I’ve taken out to various high schools around the USA.

KCEA Robotics Workshop Presentation

KCEA Robotics handout

No Comments

Can’t See the BITS!

We all get frustrated when things don’t work. Personally I believe this frustration is meant to point us toward our Creator and His amazing solution – the Gospel! But the results of living in a broken world is very evident. Even in the BIT world. The world of ones and zeroes. Information. Computers. Websites. Logins. Security. All of the stuff of which the bit business consists. My life is very involved in both the teaching and application of bit business concepts to my students and my clients.

This morning I hit yet another frustration which got me thinking about how my company (Worthwhile) can help our customers and their customers avoid these frustrations. I am a member of ACM, a professional group of people interested in advancing computing as a science and profession. They have a very extensive online book store. There was a new book called The Twitter Book which I wanted to order for The Worthwhile gang. We’ve had lots of great discussions recently about the value of social media and how to bring real business and personal value using it.

It had been a while since I had logged into Safari Books Online, so after digging out the keys to store I attempted to login, but to no avail. No errors, no warnings, no entry, NOTHING! I simply couldn’t get into the store. Now, I teach an e-commerce class to MBA students and one of the “big ideas” we discuss says “when there’s a person who wants to give you money MAKE IT AS EASY AS POSSIBLE!”. We’ll it wasn’t easy for this this morning! I got to thinking about the parallel in the atom world (brick and mortar). If I hopped in my car, and you should see my new Crossfire SRT6 sometime – wow is it sweet, and drove down the street to Barnes and Nobles, I could see right away if there was something keeping me from getting into the store – could be the crowds, the roads closed for construction, traffic lights could be out, the store could be closed, the store could be out of business, a vast number of things would serve as visual aids to tell me why I couldn’t get in.

But things are often not so simple in the bit world. Though if enough creative thought and energy went into it, I believe they could be! I have absolutely no idea why I couldn’t get into the Sarafi store. Was it out of business? Was my car out of gas? Was it too crowded? Where they closed for inventory? I have no idea. I find that to be very frustrating.

The lesson – when building interfaces and websites and plug ins and apps and you name it, for the bit business, you need to have a team with experience and dedication to think about how to present interfaces in such a way as to minimize or even eliminate user frustrations.

I’m confident that our dedicated team of bit builders and bit designers at Worthwhile will continue to create great user experiences that will make our customers and their customers ENJOY rather than simply ENDURE our creations! :-)

1 Comment

BJU CpS 479: Stop Dating the Church

To all my senior CS and IT majors:

As we get together this final year of your undergraduate career, the purpose of this seminar is to discuss “life after graduation”. What will it look like? What else can you do to prepare for it? Where will you live? What will you do? More schooling? Get a job? Start a business? All of these (and more) are legitimate questions to consider this final year of college. But in my mind, the question that will determine the direction of your life from here is “Where will I go to church?”.

I find this such an important issue that I am giving all my seniors the book “Stop Dating the Church“. The purpose of this blog is to give you a place to report on what you read in this book. Share 3 things you found in this book which you believe are the most important for you to seek to apply after graduation.  Then share 1 thing that you disagreed with. Be sure to give your biblical basis for both – the things you agree with and the thing you disagree with.

No Comments

Computational Thinking – What is it? How will we teach it?

I am a strong supporter of liberal arts education. It is one of the reasons I am happy to teach where a teach – in a Christian, liberal arts college. I believe a liberal arts education does the best job of preparing a young person to be able to effectively participate in society. It gives them exposure to areas beyond just the one they might be specially gifted or interested in. As parents and students evaluate the increasing cost of higher education, one thing we need to market better are the benefits of a liberal arts over a purely technical education.

We have recently gone through a reevaluation and restructuring of what is called our “liberal arts core” courses. These are the set of courses which we want every graduate of our university to have under their belts. One of the courses which has been placed into that set is a computer science course. The next step is deciding what belongs in this course. The options are many:

  • computer applications – learning how to use word processing, spreadsheet, browser, email
  • computer programming – learning how to build software
  • computer setup and maintenance – learning how to select a computer, set it up and keep it working
  • Internet usage – netiquette, how to search, how to discern what is true in all the stuff out there, how to publish your own stuff
  • information management – learning how to manage electronic information or BITS

One of the topics which has taken hold in education circles is called Computation Thinking. What is it? The seminal paper on the topic is Jeanette Wing’s ACM viewpoint Computational Thinking. Here is a summary of the highlights of this paper. I put them here in the hopes that I can stimulate some thinking among my faculty as to what belongs in the core computer science course.

  • it is a way of thinking about problem solving which takes into account the strengths and limitations of computers
  • allows us to solve problems which cannot be solved by computers alone
  • allows us to solve problems which cannot be solved by people alone
  • probes the question “What is computable?”
  • it is a fundamental skill required by all, just as the famous 3 R’s (reading, riting and rithmetic)
  • a person doesn’t have to know how to write software in order to apply the principles of computational thinking to problem solving

Computational Thinking is:

  • fundamental skill for all
  • required in most 21st century problem solving scenarios
  • thinking recursively
  • using abstractions and decomposition
  • understanding the limitations of computers
  • thinking about prevention, protection and recovery from error scenarios
  • using heuristic reasoning to discover a solution

Characteristics of computational thinking

  • conceptualizing, not programming
  • fundamental, not rote skill
  • a way humans, not computers, think
  • complements and combines mathematical and engineering thinking
  • ideas, not artifacts
  • for everyone, everywhere

Jeanette ends here paper with a challenge that fits in well with the empahsis we’ve received this week during in service training – teaching our students how to think. “Professors of computer science should teach a course called – Ways to Think Like a Computer Scientist – to college freshman.

I implore your help to begin formulating the content for this new liberal arts core course in computational thinking. Add your comments below to help stimulate the creative juices God has given us all the ability to generate having been created in his image. :-)

Here is some recent (July 2010) material on this topic from ACM regarding inclusion of CT teaching in K-12.

Computational thinking (CT) is a problem solving process that includes (but is not limited to) the following characteristics:

• Formulating problems in a way that enables us to use a computer to help solve them
• Logically organizing and analyzing data
• Representing data through abstractions such as models and simulations
• Automating problem solving through algorithmic thinking
• Selecting a set of tradeoffs to achieve the most efficient and effective combination of steps and resources
• Generalizing and transferring this problem solving process to a wide variety of problems

These skills are supported and enhanced by a number of disposition or attitudes that may not be thought of as “thinking” skills but which may be another, essential dimension of CT.

These dispositions or attitudes include such things as:

• Confidence in dealing with complexity
• Persistence in working with difficult problems
• Tolerance for ambiguity
• The ability to deal with open ended problems
• The ability to communicate and work with others to achieve a common goal or solution

No Comments

Interface makes all the difference – well, not really

In my “9 qualities of worthwhile software“, I refer to user-friendliness as one of the qualities which makes software worthwhile. I ran into a morning battle with the bathroom faucet in my hotel room this morning which got me thinking more about the role interfaces play in the things we use all the time. All things we use have interfaces, and software is no different. These interfaces come in all shapes, sizes, colors, etc. Some seem to be easier to use than others, usually because they are more intuitive. Interfaces help hide the functional details that make a device do something useful for the user.

A faucet is one of the more universal and simple interfaces most of us interact with several times a day. In terms of functionality, they provide the user with the following

  • turn water on and off
  • control the amount of water flow (some might only allow on or off and no level control)
  • select between cold and hot
  • control the combination of cold and hot

Some “high tech” faucets might also provide the following

  • auto on/off via a sensor which senses the presence/absence of the user’s hands
  • specified length of time to be on in order to reduce the amount of unnecessary water flow, these are especially popular in high traffic areas – rest stops, airports, etc

So while all faucets provide pretty much the same functionality, the way in which they deal with this functionlity varies. For example

  • push, pull, twist, press, turn
  • separate the cold and the hot
  • continuous lever which combines cold/hot and volume flow at the same time

The one in my hotel was a single handle through which I could select hot/cold and volume. The challenge for me was knowing which way to move the handle to get the hot water I wanted. So what’s the big deal? It was labeled with an H (presumably for hot) and C (presumably for cold). My challenge was I turned it in the direction I assumed was hot, waited a few seconds, wasn’t hot, so I moved it the other direction, waited a few seconds, it wasn’t hot. I repeated my test of the interface and waited a longer period of time. Still not hot and didn’t seem to be even getting warm! Being the patient person that I am (NOT!!) I went to the other sink and turned on the hot water immediately. Before leaving the questionable faucet, I decided to extend my test by leaving it run in the position I assumed was most likely hot (don’t report me to the water usage department!). When I came back, several minutes later, behold, I had hot water! So now I know which direction is hot and which is cold. 

I stood there a few seconds analyzing the situation to determine if this was the fault of the interface design. Perhaps the interface could have been improved by adding a couple of directional arrows to the H and C? But in this case I believe my challenge came not from a poor interface design, but from a performance problem! The hot water took way too long for me to be able to quickly tell if I had gone the right direction. 

My point for bit building is this – don’t focus on a single quality of worthwhile software, they must all be taken into account together. The software interfaces must be intuitive, but the software must also perform well – not too fast, not too slow. Can software perform too fast? Absolutely, for certainly classes of functionality. Error messages are good example Users get very irritated if a program’s error messages appear and then disappear too quickly. 

So when looking for good software, be sure to consider all of the qualities, don’t just focus on a single one. My job @ Worthwhile is to teach our bit builders how to balance all of the qualities into a single software product. Its sort of like putting together a great orchestra – all the stuff must be in balance with the right timing. So interface doesn’t make ALL the difference alone. It has to be properly combined with performance, security, correctness, etc. For a complete list see 9 qualities of worthwhile software.

1 Comment

The Blessings of IronGeekWeek #2

I’m pleased to be the first person to blog on Ironwood’s very own blog site! This was a result of IronGeekWeek. We first did this event 4 years ago (May 2005) and decided it was time to do another one. The first time, Georg Zimmer and I, from The Worthwhile Company, came for a week & helped our good friend Dennis Mollet with the camp’s IT infrastructure. We also helped Sam Brock, camp director, improve the hosting of his website and email.

This year we brought an additional member on the team, Ian Wagner. Ian is one of my computer science students and is spending his summer interning @ Worthwhile in our growing Summer of Bit Building experience. Ian has proved to be an outstanding member of the team, allowing me to avoid the 2 all nighters the team has done so far this week! :-) We also had another one of my students, Jaclyn Ong, from Chino Hills, join us for a day. It was a huge learning opportunity for this relatively new member of the geek squad from BJU! :-)

A Day in the Life of IronGeekWeek gives a good overview of what we do.

Here is a summary of the hightlights of the week. We post this mainly for our benefit, for unlike most camp volunteers which paint and build buildings (all very atom-based activities), our work is done almost exclusively with bits. We post this list so we can look back and “see what we did”. :-)

  1. setup a vistor portal that will give camp visitors filtered internet access w/o having to involve Dennis’ time helping them with all the bit settings needed to provide this safe, filtered access – Ian was primarily responsible for this
  2. installed a virtual host on the camp’s main server and virtualized their existing Business & Exchange Server – Georg was primarily responsible for this and it ended up requiring 2 all nighters in order to minimize the impact on the users
  3. analyzed the cost/benefit of leaving all the computers on at night in order for Dennis to be able to automate nightly updates for OS & antivirus upgrades – Dan did the research on this and we all agreed that the additional $26/year was a small price to pay for the massive time savings for Dennis! :-)
  4. implemented to Windows Server group policies needed to keep users from shutting down their computers at night, forcing hibernation instead, so the auto updates could take place
  5. created an online virtual hosting environment to provide a home for a growing number of web-based applications
  6. created Ironwood Online as a place to put digital documents for Ironwood customers to download easily – showed Beth and Sam how to fill the shelves of this digital store with bit-based products
  7. created Ironwood Wiki to facilitate an easy to use online mechanism for posting employee related stuff – Dan used it to store the instructions on how to manage Ironwood Online
  8. created Ironwood Blog to allow Sam & others a place to easily communicate the blessings of the Lord in the lives of campers – Dan was privileged to create this first official blog here!
  9. moved the existing proxy server into a VM and created a new one for the visitor portal – Ian did the googling need to figure this out and the entire team had a hand in making it work.
  10. increased the storage capacity of their server from 1 to 3 terabytes, maintaining the reliability via RAID
  11. resolved some existing email issues with Exchange Server
  12. helped Larry the BBQ guy (and great provider of food – see photo below) get his email working properly on his iPhone – and now Dan has been hooked on iPhones!!! :-)
  13. resolved several DNS issues
  14. built and setup a new backup server and installed RSnapShot to keep the growing number of valuable bits insured – Georg and Ian worked on this
  15. created a script to restart IIS everyday @ 3AM to save time and frustration for Dennis – Georg did this one
  16. helped Dennis install 2 new flat panel monitors which suspend above his desk!
  17. gave Dennis some worthwhile computer lessons on topics of his choice – firewalls, ports, TCP/UDP/GRE and basic network and application security
  18. spent 14 hours trying to get a donated backup server to work; finally gave up and built our own in just a few short hours! Lesson learned – beware of donated computer equipment; it may not be worth the time it takes to assess its value to the ministry.

All in all we had a great week! Here are a few photos to help us remember the blessings of God in allowing us to serve him thru this great Gospel ministry which is changing hearts for Christ out here in the high deserts of California.

No Comments

A Day in the Life of IronGeekWeek

Take 5 computer geeks + 1 camp in the desert + 50 computer users + lots of computer problems and out comes IronGeekWeek. It began 4 years ago @ Ironwood Camp, located in the high deserts of southern California. Georg (aka Worthwhile #1 bit builder) and I came out to help Dennis Mollet, Ironwood’s IT guy, solve several IT related problems (and probably introduced a few knew ones, unknowingly of course!). The goal is find ways to use computer technology to help the camp achieve its mission more effectively. We did some server & workstation upgrades, setup a backup system, setup an e-commerce store & migrated their major business application from Access to SQL Server. In short, a bunch of bit stuff.

We are back again this year, with some more resources – Georg Zimmer, Ian Wagner & Jaclyn Ong. Ian and Jaclyn are a couple of my computer science majors, just finishing their sophomore year. It is interesting to watch the reaction of the non techie people as they try to understand what in the world we are doing! They can see what the painters & construction crews do. They understand the benefits of the teams that come to help get the camp stuff ready for another summer of campers. But what are these geeks doing here for an entire week? And will my computer be the same after they leave! :-)

Here’s an overview of what we are doing, without all the technical mumbo jumbo.

  • listen to the IT related problems they have been having, looking for patterns, cause and affect, related problems, things that will save the most time and positively impact the most people
  • for each problem identified
  • 1. google for possible solutions
  • 2. analyze each potential solution, looking at pros and cons, costs, maintenance, etc
  • 3. presenting the solution(s) to each other & deciding which one(s) are worthwhile
  • 4. test driving the worthwhile solutions
  • 5. choose a final solution
  • 6. install the solution
  • 7. discuss the maintenance required to keep the solution going
  • move on to the next problem

The challenges are many. The opportunites are exciting. The search for solutions is invigurating. By the end of the week our hope is that we can walk away knowing that we solved more problems than we created! :-)

1 Comment

Securing Bits

Last week I posted a blog on “9 qualities of worthwhile software“. Today I’d like to expand on #9, security. A good piece of software should “protect the information it is responsible for”. It should “secure the bits”. I have found one of the best ways to gain insights into computer technology (the bit world) is to look for parallels in the “real world” (the world based on atoms). Once one understands the major differences and similarities between bits and atoms, it is much easier to understand how to live in a world filled with bits.

As a husband and father, I take seriously my job of protecting my house and those in it. I’m protecting things made of atoms. I can see them. As a bit builder, I take seriously my job of protecting my clients’ information. In some sense, they cannot be seen nor felt. They are intangible, though in many cases are extremely valuable. One of the major differences between bits and atoms is that atoms can be seen and for the most part, bits cannot be.

Why do I say “for the most part”. Bits cannot be seen by the “naked eye”, the untrained eye. But with the right tools, a trained individual can sort of see the bits. In my 28 years of teaching computer science, I have noticed those that are inherently good with numbers can usually see the bits in their head. That’s because they are good with numbers. Securing bits has everything to do with understanding numbers. Its a “numbers game”.

In the atom world, we secure things in layers. The number and strength of each layer is determined by the value of the item being secured. For example, most of us secure our money in a bank. The bank secures it in a vault. The vault has layers of protection and so on. Now one thing worth noting in the atom world, which is also true in the bit world, the tighter I secure atoms (i.e. the more layers), the more difficult it becomes to access them when I need them. For example most of us use keys to gain access to our cars. Without the keys, accessing the car’s functionality is made considerably more difficult. Not impossible, just more difficult. If I live in a neighborhood in which car jacking has become a way of life, I probably also want to install other layers of security on my car – steering wheel locking bar and LoJack come to mind. An interesting thing to note about the locking bar, it is fairly easy to find something that will “hack through” this layer of security, such as the BUSTER – removes steering wheel locking bars (which, btw, I found in the same google search I used to find a locking bar, so take note – even the crooks use google!). Which brings up an important point about information security – any bits I can secure, can be made insecure by someone else.

Rule #1 – securing bits is a mathematics game

Rule #2 – any bits that one person can secure, can be made insecure by another person willing to put enough effort into it- beware of anyone telling you they can guarantee 100% security!

Rule #3 – increasing security decreases usability (makes things more difficult even for the honest folks)

Rule #4 – like securing atoms, securing bits is best done in layers

Rule #5 – it is harder to know that something you cannot see is secure or not (corollary is – It is easier to secure things you can see)

Rule #6 – securing stuff (bits or atoms) requires being able to think in advance of all the bad things that can happen

It is rule #6 I find to be the most challenging. Consider the events of 9/11. Prior to these events, not many people considered the extreme vulnerability of tall buildings! Now everyone is aware of this. In the early days of web sites which had databases on the backend, not many people considered the extreme vulternability of SQL injection. This is a technique whereby someone can do unexcepted things to your bits in a database – change them, get a listing of them, or simply delete them! Now any developer worth his/her weight in bits is well aware of this problem. In addition, a growing number of tools we use to build web-based software takes this into account to help the developer create systems which avoid this vulnerability. There are hundreds of these types of vulnerabilities to which web applications can be exposed. If you want more details, I recommend CWE/SANS TOP 25 Most Dangerous Programming Errors.

In addition to being concerned about the security of the software, to be totally secure (or as close as the laws of the bit business will allow) the software must be running on a secure network. This topic will be discussed in a blog post coming soon to your browser …….

No Comments

Software – will it do the right thing?

Last week I posted my “9 qualities of worthwhile software“. Today I give an example of #1 – correctness.

I use PayCycle.com to do our company payroll. This pay period I forgot to include one employee’s vacation time. He received the paystub email and notified me. I deleted the paycheck and reissued the corrected one. So far so good. Then came the “will it do the right thing?” question! I had already processed the mandatory state and federal tax withholding payment so I was concerned about what would happen next. Would it do the right thing and pay only the difference between the 2 checks or would it do the wrong thing and pay the entire amount for this employee again. To my pleasant surprise (after testing of course, a topic for another day) it did the right thing.

It is so very nice to enjoy using good software as opposed to enduring to use software! Our TexSoft Team @ Worthwhile is committed and passionate about creating software that is enjoyable to use. :-)

1 Comment