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

September, 2007

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Software Engineering Vs. Fun


    "The goal of much of software engineering is to remove all the fun out of programming." So says Colin Potts of Georgia Tech as quoted by Mark Guzdial also of Georgia Tech. Well if that doesn't scare one away from software engineering and computer science what will! (Before I forget, Mark Guzdial's two part series on Software Engineering and the decline in CS enrollment is well worth reading - part 1 & part 2)

    Mark Guzdial sees that attitude as contributing to a lack of interest in programming that is contributing to a lack of interest in computer science. Way too many people think that computer programming is what computer science is all about. Even setting aside for the minute that they are wrong about that - computer science is a lot more than just programming - what programming and fun?

    Like Mark who admits to enjoying programming I really enjoy it. Oh sure there are boring and tedious parts to some programming that I could do without. My view of what software engineering is (or should be) and my view of what computer science should be are colored by the fact that it was programming that first attracted me to the field. There I said it.

    Now when I was young and didn't have a life I powered through the boring pieces to get to the fun. Now days I want to get right to the fun. Fortunately people - computer scientists and software engineers - are working on that. They're not working on it enough in our research colleges and universities though. Rather they are working on it at companies like Microsoft. Colleges and universities are spending too much time making programming hard for students.

    Mark suggests in his blog that we not teach a C-based language in a first programming course. That would include C, C++, C# and of course Java the current darling of the computer science education crowd. Now before I go on let me say that I do think that someone going into computer science for research or for work should absolutely learn a couple of C-family languages. So should someone who wants a career in industry. But not in the first course. Oh good grief no!

    The first course should be about the fun and creativity of computational thinking and getting the computer to do what you want it to do. Let's get as much of the tedium out of it as possible. That is the main reason I have promoted Visual Basic as a first programming language for a dozen years or so. It is also why innovative teachers are using tools like Alice and Scratch as an introduction to programming before moving on to "real" programming languages.

    For professionals I believe that tools like LINQ for data handling show promise for doing for data manipulation what Windows Forms has done for graphical user interface design. That is to say the tedium is far reduced. Which reminds me. A lot of first courses are all console based - still - in the 21st century. Why? Well because in to many language the tools for creating interactive screens are too tedious. Who wants to write code that explicitly spells out how large a window is (and in what unit of measure?), the precise coordinates of each object on the window along with its size and other properties. Why not just drag and drop objects interactively and let the IDE do the tedious parts?

    I see the role of software engineering to be removing the tedium so that programmers (not a dirty word in my lexicon) can have fun writing their code. I believe there is plenty of room for creative work in computer programming. I wish universities/colleges and even high schools taught more of the fun stuff.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Debugging Training For Beginners


    One of the hardest things for students to learn how to do is to debug their code. I think that most students are somewhat surprised when their programs don't work. They get over that surprise pretty quickly of course because bugs are pretty common place. The more someone codes the more bugs they create. So debugging is quite an important skill.

    Important doesn't mean it is easy to learn. Recently an announcement came through a mailing list I am on about a set of videos that have been created to help students learn how to debug their code. These videos include a wide variety of common problems discovered by students in CS1 and CS2 courses in college. Of course beginners discover many of these same problems not matter how old or young they are and wether they are learning on their own or in school.

    The videos I watched seem to be mostly based on Java and C++ but should work with most "C-style" languages. The basic concepts work with other languages as well. The people behind it (the ITiCSE Debugging Repository Working Group) are looking for students and teachers to use these videos and to provide feedback for future development. So check them out here. I'd love to know what others think about them.

    Technorati tags: ,

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Excel Training for Teachers (and others)


    Teachers and school administrators have lots of data. lots and lots of data. Grades, test results, attendance information, behavior reports, often budget numbers, and well it goes on and on. People would be surprised at how much information teachers and school administrators have to deal with. It can be overwhelming.

    For good teachers the shear amount of grades can be oppressive. Quizzes, homework assignments, in-class exercises, tests, projects, class participation, and attendance all add up (no pun intended) to a massive amount of data to store, correlate and somehow develop into a report card grade. And more importantly, much more important than required grades, to use to assess student learning.

    One of the things I used to do as a technology coordinator was to provide teacher training opportunities to help teachers use technology, various computer applications, to manage all that data. Excel was and continues to be a useful tool for teachers. But not everyone has the time or interest in long training sessions. Recently I found another way for teachers to learn Excel.

    There is a new site available called School Data Tutorials that has a large set of video tutorials that are specifically tailored to the needs of teachers and school administrators. From the Welcome message:

    The tutorials on this site highlight many of the Excel skills that are helpful when working with building- and district-level data. These tutorials are targeted at data managers, principals, guidance counselors, teachers, and other school personnel who have the responsibility for collecting, analyzing, and reporting K-12 performance data.

    I've looked at a couple of them and at the list of topics. They seem really quite good. I like that they are short and can be consumed in reasonable time periods that make them easier to fit into a teacher's tight schedule. I also like that they are specifically designed for teachers and use the types of data that teachers and administrators are familiar and comfortable with already. And I think the set of topics will open a lot of new ways of managing and looking at data for many people.

    Most people use only a small percentage of the power of their software - Excel and other spreadsheets are prime examples of this - but with a little more knowledge they can see large jumps in usefulness of the data they already have. These tutorials have the potential to help a lot of people.

    I think a lot of people who are not teachers will find them useful as well.


    Technorati tags: , ,

Page 3 of 8 (24 items) 12345»