Why do Comp Sci teachers suck?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

SirPsycho

Senior member
Jul 12, 2001
245
0
0
Originally posted by: mAdMaLuDaWg
Computer Science is a comparitively young degree program and universities, IMO, haven't found an effective method of teaching it yet

Considering the type of programming that most people will end up doing, which is database manipulation and retrieval, there is entirely too much focus on higher mathematics and physics in most computer science programs, and a woefully inadequate amount of focus on techniques. I've yet to see a program that has enough emphasis on code reusability, decoupling, abstraction (how to properly use it, not just what it is) and design patterns (especially factories and MVC), unit testing, design by contract, delegation of responsibilities, the vital nature of documentation, and especially debugging. These are all things that should be taught VERY early on before bad habits set in and are hard to break. These are all things that could dramatically improve the quality of the software that is produced.

I'm not saying that it's not worth the effort to know calculus and discrete math to do scientific programming if that's what your objective is, but I think there needs to be a lot more emphasis on software engineering. Software doesn't have to always be buggy, late, and complicated.
 

mAdMaLuDaWg

Platinum Member
Feb 15, 2003
2,437
1
0
Originally posted by: spidey07
Originally posted by: mAdMaLuDaWg
Originally posted by: spidey07
Originally posted by: mAdMaLuDaWg
Originally posted by: mugs
Originally posted by: mAdMaLuDaWg

Again, theory is best learnt and best understood through self learning. Heck, I know a lot of people who've gotten As in programming classes yet they don't understand the concept behind a linked list. All they can do is regurgitate(sp?) what they read in the text book... but pose them with a problem that could use a link list or ask them to develop a program that used a linked list in a manner that wasn't described in the textbook, they could never do it.

And you think those people could handle learning it on their own?

Absolutely... if they really wanted to or really tried or even if the universities put more of a focus on actually learning instead of 'getting As'. The majority of the students are in the class to get good grades and pass, not to learn. So what they end up doing is studying to getting As which is memorizing short segments of code and definitions.

I'm a full-time working college student, so I'm speaking from both a college student's point of view and from an employee's point of view. You won't believe the level of incompetence I have to deal with with some of the new hires in our company. They just can't write decent code because they spent their college life getting As as opposed to actually learning the material. Almost ALL of them learn how to code well after a year or so... however, there are a couple of people who haven't been to college for computer science (one person I work with graduated from Med school) but rather learnt programming through self-learning and they are WAY more seasoned than your average college grad.

you'll need to get over the incompetant people who didn't "learnt" right. You'll deal with them the rest of your life. And more than likely you'll call them BOSS.
Its not incompetence my friend... its simply the fact of life for the Industry.
Experience>>>>>>>>>>>>>>>>>>Education

but of course, but I've been in IT for close to 15 years now and I've seen all kinds of incompetant, educated, experienced folk.


