Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

February, 2010

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    ASCII Art For Fun and Projects


    I guess I am on a nostalgia kick. Earlier this week I found a link to an Text Ascii Art Generator over on Doug Peterson’s Doug – Off The Record blog. This site lets you enter text and have it reproduced in ASCII art similar to the sample below.

    Ascii Text

    There are a large selection of fonts to choose from. I picked one that was as similar to a project I did 30 some years ago to show you. Doing this sort of thing as well as more complex art and images was quite the thing back in the early days of computers. You know back before we had laser printers and could generate photo quality graphics cheaply and easily. There are all sorts of ways to generate these messages of course. The hard way which is more efficient and the easy way which doesn't scale well are two of them.

    One can easily create a set of statements that draw each line of the text that makes up a message and that is fairly easy to do. One usually draws the message on a piece of graph paper and uses that template to create the statements leaving blank spaces and entering characters as appropriate. As I said though that doesn’t scale well. Better is to create a more complex program that knows how to draw each character and how to line things up across the page so things come out right.

    Of course moving down the page is easier than across. Back in the old line printer days I wrote a program that generated huge banners for the line printer. I had a long, complicated, tricky to debug print statement for each letter. I could easy vary the characters that were used to fill in the letters – yea me. :-) But really that didn’t scale all that well either and it took me for ever to get all 26 letters (UPPERCASE only) and ten digits. I tended to add letters as I needed them for specific messages. I had a box full of punch cards when I was done.

    The more correct way would be to encode the bits needed for each letter and have a general purpose routine that would take that code as input. Much less code to debug and much easier to scale to add characters or create whole new fonts. The web site I linked to has a link to information about FIGlet Fonts and AOL Macro Fonts which are a couple of ways to encode font sets for ASCII art. There are more of course.

    I think that having students create their own encoding and writing their own programs for drawing the characters would make an interesting set of projects though. It would give them some exposure to thinking about that sort of thing and hopefully understanding that it could lead to other sorts of information storing. It should also help them understand more about fonts in general. Starting with the difference between proportional and non-proportional (fixed pitch) fonts. Maybe you could even let them discover that for themselves. :-)

    What do you think? Would students find this interesting today or is it just too old? A lot of students seem to like throwback games so maybe this would appeal to them. Let me know if you try it.

    Are you following me on Twitter?

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Interesting Links 22 February 2010


    I blogged a lot of opinion pieces last week. I’ll try to have more information this week. But at the very least I have a few good links to share today. One of the best may be Teaching Kids Programming – Teaching Girls to code in Danish which is a trip report by Lynn Langit who recently took her 2 day Small Basic workshop to girls in Denmark. There is a nice 5 minute video embedded in that post that shows her taking a program that draws a box and making it a lot more interesting with a series of small changes.

    The CSTA blog has been interesting posts lately. For example Build a computer science playground. The other good post was a suggested blogroll for computer science teachers. That reminds me that I really have to update my own blog roll. Look for that to happen over the next couple of days. In the mean time, are there some blogs that you think should be read by computer science teachers? Please leave links in the comments.

    have you talked to your students about their digital footprint? Did you ever wonder how unique and tractable is your web browser? is a site that can tell you. Most people don’t even know that their web browser sends information that can be used to identify them. According to that web site mine seems to be unique among the 655,000+ they have tested. A bit scary because the more unique the easier it is to identify one single user. Its something worth thinking about and discussing.

    Microsoft and IEEE Join Forces to Help the Next Generation of Engineers and Technology Professionals Succeed. Student members of the IEEE can now get a lot of professional software free from Microsoft.

    John Rice put together a comparison paper of Logo, Scratch and Alice (PDF) on the TCEA web site. Some interesting perspectives.

    From James Senior (@jsenior) Announcing: Three new Web App Toolkits! Calendars, Bing Maps, Freemium Apps! If you or students you know are interested in taking their web sites up a notch you may want to take a look at those. There are several other apps there and these are just the most recent.

    Are you following me on Twitter?

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Not being able to program a computer is like …


    I confess to an almost addictive love for a good analogy to explain various ideas. One analogy people use is that they can use a car without understanding how it really works do they can use a computer without understanding how it really works let alone how to program. I think that is wrong. It’s a false analogy. Perhaps it might be more true if computers were as far along in development as cars are but they are not.

    We have been driving cars for a hundred years and self propelled vehicles for many more before that. In fact this article (quick history of the car) reports on a a vehicle in 1769. We are nothing like 250 years into the development of the modern computer. Even Babbage (if we really want to count his work) wasn’t born until 1791. The computers built in the 1940s were more analogous to the early railroad trains than to cars though. I doubt anyone ran them without detailed knowledge of how they worked and were programmed. Likewise the cars of 100 years ago were so difficult and unreliable that you pretty much had to be a mechanic to run them. And in the history of computers I think we are closer to the move from trains to the early cars than we are to modern cars.

    Oh sure you can use computers quite well without knowing how to program them. But if you are not an expert at the computer you probably call for help from an expert a lot more than  you call for one for your car. Most people only call for an auto mechanic when something breaks down. You don’t call one to find out how to tell if it needs gas, put air in tires, turn it on or shut it off. I’ve gotten calls like those from computer owners though. If you are reading this chances are good that you have as well.

    Now one could say that we have to make computers easier to use and that is true. We’ve made cars a lot easier to use – how many people still drive a standard transmission any more? Or roll up their car windows with a crank. Some cars have starter buttons rather than keys these days. Computers are not that easy yet. Especially the software.

    Computers are tools and like many tools they can be used by both amateurs and experts/professionals. Take a table saw for example. My friend Philip is a highly trained carpenter. His wood work projects are master pieces. Every line is sharp and exact. I can use his tools but there is no way I can produce the quality of work that he does. But I sure wish I could. lack of training and practice is the main reason why I can’t. Computers are like that. If you know more via education (formal or informal) and practice you can do a lot more with them. Right now we teach most people the basics. The computer equivalent of banging in nails. Programming is to some extent the equivalent of bringing people to the next level of really understanding the tool and the proper usage of it.

    Not everyone has to be a professional programmer any more than everyone has to be a professional carpenter. But in this day and age where computers are such an essential skill we do have to look at setting the bars higher. In my grandfather’s age people had to have a lot higher level of carpentry skill and kids were taught it. Computer usage may be this generation's carpentry. Programming should be a part of everyone’s basic education at least until we really get computers to be as powerful and easy to use as they have to potential to get. But we’re not there yet!

    BTW no one is leaving any good analogies in the comments. Doesn't anyone have suggestions?

    Are you following me on Twitter?

Page 2 of 8 (22 items) 12345»