Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

Where have all the CS teachers gone?

By wookWook in Op-Ed
Mon Oct 16, 2000 at 05:47:20 PM EST
Tags: Culture (all tags)

There is little doubt that computers and computer science are the future. I have been programming for six years now, and I have been taking computer science classes for four of those years. In that time, I have had four CS teachers. Of those teachers, only one of them has been decent, and he quit for a higher paying job. Is finding a decent comsci teacher/professor so hard?

I learned a lot of my programming skills on my own before I was old enough for the comsci classes in highschool. It probably would have been just a hobby, except that I had this one teacher... Mr. Barrish. He was awesome. He was always open to questions, he explained things clearly and thoughtfully, he had innovative lesson plans and ideas, and he made learning a pleasure; essentially, he was a brilliant teacher. He _wanted_ to teach computer science.

One day he came into class and told us that he was quitting. He could no longer afford to live on the meager salary my school was paying him, so he was going to have to leave for a higher paying job programming for some big company. He loved teaching highschool computer science, and it was terrible to see him go.

The school quickly replaced him with some programmer they already had on staff. Needless to say, he did a terrible job. Luckily, he just finished up the year until the school could hire someone else.

That someone else was worse! Her lesson plans consisted of reading from the textbook. She couldn't answer any questions, her exams were ridiculous, and so on. It was my least favorite class in school for the two years I had her, which is a shame as its my my favoritie subject.

When I got to college, I figured that my comsci problems were over! College professors are MUCH better than highschool teachers, right? Wrong. Its just more of the same. Silly/impossible projects, exams on material we haven't covered yet, terrible lesson plans, the inability to answer questions... How hard can it be to find a decent comsci professor?

I have had discussions about this with some of my friends. At first we reasoned that computer science is inherintly hard to teach, and its not the fault of the teachers that their class are horrible. Then we realized that of course its their fault. They show a lack of interest in teaching, and don't seem to give a rat's ass about the students; they do the minimum to get by. These things have nothing to do with computer science, but instead show that they are bad teachers. Also, math is hard to teach as well; in some cases harder than computer science. Yet, I have had some amazing math teachers, and only one such comsci teacher in the same time period. According to my friends, I have been lucky to find even one good comsci teacher.

Then we figured out that it was the money. People who are into computer science can make a LOT more than a teacher can. Of _course_ its hard to find decent computer science teachers/professors, and its a big problem. How is a young student like me supposed to learn?

I hope that my experiences and those of my friends are isolated...What are your experiences with computer science teachers? Are there any good ones? Any differences between highschool and college? What does this mean for future programmers?

Also, are there any computer science teachers out there? What to YOU guys think? I'd be interested to know what someone on the other side of this issue thinks. Also, I am thinking of becoming a comsci teacher myself (mostly because of my terrible experiences, but also because I love teaching). Any pros/cons?


Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure


Which language should entry-level computer science be taught in?
o C 21%
o C++ 12%
o Java 15%
o PERL 8%
o BASIC 4%
o Pascal 14%
o Anything OO 12%
o Doesn't matter 12%

Votes: 173
Results | Other Polls

Related Links
o Also by wookWook

Display: Sort:
Where have all the CS teachers gone? | 105 comments (105 topical, editorial, 0 hidden)
Tis' the truth... (3.00 / 6) (#1)
by TheLocust on Mon Oct 16, 2000 at 04:59:47 PM EST

I know a CIS (Comp Info Sys) prof of mine always says "if you aren't out-earning me in 3 years, you are doing something wrong". It's the question that is always asked of them: "Why are you teaching when you could make more money?" Well, the answer there is that teaching satisfies. Burning out at a dot-com isn't. Me personally, I'd love to teach C/S someday. But first, I have to get my doctorate (ack!). So, why teach when you can make six figures? It's truly horrible, but then again it does weed out those that REALLY want to teach.
.......o- thelocust -o.........
ignorant people speak of people
average people speak of events
great people speak of ideas

Not a CS problem, a Post Secondary Problem (3.20 / 5) (#2)
by gauntlet on Mon Oct 16, 2000 at 05:15:31 PM EST

I think in any discussion of good and bad teachers, it's worthwhile to point out that people learn differently. What is a good teacher for one student might be a bad teacher for another student.

I certainly don't mean to say that there is no such thing as a bad teacher, because there are certain skills that are prerequisite. A passion for understanding the subject, the ability to relate things orally, the ability to interpret from a person's questions where their understanding of the topic is incomplete, and the willingness to say "I'm not sure, but I'll try and find out for you." These are even more important than a detailed theoretical understanding of the topic at hand, although for advanced students that is also necessary.

A teacher can have all of these qualities, however, and still not be effective in helping me to learn something. There are too many variables.

That being said:
I never had a good teacher after high-school. It became clear to me after a short while that teachers up to high-school are people that decided, for some reason, to take courses in education, so as to be able to teach. Where I live (Canada) they sure as hell ain't doing it for the money, so there is some sort of desire there.

University teachers, on the other hand, obtain their posts by graduation. They are required to have a certain degree, but are not required to have any skill in teaching, and are not required to take any courses in the area of education. Everyone knows the stories of university professors (or teaching assistants) who don't even speak the primary language of the country they are teaching in. It seems that for many, the primary reason to teach at the post secondary level is in order to remain a student of the subject.

As for computer science, yes, there are too many better-paying ways of teaching it out there. Another problem that I see with it is that a mastery of computing science fields typically demands a sort of mind-set that is not effective for interpersonal relations. But those aren't the major problem. The major problem is that a professor is not a teacher. And a teacher with a passion for CS is a rarity.


Into Canadian Politics?

Definitely a shame. (2.50 / 4) (#3)
by XScott on Mon Oct 16, 2000 at 05:20:32 PM EST

I had some very good CS instructors when I was in college (5-8 years ago). Losing good teachers to industry is just a fact of life though when the pay in industry is so good and the pay in academia is so poor.

I'd like to teach someday when I'm financially able to retire. My ideal situation would be teaching at a University near a beach somewhere - sneaking off to go surf when I've got a couple hours free between lectures.

When you graduate will you take the high paying job with the big stock option benefits, or will you take the high road and fill the void you're noticing now?

I really wish that the two most important jobs in our society (teachers and police officers) got salaries that attracted the most able people. Brilliant minds that love to teach, and people who realize that with increased authority comes increased responsibility are pretty few and far between to be attracted to such low paying jobs.

-- Of course I think I'm right. If I thought I was wrong, I'd change my mind.
My experiences (3.00 / 6) (#4)
by dabadab on Mon Oct 16, 2000 at 05:23:06 PM EST

Most of my CS teachers in college were "academic persons" - you know, those who don't want to cope with mundane tasks that go with a "real life" job but love tinkering with theories.
Most of the rest were simply incompetent to get a job.
Then there were those who were not full-time teachers, leading only one class. I think they were there mostly for "being a college teacher"
And ther was a guy, working in a bank (and presumably earning many times what he got from the college), who led only one or two classes: but he was a great guy, both technically and personally, and he was driven by the honorable idea of "educating the next generation"

Anyway, I think that you don't go to the college to learn new things in the classroom. There, the most you can expect is building up a mental structure that ties together all the random infos you have (and this is a wonderful thing)
College is mostly here to provide you with lots of spare time when you can read this, experiment with that, make long discussion and so on - and in college will you learn that how cool you are compared to those lamers in your class ;)
And, after you have graduated, your first job will be where you will learn what you still need - mostly things about how to work as a member of a team, and if you are lucky, and have great co-workers and boss, there you will learn that how far away you are from perfection :)
Real life is overrated.
A quick (?) question... (2.00 / 3) (#5)
by Jade E. on Mon Oct 16, 2000 at 05:52:28 PM EST

OK, you seem to have at least started down the right path. Most of the good programmers I know are entirely self-taught, at least in part due to the exact lack of good teachers that you're pointing to. By definition, anyone who becomes an expert in the field before there are any teachers in it must be mostly self-taught. So that raises the question: Would you want to take your years of hard work and spend it teaching, when 99% of your students are totally apathetic, and when you know your skills would net you a lot more dough elsewhere? Unless you can honestly answer yes to that question (I, unfortunately, can't), I think the teaching deficiency is pretty clear. Computer Science is possibly the ultimate example of that incredibly worn out idiom: Those who can, do. Those who can't, teach.

How would you do? (3.50 / 8) (#6)
by jabber on Mon Oct 16, 2000 at 06:12:10 PM EST

As in many problems, this one contains it's own solution.
Why did your favorite HS teacher leave? No MONEY! Teaching doesn't pay. It's a huge sacrifice you ask for - that a person who is knowledgable in the field of computing set aside the HUGE earning potential of the Industry, and work solely to make ends meet while gaining the 'satisfaction of teaching'.

Sure, some people are fanatical about making a difference in young minds, but for the most part, the lack of pay and of respect, tend to wear good teachers out. Eventually the old addage becomes true: Those who can not do, teach. Have you seen some of the losers that take introductory CS classes? These jokers are enough to turn many a good and enthusiastic instructor away from the profession of teaching college. And why do these bright potential professors get such crappy assignments? Seniority, or more specifically the lack there of.

So here is where we stand: We either have the mindless tenured juggernaut who only "understands" the material as far ahead of you as one day's reading, who started out teaching something else, like math, and transitioned to CS because of internal politics; or we have the young academic who survived the 100-level class of idiots but has no sense of the real world since they plowed right through the PhD and have no practical experience for an industry job; or we have the industry burn-out who had enough of the office life and decided to teach to supplement their pension.

I have had a sprinking of each these professors, and some hybrids, like the the old academic with no foot-hold on the state of the art who insists your Pascal code should be written in vi and debugged with println statements...

My personal favorite is a truly rare breed, the retired industry pro with a young mind. These guys have their IRAs squared away, and don't really need the money; they're there because they love computing and they really dig how far the technology has come. I've had exactly two such professors, one as an undergrad, and another as a grad student. At times, these guy's passion for the Art and Science of Computer Science is what kept me in the degree.

Now the question: Would you teach Computer Science at this point in time? Why? The money to be made working in the industry is great right now. And by not teaching the up and coming generation, we're just assuring ourselves of job security. :) Personally I would like to teach CS at some future point in time. But right now, there's experience to be earned, along with hefty pay-checks... Besides, you have any idea how hard it would be for a 20-odd year old to get any respect what so ever from the losers in CS-099?

[TINK5C] |"Is K5 my kapusta intellectual teddy bear?"| "Yes"

Be Grateful (2.33 / 3) (#7)
by end0parasite on Mon Oct 16, 2000 at 06:38:16 PM EST

At least you had computer science teachers. I've never had one; I'm entirely self-taught. We once had a CS teacher before I came to high-school, but he was also the math teacher, so he had to make room for some other classes, and I think he only taught QBasic. In any case, you have a good point.

It's unfortunate, but... (2.60 / 5) (#8)
by skim123 on Mon Oct 16, 2000 at 07:04:45 PM EST

Why do people go into grad school after graduating with a BS in Computer Science? Here are a common list of reasons:

    1.) Can't find a job
    2.) Want to teach/do research
    3.) Other

I'd say the majority of grad students are where they are is because of #1. This is not good, seeing as many lower-order primates can get a computer-related job in this economy. So.......... if the majority of your profs don't have the skills to hold a job down (and the skills they lack aren't intelligence or computer-related skills, usually they're personality skills), then they're not going to be a good teacher.

I added the other option up there because there are those who do grad school because they are not money-focused and they realize how much work blows. They may have tried work, and been successful, but just didn't find it fulfilling or able to hold their interest. Do those people become teachers, though? Would they be good teachers? I dunno, I plan on finding out the answers to those two questions, though, because I fall under category #3... Not in grad school yet, but plan to start up in Fall 2001.

