Archive for category CpS 111

Son, you need to carry a REAL Bible

These words were directed to me on a recent visit to NY City. I was asked at the last minute to teach a Bible study on Sunday morning at a church near Madison Square Garden. Being persuaded that a Christian should be ready always to share from God’s Word, I said sure. I shared some thoughts from my recent personal Bible study in the Old Testament reading from the bit based Bible I have on my iPhone. I have been using a bit based Bible for both personal and corporate study for more than 10 years. The advantages over a paper Bible are many – multiple translations, searching, easy note taking and highlighting, ease from which to tweet or email Scripture, etc.

At the end of the study a 76 year old saint came up and rather forcefully shared these words with me. He said it was a poor testimony for me not carry a REAL Bible to church. After all, he said, that’s how everyone will see that I am a Christian. Wow, I was somewhat taken by surprise. I told him I was sorry if I had offended him and I was willing to share my reasons if he was interested. He was kind enough to hear me out but seemed a bit agitated. I explained how God provides mankind with various technologies for so that we can glorify Him. The computer was just another in a long line of technologies. He was unpersuaded.

After our conversation ended many thoughts came to me on how I could have responded. “why aren’t you carrying a stone tablet?” or “where’s your scroll?”. But I think the real issue to consider is “where does God, the very author of the Bible, want His words written down?” Proverbs 3:13 has the answer. God says “My son, do not forget my teaching, but let your heart keep my commandments”. God desires his people to write his Words on the tablets of their heart. Once written on our heart we are to obey it by living out thru our life. When the Creator’s Created seeks to know and obey his words then does the Creator receive the glory due to him!

Applying a little logic and history one will realize that the Word of God has only been in paper form a very short portion of church history, around 400 years. So why does this 76 year old saint insist we carry a paper Bible – TRADITION. Man looks on the outward. But God looks on the heart. Does God see his word when he looks on your heart? If not then it’s not too late to do something about it!

My first live blog written and posted from 35,000 feet using my newest bit based Bible – the amazing Apple iPad!

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

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

The Business of Computational Thinking

We (my computer science education world) are creating a new course for all of our liberal arts students to take that is intended to teach them what computation thinking is, why they should know it, and how they will use it. For more details on this, I refer you to 

I just came across a current example of how I applied CT skills to solve an immediate problem. I think it will help demonstrate what CT skills are and how they apply to our everyday life. Here’s the background on the problem I faced.

I enjoy competition. As a kid I loved playing Monopoly, Risk, Life, Stratgo. I can remember Risk games with guys in my neighborhood which would go on for days. It was a blast. The thrill of victory. Leaning how to deal with defeat. Working harder next time to avoid it! ;-) The other day I was watching one of these “Amazing Planet” shows where the focus was on animals of prey. They showed a huge crock laying a river as a heard of wildebeests ran threw. Then suddenly the crock lunges up and locks his massive jaws down on the leg of an ususpecting wildebeests. The commentator said “And the crock never lets go”. I got thinking about that as it relates to my bit business ventures. I like to lock onto a problem and never let go until the problem is no more. We’ll part of my education world allows me to track a select group of computer science students to intercollegiate programming contests. Part of this process involves creating a new problem set for each competition. The challenge of the problem set, a job for the judges, is to come up with just the right mix of problems that will

  • all be solved by at least one team
  • not all be solved by all teams
  • allow every team to solve at least one
  • keep the contestants problem solving for the entire length of the contest, usually 5 hours

Here are the pieces needed for each problem, usually 7-10 problems per contest

  • a concise written description of the problem w/o ambiguities (perhaps the toughest part)
  • sample test data with expected results to show an example, yet not give away all the potential “tricks”
  • a solution that solves the problem correctly for all possible valid input data
  • test data for the judges to use to test the student solutions – here’s where you try and catch the unexpected
  • expected results for the test data

So here I am working on my problem, the details of which must remain fairly vague for this blog since the contest is still a few weekends away, and I need to come up with some test data. The problem I created involves roads, Starbucks and distances. I wanted to have several thousand data points in the test. Here are the steps I followed to create the test data

  • using google maps I determined the actual distance between the 2 locations (part of the problem)
  • using google search engine I obtained actual street names, about 2800
  • using Excel I loaded the street names
  • the rest of the steps (3) involved using Excel to combine the street names with some other numeric data, the details of which I must keep secret for now :-)
  • finally I exported the data out of Excel into the test file needed for the contest

In all I spent about 10 minutes creating a test file of 2800 records that will be used in the competition. None of this required any “computer programming”. But all of it required using existing software to solve my problem. This is an example of what computational thinking is and how it will impact everyone’s life as they live and work in an increasingly computer technologically filled world in which problem solving advances to a higher level as people learn how to combine their creative minds with the power of computational processes. This is computation thinking!

