Teaching Computer Science

Thursday, October 28, 2004

I helped a Geology major with a computer science project the other day. It was a very taxing, and yet eye-opening experience. From my prospective computer science is natural. The demand for structure parallels literature and engineering. And yet English majors and Engineering majors, not to mention Geology majors, can't program computers.

First, and foremost, I can assure you of the existence of willing students. Many equate this with Bigfoot and Nessie, but I have seen them. (My friend even has a blurry photo of one.)
The more plausible explanation is the difference in perspective between professors and students. Most professors have ten, or more, years in the field of computer science. They think in code. They dream in code. And, quite logically, they teach in code. There exists almost a mutual dependency between a programming language and the abstract consepts it is used to express. A circular bridge if you will.

A picture is worth a thousand words. So why don't we use more pictures to teach abstract concepts? Formalized software engineering methods are real and use simple symbols such as clouds, squares, circles, diamonds, letters, numbers, and arrows to explain absolutely everything. They could be used to teach the concepts of computer science instead of computer languages. New students would gain a "Big Picture" perspective over what the program is doing compared to a line by line code example. Similar to concept mapping.

How to solve a problem is a problem still waiting to be solved. I asked the girl what would be the general process of averaging up the grades entered by the user. She did not have an answer. Schools are supposed to teach this from day one. In the end, I just did her project for her.

I wonder if this could be applied to other forms of language. I can see it now, "Learn French via UML".

Google Desktop Search Reveals Security Apathy

Wednesday, October 20, 2004

In an article dated yesterday, PCWorld cast Google Desktop Search as the invader stealing and copying secure information. (Does Google Desktop Search pose a risk?) Is that the real question we should be asking? Halt your pondering. The answer is no. Google only finds what is there. The question should be, "Why is all this private data there?"

Good security is hard. Hard to use. Hard to implement. And hard to sell to email-using grandmas. This explains the prevailing attitude of "If they don't know where it is, they can't find it". This, easy to implement, type of security is called "Security by Obscurity" and has been proven as secure as having no security at all. If your secure web-based bank transactions are available via GDS, blame your web-browser for saving it, or yourself, in some circumstances, for not turning on a security feature.

GDS has not created a problem. It has revealed one.

Regex

Sunday, October 10, 2004

I can't believe I lived this long without knowing Regular Expressions. Note to all computer people: Learn Regular Expressions! It's one of the most useful tools you will ever find.