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

August, 2009

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Beware Boring The Smart Kids


    There is an interesting conversation going on in the comments of Mark Guzdial’s blog that I wanted to engage in a small part of that conversation in more depth than what fits in a comment. It started with a comment by Erik Engbrecht that reads in part:

    Boring a potentially great student is a greater crime than failing a mediocre one who could have made it through.

    Mark Guzdial replied in part:

    I feel *exactly* the opposite of that! It’s not hard to educate the great students — they’ll learn no matter what I do, and they tend to challenge themselves with their own projects and interests.

    The comment “they’ll learn no matter what I do” concerns me. It may be true for college students (and is highly likely for the sort of students who go to Georgia Tech) but too often it’s not the case in high school and younger students. The information I heard at a workshop some years ago is that some 50% of drop outs are gifted students. Boredom is a huge problem for bright students before college. We lose a lot of students with great potential because they are bored and/or not challenged. This is a horrible loss for them and for society.

    Younger students don’t often have the resources or the base knowledge to create their own projects for learning. Now some do and do it well. I’ve run into some students as young as middle school who have done some very creative projects all on their own. They are self motivated, one might say driven, and very creative. But they are also exceptional. Generally even the potentially great students need some help and focus. They need some help to get started and to help them get some resources. I like to call these the “point them in a direction and get out of the way” students.

    I don’t think that losing the potentially great student is necessarily a greater crime than failing a mediocre student. I think they’re both bad. Good teachers find a way to help both kinds of students because we really can’t afford to leave anyone behind these days. Of course differentiated instruction is not a term that one hears that often in higher education. In middle and high school though it is something that has become engrained into the better performing schools and educational programs.

    Of course in some high school computer science programs this gets taken to a bit of an extreme with several levels of computer science courses being taught in the same room by the same teacher at the same time. I’m constantly amazed at how well so many teachers handle this sort of thing.

    We’re lucky in the area of computer science that there are more and more free tools and resources for students to advance on their own though. For example the Dreamspark program from Microsoft offers professional grade software to students who can use it for their own projects. For university students world wide the Imagine Cup competition provides an outlet for creative learning projects for university students. And of course there are many more resources and competitions available from other companies and organizations. I try to link to many of them from this blog when I can BTW.

    A couple of other sites I recommend for the “point them in a direction and get out of the way” students are the Beginning Developer Learning Center and Coding 4 Fun. The first for learning resources and the second for projects to tickle the imagination and suggest interesting learning projects. If a student is too quick, too driven, too something for the pace of the course point them somewhere helpful and get out of the way. But hang around in case they need more pointers along the way. We don’t want them to get needlessly frustrated and turned off.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    In the land of the blind …


    My wife and I were talking about students and technology today. There is this common perception that kids today are great with technology. “Digital Natives” they are called. We hear things like “There's no doubt that the latest generation of students has grown up with technology, understands it, and makes very good use of it.” (sorry to pick on Gail Carmichael but she’s the most recent one I’ve read say this.) While I don’t doubt that the latest generation of students has grown up with technology I don’t believe they either understand it or make very good use of it.

    Some years ago I was working a book sale at school and a father of an incoming student started telling me about how tech savvy his son was. “Probably knows more about it than his teachers” he said. I ignored the comment because I realized that his son probably did know a lot more about technology than his father. To the father that seemed like a huge gap and he assumed that other adults were as far behind his son as he was. That was not quite the case though. People see others with more knowledge than they have and want to believe those people have some special and exceptional knowledge.

    I’ve watched students using technology for years and have been amazed at what I have seen. Some exceptionally advanced things for sure but that is relatively rare. I’ve heard from students explaining to a teacher that there was “nothing about cloning on the Internet.” Search experts? I don’t think so.

    Another thing I see often are students who claim to be experts at spreadsheets but use calculators to calculate the values that they enter into the software. Or students who add line feeds to skip to the next page of a document in word processing software and have to go page by page to correct page numbers they entered manually. I see email messages and documents that were written on computers but never spell checked. People keep telling me that the reason they don’t need tools as powerful as those of Microsoft Word or Excel are because no one uses or needs them. My reply is that these features would make people more productive and far better content creators and knowledge users. The problem is not that people don’t need these feature but that people are not learning (or teaching) them.

    Sure students can all send text messages. And they can send email even if they seldom do. Plus they can keep multiple IM sessions going at the same time. But big deal. The amount of knowledge required by those things is trivial. The way these things work though may as well be magic to most students.

    The problem with the talk of “Digital Natives” is that it assumes students are more advanced then they are and that schools don’t need to teach them more about the technology.  It reminds me of when I left first grade as a student. I had entered school with one goal in mind – learning to read. At the end of first grade Mission Accomplished! Or so I thought. Fortunately my parents and my teachers knew better and several (17 so far) years of schooling followed that first year. The problem with “Digital Natives” is that they still need a lot of help to fully take advantage of technology.

    Of course a lot of teachers are not ready to do that teaching. I hear mixed results about new teachers entering the classroom as well. I hear talk of tech savvy teachers but I also hear about teachers who seem to see teaching as a field that will let them avoid technology. When I was a high school technology coordinator there were teachers who were interested in in-service on technology but many more were avoiding it as much as they could. Scott McLeod talked about this attitude last recently at "I'm not good at math." "I'm not very good at computers."

    Teachers are smart people and they could catch up and pass their students in computer/technology in many areas very quickly if a) they want to and b) they get some good training. That’s really something we need unless we are going to be content with our “digital natives” staying “digital adolescents” their whole lives.

    Note: I tagged this post “rant.” Feel free to rant back at me.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    15 Free Computer Science Courses Online


    Trying something different today. Here is a guest post by Karen Schweitzer who has found a lot of interesting online courses in computer science. You can also find free curriculum resources at Microsoft’s Faculty Connection.

    It is no longer necessary to pay tuition and enroll in a formal program to learn more about computer science. Some of the world's most respected colleges and universities now offer free courses online. Although these courses cannot be taken for credit and do not result in any sort of degree or certificate, they do provide high quality education for self-learners. Here are 15 computer science courses that can be taken for free online:

    Introduction to Computer Science - Connexions, a Rice University resource, hosts this free course that introduces students to computer science. Covered topics include computer systems, computer networks, operating systems, data representation, and computer programming.

    Introduction to Computer Science and Programming - This free Massachusetts Institute of Technology course provides an undergraduate-level introduction to computer science and computer programming. The course includes online readings, assignments, exams, and other study materials.

    Mathematics for Computer Science - This free course, also from the Massachusetts Institute of Technology, teaches students how math is relative to computer science and engineering. Course materials include lecture notes, problem sets, assignments, and exams.

    Introducing ICT Systems - The UK's Open University provides this free online computer science course to self-learners who want to gain an understanding of ICT (information and computer technologies) systems. The course is designed for introductory students and can be completed by most people in less than 10 hours.

    Programming with Robots - Capilano University offers this free online computer science course to self-learners who want to explore computer programming and robotics. Course materials include tutorials, readings, lectures, exercises, assignments, and quizzes.

    System Design and Administration - This free computer science course from Dixie State College focuses on computer information systems and technologies. The course introduces students to system design and administration through lectures notes, assignments, and other self-guided study materials.

    HTML Basics - The University of Washington Educational Outreach Program offers several free courses, including this free HTML course. The course is designed for beginning level students who are unfamiliar with HTML documents, tags, and structure.

    Software Applications - This free course from Kaplan University is a very basic course for people who want to learn more about using software applications. The course covers Internet applications as well as word processing, spreadsheet, communication, and presentation apps.

    Object-Oriented Programming in C++ - The University of Southern Queensland offers this free computer science course to teach students the basics of C++ programming and object-oriented design. The course includes 10 modules, multiple lectures, and assignments.

    Operating Systems and System Programming - This free online course from the University of California-Berkeley includes a series or audio and video lectures on operating systems and system programming.

    Data Structures - This free audio/video course, also from the University of California-Berkeley, covers data structures through a series of online lectures.

    Artificial Intelligence - The University of Massachusetts-Boston offers this free computer science course to self-learners who are interested in artificial intelligence (AI). The course uses assignments and other study materials to teach students how to write programs.

    Information Theory - This advanced-level computer science course from Utah State University teaches concepts relating to the representation and transmission of information. Course materials include programming and homework assignments.

    Network Security - This free computer science course from Open University is for master-level students who have substantial knowledge of computing. The course explores a wide range of topics, including network vulnerabilities, network attacks, encryption, cryptography, access control, and authentication.

    Computational Discrete Mathematics - Carnegie Mellon University provides this free computer science course through the school's Open Learning Initiative (OLI). The self-guided course is ideal for independent learners who want to gain a better understanding of discrete mathematics and computation theory.

    Guest post from education writer Karen Schweitzer. Karen is the Guide to Business School. She also writes about online colleges for

Page 1 of 7 (19 items) 12345»