Reaction for: Computing Curricula by Jon

This is a lot of material to talk about. I will do what I can.

When I read this, I naturally kept thinking to myself how Brown CS (the only department which I am familiar with) deals with these topics and issues. Most of the topics I could map to one class or another, such as the Algorithms and Data Structure (cs16, 157, and 252), Operating Systems (cs31, 167), etc. However, one topic which I noticed our department seemed to lack is that of "Social, Ethical, and Professional Issues." While this is not one of the Big 9, as the authors categorize things, it is something that they stress quite a bit, and seems to be a very important issue in computer science. Computer science has a major effect on individual people as well as human society, and it seems that some treatment of the ramifications and the issues involved in CS would be a very appropiate topic for a department to put time into.

Something else which caught my attention was the focus they put on the beginning on defining what exactly computer science is. Interestingly, this is a notion that varies greatly from person to person. For example, some people may think of a computer scientist as someone who has much greater experience and insight into programming and solving problems than someone who just knows some C. Another person may say it is someone who understands the theories of computation and complexity. A third person may have a completely different view. I think that a field that is always evoloving and changing like computer science is, some sort of discussion or mention of what exactly the field is has great significance. Even if there is no one definition, a department attempting to teach computer science must have a definite idea of what it is they are trying to teach, and getting this across to the students that are being taught is important. I was dissapointed that this article made no mention of how it defined computer science, but merely referred to another paper tackling that topic.

So this paper seemed to stress the idea of breadth over depth, to some degree. It described 9 areas of CS that should be covered in decent depth in order to effectively teach computer science. However, it does also seem to think that a certain amount of depth in some direction is important to take. Personally, I like this approach, and I think that Brown CS does a decent job at it. The core computer science classes give a student a taste of programming, algorithms, theory, architecture, etc. but once a student has completed the core curriculum, they can study additional areas in further depth. Admittedly, the topics of Human-Computer Interaction and Database and Information Retrieval are not given a treatment in the core classes, though at least cs127 deals with the second topic.

I also found their treatment of processes and recurring topics to be very interesting. I had never thought of dividing the topics of computer science into the categories of theory, abstraction, and design. However, those three do seem to cover most of the problems and topics covered in CS. Implementation seems to be a fourth, which is especially covered in our department, though they may group implementation with design. Additionally, I do like their treatment of recurring concepts, such as complexity, effeciency, security, etc.

I think a paper like this would be an excellent thing for every computer science major/concentrator to read. It is infrequent that a person steps back and asks himself/herself what exactly it is that they are studying. Thinking about a question like that gives you much more focus in your work and your learning, and I believe gives a person a better sense of the subject material as well. I believe that I might look for the recurring concepts more in my work now, and give a little more thought to what it is I am studying, which I feel is very valuable for any student.


Reactions


Danah:

I agree with your sentiment that others should read about what they are studying. Maybe understanding the goals of the discipline would allow people like Shoe to stop questioning this. Computer science at Brown is odd in comparison to some schools that require a course on the history, goals, future, ethics, etc. of computer science. In this way, we are such a tech school...


MY NAME: Andrew Schulak

I agree very much with Jon, as I tried to mention in my own response. I too found it lacking that they did not discuss what computer science "is." It is very true that we often get wrappen up in things for one reason or another and then end up not knowing why it is that we are doing the very thing we are doing.

As Jon mentions this may happen a lot in a field like Computer Science that is so dynamic. Having a proper perspective on one's field of choice can be a very important piece of knowledge to have. For if one has this knowledge one may be able to appreciate the smaller things better.

Being able to have this global view would allow people to not get stuck in such areas as just implementation, or theory, etc. Certainly I am not saying that people should not gravitate towards areas they like, no. I am just saying that being able to see the larger scope might help theoriticians to not hate programmers and likewise.


Lucas:

As with Danah and Shoe, I agree with your statement that more was needed in the area of what CS "is" -- it's definitely more than just code code code, but it's tough to find anywhere a concrete definition of a computer scientist in a way that's significantly different than that of a programmer -- again, the debate of industry preparation vs. learning for the sake of education and personal thought is raised.


[BACK]