Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » Why don't people understand/like algorithms?

This thread is locked; no one can reply to it. rss feed Print
 1   2 
Why don't people understand/like algorithms?
kentl
Member #2,905
November 2002

Kanzure: I see your point but that method would perhaps discourage people also, as you didn´t give them an instant reward but instant punishment for not knowing something which occurs later on in the course. BUT it will make them see the point, that´s for sure, and it can be thought of as kind of an instant reward i guess.

Sort of an instant reward could be if the teacher tells the students more of when to use and the advantages of using each algorithm and datastructure. Then the students will get the ''instant reward'' by knowing how much usable knowledge they have gained. But it´s probably hard to give out instant rewards all the time, learning programming is part about being determined and not quitting even when learning things which at the time seems ''less fun'' (altough i am a bit strange i guess couse i really loved the Algorithms and Datastructures course which is part of my CS program, and got those ''instant'' rewards just by learning how the algorithms work). ::)

X-G
Member #856
December 2000
avatar

Algorithms and data structures are solutions to problems. For example, binary trees can be seen as a solution to the problem of "Searching an array is slow", red-black trees a solution to the problem of "Binary trees some times degenerate", and so on. If a student doesn't know why a certain data structure exists or what it's good for, they won't learn, because it will all seem pointless. That's why any education must always start with the teacher formulating the problem, or better yet letting the students work out the problem themselves; then introduce the structure as a solution to the problem.

--
Since 2008-Jun-18, democracy in Sweden is dead. | 悪霊退散!悪霊退散!怨霊、物の怪、困った時は ドーマン!セーマン!ドーマン!セーマン! 直ぐに呼びましょう陰陽師レッツゴー!

kentl
Member #2,905
November 2002

Yes of course. I am sure that the teachers of such a course will always tell something brief about the algorithms, thats for sure. But perhaps it would be good if they really took real life examples of where the algorithm can be used.

And when to use it isn´t as simple as "searching an array is slow", as it´s not always the case. Searching an unsorted array is slow, but on a sorted one you could use binary search and get the same complexity - O(log n) as you get when searching a binary tree. And if the binary tree is heavily unbalanced you might have O(n) for searching it plus the additional overhead of using a linked list structure over an array.

My point is that it requires more in-depth understanding of the algorithms and datastructures to be able to use the right one at the right time than most courses give. And that could be part of the problem, if the students doesn´t clearly learn when to use what lack of motivation is bound to occur imho.

William Labbett
Member #4,486
March 2004
avatar

Why don't people understand/like algorithms?

i was sitting in a cafe last week figuring out an algorithm ;D

(for organising an array - a bit like qsort)

i finally got it sorted tonight...
...what a reliaf ;D
it had become like a compressed ball of toilet roll blocking the sewer system that my game is progressing down...

(that analogy makes my game a pooh :-/ - it'll be a bit better than that)

anyway, i don't know whether i'd have managed without a cunningly laid out plan of attack - either way i've got it done and the documentation

bit worrying though that 50 lines of code took about 12 hrs to do..

...my brain's been getting more muddled as i spend more time on my box

kentl
Member #2,905
November 2002

I have spend >12 hours on doing 3 lines of code in Prolog =) (the language from hell imho)

Richard Phipps
Member #1,632
November 2001
avatar

Quote:

it had become like a compressed ball of toilet roll blocking the sewer system that my game is progressing down...