I agree... but generally speaking, incompetence (not sure if thats the right word I'm looking for) is much more prevalent in a person with no experience than with someone with plenty of experience.
Now if you combine the experience with the education, the person is probally most capable. My Boss always tells me that a person's degree is a good guage of the person's character (that is willingness to learn, ability to work under pressure, dedication etc etc) as opposed to actually knowing how to code.
Thats what it comes down to IMO... when you are in the market, you need all the help you could get.. and the degree is just a small part of helping to get your foot in the door.
Its not going to guarantee you a job as opposed to say, a degree in medicine.
 

mAdMaLuDaWg

Platinum Member
Feb 15, 2003
2,437
1
0
Originally posted by: EyeMWing
I find the way my AP Java course was taught to be fairly useful. There were reference materials available, and we went over them as a class before jumping into a given lab and whatnot - just to familiarize ourselves with the concepts. Then the teacher left us the heck alone. We helped each other to get a task accomplished - and learned a helluva lot more that way. Computer science isn't much about learning how to do things, it's all about learning problem solving skills. You can't teach that, you can only teach the tools that are needed. So you learn the tools, which are often simple enough to only warrant a brief overview on what they are, and then go solve problems with them.

It's less a science than an art. It is, however, an art that can be boiled down to a mathmatical device - the efficiency of your algorithm. Arts are learned through practice.

Exactly what I've been saying (or trying to say) all along in this thread. :beer:
 

Ranger X

Lifer
Mar 18, 2000
11,218
1
0
Because they're researchers, not lecturers. They get paid to research for the University, not for the effort they put into teaching. Plus, majority of the computer science teachers can't even speak English!
 

timosyy

Golden Member
Dec 19, 2003
1,822
0
0
As much as I dislike my current AP CompSci teacher (yes I'm still in high school), I'll admit she has an effective teaching style.

Intro to CS was a complete BS course, teacher wouldn't teach anything at all and I left it knowing pretty much nothing. In contrast, a couple months into AP CS and I'm fairly familiar/confident in my abilities. Before a lab we'll go over key concepts, sometimes plan it out on paper (organizational model), then we're set loose. Homework every night which consists of writing code on paper, and warm-ups every day analyzing what other code does.

What did this post contribute? not much. But yeah, in general, CS teachers suck for all the reasons stated in posts above mine ;)
 

Staples

Diamond Member
Oct 28, 2001
4,953
119
106
Originally posted by: mAdMaLuDaWg
Coz you can't teach a person how to program in a classroom... its as simple as that. Programming has to be learnt and understood yourself through experimentation and hours of coding NOT by listening to a lecture on how to program.

This is true but there are still crappy teachers who can't make sense of anything and I have had several of them. I have had a few good ones as well.
 
Sep 29, 2004
18,656
68
91
Originally posted by: amdfanboy
Seems to be a common thing.

Because in softwre, things work or they don't work. it's not liek a steel beam that deflects over time and you can say, geee... we should not use this bridge any llonger.

Make one mistake and people can die.
 

jagec

Lifer
Apr 30, 2004
24,442
6
81
Actually, I had a REALLY good CSE teacher. He was even dynamic enough to keep me awake in a ~250 person class, it was amazing.
 

SirPsycho

Senior member
Jul 12, 2001
245
0
0
Wow, I can't believe I'm the only one that thinks software engineering skills are more important than higher math and science for programmers. No one?
 

hans007

Lifer
Feb 1, 2000
20,212
18
81
i know at a lot of schools they tend to be there to do research. the teaching is just a requirement that they have to half ass.


i tend to think compsci is something you need to just figure out on your own anyway. but yeah most CS teachers suck.
 

Aves

Lifer
Feb 7, 2001
12,232
30
101
My low level CS classes were taught by morons but once I made it to 300/400 level things picked up.

I have one prof who teaches OS, x86 Assembly, UNIX Network Programming & Comp Architecture and he is awesome.
 

Fritzo

Lifer
Jan 3, 2001
41,920
2,161
126
Because you're an adolescent elitist that things you know more than they do.
 

hans007

Lifer
Feb 1, 2000
20,212
18
81
Originally posted by: mAdMaLuDaWg
Originally posted by: spidey07
Originally posted by: mAdMaLuDaWg
Originally posted by: mugs
Originally posted by: mAdMaLuDaWg

Again, theory is best learnt and best understood through self learning. Heck, I know a lot of people who've gotten As in programming classes yet they don't understand the concept behind a linked list. All they can do is regurgitate(sp?) what they read in the text book... but pose them with a problem that could use a link list or ask them to develop a program that used a linked list in a manner that wasn't described in the textbook, they could never do it.

And you think those people could handle learning it on their own?

Absolutely... if they really wanted to or really tried or even if the universities put more of a focus on actually learning instead of 'getting As'. The majority of the students are in the class to get good grades and pass, not to learn. So what they end up doing is studying to getting As which is memorizing short segments of code and definitions.

I'm a full-time working college student, so I'm speaking from both a college student's point of view and from an employee's point of view. You won't believe the level of incompetence I have to deal with with some of the new hires in our company. They just can't write decent code because they spent their college life getting As as opposed to actually learning the material. Almost ALL of them learn how to code well after a year or so... however, there are a couple of people who haven't been to college for computer science (one person I work with graduated from Med school) but rather learnt programming through self-learning and they are WAY more seasoned than your average college grad.

you'll need to get over the incompetant people who didn't "learnt" right. You'll deal with them the rest of your life. And more than likely you'll call them BOSS.
Its not incompetence my friend... its simply the fact of life for the Industry.
Experience>>>>>>>>>>>>>>>>>>Education

(Ooh... I see you caught my typo... so sue me!)



i've learned far more in a year working at a major software company (and i dont even program very much there) than i did in 4 years of college.

the fact that i learned c/c++ pascal in high school basically meant the only thing i learned in college was some algorithms. but nothing about "development"

college strangely was all about theory. work is about implementing very simple things, not rocket science. so yeah college is not very representative of most real software development.