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

October, 2007

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Do Your Students Understand this Cartoon


    Lots of people pointed out this cartoon recently.

    It's an example of an SQL Injection exploit of course and all the people who referenced it knew that right away. But how many regular (ie. non-geek, non-computing people) do understand it? Probably not many. The bigger problem though is that many people who do understand it are still ignoring the problems it can cause. Far too many people are still not validating their input and one day that will come back to bite them as it already has many others before them.

    I found a good article on SQL Injection attacks at Stop SQL Injection Attacks Before They Stop You. I think it or something like it should probably be required reading for students who are building interactive web pages. Of course students writing any programs at all should be exposed to the very real necessity of double checking the data. Not just from real attacks but from user error as well.

    Share this post :

    Add to DZone

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    When the Second Programming Language is Harder to Learn


    Mark Guzdial had an interesting blog post recently titled "Why is assessing learning about computing so hard?" The post is mostly about the limited amount of research available on computer science education. That is a problem I've worried about more than once myself so I was glad to see him bring some attention to it. If you are interested in the "how to" of computer science education please go read the whole post. But what really peaked my interest was a comment that was not his main thrust.

    He said:

    Maybe that's why learning a second language is frequently harder than learning the first language (a phenomenon first described by, to the best of my knowledge, Ben Shneiderman in the 1980's).  Maybe you mostly just learn the language the first time. With the second language, you have two lenses on the topic of computing, and now you really are learning computer science.  You really can abstract away the language and start thinking about what the computer as a powerful and still abstract (though slightly more concrete) entity can do, how it works, and what its limitations are.  Maybe the reason that the second language is so hard is that that's really your first experience with computer science, and you are struggling with what a computer is.

    Wow! Just wow was my first reaction. "I wonder if this is relevant to what I am hearing about AP CS students?" was my second reaction.

    Now I found learning my second language to be much easier than the first. And I was self-taught in my second language.  My recollection (perhaps clouded by bias) is that most of my students found learning their second language easier as well. But he did say "frequently" not "always" or even "generally." I thought about this a bit all day. What he says makes a lot of sense in that what he describes - just teaching the language without teaching the underlying concepts - the science if you will - could very easily result in students who have a difficult time with the next language. This would especially be true if the next course was not a course whose goal was to teach the second language but to teach computer science concepts.

    There is always a problem with a first programming course in that it is a bootstrap process. You need to teach some programming to teach some computer science and you really need to understand the science to understand the programming. The easy way out is to just focus on learning the language as a mechanical or perhaps a formulaic tool. That way you get the programs written at least. What you don't get is a real understanding of the concepts.

    Frankly I have seen the same things in math courses and even other science courses where formulas or equations are taught and students just memorize what numbers go in to get what results without ever being exposed to why the formula does what it does. That may work in a survey course or a course for non-majors (though it is still a disservice I think) but it will clearly not be enough for a student in that major. And yet shortcuts are taken often because we are trying to cover too much in too short of a time.

    Now I'll go way out and suggest that this is part of the problem with the AP CS curriculum. There is way too much in the AP CS curriculum. Yes kids do pass the exam and one is tempted to assume that means they learned stuff. But are they a) retaining it and b) learning enough beyond the language of the exam to prepared them for future study. Anecdotal evidence suggest to me that often they are not. Boy, would I love to see some real research on the subject. (See I'm tying things back to Professor Guzdial's main point.)

    I frequently hear from college and university faculty that students who took and passed the AP CS exam do poorly in their classes. Of course I hear the opposite as well. Its a shame that I hear the poor reports at least as often as the good ones though. Part of the problem may be the teachers (oh someone is going to jump me for that comment) but I don't blame them so much as I blame the lack of good training in how to teach. Still I think more teachers could prepare more students more effectively if the curriculum was focused on fewer basic concepts and less on the amount of the language that has to be taught to cover everything that might be tested.

    What college/university faculty say should be on the exam and what they actually teach their own CS1/2 courses often doesn't match. And of course what one professor leaves out another may spend a lot of time on. So for the College Board and their talented and hard working development committee there is a lot of pressure to include it all. That is the politically correct solution but is it the right one for students? I think not.

    Are you an AP CS teacher? A reader (someone who grades the test)? Or even a member of the development committee past or present? Leave a comment and lets discuss this.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    CS Degree Starting Salaries Are Up


    Last week I posted about information that I thought guidance counselors should have about the CS/IT field. Someone said in a comment that I didn't really make the case that students should actually go into the field. On one hand I do believe, as I heard no less a luminary than Bob Metcalfe say in a talk last week, that "computer science is a liberal art." I do think that students should take it regardless of plans to enter the field. On the other hand a lot of people are unwilling to learn anything if they can't see it leading to income.

    Well thanks to a link from the CSTA blog I found an interesting article titled "CS Degree Starting Salaries are Up 15% From the Bubble" One paragraph in particular is worth highlighting - emphasis mine.

    Not only are computer science majors faring well in the job market, but starting salary offers since the bursting of the IT bubble have been about 15 percent higher than those that came before it, finds a study published in the fall 2007 issue of Salary Survey, a quarterly report published by the National Association of Colleges and Employers.

    There is more in the article of course but the short version is that an education in computer science can pay off quite nicely in real dollars. There are jobs and they do pay well.

    One caveat I would add though. In the CS/IT business the only constant in the field is change. So prepare yourself to be a life-long learner. A good education is the preparation you need for that.

    Share this post :

    Add to DZone

Page 1 of 8 (24 items) 12345»