I would also argue that I was “programming”. Of course not in the traditional sense of writing lines of code in some cryptic, non human, language. What is programming? It is communicating to the computer using language it understands in an effort to solve a problem. I was program. I was telling my computer how to use google search, google maps, and excel to solve a problem. This is programming. Using abstractions to solve higher level problems. Man this bit building is fun!! :-)

No Comments

Worthwhile Investment for Year End Giving

Investing is something you put something in on one end expecting or hoping to take more out on the other end. We invest time, energy, and money. We look for things of value that we think will be worthwhile investments – ones that will give us the greatest amount of return.

For those who are Christian, followers of Christ, believers in the Bible as their sole book of authority for living, who believe the present world is divided into light and dark, righteousness as unrighteousness, I would like to make a strong recommendation of a place for you to consider making a worthwhile year end investment.

Answers in Genesis is a ministry whose primary focus is best summarized with a quotation from the Apostle Paul in second Corinthians 10 and verse five. “We destroy arguments and every lofty opinion raised against the knowledge of God, and take every thought captive to obey Christ”. I know of no ministry which more strongly demonstrates this verse in all that they do. The resources they produce, the strong message on biblical authority their founder clearly proclaims, the high tech Creation Museum they run, even the Christmas program that is teaching folks to put aside all the religious and cultural traditions which have clouded the message of the Gospel and read true message of Christmas as accurately recorded in the Bible. My family and I were blessed last night to experience Bethlehem Blessings at the Creation Museum. There we saw a planetarium show about the Christmas star, which clearly seeks to turn our thoughts to study astronomy in the light of Scripture to insure our interpretations, don’t contradicted the truth found in the Bible. Next was a monologue from an archeologist who articulately persuaded us to set aside some common myths and religious traditions about the historic account of Christ’s birth in order to let the Bible speak! Finally we listened to one of the wise men share the biblical account of the role he played in Christmas.

Every single event was presented professionally with two clear and consistent messages – listen to the Bible and believe the Gospel! In my opinion it was the best Christmas message I have ever heard. It all demonstrates the charge from the apostle Paul to destroy arguments and every lofty opinion raised against the knowledge of God, and take every thought captive to obey Christ!

If you are looking for a place to investment for eternity before 2009 is history, I would like to encourage you to join me in supporting the Museum Ad Rack Campaign, which is using America’s interstate system to get the message out about the Creation Museum. My personal goal is to see brochures about the museum placed strategically along I-75 from upper Michigan to lower Florida. Thanks to the help of many of my Christian business friends, we were able to get this campaign well under way in 2009. Below are some photos I took this week showing the brochures in a hotel near the Cincinnati international airport. The first shows the brochures prominently displayed at the top and center of the rack. The next one shows them almost gone! It is the job of the ad-rack company to keep them filled, hence the reason for the find raising. The other 2 photos were taken at the outdoor live nativity at the museum. It is free and open to the public to help proclaim the biblical message of Christmas and the Gospel.

For details of this project go to my blog post.

1 Comment

Too many social spaces?

We’ve seen an explosion of social spaces during the past couple of years – facebook, twitter, linkedin, etc. Many organizations have built their own social space to provide the communication needs of their people. Many of us have lives in multiple of these spaces, which I like to call virtual worlds or at least virtual neighborhoods. I live in several, some public; some private and I just got bit by an ugly downside of this!

I teach one MBA class in which we use an online world that includes many of the social network tools, email included. I teach their one semester every other year. Recently, unknown to me, a whole bunch of new people moved into this world. They represent a group that I’m very, very interested, prospective students! They are the life blood of a teacher. No students. No one to teach. No reason for existence! One of the new kids on the block decided to send me a communication via this space. Since I’m not teaching the MBA course this semester, I don’t frequent that space and completely missed the communication. Until today, when I was notified that a major change had been made to the space, so I decided I should make sure I still exist in that space. Upon entering the space I was greeted with a 2 month old message from a perspective student! Horror of horrors! Not a good way to impress such a person to invest tens of thousands of dollars to come to my institution for a 21st century liberal arts education! Communication is a key aspect of this type of education. We sell it. We brag on it. We promote it. We teach it. But in this case, it seems obvious that WE MISSED IT. Or at least I missed it. It never dawned on me that a prospective student even had access to that space.

What’s the solution?

  • remove myself from all these extra spaces? not going to happen
  • spend time in each space every day? not enough time in a day!
  • notify everyone everywhere that I prefer to receive my communications in a specific space? while I would like this, I don’t think everyone else would like to have to keep track of which space I prefer!

In my opinion, as a seasoned bit builder, and keeping in line with Alan Cooper’s exhortations about software interfaces in his outstanding books The Inmates are Running the Asylum, the only reasonable solution is to improve the software! The space should, recognizing the importance of communication, give me the option of having my emails automatically forwarded to another space. There are other variations I can think of on this option, but I’ll leave those for the interaction designers of this world to decide. May their very small tribe increase so we can free the inmates from running the asylum! ;-)   [for more details on this topic, see my blog]

A word to businesses – be careful to instruct your people to know which spaces they are in and make sure they don’t miss any important business related interactions in those spaces! Poor communication is not good for business.

No Comments

Try outgiving God!

Sleep – something I cherish. It is most rare that I don’t enjoy it or want at least 6 hours of it.

Money – something I have that I can do many things with. Save it. Invest it to get more of it. Spend it on myself and members of my family. Give it away to worthwhile endeavors. Give it away to unworthy endeavors.

Time – something I have a finite amount of. In ways it is similar to money except I cannot save it for future use. I can do many things with. Invest it, but not to get more of it. Spend it on myself and members of my family. Give it away to worthwhile endeavors. Give it away to unworthy endeavors.

Relationships – something I can use my time and money to grow. Something God initiates for his glory. The older I get, the more I cherish good relationships.

Bible – my guidebook for life. The Word of God. Wisdom. Something I can choose to obey or disobey. My compass. My rebuke.

God – my Creator in whose image the Bible tells me I was created. My Savior, the one who gave his only Son, Jesus, in order to restore my broken relationship with Him.

So how do I relate these topics to today’s blog? Sleep, money, time, relationships, Bible, God?

Psalm 37:23 says “The steps of a good man are ordered by the LORD: and he delighteth in his way.” While I cannot claim to be a good man, it is my heart’s desire to do good and honor the One who has redeemed me and made me perfectly righteous, Jesus Christ. I believe every day consists of divinely ordered events which bring us into relationships with each other in order to bring about His perfect will and for His ultimate glory. Such was this weekend. We are in PA (the Harrisburg area) visiting with our daughter Sara and son-in-law Caleb. We have enjoyed time with family and even got to eat at the most amazing place – the largest smorgasbord I have ever seen! Shady Maple, is called by a fellow BJU professor, Dr Dan Olinger, the “Disneyland for people who eat”.

70346-shady maple pano

So we are on our way to their church, Mount Calvary Church of Elizabethtown, for the Sunday evening service. Along the way I was thinking I would like to invite the Pastor and his family out for a meal after the service. But upon arriving I learned the Pastor, along with most of the men of PA, was to be in a deer stand in the PA woods by dawn in order to participate in the opening day of deer season. Therefore he would be leaving right after the service. Now this event is pretty amazing, in fact Caleb is there right now awaiting his chance to bring down the elusive 12-point buck! This event is part of the reason, in the providence of God, we are even here this weekend, as my son Joseph was interesting in going on his first hunt, a story for another blog.

At the same time we were driving to church, an amazing Filipino family was calling around to find a church where they could present their church planting ministry that evening. They called Pastor Chan and he invited them to come share during the service. It was during their short presentation the Lord began to lay on my heart a desire to get to know them. Pastor Chan said they were in need of a place to spend the night. Not wanting to rob any of his church folks the blessing of ministering to this family, I was after all just a visitor myself, I decided to wait around and see if anyone jumped at the opportunity. No one did, so I did! Now wanting to keep peace in my own family, I quickly decided against inviting them to spend the night in Sara’s townhouse. Instead we took them to dinner then on to see Hershey’s famous Sweet Lights, an awesome display of Christmas lights, albeit without once using the word Christ or Christmas! :-( Their 3 little girls (grades 5th, 4th, K5) absolutely enjoyed seeing all the lights and displays!

headSweetlights_noprice

Finally we checked them into a Hampton Inn for the night for a good nights rest before continue on to Ohio, the next leg of their American journey. Now comes the sleep part. About 5Am I wake up, after being shorted 1 hour of my desired 6 hours, thinking about this family. Have they ever stayed in a hotel before? Do they know about the complimentary breakfast? Will they know when to check out? Finally my mind says STOP, you are not God! God chose to use me to help them along their way and perhaps wants me to invest more of my time and money into their ministry, but I need not worry about all these details. Of course next time I have the opportunity to put a family from a foreign culture into an American hotel, I’ll be sure to spend a little more time making sure they know all they need to. I did call the hotel this morning and asked them to make sure the Filipino family got breakfast before they left. :-)

So I’m up at 5Am and can’t go back to sleep. I figure God wants me to spend some extra time in prayer, so I do. I’m wondering is last night was just some “chance encounter” or if God truly wants me to be aware of this family and be able to help meet the needs of their ministry. The final clincher comes as I read Spurgeon’s Morning & Evening devotional for November 30. I am amazed at God’s grace and mercy in leading the paths that I take for His glory!! I don’t believe it is possible for a Christian to out give God!! If you don’t believe me, I challenge you to give it a try and see what happens. :-)

Spurgeon’s Morning & Evening devotional for November 30

- 2Ch 25:9 And Amaziah said to the man of God, “But what shall we do about the hundred talents that I have given to the army of Israel?” The man of God answered, “The Lord is able to give you much more than this.”

A very important question this seemed to be to the king of Judah, and possibly it is of even more weight with the tried and tempted O Christian. To lose money is at no times pleasant, and when principle involves it, the flesh is not always ready to make the sacrifice. ” Why lose that which may be so usefully employed? May not the truth itself be bought too dear? What shall we do without it? Remember the children, and our small income!” All these things and a thousand more would tempt the Christian to put forth his hand to unrighteous gain, or stay himself from carrying out his conscientious convictions, when they involve serious loss. All men cannot view these matters in the light of faith; and even with the followers of Jesus, the doctrine of ” we must live” has quite sufficient weight.

The Lord is able to give thee much more than this is a very satisfactory answer to the anxious question. Our Father holds the purse-strings, and what we lose for his sake he can repay a thousand-fold. It is ours to obey his will, and we may rest assured that he will provide for us. The Lord will be no man’ s debtor at the last. Saints know that a grain of heart’ s-ease is of more value than a ton of gold. He who wraps a threadbare coat about a good conscience has gained a spiritual wealth far more desirable than any he has lost. God’ s smile and a dungeon are enough for a true heart; his frown and a palace would be hell to a gracious spirit. Let the worst come to the worst, let all the talents go, we have not lost our treasure, for that is above, where Christ sitteth at the right hand of God. Meanwhile, even now, the Lord maketh the meek to inherit the earth, and no good thing doth he withhold from them that walk uprightly.

No Comments

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

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

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

What Makes Software Worthwhile?

At the heart of computer science is of course the computer, but at the heart of the computer is SOFTWARE. To be an expert in the field of computer science, one must have the most in depth knowledge of software. What is it? How does it work? How is it created? How does it interact with the computer? What makes one piece of software superior to another?

Software, in my opinion, is the most valuable intangible product in the marketplace today. Everyone needs it. Everyone is impacted by it. And very few people know how to create it. And no one is able to create it with perfection! To emphasize the intangible nature of software, the term I like to use the process of creating software is “bit building“. At its most base level, software is nothing more than a string (a very long string, millions and billions) of binary digits. Ones and zeros. I am in the business of training and developing “bit builders”. To help motivate the thoughts of my bit builders, here are 10 qualities of worthwhile software. If one is going to excel in the process of bit building, one must have a clear vision of what makes one set of software bits better than another. While I don’t claim that this list is exhaustive, I have found it to help me analyze and think clearly about the quality of a piece of software.

  1. correctness – does the software do what it is suppose to do (according to the design specs)?
  2. robustness – how does the software respond to unexpected conditions (wrong input)?
  3. user-friendliness - is the software easy to use by users from the intended audience?
  4. adaptability – how difficult is it to modify the software to adjust to an ever-changing world?
  5. re-usability – can parts of the software be easily reused to build other software systems?
  6. interoperability – does the software interface with other software systems?
  7. efficiency – does the software make good use of its resources (memory, disk, CPU, network)?
  8. portability – can the software to easily ported (moved) to other operating system (or in today’s world, browser)?
  9. security – does the software protect the information it is responsible for?
  10. replace-ability – can the software be easily replaced someday?

My goal is to provide examples of each quality issue over the next few weeks to help users understand how to select good software and help bit builders learn how to create such worthwhile software – bits that are enjoyable to use.

,

1 Comment

The Machine That Changed The World

This blog is for my CpS 111 computer science students. Comment on this blog after you have seen the ACM videos in class this week – The Machine That Changed the World. The first video (#3 in a series) is about the PC revolution. One of the major points is that the computer is no longer viewed as a machine which does mathematical computation but rather a symbolic manipulator. The second video (#4) introduces the concept of artificial intelligence with a discuss if the Turing Test as well as a project called Cyc started in 1984 by Doug Lenant. The idea behind Cyc is to teach the computer enough “common sense” facts so that it can become more human-like in its ability to interact with humans. For a recent update on this project (still alive after more than 20 years) and to play a game designed to help Cyc learn common sense facts, visit http://game.cyc.com/.

One of the sessions I attended at Web 2.0 this week was about ontologies, folksonomies, social bookmarking, collaborative tagging and the Semantic Web. What Cyc is trying to do is create an ontology of all the common sense facts/knowledge in the world. What do you think about this? Is it possible? Will it help? Can it help improve search results on the Web? Who cares?

Share your thoughts by posting a comment concerning either or both of these videos. Once I’ve reviewed everyone’s comments I will post them for your combined enjoyment and educational benefit.

10 Comments