On Software Development as a formalized Class

I TA a course about making viruses, hacking into computers, and taking down cellphone networks. I do so with no malicious intent, and a year ago had someone suggested that I’d be doing this, I would have been rather annoyed, I have long believed computer security falls into one of those cracks people label as pseudo-sciences, that the elegance of an attack is not very well defined, and that the algorithmic benefits of studying most forms of computer security, outside say cryptography is limited at best. I have changed my mind about most of this, yet I must sadly declare that I would never ever take CS166. I’d love to TA it again, for it has its good points, and I really can’t take a course who’s development I have aided in as a TA, but in another world and another time, had someone asked me to take this course, I’d have laughed and said no. One of my co-TAs in this course, a guy we shall call LAM (fits in for LAM is useful in MPIs and MPIs seem to absorb my life), has long commented on the overly-vocational nature of parts of our course, a charge I agree with, however am powerless to act against. This seems to be a common problem with the Brown CS department, charged on one hand with maintaining a liberal art stance on the universe, and at the same time being in a field where vocational knowledge brings money. If there’s one thing I have learnt from being more closely associated with the CS department this year, it is that people who have jobs and are about to graduate, talk of large sums of money, sums large enough that most of the worlds seems poor by comparison. This however ain’t an entry about CS166, for as a part of the teaching staff, I am not sure what part of the ethical divide I would be on should I post an entry on this. This is a post on CS32, another one of those courses I’d have never taking in another world and another time, but am forced to in this one, mostly because it’s one of my concentration requirements. So CS32 is supposed to be a course on software development, what this could mean in another university I am not completely aware on, certain people who are supposed to be significantly better than me at this entire question, such as Joel on Software have written about people who teach software development like things, about complex coding, and a hatred of Java (two funny stories/full disclosure: I have an extreme small world connection to the professor whose data is quoted on that website, I am friends with members of his family. Also FogCreek, while positioning itself as a non-discriminating company, and specifically mentioning national origins on its non-discrimination policy, has specific policies in place discriminating against me and other people who are important to me from applying to FogCreek), however all of these have given me no impression of what actually software development classes are about. I also happen to be in another, harder, math class which meets at the same time as CS32 (yes you can actually do this twisted thing at Brown), and hence don’t end up attending any of CS32, because frankly my math class is a whole lot harder. However the other day, my math professor was away doing whatever professors do when they aren’t at their professorial postings (in my parent’s case this usually involved professing, bird-watching, running after wildlife, photographing or more usually a combination of all of the above), and to fulfill requirements of going to class at least once in a semester, I went to CS32.

Now a long time ago, certain teachers were mildly annoyed, and mildly surprised to see me in their class, at Brown, people are smarter and not many care about seeing or not seeing me in class, and this is in general a good thing. CS32 however has about 16 people, of whom something like 12 actually attend lectures (grades mostly seem to focus on such things as projects, projects are big and involve work, assuming you are doing all the projects, and you really should be, you are pretty much getting most of what you need to get out of CS32, or so people say), and so I ended up in this little room with people I knew, staring at someone or the other’s code, and hearing a lecture on what was wrong about this particular code. And this was when it hit me, CS32, as a software development course, ain’t about teaching much of anything, it’s more about passing a doctrine on what you consider good coding practices to be. This is a good thing in someways, teaching people a multitude of libraries would be bad, because libraries are a dime-a-dozen, and teaching libraries seems to be just the thing they’d do at school, and not allow people to learn stuff for themselves. That being said it doesn’t make much sense, because as much as I might attempt to understand and follow his ideas, they are at the end of the day partly arbitrary, or else already well known, and hence adopted, sermons on what is good, and everyone has ideas of what they like or dislike. Point in case, the entire C debate on whether conditionals should be written as (const var) or (var const, I have hardly ever seen anyone use the first form in published code, and the later form makes far more sense to me, and it is one of those things he agreed with, but that being said, the decision is entirely arbitrary, and I am guessing that had I learnt C from a human rather than a book, my decision might have been different. Which brings me to the obvious problem, Brown considers it important that I go through a semester of this stuff, most people consider it important, but no one seems to explain why. Unlike all those other prerequirements which I skip, I cannot do this seeing as this is something I need to get through to concentrate in Math-CS, and yet it makes no sense.

To those who it concerns I will be hopefully filing my concentration later this week, I will probably not being going anywhere this spring break, and if I am really really lucky, I will be stopping by at a friend’s place in Montreal before I begin working in June, and will be stopping by somewhere in Europe over the fourth of July, the chances of any of this happening are low, but it might happen, and that’d be cool.

Also currently there are a few people I don’t like, and one of these days I want to write about certain parts of 166, only because it is the first time I have been engaged in getting a new course of the ground, and it’s been pretty fun.

Ze Panda

Viewing 1 Comment

Trackbacks

close Reblog this comment
blog comments powered by Disqus