FAQ
Cover
This is the archive Discourse for the Processing (ALPHA) software.
Please visit the new Processing forum for current information.

   Processing 1.0 _ALPHA_
   Discussion
   General Processing Discussion
(Moderators: fry, REAS)
   Algorithms: Filling in the gaps
« Previous topic | Next topic »

Pages: 1 
   Author  Topic: Algorithms: Filling in the gaps  (Read 543 times)
grefo
Guest
Email
Algorithms: Filling in the gaps
« on: Apr 2nd, 2004, 3:32am »

In a recent job interview, the interviewee(?) told me that self-taught developers typically have a gap in their knowledge when it comes to translating a problem statement into the abstract world of programming languages. I am aware of this hole which, appearently is a good trait, but where to go to fill it in?
 
Would someone be willing to share the steps they took in finding a problem, creating the algorithm, and then programming the solution?
 
This could be beneficial to new Processing users as it could  give some guidance in their learning. Would anyone be willing to mentor newbies?
 
BTW, to the folks who created this amazing tool, thanks. I have been following it for a couple of years, and greatly appreciate the efforts!
 
~Greg
Kingston, WA
 
 
justo


Re: Algorithms: Filling in the gaps
« Reply #1 on: Apr 2nd, 2004, 4:41am »

i guess it might be "algorithms and data structures"? its a pretty early course in any computer science track, and one thats actually a lot more interesting (well, maybe not interesting) and useful than it sounds. its usually only about writing programs to solve various problems.
 
the simplest way to fill the "hole" would be to pick up a book on the subject. there are literally like a billion of them, so the trick is really just to get some recommendations on which books are actually interesting and have problems in them...then once you have the book, actually do the problems. nothing is a substitute for practice.
 
another idea is to take on a bigger project than your typical processing sketch. think about making a couple of classes of objects that interact or work on a user interface...nothing will make you work your algorithmic brain muscles more than trying to get a UI to play well with your other classes.
 
as for help, i'll try and be around more again, since i'm also trying to pick fry's brain on how processing works i'll answer any questions the best i can, or at least point you in the right direction.
 
good luck.
justo
 
grefo


Re: Algorithms: Filling in the gaps
« Reply #2 on: Apr 2nd, 2004, 4:54am »

It's funny you should mention data structures and algorithms as the guy I was interviewing with said the same exact thing! Although he suggested looking for a book with those subjects listed in the title, he wasn't able to recommend a specific book.
 
Thanks for the reply!
 
~Greg
 
 

~greg
kingston, wa
justo


Re: Algorithms: Filling in the gaps
« Reply #3 on: Apr 2nd, 2004, 5:18am »

yeah, thats the phrase everyone uses to describe that whole area of computer science. sorry i dont have any recommendations either.
 
fry


WWW
Re: Algorithms: Filling in the gaps
« Reply #4 on: Apr 2nd, 2004, 5:26pm »

hm, i wish i knew of a book too, though it gives me an idea for something that we ought to address in processing tutorials or courses.  
 
"data structures and algorithms" is usually a first or second semester computer science course, and goes through things like linked lists, trees, graphs, graph traversal (depth first search, breadth first search) recursion, searching, sorting, calculation of running time (O-notation), hash tables, and p vs np problems. if you find a decent-looking book that covers this stuff, you should be set. unfortunately, the books are usually *awful* (heavy on notation and minutae, light on "what does this mean?" and "why?") and it's better taken as a course with a good instructor who can properly put things in perspective.  
 
in general, this is nuts & bolts stuff that you'll likely never use in practical applications, which is why self-taught people often have a gap in these areas (or, are surprised to find out that their 'hack' for getting something done actually had a name or was a whole branch of computer science). especially in languages like java (used by p5) where things like Hashtable are built into the class library and readily available.
 
what's useful about knowing the concepts, however, is that (perhaps as your interviewer was getting at) is that this sort of understanding provides the necessary thinking tools (an intelligent bag of tricks) for tackling a problem. ie. knowing that it's slow to search through a list of 10,000 names one by one, but rather a hashtable is many times faster.
 
at any rate, having learned programming you'll have a much easier time picking up the data structures stuff, especially because it does so much to simplify and build on what you already know. i was a self taught programmer until taking a couple of courses during undergrad which really helped to fill things out. if you can do it, i'd recommend a course over a book--this might be one of the few areas where a book may not provide the right sort of background and perspective. but if that's impossible, hopefully someone else might have some good book suggestions.
 
good luck!
 
Ben Stewart
Guest
Email
Re: Algorithms: Filling in the gaps
« Reply #5 on: Apr 4th, 2004, 6:08pm »

I can't vouch for quality, but Berkeley posts lecture videos, course notes and labs/exercises for their course CS61B Data Structures:  
 
http://webcast.berkeley.edu/courses/archive.html?prog=32&group=57
 
http://www.cs.berkeley.edu/~jrs/61b/
 
The course also serves as an introduction to Java, so some others might find it useful in that respect too.
 
Cheers!
 
Ben Stewart
Guest
Email
Re: Algorithms: Filling in the gaps
« Reply #6 on: Apr 4th, 2004, 6:25pm »

Although if the Amazon ratings are anything to go by, the book that Berkeley is using isn't a very good one:
 
http://www.amazon.com/exec/obidos/ASIN/0471469831/
 
mohn

WWW Email
Re: Algorithms: Filling in the gaps
« Reply #7 on: Apr 4th, 2004, 7:09pm »

you may find this helpful / interesting:
 
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6- 046JIntroduction-to-AlgorithmsFall2001/CourseHome/index.htm
 
the book is decent as well. expensive, but decent.
 
good luck.
 
fry


WWW
Re: Algorithms: Filling in the gaps
« Reply #8 on: Apr 4th, 2004, 8:47pm »

actually that algorithms course is much heavier on the algorithms stuff than the basics (more of a 3rd+ year course, i believe) for the fundamentals (data structures/algorithms stuff), you'd want this course:
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6- 001Structure-and-Interpretation-of-Computer-ProgramsFall2002/CourseHome/index.htm
 
though at mit it's taught in a very traditional (firehose of fundamentals) manner, from what i've heard.  
 
(thanks mohn for finding that link.. very helpful)
« Last Edit: Apr 4th, 2004, 8:48pm by fry »  
grefo


Re: Algorithms: Filling in the gaps
« Reply #9 on: Apr 5th, 2004, 4:38pm »

Thanks for all the input. This will help tremendously, especially the MIT Opencourseware. That is trully one of the greatest things to happen to the open source community.
 
And I second adding algorithms to any tutorial for Processing.
 
Again, thanks.
 
~Greg  
Kingston, WA
 

~greg
kingston, wa
Ride215

Ride215
Re: Algorithms: Filling in the gaps
« Reply #10 on: Apr 5th, 2004, 8:43pm »

I recently picked up a 1983 book called "Data Structures and Algorithms" by Alfred V. Aho and John Hopcroft. I have finished one introductory course in java and find this book EXTREMELY useful. (prereq: basic syntax knowledge of gen. programming language) I have no idea how popular or easy it is to aquire this book but if possible, by all means read it. It is the wisest general programming information I have ever come across.
 
TomC

WWW
Re: Algorithms: Filling in the gaps
« Reply #11 on: Apr 18th, 2004, 2:14am »

People might like to browse this online "Dictionary of Algorithms and Data Structures"
 
http://www.nist.gov/dads/
 
It's quite heavy on the maths, but for gaining familiarity with keywords and terminology it could be quite handy.
 
Pages: 1 

« Previous topic | Next topic »