(that analogy makes my game a pooh - it'll be a bit better than that)

Can I sig it? Please? It's just too funny! ;D

rockslave
Member #873
January 2001
avatar

I agree with you, Kanzure, that should be done. But I can see that, no matter how we teach them, they don't get to learn, even when they want to...

The most common problems:
1. "Where do I use this?"
2. "So, how do I start?"
3. "It's not showing the answer"(in this case, 80% of times, they did not put anything to write the answer on the screen...)

kentl
Member #2,905
November 2002

One thing you could try rockslave is to let them solve problems using only pen and paper. That´s the way the first introducing course to the CS program at my university gives new students a glimpse of how to think in a structured way.

If you give them problems to solve using pen and paper at first, and have them solve the problems using flowcharts similar to this one:
http://www.techtutorials.com/tutorials/programming/introduction/images/3gl_flow_samp1.gif
Above image taken from URL: [url http://www.techtutorials.com/tutorials/programming/introduction/3gl_nassi.shtml#what-is] under the section Flowcharts - Sample 1

I think that it would perhaps help them to get a 'feel' for programming, perhaps they sat down to program 'for real' to quickly?

Bill Gates on the issue said:

No, the best way to prepare is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and I fished out listings of their operating system.

elver
Member #3,670
July 2003

Flowcharts are useless. The cavemen used flowcharts. Look how much good it did to them ::)

Kanzure
Member #3,669
July 2003
avatar

Quote:

Look how much good it did to them ::)

Is that double sarcasm? Or just single? Because it did do good, we are able to clearly read the ideas. That's the point in programming: clarity.

Quote:

Prolog =) (the language from hell imho)

Ever heard of BrainF*ck? ;D

elver
Member #3,670
July 2003

Cancerboy said:

Ever heard of BrainF*ck?

++[>+++<-]>[<++>-]<[>+++++<-]>>>+++[<+++>-]<[<+>-]<.>>
+++++++++++++[<+++>-]<[<+>-]<.>>+++++[<++>-]<[<+>-]<.>
>++[<+++++>-]<[<->-]<-------.>>+++++[<++>-]<[<+>-]<+++.

That used to be my sig for a while ;D

Learning BF is a very enlightening experience though. I'd put it up there right next to seeing goatse for the first time ;D

kentl
Member #2,905
November 2002

Elver said:

Flowcharts are useless

It often doesn´t do much good for a non-beginner to understand more complext algorithms, for that i prefer pseudocode or a real implmentation example.

But i do think that beginners can benefint a lot from flowcharts, it´s easier for them to understand such a simple thing as a loop of some kind when looking at a graphical drawing than see it in code. At least that´s what i think, it seemed so from my classmates which hadn´t been programming before starting their studies. So it´s definitily worth trying out!

Everyone one with a normally functioning brain can learn to program, it´s just a matter of learning it the right way for each individual.

Elver said:

Ever heard of BrainF*ck?

Yeah, but i´m not planning on learning it. ;) But there is nothing saying there isn´t multiple languages spawn directly by satan? :o

elver
Member #3,670
July 2003

No insulting BrainF*ck! It's fun to learn! :D

Makes you understand better how computers work too :)

[.edit]

Oh and the cavemen joke was from "Real Programmers Don't Eat Quiche."

Original said:

REAL Programmers don't use flowcharts. Flowcharts are an imbecilic form of documentation. Cavemen drew flowcharts and look what good it did them.

Kanzure
Member #3,669
July 2003
avatar

kentl, I didn't say flowcharts are useless ;) You're quoting the wrong person! >:(

Quote:

I'd put it up there right next to seeing goatse for the first time

Good man, good man. :)

edit: Sadly, this is my 1,500th post. Yayish!

kentl
Member #2,905
November 2002

Kanzure said:

kentl, I didn't say flowcharts are useless ;) You're quoting the wrong person! >:(

Oops...I did it again! No actually this is the first time, to be honest this must be the first time i am wrong ever! :P (note the smiley, turn of the flamethrower ;))

[edit]

Elver said:

I'd put it up there right next to seeing goatse for the first time

Have you seen this Mario Bros Goatse then? (it´s family safe i think)
[/edit]

elver
Member #3,670
July 2003

kentl, what you linked to is worse than the goatse man. Much, much worse.

[.edit]

Quote:

<elver> ?? kanzure
<Allegro> "kanzure" found in USER database
<Allegro> <CGames> Kanzure: "since I was a noob"
<Allegro> <Kanzure> thats been since 2001
<Allegro> "Seeing goatse is like cleansing your soul, and becomming a true person." -- Kanzure

No use in editing it out, Kanzure. It's already been recorded for future generations :P

 1   2 


Go to: