bebop said:
hi everybody,
i am wondering:
1) does anybody here use (in their everyday java coding gigs) any of the
algorithms they were taught in their cs classes?
Yes ...
2) what algorithms learned in your cs studies have you used recently?
As another poster said, most algorithms have implementations already
around. The ones that aren't are either to simple to require a helper
class (eg linear search through an array), or are more correctly called
patterns (eg language compilers, interpreters etc) - back in 1979-81
when I went through uni, the terminology wasnt there, but the concepts
where, if you where prepared to think out of the box.
3) if you haven't used any cs studies algorithms in your real-world jobs,
why not?
4) if you do use any cs algorithms in your real-world jobs, how often do you
use them?
I frequently use the pattern behind language compilers and interpreters
frequently. Where ever there is repetition in intent in code, I look for
either refactoring the code to separate it out into a separate class, or
otherwise developing a higher level command language.
An example of writing an interpreter was taking documents written about
how to manually test a specific product(eg click "details" link, type
"xyz" into name field, press [Add] button, verify "record was added" is
visible, repeat test for each row in such an such table), and making an
interpreter that would perform those tests automatically.
The principle benefits where communication with non programmers,
increased speed of writing tests and the ability for non programmers to
have a major role in the writing of the tests.
A slightly more obscure example is writing a compiler that takes a
database schema and produces Java, html and javascript code. Which when
compiled for the web server and interpreted on the client side browser
provide standard table maintenance functionality. The compiler differs
from typical compilers because its input is declarative rather than
procedural, and the output is for multiple environments on different
machines, but that's just letting your thinking get out of the box.
Combined with an interest in learning and thinking out of the box, the
basic mental pattern that I use, is write it manually once, write it
again a second time ... but the third time you have to do something,
tell the computer to do itself!
thanks in advance for your replies.
Regards
ian