There’s a disconcerting trend of a lack of interest in Computer Science, especially at the high school level. As a completely elective course, it’s usefulness and applicability needs to be established early on to retain the interest of students.
Many educators approach this problem via concentrating on a more practical and hands-on side of programming (a tool used to explore the concepts of Computer Science), at the expense of the science of computing itself. The tradeoff is fair at an early stage of study, but it largely relies on self-motivation for success. The abstraction of science is replaced by the abstraction of purpose for trivial tasks in the practical assignments. The connection to a real world is quickly made by those with ambitions for personal projects, often fueled by an interest in video games, but otherwise it is a yet another class with little sense and more homework.
Consider — Programming is about manipulating data.
As a student, my driving force was the creation of small games and similar toy projects. Though now, outside of academic study and career work, I find myself applying computer programming (and in turn computer science concepts) to simply handle the volumes of data I come across on the day-to-day basis. I wish I had realized this back in high school.
An explosion in the amount of content, made available through the internet, makes data handling a vital skill. Though a catchier spin on this is that assignments for all the other subjects become easier. Think of dealing with a lot of information — Math assignments, research, experiments. There are a lot of instances that call for dealing with a lot of data, or a lot of repetitive tasks. Though this isn’t about avoiding homework assignments, but instead approaching them in a smarter way.
We should embrace the ability to program one’s way out of too much homework. It demonstrates the understanding of the problem’s domain.
Students have often demonstrated great levels of creativity to minimize the amount of work that needs to be done. This could very well become the driving force behind the Computer Science education, as students learn to build tools for themselves.
It’s a cross-subject scheme of learning, but if Chemistry is required for Software Engineers, then maybe there is something to it. There is little to loose from encouraging students to realize their potential, but well-roundness, motivation, interest, and ability to handle a data-heavy world stand for a lot to gain.
I think computer science should be manditory in high school. Back when I was in school I programmed the ti calculators to solve math problems. To write these programs I had to fully understand the problem which enabled me to excel way past my school mates, not because I was “cheating”, it was because I fully understood the problems and how to solve them.
Reply to comment
Computer science is mandatory as a course here in my part of the world. However, what they cover is nothing like the students see if they choose this as a career field.
My son was doing this “technology” course as they call it and all they did was give them worksheets, and had them working on step-by-step projects. It was a task in clicking and typing, not anything to get worked up over.
My experience from the late 70s and early 80s saw me in school having to buy a kit, build the computer and then learn how to program in assembler to get the thing to do anything that was meaninful. Oh how the days have changed.
Reply to comment
One problem with scraping data off the Web is that more time is spent in parsing than in actually processing. I found that even getting students to parse CSV format proved to be too much. One interesting possibility is to provide software that does the scraping and parsing, leaving students to work out what to do with the data. An example from the TeachScheme people:
http://web.cs.wpi.edu/~kfisler/Courses/TeachScheme/Kiva/index.html
This has to be done carefully so that the library doesn’t do too little or too much. Also students have to be aware that what they’re doing is only a part of the puzzle.
Reply to comment
Internet is a dangerous toy I decided to drop of collage and decided to be a web designer. In forth year collage we wouldn’t study what I have learned in first two moths.
Reply to comment
Excellent thoughts Tony…
There is much you can write on data visualisation, i recommend you can take a look at smahisng magazines recommended data visualization tools..
Computer science is getting more into educational systems in most part of the world…I knw i’ve passed my engg last year and studied most of core concepts in engg…
But i can see there are plenty of schools in most part of the world are introducing Edubuntu linux and internet surfing sessions in their courses…
Not to mention i’ve seen most asian engg. colleges are introducing Programming as optional subject in 12 th class which is imp. class if you’re willing to persue higher edu in future…
So all and all..computer science is penetrating in our lives…and you can see 2020 as in SCI-FI films
Reply to comment
I also used to write programs on a scientific calculator. My HP-28s was pivotal to my development as a programmer. In order to “teach the machine” how to solve problems, I also had to understand the problem completely. I never understood the lack of vision by educators that barred technology from the classroom as an “innovative way to cheat.” In many programs now, technology as almost fully eclipsed classical methods of instruction, which I don’t believe is good either. I think that the classical methods and technological aspects pertaining to comp-science should exist together.
Reply to comment
Computer Science is so much interesting, I still don’t know why many people think its confusing and difficult. I remember some 2-3 years back, I used to think “Being a hacker is so cool”, but now I contradict it. When you can do reverse engineering why be a hacker instead apply the same in a proper manner and you are filled with great programs in your stash.
But now as Computer Science is penetrating, hope to see much more advances in near future.
Reply to comment
To reverse Engineer technology, one has to be a hacker. Well, in the classical sense of the word.
Reply to comment
CS (computer science) – The study of algorithms
SE (software engineering) – The process of building software
CSSE – Both
Do highly recommend doing a CSSE course
Reply to comment