Money is in some respects like fire; it is a very excellent servant but a terrible master.
PT Barnum

Number 1 is VERY WRONG!!!!! (none / 0) (#30)
by 11oh8 on Mon Oct 16, 2000 at 10:49:29 PM EST

Wow... you have some serious grudge against grad CS students....I will be graduating in December with my undergrad degree and i will be working.... but i know many people who are going to grad school not because they can't find a job but because grad school can prepare you for better jobs....

You're right... most idiots with a 6 month VB or HTML class can get a computer job without any problems.. But most of those jobs aren't exactly very fulfiling (technically, not financially)... Some people want to go to Grad school so that they can get more challenging jobs... I've had many hiring managers say to me that they do accept undergrads but the good projects obviously go to the grad hiree....

I am hoping that the work experiece I get in the years I would normally spend in grad school will teach me much more.... but some people think differently... doesn't mean they couldn't have gotten a job....


[ Parent ]
Not quite (none / 0) (#34)
by skim123 on Tue Oct 17, 2000 at 12:08:30 AM EST

Wow... you have some serious grudge against grad CS students

No, no grudge at all... in fact I have some good friends who are CS grads and will likely become one myself in the forseeable future!

but i know many people who are going to grad school not because they can't find a job but because grad school can prepare you for better jobs

Right, hence my #3 option...

The comment/observation came from the fact that my friends who are CS grads have indicated that many of their classmates clearly fit #1. Also, in my own experience in the field I interviewed candidates and worked at a couple college job fairs... the company I worked for didn't hire grad students because they reasoned that a grad student either was a grad student b/c they couldn't get a job or they were a grad student because they thought they'd get paid a lot more. This company wasn't big on large starting salaries...

Money is in some respects like fire; it is a very excellent servant but a terrible master.
PT Barnum

[ Parent ]
another important reason and some advice (none / 0) (#50)
by Csy on Tue Oct 17, 2000 at 09:26:06 AM EST

4. Disgusted with the "real world"

For many students who are very excited about computer science (not programming, technology, or money) reality is harsh. I find that many people, myself included, have a hard time transitioning from the enthusiasm and discovery of a CS program at a university into a money hungry workforce.

Back on topic, I think that there are many extremely good computer science professors. There are also many bad ones. If you are a the high school kid looking at schools, here is some advice: Start by looking at universities which are strong (research-wise) in the sub-discipline that you are interested in (AI, programming languages, operating systems, HCI/CHI, whatever...) The quality of a specialized program or area research is a good indicator of the quality (and enthusiasm) of the professors.

[ Parent ]

Univ. profs are either incompetents or researchers (3.60 / 5) (#9)
by Carnage4Life on Mon Oct 16, 2000 at 07:19:03 PM EST

Frankly I find it more and more difficult to understand why anyone besides people extremely interested in research would want to be a college professor.

I am only a junior in college but already potential employers have offered me more money than most members of faculty at my school make. This is with a minimum of work experience and not even a 4.0 grade point average.

To answer my own question, after a short mental survey I divided all the professors I have had into two broad groups.
  1. The professors who couldn't make it in industry and retreated to school to teach. These make shoddy teachers.
  2. The professors who are primarily interested in research but teaching is a necessary evil that they must perform. Most of them do not like teaching but they know their shit.

I guess I have answered my own question and yours. Sometimes I have met some good teachers who don't fall into the above groups but they are mostly graduate students who know their shit and plan to get $100K jobs once they graduate.

I couldn't agree more (2.60 / 5) (#16)
by maynard on Mon Oct 16, 2000 at 08:31:17 PM EST

As a University employee at MIT I have to agree with this statement. However, MIT does have it's share of extremely smart people; frankly, I'm a dim bulb compared to most of the folks in there.

However, the common wisdom that those who teach can't do is usually correct. I can't count the number of folks I've bumped into over my career who taught at the undergraduate or high school level (often on the side) but were completely incompetent in their chosen fields. Given that students will comprise the future workforce this seems like yet another skewed priority within our society; to be ranked next to funding high school football instead of basic academics.


Read The Proxies, a short crime thriller.
[ Parent ]

I Volunteer! (3.20 / 5) (#10)
by -ryan on Mon Oct 16, 2000 at 07:21:28 PM EST

I had a wonderful CS teacher in High School, and then a pretty lame one. The first was a woman. Ms Schairo. I'll never forget her. If I could ever meet her I would give her some of my stock options and gifts and hugs and kisses. I remember how she tried to hide her tears when I failed CS. I remember how much she saw potential in an underachiever and how much she wanted me to succeed. I was being dumb (however 'bright' that I was) and ignoring my assignments, spending all the lab time writing games and a web browser in pascal. Thus I failed her final. If she could have gotten away with it, I know she would have passed me but it wouldn't have been fair or right. But none of that matters now. I'm 21 and making a low six figures. And I feel that in some way I owe it all to her. Even though I didn't understand it at the time, she influenced and interested me in the only thing that I ever became good at. The only thing that ever made me matter to anyone, and I took it and ran.

I would love to 'pay it forward' by becoming a High School CS teacher. I will in fact. Probably when I am nearing retirement. If I can manage it sooner I will. She only lasted two years as a teacher before she went back to industry I don't blame her, it must be tough.

The teacher I had after Ms. Shairo (some how I got myself into CSII even though I failed CSI) had moved over from biology or something like that. He was pretty bad, but he tried. I felt complacent and unchallenged again, the typical underachiever that I am. Within 3 months of my Senior year I got my GED and almost 4 years later, here I am.

Heh, I wonder what she'd say if she knew that after she left I got suspended for hacking the school's computers (librarian walked up behind me while I was h4XX0ring my attendance records). Good thing they never found out exactly what I did.

I wonder what she'd think If she knew what a positive influence she had on me. I hope it makes everything worthwhile.

CS Profs (2.50 / 2) (#11)
by Matrix on Mon Oct 16, 2000 at 07:29:59 PM EST

For some odd reason, the University I'm going to (Dalhousie, in Nova Scotia) seems to have an unusually high number of good math and CS profs. I've personally met and worked with (to some degree or another) two or three good ones, and I'm only in first year - I've heard there are some really good ones teaching the third and fourth year courses. Of course, there's some that aren't so good, but one really has to expect that.

Unfortunately, this has been balanced by my never having had a good CS teacher before now. In fact, most of them have been downright horrible.

"...Pulling together is the aim of despotism and tyranny. Free men pull in all kinds of directions. It's the only way to make progress."
- Lord Vetinari, pg 312 of the Truth, a Discworld novel by Terry Pratchett

NMSU's CS department has been hit especially hard (2.50 / 2) (#12)
by fluffy grue on Mon Oct 16, 2000 at 07:50:00 PM EST

At the risk of posting yet another "Me too!" type post to this article, NMSU's CS department has lots a lot of teachers. Not directly to industry, though - but to other universities whose professors have all left for the industry. Right now we're down to something like 7 graduate faculty here, and one of them's on a sabbatical for a year. We suddenly lost 3 at the end of last year, as well (most of them taking our big grants with them).

It's an incredibly frustrating situation for everyone. The upshot is that (for some reason) only the crappy profs left - I guess the good ones are dedicated enough to the department and area that they aren't just mercenary flesh. Fortunately for me, my advisor is one of the good ones. Unfortunately for most students, their advisor is one of the ones who left (and this particular one left incredibly suddenly, which I guess fits his pattern of using grad students like a disposable commodity).

Fortunately, the department's been interviewing a lot of profs for hire, and currently has a few visiting profs for the next semester or two and can hold out for a little while under the current stresses, anyway. However, the schedule's quite tenuous - there's just not enough profs to meet the demand of teaching all the courses (so a lot of the fun elective courses are in cryostatis for now), and for some reason the university has a policy that required classes (including degree-plan electives) cannot be taught by grad students. There's plenty of grad students who would be quite willing to teach a course, but there's not enough courses which can be taught by grad students (basically, only the language classes can, since they're the only CS courses here which aren't on a degree plan as part of a requirement).

"Is not a quine" is not a quine.
I have a master's degree in science!

[ Hug Your Trikuare ]

wrong basis (2.50 / 2) (#13)
by maketo on Mon Oct 16, 2000 at 07:50:15 PM EST

College education is not to make you the greatest programmer, in fact, rarely to make you any sort of a programmer at all. The university people see coding usually as the manual labour of computer science - that is why they recommend you to get a two-year associate diploma (if thats what they call it these days). College education is about understanding complexity and many ways to model it and deal with it. It is more about a mental frame of thought than about sitting down a coding up a storm ;). In that light, many a programming task you will get in the Academia will not be concerned with style, optimization or the ultimate beauty ;) of the art of it, more likely it will deal with being correct and proving or disproving an experiment. This especially holds for upper years of computer science and further into the graduate program. Remember that the human mind is the ultimate computer.

Although I have seen many a loser walk by in the CS programme here, some of them clueless, others sharing homeworks and generally getting by, many a CS graduate comes out as inexperienced programmer with no more than a thousand or two lines of code and a lot of excerpts of knowledge on how to solve a problem, how to approach the splution of a problem, how to assess the complexity of the problem and ultimately, how to dig up the solution from different sources.

In my experience there are professors who treat their students as equals and ones that dont. The ones that do, will, in general, tend to be better at what they do in the classroom.
agents, bugs, nanites....see the connection?
Re: Wrong basis (3.00 / 2) (#15)
by fluffy grue on Mon Oct 16, 2000 at 07:55:26 PM EST

Hm. In this rant, I saw nothing about the courses being about teaching programming, but about computer science vs. the software industry in terms of wages and livability. The poll seems to be completely disconnected from the article, in fact...
"Is not a quine" is not a quine.
I have a master's degree in science!

[ Hug Your Trikuare ]
[ Parent ]

Yeah, it was :-P (2.00 / 1) (#39)
by wookWook on Tue Oct 17, 2000 at 01:21:49 AM EST

Yep, its basicly a side note. I just thought it was interesting :-P I guess I missed the previous article though... I wouldn't have posted it if I had seen it :-/

[ Parent ]
re: Wrong basis (none / 0) (#19)
by wookWook on Mon Oct 16, 2000 at 09:22:23 PM EST

Is this the correct way, though? SHOULD someone come out of a course with only a minimal understandong of CS? You said that only a few people have that happen... In my experience, thats the norm. And when the teacher posts a screen shot to the newsgroup and says "Make that program", its no wonder. When he gives the same exams semester after semester _without evenc hanging thr date on them_ its no wonder. When he hands out buggy code in class as examples, its no wonder. PEople like this shouldn't be teaching, and yet I've been taught by too many of them.

[ Parent ]
once again (none / 0) (#25)
by maketo on Mon Oct 16, 2000 at 09:39:56 PM EST

The teacher probably cannot inflict love of art on you. Once you define exactly what you want the teacher to teach you, we can talk further. To me There is as much _art_ in computer science as there is _science_. The science part is not that difficult to understand. The art part comes to you from love of what you do. That cannot be taught. Too bad many a computer major is in the field because of the good promise of a nice paying job. Then you wonder... ;)
agents, bugs, nanites....see the connection?
[ Parent ]
stop complaining (2.50 / 2) (#14)
by semis on Mon Oct 16, 2000 at 07:53:35 PM EST

If you can't find any "decent" teachers, then teach yourself!

Obviously you are advanced for your age, ("I learned a lot of my programming skills on my own before I was old enough for the comsci classes in highschool") - so you are ALWAYS going to find CS courses badly run.

Just plod through the course, and make YOUR OWN projects up on the side to keep your interest. Expecting to be fabulously entertained at class is just stupid. And the more you complain about it, the less sympathy people will have. You have a solution wide open to you. Take it.

I wasn't complaining :-P (none / 0) (#18)
by wookWook on Mon Oct 16, 2000 at 09:15:49 PM EST

I wasn't complaining... I work on a few open source projects part time, and I whip up scripts and programs when I find something I want to do. I tweak my machine a lot, too. I'm not _bored_ with CS. I'm mad at my teachers for being so terrible, and I'm wondering if this is true accross the board, and if so, why. --floss

[ Parent ]
Poll: Not a langauge (3.20 / 5) (#17)
by Lionfire on Mon Oct 16, 2000 at 08:43:08 PM EST

I've always contended that entry-level Computer Science shouldn't be taught using a programming language at all. It's far too difficult to teach good algorithm design and really get students to understand complex data structures while they're busy dealing with the fiddly complexities of "where does the semicolon go?".

Computer Science needs to be introduced using nothing but pen and paper pseudocode and pictures on a whiteboard. Once students have grasped these concepts, then let them at a language.

The only problem with this, of course, is that no university here wants to go out on a limb and try it. After all, how can you advertise a course to the public that won't teach them a language right away?

[ blog | cute ]
Already discussed... (3.50 / 4) (#21)
by baberg on Mon Oct 16, 2000 at 09:26:14 PM EST

We had a good thread on this one last week. Many of the things I said there apply here, but to avoid you having to search for my username, I'll repeat them here.

I'm a student at The Ohio State University and I'm a CIS minor, Engineering Physics major (which reminds me, I should be writing a lab report...) But anyways, here at OSU they teach a dumbed-down version of C++ known as RESOLVE/C++. It's basically a wrapper around true C++, but with all objects being pointers, automatic garbage collection (because it's all behind-the-scenes)

Here's the problem: I have been programming over 4 years, since before college, and I have a part time job that consists of progamming in C++ and Java. I know my way around programs and their creation. My roommate, who got better grades than me in the same CIS classes, cannot write a "Hello World" program. He doesn't know the syntax. After 1 and a half years of taking CIS classes, you would expect that someone could create at least a partially-functional program.

Also, I disagree with the assertion that semicolons are "fiddly complexities." I think that's where a good programmer can really speed up their code/compile/debug cycle. If you can immediately spot something that JDLR (just doesn't look right) in your code, it's much easier than trying to figure out why your algorithm is not working. I've had code not work because I accidentally put a semicolon after a for() statement. It took me about 20 minutes. I couldn't imagine the problems that someone who hasn't trained their eyes to see minor problems like that.

Vote Nader

[ Parent ]

Computer Science vs Coding (3.80 / 5) (#29)
by Lionfire on Mon Oct 16, 2000 at 10:45:56 PM EST

Hmm... sorry I missed this discussion the other week. Obviously not wast^H^H^H^Hspending enough time on k5  :)

I'll agree that being good at coding is important for a programmer, but that's not what a Computer Scientist will end up doing. There are a large number of jobs out there which require high-level design skills and very little programming. Hey, that's where a lot of the money is. I'm not even going to mention how little coding is done by Computer Science researchers.

I think my point is that Computer Science isn't really about coding. It's about understanding algorithms and data structures and applying that knowledge to problem solving. If that isn't the initial teaching focus, then students tend to get the wrong idea.

I'm all for teaching students as many languages as possible -- that is a requirement for today's workforce -- but I don't see coding as a good place to start learning how to do things properly.

[ blog | cute ]
[ Parent ]
Good point... (3.20 / 5) (#31)
by baberg on Mon Oct 16, 2000 at 11:23:53 PM EST

Good point about the difference between coders and computer scientists. I guess I'm not the CS type of guy; I don't care how it looks or how I could change it from an O(n) to O(Log(n)). I just want it to work, and by God, it will work, even if I need to bypass sleep for the code.

You're right, though. I guess I just looked at a CIS degree in the wrong way. I was looking at it as teaching me how to code something (which they definately have not taught me) but really I guess you can learn the syntax anywhere.

Well, damn. That was one of my favorite gripes about the CIS department here (there are a lot more) and now you've convinced me that it's invalid. So fuc^H^H^Hthank you :-)

[ Parent ]

re: Not a language (1.33 / 3) (#23)
by wookWook on Mon Oct 16, 2000 at 09:26:40 PM EST

Yeah, I would have put that but I had no room :-( --floss

[ Parent ]
.. (4.33 / 3) (#44)
by ameoba on Tue Oct 17, 2000 at 05:07:39 AM EST

Imagine having to study music theory (scales, chords, harmony, counterpoint, etc) for a few years before you picked up an instrument? I'd be a waste, as you'd have no grounding in what it means, no tools to go out and test the theories.

In the same vein, it's important to be able to program while learning CS. Abstraction is good to a point, but having somethign solid to drive it home helps make the ideas stick. (I'm all for using 386s to teach algo. efficiency... What's the dif between sorting 100k elements w/ a qsort and a bubblesort? =).

CS is an applied science; yes, there are the strictly mathematic bits, but those are generally upper-level topics. Intro programming classes are a great place to teach the basics of CS theory, and set them up for the more advanced classes.

Just keep in mind that all CS students aren't geeks, just as all Econ. students don't do accounting in their spare time, nor are all Chem students meth cooks.

Of course, if they were, it'd keep prices down...

[ Parent ]
(okay... I can't think of a subject. Sue me. :) (none / 0) (#78)
by Lionfire on Wed Oct 18, 2000 at 07:16:48 AM EST

I mostly agree with you. There is no point teaching CS in a completely theoretical manner. If you don't actually code your algorithms, you'll never fully understand what the point is.

But, I'm still a firm believer that theory is definitely the place to start. Since you mentioned music: when I was learning to play a musical instrument, the first thing I had to learn was how to read music and the general theory behind it -- keys, chords, tempo, etc. Once I'd done that, I started playing the instrument. That gave me a solid understanding of what I was playing.

The same thing applies to CS -- if you don't ground your understanding in solid theory, you can't (and possibly won't ever) understand exactly what you're coding.

I'm not taking about teaching only the theory, just that the first semester -- no more -- should be taught away from the keyboard. There's plenty of maths, algorithms and data structures to fill six months. Why try to mix "wrestling with semicolons" in there too?

[ blog | cute ]
[ Parent ]
LISP! SCHEME! (none / 0) (#102)
by ToastyKen on Mon Oct 23, 2000 at 02:55:13 AM EST

That's why at Berkeley and MIT, at least, the intro CS course is taught in a LISP variant called Scheme which has insanely simple syntax (but powerful semantics) precisely to avoid having students (a) worry too much about the details and (b) get the misconception that programming is just about "learning the language".

[ Parent ]
Teaching College (3.71 / 7) (#20)
by Ikol on Mon Oct 16, 2000 at 09:23:15 PM EST

Part of the problem is that most colleges hire professors not for teaching ability but for research potential. Personally I'd love to teach computer science but unless you want to be a researcher or teach lobotomized high school CS courses there really isn't much in the way of demand. Colleges don't have any real incentive to provide better teaching, they can simulate better results by slowly raising entry requirements. The (hopefully) higher quality of student will make up for the lack of teaching with more work outside of school. At the same time the researchers do work that hopefully brings the school money and attention allowing them to further raise requrements. Since students don't get together and protest this cycle (they're too busy protesting what's happening on the other side of the world to pay attention to what's affecting them right now, or trying to keep up with the extra independant learning required) it is able to continue.

Graduate students teech too. (none / 0) (#60)
by nogin on Tue Oct 17, 2000 at 02:04:15 PM EST

You are forgetting that good research means lots of good graduate students and lots of good graduate students means that some of them would no how to teach (and would be willling to put an effort into it since there are more students than courses touth by grad. students, which means that there is some competition for those courses)...

[ Parent ]
Quality of grad students (none / 0) (#83)
by lux on Wed Oct 18, 2000 at 12:27:27 PM EST

I think you went to a different school than I did. I had one good grad student in all my CS courses. That was during my last semester.

Instructors (with PhD) were a mixed bag. If a grad student actually taught the entire course you were screwed. Grad students actually teaching a course was rare in any subject. They ran labs or discussion sections in many courses, though. Computer Science had to rely on lectures and outside study to teach things because the grad students rarele made a successful effort to teach anything beyond the compiler syntax.

My impression the whole time was that most of the good people went straight from UG into industry (grad school was seen as a fall-back if a person can't get a job). The university would consider grad students who didn't make the bar for interviews at many companies. I once watched 3 grad students spend 20 minutes trying to figure out how to untar some files I mailed to one of them (they wouldn't let me help!).

This was only in CS, other departments had much better grad students.

and would be willling to put an effort into it since there are more students than courses touth by grad. students, which means that there is some competition for those courses

???? I think you're trying to say that grad students would compete for the right to teach courses? Actually, it's the opposite. Texas A&M requires passing a minimal spoken English test before allowing a grad student to teach. If you take a job administering the network for, say, the English department, you get the same (or better) pay, and you don't have to bother with the English test or annoying undergrads.

[ Parent ]
I had good HS CS teachers... (3.25 / 4) (#22)
by shook on Mon Oct 16, 2000 at 09:26:35 PM EST

My HS principal had a fairly novel strategy that seemed to work. He would recruit female coders from industry with school-aged children. The hours/benefits/summers-off appealed to them for the same reason teaching appeals to many mothers; they got to spend more time with their kids. I would guess they probably got paid more too, because our principal realized how important computer education was in HS. And not just coding for future hackers, but also solid office/web design/database training for future suits. It seemed to work quite well. I am not going into the computer industry (pre-med) and the course I where I learned the ins-and-outs of MS Office (no flames please!) has served me much better than my courses in C++ and Fortran.

My Highschool (2.00 / 1) (#24)
by CompUComp on Mon Oct 16, 2000 at 09:30:21 PM EST

At my high school the 2 CS teachers (both also teach math) are more concerned with propper commenting and output formatting than content. The actually content of programs is practicly handed to us on a silver platter.

Howard Dean 2004

I've been fortunate... (3.00 / 2) (#26)
by Freshmkr on Mon Oct 16, 2000 at 09:43:24 PM EST

After reading this story and several of the comments, I've come to realize that I've had a rather fortunate CS education thus far. All my professors have been good natured, knowlegeable, and (most importantly) quite willing to get to know you and to help you personally with the material, often regardless of whether it's for their class.

I'm beginning to feel that it made sense after all to be a computer science major at a small liberal arts college. I'm a little concerned about my chances at getting into a good grad school (I want to pursue AI research after college), but I have no doubts about my own competence, nor do I fear that what I've learned has been 'watered down' in any way.

Has anyone else had as good an experience with a CS education at a liberal arts college? Am I just lucky?

(I feel I should also note that this semester I am attending a CS class at a nearby large university, and I've found my professor there to be a competent and lucid instructor)

Liberal arts (4.00 / 1) (#27)
by wookWook on Mon Oct 16, 2000 at 10:00:04 PM EST

As you can see from my email address, I am going to the Univeristy of Rochester, which is a liberal arts college. My highschool, too, was a liberal arts highschool. I am not sure it makes a difference in the quality of the CS department, but it does make for a more rounded education IMO. Its not for everyone, though...I seriously considered RPI as well, and my friends there have had good experiences. --floss

[ Parent ]
Teachers matter (none / 0) (#87)
by Sax Maniac on Wed Oct 18, 2000 at 02:40:04 PM EST

Yup, I went to a liberal arts school that has one of the oldest CS departments in the country. There were some exceptionally fine teachers there. In fact, there was only one or two bad ones, and they were easy enough to avoid.

Programming, or computer engineering, is a creative as well as an engineering endeavor. You need both halves of your brain to do it right. A liberal arts college helped me connect those halves. (I double-majored in music and computer science.) By computer engineering, I mean making useful things with computers, not ivory-tower theory that is classical computer science.

I've always programmed as a hobby. However, it was taking courses from excellent teachers that made me decide to major in it and do it for a living.

Now that I'm finishing my MSCS at a large university, I have only encountered one or two good teachers. The rest are all bad. Most are just not interested in teaching. I even had one teacher who openly admitted he didn't like computers. He'd rather do math proofs all day long.

The sad thing is I've learned so much more in my BA than my MS, but the BA gets no respect from others.

Stop screwing around with printf and gdb and get a debugger that doesn't suck.
[ Parent ]

Learn in secondary, extract in college (3.72 / 11) (#28)
by Fjord on Mon Oct 16, 2000 at 10:36:04 PM EST

In high school/secondary education, the teachers are there for one reason. That reason, as their name implies, is to teach. In college, you have professors. They are their because they have an emmense amount of knowledge built up inside of them. Their job is not to teach you, but to help you learn.

There is no more spoon feeding of information. Don't be disheartened by this, though. There's a saying that I still remember that was on top of my third grade classroom (third grade == 8 yrs old) that goes "In first and second grade we learn to read; in third grade we read to learn." There is no more learning how to apply yourself in college, no more looking over your shoulder by your professor. If there is, then there's something wrong.

So, basically, in high school/secondary, yes, there should be people who actually want to teach others about the wonders (and yes, there are such things) of CS/programming, but don't expect that in college. Learn to be self sufficient. Read man pages. Lookup problems online. Don't always run to another human to try and figure out answers. It will make you a better programmer and a better person.

No one can force an OS down your throat, you ultimately have to pay for it, one way or another. - rednecktek
Learning styles.. (3.00 / 2) (#38)
by Miniluv on Tue Oct 17, 2000 at 01:15:11 AM EST

Learn to be self sufficient. Read man pages. Lookup problems online. Don't always run to another human to try and figure out answers. It will make you a better programmer and a better person.

Alright...this is awesome advice...especially for people who're honing their skills, not acquiring them. I'm fairly fluent in Unix administration, shell scripting, and basic programming concepts (ie control statements, global vs local variables, etc) but cannot just pick C or C++ up from a book. I'm not that kind of learner. I learned UNIX from playing with it and asking people questions...which is exactly why I look forward to taking courses in C and such, the opportunity to ask for clarification that a book cannot provide, as well as to have someone who's been in my shoes help guide my learning.

Maybe I'm missing how you intended the post, and if so I apologize...or maybe I'm extending on what you said? Anyhhow...that's my 2 cents before inflation.
"Its like someone opened my mouth and stuck a fistful of herbs in it." - Tamio Kageyama, Iron Chef 'Battle Eggplant'
[ Parent ]

.. (none / 0) (#51)
by ameoba on Tue Oct 17, 2000 at 09:42:16 AM EST

The problem comes when you're in an environment where you don't have somebody to run to. There are some problems that are more complex than knowing what options to pass to a program. There are times when you don't even know what you should be finding more information on. These are the times when you need a teacher.

If we should all be so self reliant, then why even have teachers? Why not just cut one check for $50,000, and walk out with a diploma; I'm sure you could take care all the paperwork in under an hour. Teaching != spoonfeeding. There are more levels of Bloom's Taxonomy than just memorization of facts. A good teacher will help expose you to that which you'd normally overlook, and challenge your understanding of that which you take for granted.

I've been forced to be self-reliant over the last few years. I've read my share of man-pages, online documents, and books, mostly because I've HAD nobody I can ask about this shit. Maybe it's made me a better person, but from where I stand, I'm just lonely, bitter, and out of touch.

[ Parent ]
my experience (FWIW) (3.20 / 5) (#32)
by madams on Mon Oct 16, 2000 at 11:33:06 PM EST

My high school CS teacher was a nice guy, so I can't fault him for not knowing anything (he was learning C++ along with the rest of the class; I had the advantage of already knowing it). He gave me the advantage of working on other things than what the rest of the class was. I designed a program that let the AP Bio students do genetic experiements. I considered it a valuable use of my time, and the AP Bio teacher appreicated it.

College has been different. I've found that all of my professors are very knowledgable, even if they have trouble explaining everything (I've had worse experience with TAs, who are so brilliant that they can't possibly put what they know into words).

Of course, the CS department at my university is one of the most respected in the world, so my privilege may bias my experience.

My advise is to talk to upperclassmen and find out who the good professors are.

Mark Adams
"But pay no attention to anonymous charges, for they are a bad precedent and are not worthy of our age." - Trajan's reply to Pliny the Younger, 112 A.D.

my University experience (2.50 / 4) (#33)
by slashdotRulez on Mon Oct 16, 2000 at 11:57:02 PM EST

Like you, I expected university teachers to be better.
Bzzzt. Wrong. Well, at least for Comp Sci courses (I'm in Comp engr).
My "Programming Methodology" Teacher has a PhD in electrical engineering. I don't know what that has to do with programming... he might be good at electrical engineering stuff, but he sucks at programming.
Second problem: the course is called "programming methodology" and is supposed to be an "intro to programming" course.
You'd think they teach people how to program, right? Wrong again. They teach C++.
Those losers in the class don't even know what a program is, or what programming is about, and he's teching C++ details like default arguments and inline functions and function overloading and IOS manipulations...
Luckily for me I've been programming for 5 years and I've been taught real programming. But the rest of the class is clueless. And they'll be tested on their problem solving abilities... poor bastards.
They wanted us to pay 94$ canadian for a stupid Deitel&Deitel C++ book and use MS Visual C++... I ofcourse bought Stroustrup's book for 60$ ... and fuck VC++.

what is programming? (3.00 / 1) (#36)
by jesterzog on Tue Oct 17, 2000 at 12:50:16 AM EST

I don't know. Can you be more specific about what programming actually is, if C++ isn't programming?

Do you mean that they're not actually being given the opportunity to write any programs? Or do you just mean that they're not being taught how to solve genuine problems? (Something that usually only comes through experience anyway.)

jesterzog Fight the light

[ Parent ]
Re: what is programming? (4.00 / 1) (#59)
by jacob on Tue Oct 17, 2000 at 11:56:22 AM EST

While I obviously can't speak for the original poster, I took what he said to mean the following:

If your class is along the lines of, "This is a pointer. Use '* variable name' to dereference the pointer. To invoke a method on a pointer, say 'variable name . method name.' To include a header file, write '#include name of file' at the top of your code. An inline function is one that gets included literally wherever you call it rather than being called as a separate function at run time. To make a function inline, write 'inline function name'..." then you're teaching C++ but not programming. People who successfully complete your class will know lots of syntax and perhaps some trivia about some of the obscure features of C++. They are likely to have had a test on scoping, and some of them probably even know exactly what would happen if you were to run "b = a++->c().--d[2] == *q() * t - 3 / p()->s != 2".

If, however, your class primarily teaches people how to approach a problem, decompose it, solve each piece, and put those solutions back together to solve the whole problem, you're teaching programming. The class will obviously teach the students at some point how to declare variables, dereference pointers, and so on, but only as necessary to solve problems. With function application, conditionals, mathematical and boolean operators, and perhaps a handful of data manipulation tools of your choice, you can elegantly solve any problem that ought to be taught in an intro class. Teaching more than that is just bogging your students down with needless syntax that will just make their programs worse.

"it's not rocket science" right right insofar as rocket science is boring


[ Parent ]
what programming is IMHO (4.00 / 1) (#71)
by slashdotRulez on Tue Oct 17, 2000 at 09:43:16 PM EST

No, C++ is not programming. C++ is a language. You program in a language. That language has features, a specific syntax etc. but the programming, the idea behind it, the algorithms etc are the same in any language. The concepts of OOP do not change when you move from C++ to Java or Smalltalk or Eiffel etc. The syntax might change, the way you do some things might change, the basic idea stays the same. Think of it this way. You want to get from city A to city B. Does it make sense to learn how to get from city A to city B using a specific map? Wouldn't it be better to learn how to use a generic map (since all maps follow the same basic idea) to get from one point to another (since using a map to get from A to B is the same as using it to get from C to D etc) the difference is subtle vut very important. It is a lot easier to teach programming as an abstract thing, a way of thinking and solving problems and THEN going to the specific implementation in a specific language, than showing a specific implementation in a language and trying to extrapolate the general meaning of programming (it's always easier to go from a lot of information to less information than it is to got from little info to a lot). I hope I'm making this clearer...

[ Parent ]
those losers (3.00 / 2) (#37)
by depsypher on Tue Oct 17, 2000 at 12:50:17 AM EST

Those losers in the class don't even know what a program is, or what programming is about, and he's teching C++ details like default arguments and inline functions and function overloading and IOS manipulations...

Correct me if I'm wrong, but all those terms refer to programming in C++. Yes details sometimes suck, but 99% of the time a bug in your program can be tracked down to some forgotten detail. I'd suggest that if you want to program without being forced into a bunch of details, learn some weakly-typed language like Perl or Javascript. They're much more forgiving on syntax, but good luck debugging.

They wanted us to pay 94$ canadian for a stupid Deitel&Deitel C++ book and use MS Visual C++... I ofcourse bought Stroustrup's book for 60$ ... and fuck VC++.

I totally agree with you about the Deitel&Deitel book. It's overpriced and bogs you down in code without getting to the heart of what the code is supposed to accomplish. (you might also take a look at Problem solving with C++, by Walter Savitch -- good to get you started, I still use it as a reference) One other thing, I'm not sure why you knock MSVC, I use it all the time, and while it is by M$oft, they seem to have done a pretty good job -- unless you're trying to port code between versions ;)

[ Parent ]

exceptional teachers (3.62 / 8) (#35)
by depsypher on Tue Oct 17, 2000 at 12:19:20 AM EST

While I can relate to the majority of the posts here that say something along the lines of, "yes, its soooo hard to find a good computer science teacher," in my own experience I've found good teachers in any subject a rare commodity. Obviously american culture does not value teachers very highly. This is evidenced by their low pay, and the marginal social esteem they receive -- what's more likely to raise eyebrows, telling someone you teach high-school, or that you're a software developer? Anyway, In my academic career of 5 years of college followed by some CS classes at a city college, I would say I've had exactly 2 exceptionally good teachers, one teaching linguistics, the other C++ and Java.

What set these two apart is that they weren't doing it for the money. My linguistics teacher loved to tackle the mysteries of language and then pose those questions to her students to see them follow all kinds of different lines of thought they came up with to explain those mysteries. She would finally steer us to a correct analysis (without just giving away the answers). My CS teacher on the other hand loved showing people all the cool stuff you could "tell a computer to do" He made plenty of money in the industry in past years and was clearly teaching purely for his own enjoyment and to help other people.

What this boils down to, I think, is that it takes a special person to make an exceptional teacher, and luckily for the educational system this type of person is usually very giving. The very least that society should give in return is praise and respect to these teachers.

Same experience, unfortunately (2.00 / 5) (#40)
by TheDude on Tue Oct 17, 2000 at 01:27:28 AM EST

Silly/impossible projects, exams on material we haven't covered yet, terrible lesson plans, the inability to answer questions... How hard can it be to find a decent comsci professor?
Heh, those silly/impossible projects snuffed me out of comp sci. After one semester of having a horrible prof who put me to sleep within 2 minutes of my entering the room. I got into comp sci because I thought I'd be learning how to do useful, cool stuff. Instead, I was bored to hell with the simplistic, rule-filled, must-be-typoless must-be-done-with-only-what-we've-learned crap I was programming. And I didn't even know much, at that point - not that I know all that more now, unfortunately. So comp sci went out the window cause of my horrible teacher.

TheDude of Smokedot
Drug Info, Rights, Laws, and Discussion
Visit #smokedot on irc.smokedot.org

You didnt really want it then (none / 0) (#82)
by maketo on Wed Oct 18, 2000 at 11:38:33 AM EST

It is not your poor teacher, it is your procrastinating character. People that get into a programme thinking that they will "be doing something cool" are just taking space of someone that knew they would get into CS for the prior ten years of enetring into college. Bottom line, if you really wanted to be a computer scientist (or a software engineer) you would have stuck with the programme and "survived" the teacher. Life is a lemon and it is up to you to make a lemonade out of it. If you dont, it will be sour.
agents, bugs, nanites....see the connection?
[ Parent ]
You're partially right (none / 0) (#90)
by TheDude on Wed Oct 18, 2000 at 04:41:33 PM EST

OK, let me rephrase. It was mostly my fault I dropped out. Still, the professor was horrible. I know few people at the school (of 25000+) who have had him for the class, and of those who did, most did not think he taught well in the least. His classes consisted of writing out functions on the board. His explanations consisted of saying read this. The programs were the same over all professors, but come on. You've gotta learn the basics, yes, I understand. But he sure as hell didn't raise any of my interest in the subject, or even hold any of my interest whatsoever, even though I enjoyed programming at that point. I like programming much less since taking the course. If that's the kind of programming that gets done by a CS major, I want nothing to do with it then, you're right.

TheDude of Smokedot
Drug Info, Rights, Laws, and Discussion
Visit #smokedot on irc.smokedot.org

[ Parent ]
The Fiery Hoop Model of Education (3.28 / 7) (#41)
by TuxNugget on Tue Oct 17, 2000 at 02:09:13 AM EST

Surely this isn't news. In many universities there are grade curves instead of objective-based courses. In an objective-based course, everyone could get an "A" if they met the objectives. For example, I once took a numerical simulations programming course where you would get an "A" if your program worked on a big multi-cpu array and "B" if you could only get it to work on a single node.

With a grade curve, so many must receive C's, D's and F's as well as higher grades as these are specified by a university policy. Often these requirements are stongest for introductory courses. Labs or other large classes broken up into multiple sections are also a target for grade curves. The administrators argue to students that normalizing the grades from different teaching assistants against some prior distribution makes overall grading "fair". The grade curves also are important for other policy matters such as retention, identifying a limited pool of candidates for scholarships, and promotion of graduates to industry.

Now suppose the course material is otherwise very easy (or properly taught, would be easy). Then, the professors have a problem: if it is taught sensibly, and everyone earns an A, the professor will violate the policy. S/He may lose brownie points that are useful towards tenure, favorable teaching loads or other favors.

So what does the professor do? The answer, and its tie-in to the title, are left as an exercise to the reader.

right... (3.25 / 4) (#42)
by ameoba on Tue Oct 17, 2000 at 04:20:40 AM EST

I seriously doubt that grading on a strict bell-curve is actually practiced by any institution worth mentioning any more. The whole point of them having entrance requirements is to ensure that those ppl who would end up at the left of the curve don't get into the school.

The bell curve distro. would be valid if you took a random sampling of ppl, and stuck them in a class together.

The closest thing I've ever actually seen to an enforced bell curve was back in high-school, in a class that was 'beta testing' a new biology curriculum and texts. This class was hand-picked to include students of all levels, and they did a great job of it. Looking at the test results over the year, grades were almost PERFECTLY distributed from ~40-100%, with the top third, and the bottom third always having the same students, in the same order. Kinda disturbing being used as a lab-rat like that, but at least I was the alpha lab-rat. =)

[ Parent ]
Reason for the bell curve (4.00 / 4) (#49)
by Spinoza on Tue Oct 17, 2000 at 09:22:14 AM EST

The theory behind grading on the curve is that the marks of a class of sufficient size will statistically fall something resembling a standard distribution. If the class is significantly outside this distribution, then something is thought to be wrong. Generally, the conclusion is that the teacher is either being too soft or too hard on students, and causing them to do worse,or better than they should be.

You would, of course, take into account the fact that some classes are inevitably going to be harder or easier than others, and adjust accordingly. Likewise, you take into account the fact that first year students are on average, dumber than second year students, because the dropouts haven't dropped out yet. This means the curve is a little harsher in first year.

Of course, this overlooks the fact that anomalies do happen, as any good statistician will tell you. Sometimes you might get a class full of geniuses, in which case the curve will be of no use at all.

I would say that statistics have a place as a guideline in assessment, but should not be applied as though they are mathematically incapable of inaccuracy.

[ Parent ]

My experience... (3.33 / 6) (#43)
by ameoba on Tue Oct 17, 2000 at 04:46:11 AM EST

Local highschool, where I went, at one point had a great CS instructor who, by virtue of being one of the few computer savy employees was also responsible for most of the schools computer maintenance. Last year, after they got the funding to get a high-speed network throughout the whole district (which he helped design/install), he was promoted to District Network Admin. It was cheaper for them to promote him than it was to find an outside person, and he couldn't turn down a $20k/yr pay raise. (Of course, this is the same district that payed the same headhunting firm $60k+ to find a new superintendant. 3 times over 5 years).

Now, the Advanced Placement CS class is being taught by somebody who's -just- learning C++ (as a first language) and using the old teacher's notes, with the competant old teacher dropping in once a week or so to clean up the mess. There really is no way that a public highschool can afford to pay a competant CS teacher on staff.

Of course, even Higher Education is going to have trouble keeping all but the most accademic-minded PhD's arround. (There's always going to be somebody who's convinced they can find a better solution to the Traveling Salesman problem...).

Presently, I'm going to a small school, with about 3-400 students, only about 60-70% of which are in the engineering/CS side of the school. Since the school is so small, there are few full time faculty members (only one of which is in CS, and, while not a great teacher, everyone loves him because he never fails anyone). To make up for the lack of full time profs, there's a lot of part-time/adjunct faculty members. Usually guys in Industry who, be it as a second job to pay for their gambling/drug habit, or out of a desire to "Give Something Back", will teach one or two classes per term.

Keeping in mind that I've also gone to a large (20k sutdents) state university for 2yr before transfering here, I can say that many of the brightest, most enthusiastic profs I've ever had have been these part-time teachers. Perhaps in high paying technical fields, such as engineering and CS, this is the best way to ensure knowledgable, competent instructors?

Granted, you'd be hard-pressed to find a PhD willing to come in on his day off and teach introCS, but who better to teach Compiler Design than a guy who does it for a living?

(poll) One language is not enough! (2.33 / 3) (#45)
by i on Tue Oct 17, 2000 at 05:40:52 AM EST

One should teach anything OO and anything functional at the same time. Java+Haskell or Eiffel+Scheme or Smalltalk+ML, it really doesn't matter.

and we have a contradicton according to our assumptions and the factor theorem

Multiple paradigms... (4.00 / 3) (#46)
by codemonkey_uk on Tue Oct 17, 2000 at 07:35:02 AM EST

You missed procedural and generic. Each paradigm is a valid tool for solving problems. Just teaching a CompSci student two paradigms (OOP and Functional) is like just teaching a chef to boil and bake. Somethings need to be fried! :)

"The most savage controversies are those about matters as to which there is no good evidence either way." - Bertrand Russell
[ Parent ]
Multiple paradigms (none / 0) (#63)
by Denor on Tue Oct 17, 2000 at 04:54:31 PM EST

I interpreted the comment more generally, and thought it said pretty much the same idea that you brought up: Don't just teach one way.

For instance, the AI class I'm taking now teaches LISP. Until this point the only thing I knew, both from my own experience and the school's teachings, was C, C++, Java and their ilk. I didn't even know what functional programming /was/.

And now I do - knowing there's a completely different way of doing things out there makes me want to find out more - and that's exactly the kind of thing we want people to experience in their education, right? :)


[ Parent ]
Yep. (none / 0) (#77)
by i on Wed Oct 18, 2000 at 03:42:27 AM EST

Though I don't view procedural as a separate paradigm but rather as degenerate case of OO. YMMV.

I definitely missed GP, probably because languages that I like (C++, Haskell, and to some extent Eiffel) all have it, so I tend to take it for granted :)

and we have a contradicton according to our assumptions and the factor theorem

[ Parent ]

One language can enough.... (3.00 / 1) (#58)
by Vetinari8 on Tue Oct 17, 2000 at 11:49:00 AM EST

... if said language is expressive enough. For instance, Scheme was my first programming language (apart from my TI-85. Heh); and yet my professor in my introductory compsci class managed to teach us about functional stuff, object-orientated stuff, procedural stuff, imperative stuff... you know, basic stuff. Scheme can do all that (plus, the way we did Scheme objects lent a lot of insight on not only OOP, but also how imperativeness is tied into OOP, and also on the coolness of closures [a functional thing]).

"I went into a general store, and they wouldn't sell me anything specific".
-- Steven Wright

[ Parent ]

Even a single has-it-all language is not enough! (none / 0) (#76)
by i on Wed Oct 18, 2000 at 03:38:54 AM EST

People need to understand how different languages view and implement different paradigms. They need to feel more than one language in order to avoid being tied to a single vision.

and we have a contradicton according to our assumptions and the factor theorem

[ Parent ]
Not really.... (none / 0) (#80)
by Vetinari8 on Wed Oct 18, 2000 at 11:01:08 AM EST

A paradigm is just that -- a paradigm. Once you learn it, you can apply it anywhere you like. Maybe the syntax looks different, and maybe the symbols are weirder, but you aren't going to be any more 'tied down' with learning a single language than you are learning multiple ones in the first place. Assuming that you were taught the paradigms and not the language. There's a difference.

I mean, I started from Scheme, but by now I know at least 20 different languages well (and most of those I learned in, what, my first year and a half?). There are people I know who've started from the same and know many, many more than I do.

Lisp Users:
Due to the holiday next Monday, there will be no garbage collection

[ Parent ]

Yes, really. (none / 0) (#85)
by i on Wed Oct 18, 2000 at 01:37:21 PM EST

A paradigm is just that -- a paradigm. Once you learn it, you can apply it anywhere you like.
Sure, if you are reasonably bright, and can grasp a paradigm behind the syntax. I think that most people would have at least moderate difficulties with this, and teaching several languages would help.

Assuming that you were taught the paradigms and not the language.
My opinion is that paradigms are more easy to grasp when viewed from several different angles. Again, YMMV.

Disclaimer: I'm largely self-taught. Exposure to different languages certainly helped me. I suppose the same would be true for at least some people studying in universities.

And oh by the way. How one would teach static typing vs dynamic typing? Most languages don't offer both choices.

and we have a contradicton according to our assumptions and the factor theorem

[ Parent ]

Re: One language can [be] enough.... (none / 0) (#103)
by XScott on Mon Oct 23, 2000 at 10:16:37 PM EST

... if said language is expressive enough.
Can Scheme do backtracking and goal directed evaluation like Icon or Prolog? Is there a RAD tool that uses Scheme like there is for VB or Delphi? Admittedly, the answer is possibly "yes" to both of those... I think the functional programming guys get pretty clever so it wouldn't surprize me if they had a clever way to do backtracking, nor would it surprize me to find out that the GNOME folks support Guile or something. Note I don't put myself in the category of functional programmers. I'm just not that clever. Lambda what?

You'd probably be doing your students a disservice when they got into the industry if you only showed them Scheme though. Being able to adapt to any language is more valuable than being able to do anything with one language.

-- Of course I think I'm right. If I thought I was wrong, I'd change my mind.
[ Parent ]
That's not the point (none / 0) (#105)
by Vetinari8 on Sat Oct 28, 2000 at 03:17:39 PM EST

The point isn't that you can do anything with one language. The point is that you learn basic concepts, which enables you to adapt to any language.

(By the by, backtracking can be done a number of ways, including the use of continuations.)

School ain't there to teach you C, or C++, or even Scheme. School is there so you know the concepts. With the concepts you can do anything.

"I went into a general store, and they wouldn't sell me anything specific".
-- Steven Wright

[ Parent ]

You have no idea how amazing this is! (4.25 / 8) (#47)
by MightyE on Tue Oct 17, 2000 at 08:37:42 AM EST

I was going to post an article just like this. Exactly the same meaning. I haven't had time to write it up yet though, I'm taking a heavy courseload this semester, as well as working.

I've been wondering about this for a little while now. I'm noticing that in my University, which is nationally accredited in CS, the professors, all but one, just really don't show any zeal for teaching. They regularly skip classes, and only give notice by calling the department secretary after the class has started, who has to hustle over and tell us about it, and so we've wasted our time by even showing up. I'm paying these professors, and they can't even show up to class. Heaven forbid, however, that you should ever skip one of their classes, attendance is mandatory... for us.

At the same time, I see freshmen taking intro to CS courses, who are having a very hard time with the concepts. Initially I thought, "We're accredited, it must be that they're just having a hard time with the subject," until a couple of students came to me to help them. I look over their labs, and can easily take half an hour reading a 1 page lab writeup, just to try and understand what all is required. I ask them what they understand about the subject matter, and it ammounts to practically nothing. I look over their class notes, and the handouts that they're being given by their professor, and it's tripe. It's worthless. Their professors are doing a terrible job of explaining the concepts. I even went so far as to sit in on a couple of lectures to verify that the students were not just unorganized. It is definately the professors' fault.

The result of this, then, is that these students become depressed. These are students who had a zeal of their own for Computer Science, which is being destroyed by bad professors. I see many first semester or first year students drop CS. For some of them, it's just not the right major, but for others, it could have been.

A perpetuator of this problem are the students in each class that have already had the particular subject matter in the past. These students "throw the curve," because the class is already review for them, and no matter how poorly explained in lecture, they still would understand the material. These same students correct the professors of CS in lecture. The professor will say something like "The constructor function is used to deallocate memory of a class," and the brown nosing kid who already knows the material from having had it before, or possibly even does it as a job, immediately corrects them, and so the professor is able to deliver a technically accurate lecture, although it's broken and difficult to follow, because the professor is constantly being corrected.

I wondered how it is that my University, accredited as it is, could have such terrible professors. Then it occurred to me that accredidation does not measure the effectiveness of the teaching staff, only the particular course material covered.

Recently, my school obtained a new professor. This guy is a computer science zealot. He obviously loves the material he's teaching. He's always willing to meet with students even if it's outside of his office hours, he's able to explain the concepts clearly and concisely, and he rarely makes a mistake during his lecture. It was his appearance at the school that really made me wonder about the other profs here.

It appears that students who make it through the intro courses do well after that, not, I think, because the material gets easier, or that it's better explained, but I think, rather, that it's due to these students taking the learning into their own hands. These are the students who were the curve throwers before, and (I being one of those) we still correct the professor in class. I'm very fortunate that I already knew how to program before entering college, otherwise, I'd probably be a philosophy major now.

I wonder whether there are any schools, aside from MIT, et. al. which have good professors in CS. Even dedicated, if not good. We have one dedicated/good professor, and the rest are neither. No one I've asked knows of a school that has very many good profs. What does this bode for the future of Computer Science? Can only those who are predisposed to CS make it through the education system? Would there be more exceptionally competent students if they could more easily get through the intro courses? Will this perpetuate the deficit in the CS graduates to CS jobs? How can we better get competent professors into the field? Is there a good solution to this at all? I'm not sure.
here's my sig

A teaching requirement for PhD's? (4.00 / 2) (#57)
by Vetinari8 on Tue Oct 17, 2000 at 11:44:30 AM EST

At my university (University of Illinois at Urbana-Champaign)... well, I'd have to say I thought we were kind of on the slipping side, but after reading your post I think we're doing okay. At least most professors (if not all) actually do show up to class, even if some of them proceed to bore everybody out of their minds -- and a couple stare at their slides as if they've never seen them before. However, we do have a number of great professors here, although I have a hard time telling whether they outnumber or just about make up for the horrible ones.

Where a professor comes from also seems to affect his teaching effectiveness. For instance, the best graphics professor here has only been here for two years (my impression is that he was just fresh out of CMU with a PhD). Yet from his first year onwards he taught extremely well -- I took a seminar with him, and we actually had real discussions, he actually cared if you'd read the papers beforehand, and he acted like your opinions on a paper really mattered. Had a great and very dry sense of humor too. It was a lot of fun and I learned a lot. I found out later that CMU has a teaching requirement in at least their PhD program -- which would explain a lot. :)

I think that there should be a teaching requirement for PhD's at most universities. (Heck, even for MS's that aren't professional degrees... heck, maybe even for MS's that are professional degrees....) Not only will this result in a better quality of profs overall, but the skill of going up in front of a bunch of random people and being able to effectively explain something in a way that interests them will go far in many jobs, both in academia and The Real World.


"If you keep an open mind people will throw a lot of garbage in it."

[ Parent ]
Teachers (5.00 / 1) (#66)
by zerth on Tue Oct 17, 2000 at 06:46:57 PM EST

> I've been wondering about this for a little while now. I'm noticing that in my University, which
is nationally accredited in CS, the professors, all but one, just really don't show any zeal for

At my college I've noticed one thing: Many times the best person to teach a subject got a degree in something else.

This implies that if they are teaching the subject, they probably really like said subject(ignoring ppl shanghaid into the job like my HS cs teacher). They didn't get a bunch of degrees in that subject and found they hated working in it, or are just there for the research facilities. Ex, my java teacher had like 3 degrees in math but none in CS. Was especially good for those poor ppl who are just in CS cause that's where the money is. He truly loved teaching this stuff and would willingly stretch the class if he didn't have a class following.

Myself, I was going to get a CS, with the intention of also getting my teaching degree(so that I could replace the poor developmental math teacher that taught cs at my highschool). I recently switched to MIS because I ran into a slight problem with the math department here being those that were just here for the research facilities.(or maybe I just can't grasp higher math). The guys that teach the CS side of MIS are hilarious. Just here to supplement their income. No people skills whatsoever(had a one prof who was so bored with the class, he would forget what he was talking about in between sentences).

Anyway, I've generally found that the bit about those who can and can't, teach quite true and easily reversible.

Rusty isn't God here, he's the pope; our God is pedantry. -- Subtillus
[ Parent ]
The worst professor... (2.50 / 4) (#48)
by Bloodwine on Tue Oct 17, 2000 at 09:10:43 AM EST

The worst professor (who has since left the university... thank god) I had used to take off several points if you had typographical errors in your comments. It didn't matter if the code worked flawlessly and was neatly organized. She would mark off for typos and bad grammer in the comments. It felt more like an English course than a Structured Programming course.

She didn't have a good grasp on algorithms and coding in general. Makes us wonder if the department was desperate for a professor to fill in some of the courses.

And the lesson she was teaching was... (5.00 / 1) (#56)
by Alarmist on Tue Oct 17, 2000 at 11:18:16 AM EST

...that people, especially in a formal business environment, will take you less seriously or dismiss you altogether if you can't use the language very well.

The worst professor (who has since left the university... thank god) I had used to take off several points if you had typographical errors in your comments. It didn't matter if the code worked flawlessly and was neatly organized. She would mark off for typos and bad grammer in the comments.

Maybe that was a bit anal, and maybe she was one of those people whose nerves are grated on by every typo and grammatical error. I know I am. The point, though, could also have been that people who write as if they are still in grammar school are often treated that way in a formal business environment.

I've had managers that I hated, and I've had projects that I hated, and I've worked on a project that I hated for a manager that I hated, but the one thing that I've always noticed is that everybody here (a large, very well-known shipping company) writes in an intelligible, correct manner and expects everyone else to do so. E-mail is the most casual written conversation we have here, and even that is more correct than a lot of what I see when I'm not at work.

People who write correctly may not lend any credibility to what they've written, but they certainly lose it if the message is poorly written.

[ Parent ]

A second lesson (none / 0) (#61)
by Xenophon Fenderson, the Carbon(d)ated on Tue Oct 17, 2000 at 02:41:32 PM EST

Lesson number two is: Code is written for people, not for computers. Too few programmers realize this.

Rev. Dr. Xenophon Fenderson, the Carbon(d)ated, KSC, mhm21x16, and the Patron Saint of All Things Plastic fnord
I'm proud of my Northern Tibetian heritage!
[ Parent ]
Code is for people (none / 0) (#64)
by reshippie on Tue Oct 17, 2000 at 05:22:23 PM EST

My programming teacher in HS made it a point to teach us style. She knew that we were smart, it was basically the top students in whichever graduating class.

We all could solve the problems and apply the theories that she taught us, but she wanted more. She wanted to be able to understand what we did, and know that we understood what we did.

This meant that we had to comment every variable, every begin/end brace pair, and write a prologue to every function. Ya know what, it worked. I can now hand code to people, and they can understand what I did.

When I got to college, I was introduced to the concept of doing a writeup to go along with my code. I didn't get it. Why would you need a writeup, it should all be explained in the code as you go along. So I just took the comments out of my code, and put them in another file. ; )

Those who don't know me, probably shouldn't trust me. Those who do DEFINITELY shouldn't trust me. :-)
[ Parent ]

Literate Programming (none / 0) (#92)
by Boojum on Wed Oct 18, 2000 at 04:58:34 PM EST

Hmm... at the college I go to, I grade homework for the OS course. While I'm not quite so anal as to deduct points for grammatical errors, I am prone to marking them up with proof reading symbols when I see them in the comments. Some of the gaffes are particularly jarring.

I think Knuth was on to something with his ideas of literate programming. Maybe the implementation wasn't so great and didn't catch on, but the ideas of literate programming are sound. I'd suggest reading up on what he has to say on the topic.

[ Parent ]
Teaching (3.75 / 4) (#52)
by FigBug on Tue Oct 17, 2000 at 10:06:34 AM EST

Two things I've noticed, you can't judge a prof by a first year course. Nobody wants to teach intro to programming, it is by FAR the toughest course to teach. 10% of the class thinks they are expert programmers. 10% of the class has never touched a computer before. The rest are somewhere in the middle. The keeners keep asking questions about how to do ray tracing or threads while the prof is trying to explain what a loop is, if they would just shut up and listen they might actually pick up some stuff they don't know.

I have been teaching comp sci labs for two years, and I know the material, but I have trouble answering questions. It is very hard to interprate poorly asked questions and explain them in an understandable way. Students have an easier time explaining to each other since they are looking at the new material in the same way.

give CSc a chance. The profs I hated in 1st year actually turned out to be good profs once they were teaching their research interests.

Teaching first programming course (none / 0) (#74)
by richieb on Tue Oct 17, 2000 at 10:21:13 PM EST

Nobody wants to teach intro to programming, it is by FAR the toughest course to teach.

This is not entirely true. I used to teach, what amounts to a intro to programming course, in the Adult Education program for a while. I did this part time, mainly for fun and little extra cash.

My course used Pascal and eventually the material evolved into a series of examples that I did on a computer in front of the class.

To keep the students interested on the first day of class I would show them the example we would code on the last day. It was the "20 questions/Animal Guessing Game" that appears to "learn" stuff.

I found that several cool examples work better at explaining the concepts than any lengthy discussion.

One important thing about this course was that the only person graded was the teacher. I'm happy to say that I managed to get good grades. :-)

Of course teaching motivated students is pretty easy. It would be interesting to try my course in a high school.

It is a good day to code.
[ Parent ]

Blame the Teacher (4.16 / 6) (#53)
by codemonkey_uk on Tue Oct 17, 2000 at 10:10:00 AM EST

Its easy to critisise the teacher, especially without a few years experiance under your belt. I hated my CompSci tutor at collage. Going on about big iron, and tape drives. "This is the 90s man!" I would say. "Nobody uses that old crap anymore!" I would say.

I just wanted to hack. Hack hack hack. Stupid no nothing database obsessed old industry drop out.

But now, in retrospect, I wish I'd paid more attention. Now I'm older, I see he was a good teacher, trying to drum fundamental pricipals into the heads to teen geeks who couldn't care less about abstraction or rationalisation, who just wanted to get the VGA card into mode ten, or write a TSR that sat on the keyboard interupt.

The (good) teachers know that its not all about the details, but the big picture. Trouble is, its the petty details that smart-alek students will try to trip them up on (to make themselves look good.)

If your having problems, don't blame the teacher, s/he's there to help you. Go talk to them about whatever your problem is, discuss it, treat them like human beings, and, I hope, they will do the same for you.

(Of course, there are lots of crappy teachers as well, no doubting that, just don't assume yours is one of them!)

"The most savage controversies are those about matters as to which there is no good evidence either way." - Bertrand Russell
I, for one, love my CS prof (2.50 / 2) (#54)
by dylansnow on Tue Oct 17, 2000 at 10:41:29 AM EST

Granted, I am only a frehman, but my Comp Sci 101 teacher is great. Not only does he love what he is teaching, but is has practical experience as well. Currently he is working on beefing up garbage collection for Java. Perhaps you have heard of ATM switching? It was developed at my school. DNA sequencing? A large part was done at my school because of the computational biologist we have. My point is, before you head off to a college do a little research on the CS department. You can look up what your professors did, where they were taught and what they are doing. If you do the research you can find a good school.

Which school? (none / 0) (#104)
by dngrmouse on Fri Oct 27, 2000 at 05:08:44 PM EST

Which school is this?

[ Parent ]
Both sides now... (3.66 / 3) (#55)
by ted on Tue Oct 17, 2000 at 10:51:56 AM EST

I'm a working dude in the IT field. I've been a contractor, done both maintenance and new development in a multitude of languages. I've taught CS courses, and have been a student in CS courses. By way of credentials, I'm A.B.D. in a Master's in Education. Short story: Those who can, do. Those who can't, teach. Those who can't teach, teach teachers to teach. Those who can't teach teachers to teach, administrate. Long story: IMNSHO, students should NOT be taught a high-level language first. They should be taught an assembly language first, but that wasn't even an option in the "survey". OO is nothing new; good programmers have been doing it intuitively for years. But then, CS teaches non-programmers to use a language... business likes it that way because there's a pool of marginally competent people to draw from. Fire away! I just put on my asbestos underwear.

Hmmm.... (none / 0) (#81)
by maketo on Wed Oct 18, 2000 at 11:29:05 AM EST

> Those who can't, teach Maybe. Or maybe they dont like working for a company with n people where at least 3n/4 are clueless lazy dumbfucks that learned to do something one way and won't change for all the gold of the world. Perhaps they even dont have the "inter-personal skills" that your everyday managers invented as a way to show that they too are doing something (interacting with employees). I myself am interested in research. That does not mean "I can't". That just means "I dont want to, it is not challenging enough and I want to contribute to the world." It also means that "I dont really care about being rotten rich".
agents, bugs, nanites....see the connection?
[ Parent ]
Best Teacher I had in HS (1.00 / 1) (#62)
by reshippie on Tue Oct 17, 2000 at 04:46:09 PM EST

My best, and favorite, teacher in HS was the woman who taught me C. I had her Soph. year for Geometry, then Jr. for PASCAL, then Sr. year for C.

She is also in charge of the school's computer system, and actually, the school doesn't want her to teach. They want her to be a sysadmin full time. She insists on teaching though.

I feel very lucky to have had her as teacher. I always wanted to try programming, but never had the opportunity before her classes.

Thanks Sceppa

Those who don't know me, probably shouldn't trust me. Those who do DEFINITELY shouldn't trust me. :-)

They teach C in HS now? (none / 0) (#69)
by KindBud on Tue Oct 17, 2000 at 08:54:14 PM EST

That's pretty amazing. When I went to college, I could not take a course in C if I wanted to. It had just been invented... They did teach FORTRAN and COBOL, though. Programming on punch cards - what a trip!

And I am not as old as you might think I am! I graduated HS in 1981.

just roll a fatty

[ Parent ]

Yes they do....... (none / 0) (#70)
by f-bomb on Tue Oct 17, 2000 at 09:09:02 PM EST

I took a C programming course my jumior year in HS, and that was back in '92. It was all easy bullshit and we pretty much jusr regurgitated code the teacher gave us, but it set the foundation for my high paying career as a code slave in a company full of morons.
-sex is like air, its not important unless you aren't getting any.
[ Parent ]
Teachers and language (3.00 / 3) (#65)
by ericr on Tue Oct 17, 2000 at 06:05:31 PM EST

I'm in highschool and I'm taking a C++ course. All that the teacher does is tell us to read the book (which I think is horrible) and assigns projects. No explaination, no examples of good coding style, just assigns work. This is an example of how not to teach. Half the class has questions on the same thing because the book work has something in it that it has just skimed over. Then when the question is raise, she replies with "well figure it out".

Also, I agree with the opinion that CS is hard to teach. With many people in our class has experience with programming, they have no trouble and what to learn something nes. But other have difficulty and need everything explained. I'm in the class talking half the time because I finished the work, while the teacher is talking to someone else (or attempting to do sysadmining [and failing]).

With the starting language, At first I said Perl. Perl is an easy language to learn and provides a good base. Then I read the comment about asm, this changed my opinion. Asm is the perfect first language since it shows exactly how the computer works and what is needed in a program. But I feel that this may me discouraging to the less experienced. Seeing some people in my class, it makes me thing that 95% of the time will be done trying to explain what everthing is/does then actual programming.

CS teaching needs to be rethough and organized in my school, and I think the student should have and opnion on what/how the class is taught. If this is done, maybe I'll actually enjoy the class.

First Language (4.00 / 1) (#72)
by richieb on Tue Oct 17, 2000 at 10:05:50 PM EST

With the starting language, At first I said Perl. Perl is an easy language to learn and provides a good base.

I'd pick Python or Eiffel as the first language for CS students. C++ is horrible as a first language and C is a good alternative to assembler.

It is a good day to code.
[ Parent ]

Why? (none / 0) (#89)
by Danse on Wed Oct 18, 2000 at 04:23:33 PM EST

Why is C++ a horrible first language? Is C a horrible first language too? Why?

An honest debate between Bush and Kerry
[ Parent ]
Why C++ is bad first language... (none / 0) (#93)
by richieb on Wed Oct 18, 2000 at 11:11:49 PM EST

Why is C++ a horrible first language? Is C a horrible first language too? Why?

There is too much accidental complexity in C++ that gets in a way of explaining of computing concepts. People starting to program have enough trouble with the notion of a function/procedure, arguments or loops, without getting bogged down in "protected void" or "virtual void".

C is probably better than C++, but still you need to teach about pointers etc. Why waste time on explaining the difference between *p++ vs *++p to a beginner. It will just confuse them.

Teach the concepts of computing first - the details of specific languages will come later.

It is a good day to code.
[ Parent ]

Be your own teacher (4.33 / 3) (#67)
by pete on Tue Oct 17, 2000 at 06:53:37 PM EST

I was my own best teacher through high school and college. All of the information you need is out there; in books, on the net, in people's minds that you run across. Anything you could want from theoretical computer science to practical tools & languages is easily available.

If you have the greatest teachers and professors in the world, and do what you need to do to get straight As in their classes, but no more, you don't have a shot against someone who loves working with computers and is driven to work on extracurricular projects. Note that I'm not saying that you are one way or the other here.

All that you need to get a job is:

  • A decent foundation in algorithms
  • A willingness to work hard to prove yourself
  • An open mind to learn from people with more experience than you, even if you think they're old farts (took me a year or so to realize this one ;-))

    If you have the right attitude, everything else you need will come with experience.

    So, in conclusion: get what you can from school, but it's really up to you. All IMO of course, hope this doesn't sound too sanctimonious.


  • Those that can, do. (2.66 / 3) (#68)
    by KindBud on Tue Oct 17, 2000 at 08:33:53 PM EST

    Those that can't, teach.

    just roll a fatty

    Good teaching skills can be required for faculty (4.42 / 7) (#73)
    by Kara on Tue Oct 17, 2000 at 10:15:42 PM EST

    I definitely agree with what everyone is saying about the lack of teaching ability in most college professors. And the problem isn't limited to just CS faculty, though they seem pretty bad. As a physics major, let me assure you there are plenty of physics faculty that aren't in the running for teacher of the year. I'm sure you've heard the horror stories, or experienced them yourself. You know what I mean, the professors that can barely speak English or are convinced that every freshman should be able to grasp the intricacies of quantum physics after the first lecture.

    Luckily, I do believe there is something that we, as students, can do.

    My department is hiring three new faculty members this spring. At the request of the graduates and undergraduates each candidate will be required to "teach" a class on any physics subject they wish to a group of graduates and undergrads. After each "lesson" the students will sit down with the interviewers to express their opinion on each candidate. These opinions will then be used (along with other criteria including research) in deciding which candidates will be chosen.

    While this doesn't help with the problem of the faculty already hired, it is a way to slowly improve the teaching staff.

    If you really want to get better instructors in your department. Consider this idea. Get a group of fellow students together and start talking to people. If you talk long enough and to enough people, you will eventually accomplish what you set out to do.

    A final thought I picked up from my father: The most knowledgeable people are those that can take a complicated idea and explain it in the simplest terms.

    My observations (3.00 / 1) (#75)
    by Raunchola on Tue Oct 17, 2000 at 11:47:30 PM EST

    When I was still in high school, my school was lucky enough to have a semi-competent CS program. It was divided into four sections (CS I, II, III, IV, imaginative, eh?), and I was fortunate enough to have the same CS teacher my older brother had. She was a bit of a Disney freak, and some of her projects had Disney themes to them. But the great thing was, the projects had real relevance...the tests weren't something that looked like it was taken out of the teacher's edition of the textbook...oh yes, we didn't have textbooks either. Everything either came from the teacher's notes and handouts, or from actual classwork. And she also encouraged us to take part in programming contests at the college the next town over. Admittedly, she wasn't up on all the latest advances in the wide and wonderful field of CS, but she made up for it in the fact that she actually taught things that were RELEVANT. During my senior year, she took a year's sabbatical so she could go back to school and bone up on the latest things. And that's not something I saw any of my teachers do before.

    Now college is a different story. Granted, I'm not a CS major, but I took the intro CS course anyway, since it was a distribution requirement. The professor, IMHO, was clueless with a capital C. She taught us things that had no relevance, she couldn't answer a lot of my questions, and there was no real excitement behind the class. Come on, a class exercise that has us telnetting into our college accounts to send a classmate e-mail?!?!? Thankfully, my six years of Pine experience from a local freenet got me through the assignment in a painfully short amount of time, while she was still telling the class how to fire up the telnet client. I can see why things were dumbed down in the class, it being an intro CS course. But even the most clueless of the students knew more than she did. And this professor has a freaking Ph.D.! Where did she get it from, a box of Cracker Jacks?

    I think I had a rarity when it came to high school CS teachers. I had a teacher who made sense and actually knew what she was teaching. Besides, the necklace she wore to class one day that had an old 286 chip on it didn't hurt either :)

    I am an American, not a "USian." Get it right.
    The best teacher is your self (none / 0) (#79)
    by shrub34 on Wed Oct 18, 2000 at 09:40:20 AM EST

    I recently graduated from WIUs CS program. I found that except for the honors topics, the only place I was learning happened to be my own studies.

    I desided that for my time and effort the only way that college would be worth anything to myself would to be learn what I wanted. While learning data structures I pissed off the Prof. by doing assignments in Java (as opposed to Pascal), so I could reuse code. Something that the professors always preached but assignments never allowed.

    I think the best part about college is the free time to learn it yourself. Currently, I wish I had the free time to learn new ideas (to me).

    It's good to see the BSD community forking and execing so many child processes.

  • Comment about editor of Daemon News not attending BSDcon 2000

  • Exactly (none / 0) (#91)
    by ericr on Wed Oct 18, 2000 at 04:46:29 PM EST

    This is exactly how I and many of my friends learned. I can learn the basics of a language in a month, while in a class (in the same month) just gone over printing to the screen and taking input.

    From my expericence, either a class goes to slow, trying to pound an idea into your head, or goes to fast, where you have no idea what is going on.

    Makes my think why I took a computer class in the first place. It would have been better just to buy a book and learn it yourself.

    [ Parent ]

    View of an ex-CS prof (4.66 / 3) (#84)
    by pacman on Wed Oct 18, 2000 at 12:46:05 PM EST

    Yes, there are a lot of bad CS profs out there. But students often come in with the wrong expectations. An university is not a trade school. Don't go there to learn specific skills (how to program in lang X, how to be MS certified (ugh!)). I tried to teach students how computers worked, how to solve problems and then write a program to implement the solution. I don't know how many times I had students who wanted to learn Visual C++ (ugh!) or write games!

    The other side that some other posts have hinted at is the legions of clueless students that take CS to make money and seem to hate programming! All they want is a piece of paper (diploma) to get them a high paying job. These students avoided me like the plague because if you didn't understand the material I funked you. It was depressing at how few good students that liked programming there were. This is one of the reasons I quit after 10 years and now work in industry.

    There always will be few good students... (5.00 / 1) (#96)
    by MoonJihad on Fri Oct 20, 2000 at 09:06:47 AM EST

    People who are actually interested in learning something will always be a minority. Education for the masses is an utopia. 90% of the population doesn't care about learning, but only about getting a diploma and a job. And then there's the 10% of the population who doesn't care about the diploma but cares about learning.

    [ Parent ]
    Maybe teaching earlier is better? (none / 0) (#101)
    by ToastyKen on Mon Oct 23, 2000 at 02:51:45 AM EST

    Just a thought.. Maybe it'd be better to teach at an earlier age when you can still try to spark interest in the kids for the subject?

    [ Parent ]
    You should choose another school. (3.00 / 1) (#86)
    by wookwooksux on Wed Oct 18, 2000 at 02:03:46 PM EST

    How did you go for 4 years and only have 4 CS professors?

    Choose an accredited college or university.

    Most of it was highschool (none / 0) (#94)
    by wookWook on Thu Oct 19, 2000 at 12:09:46 PM EST

    In my article, I state that I am a freshman in college, and that three of the four teachers I have had were in highschool.

    [ Parent ]
    Where's the Incentive? (none / 0) (#88)
    by tedyoung on Wed Oct 18, 2000 at 03:20:02 PM EST

    As a former Java trainer and one who holds a degree in Computer Science, I know both sides of the table (or desk, or lecturn). The problems for universities is the combination of a low number of people holding Master's and Ph.D. degrees and willing to teach, let alone those who are actually good at it, and the many (more lucrative) choices available to them.

    I agree with what others have said in terms of teaching methodology. If there's one area that cries out for a more interactive and multimedia presentations, it's computer science. Ever try to explain priority-based round-robin multithreading using a whiteboard? How about a QuickSort? I have, and it ain't pretty. Much better to show what happens using animation. And these days there's more than enough applets, etc., that do this, so it'd be zero work for a professor to incorporate into the lessons.

    One solution is to allow those who don't necessarily hold the academic degrees, but who are knowledgeable and want to share their knowledge (like me) and who wouldn't mind (or would be happy) teaching one course per semester. Put them through some basic teaching and presentation skills course and then try them out. Some universities are doing this and reaping the benefits. After all, many of the people who teach the "University Extension" courses (i.e., courses for people who aren't enrolled as students) are exactly those kinds of people.

    Of course, Computer Science is not the only area where one encounters bad professors. I had professors in Chemistry, English, and Math who were awful: teaching out of a book (literally reading out of a textbook -- and not just short statements, but page after page), completely indecipherable handwriting and speech, insane requirements for papers, etc.

    A misconception about the purpose of CS (none / 0) (#95)
    by orpheus2000 on Thu Oct 19, 2000 at 11:45:44 PM EST

    At least in my school, CS is in the engineering college. It however, does not inherit the requirements that say Mech. Engr. has like an overdoes of physics. There are two problems here at this university.

    One, which is probably the same all over, why are students choosing CS? Some actually like theory, higher-order math and how it relates to problem solving, and other minutae, but mostly, students see the developing computer field and enormous amounts of money thrown at it and they want in. They just don't know what they're in for. A Computer Science degree is, at least here, based on a theory-based curriculum. We're so math-based that without ANY modifications to the degree plan, you get a Math minor. Free. It's not honorary, the minor calls for 4 calculus semesters, plus 2 3000 level and 2 4000 level courses. With this idea in mind, imagine the difficulty of keeping up with all this math when all one wants to do is program apps and/or games. There is no Software Engineering undergrad degree, only CMU and few others enjoy that luxury.

    Two, is the quality of the Grad students. The problem that our university is facing is the Indian/Asia system of higher-ed. Over there, they take an entrance exam that is supposed to say what you will be best abled to study at that university. Usually CS is high on the intelligence scale (which == score) so some don't make it and are forced to take another major. So, for their masters, they come here to the states and take their pre-requisites in our undergrad classes so that they too can get a piece of the pie. Problem is, they with their past math courses completely blow the other undergrads out of the water. In my algorithms class, the best of the undergrads (a junior in a senior/grad course) got 10% lower than the median because the grad students blew the curve. Algorithms is an all-math based course.

    So it's easy to see that profs are "not teaching us how to program". Of course not, they're teaching how to solve problems and analyze the way to best go about it. These factors weigh heavily on the student with dreams of being paid to do what he/she loves most: to code and get paid for it. Me? I'm the mashochistic sort that loves sys admin. I'd go crazy if I wasn't one for the CS department. Also, there was an earlier post about 3 grad students not being able to figure out tar in 20 minutes. I've seen worse; try "What's UNIX?". Anyways, I'm just saying that if CS was a business, it would have long ago been sued for false advertising.

    Just remember how stupid the average person is and realize that half the world is dumber than that

    Your School is The exception (none / 0) (#98)
    by Crutcher on Fri Oct 20, 2000 at 05:28:43 PM EST

    And it is what I wanted.

    Trust me, many schools do not teach or emphasise theory, but 'practical programming skills'. These schools are shit. Programming is hard, very, very hard, and with out theory, you will always suck.

    Now, some people can derive the proper understanding for themselves, (of course they can, else, where the hell did all this theory come from), but education is not necessary for them. (Though when they do get it, man, watch out.) Most people are just able to apply the theory.

    But many schools are taught and run be proffs that dont understand, and therfore cannot teach, the theory.

    If you want experiece, get a job. If you want education, go to this guys school, it sounds awesome.

    Crutcher - "Elegant, Documented, On Time. Pick Two"
    [ Parent ]
    Good teachers are hard to find. FIND THEM. (none / 0) (#97)
    by snowlion on Fri Oct 20, 2000 at 11:40:52 AM EST

    Good teachers are hard to find. Find them.

    In all professions, this is true. Read the Book of Five Rings to understand this deeply. Especially in the case of Computer Science, where so many people are coming in.

    I was lucky; I went to Harvey Mudd College. There is no shortage of good computer science teachers there.

    I teach free classes to the public on computers. Everything from what they are and how to use them, to in-depth computer architecture, to how to program, to algorithmic analysis, to profiling, etc., etc.,. If you are in the Seattle area, email me (lion at speakeasy dot com) and we can talk.

    Otherwise, good luck. Use the source, and feel out high bandwidth.

    Be certain to read Philip Greenspun's pages. Look for him on the web by name, or look for him through his photo.net pages. He asks similar questions to yours, but has many more answers.

    Take care, Lion

    Map Your Thoughts
    My experience. (none / 0) (#99)
    by evro on Fri Oct 20, 2000 at 10:21:48 PM EST

    As a computer science major at Dartmouth College, I found that their computer science department was quite disappointing. Well, not really. The computer science department was pretty competent, and there were some very good professors, but so many of my professors were visiting from other schools and were not good at all. Boring, didn't speak good English, etc. And it was really, really a shame since there were some real gems on the CS faculty.

    I was really angry when I had my first visiting professor at the school -- in an intro Chemistry class. Dartmouth is a school that supposedly prides itself on the quality of its teachers but I found a surprising number of my classes taught by Professors visiting from other schools. So while Dartmouth itself may in fact have good professors, they have so many professors from other schools that the statement is meaningless.

    Anyway, I guess this doesn't really contribute much to the conversation but, yeah, there are some bad CS professors. But there are some pretty bad professors in any field.
    "Asking me who to follow -- don't ask me, I don't know!"

    As both a CS major and pre-education...... (1.00 / 1) (#100)
    by Ramenite on Sat Oct 21, 2000 at 01:14:58 PM EST

    First off, about my current professors. I'm a student at the University of Pittsburgh(in Pittsburgh). The professors, and the TA's I have had so far have all known their stuff, and the classes have all been enjoyable. Not only only are they knowledgable about the subjects, they also have classes about social issues in CS. Going ove subjects like software copyrights, GPL, etc. Their school of education isn't too bad either.

    Ok, so why aren't their meny good CS teachers/professors? Most go into CS for one reason, to make money. Not knocking that idea, but that's what they do. So now you a minority of people that want to actually code, and want to learn stuff about it that can only be taught at the college level. Things that you can never really learn if not taught to you. And then there is teaching it. To actually be a GOOD teacher, it's more of a calling then something you just decide to do. If you don't have this inate wanting to teach, you're not going to be good at it, and it will show.

    Most get into teaching CS, because they are between better paying jobs, and need an easy paycheck. And most schools at all levels are in dire need of teachers for CS, so when these people apply, the are readily hired. They have no real "love" for teaching, they just want a paycheck, and think they can get by with just knowing the material they are teaching. As many know who have taken crappy CS courses, that is not the case.

    So, you take the people that get into CS, not for the money, but for the idea they want to know all they can about Computer Science. Then you the minority of them, who have that "calling" to want to teach it, and you have such a small amount of people, it's not funny. Then you have the people that sastify both, and yet offered another job that pays over 6 figures more then what they are getting, it's almost a no-brainer to take it.

    These small number of people that are truly good ans quilifies are few adn far between. Nothing you can really do. Schools just have to start matching $$ with the private sector to keep the people who leave because they just can't afford to stay. Tuitions will go up, but wouldn't you pay more to have a professor that knows what they are teaching AND wants to teach it?

    As for me? I'm not sure. I love both teaching and coding, and have done both professionally. When I graduate hopefully salaries will decent enough for me go right into it. What I'll probably end up doing? Hopefully I'll get in somewhere where I can retire early, and then go into teaching when the money element of it is no longer a concern.

    Where have all the CS teachers gone? | 105 comments (105 topical, 0 editorial, 0 hidden)
    Display: Sort:


    All trademarks and copyrights on this page are owned by their respective companies. The Rest 2000 - Present Kuro5hin.org Inc.
    See our legalese page for copyright policies. Please also read our Privacy Policy.
    Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
    Need some help? Email help@kuro5hin.org.
    My heart's the long stairs.

    Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!