Learning Algorithms..
-
Introduction to Algorithms" not working for me.. any other shallow sources to learn.. or made easy tutorials..!! Please share your experience..how can we learn them effectively!! A confused student..will appreciate your help..
What? I failed in English! UNPOSSIBLE..
-
I got it, but you can apply anything only after you understand it.. so i was looking for the "reference".. where i can learn about the correct approach of attacking them!
What? I failed in English! UNPOSSIBLE
Monster Maker wrote:
but you can apply anything only after you understand it
Nonsense! I can apply a "hello world" program from a book in any programming language without knowing what the heck is going on. Look at a very basic C# program:
using System;
namespace MyConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}I don't need to know what the Console class is (or even what a class is) to make it work, and to extend it to do "useful" things. Or what a static method is, or why strings are immutable, or what the different between WriteLine and Write is, or how to enter a double quote in a string, or...you get the idea. The point is that implementing the simple stuff gives you the grounds for understanding it, and the same thing is true of algorithms. Sitting there looking at it and hoping inspiration will strike doesn't help much, certainly in the early days. Trying it out does. As I found out when first meeting the QuickSort algorithm. It's a PITA to work out from the format algorithm what the heck it does and how it does it, but when you try it out on paper a little light bulb lights up over your head (probably rather slowly these days, since they are all energy saving and take a week or so to get bright enough to read by).
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
-
Wirth's classic book[^], is clear and concise (warning:
PASCAL
inside :rolleyes: ).Veni, vidi, vici.
Thanks for your concern sir, the book got nice reviews too..something i was looking for..!! and yes..i can handle PASCAL.. :P
What? I failed in English! UNPOSSIBLE
-
Wirth's classic book[^], is clear and concise (warning:
PASCAL
inside :rolleyes: ).Veni, vidi, vici.
Dated, but a real goodie, even in these OOPs days (I suspect he would have written it rather differently now). And a damn sight more readable them Knuth's "The Art of Computer Programming" even if that did go into a lot more detail! :laugh:
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
-
Monster Maker wrote:
but you can apply anything only after you understand it
Nonsense! I can apply a "hello world" program from a book in any programming language without knowing what the heck is going on. Look at a very basic C# program:
using System;
namespace MyConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}I don't need to know what the Console class is (or even what a class is) to make it work, and to extend it to do "useful" things. Or what a static method is, or why strings are immutable, or what the different between WriteLine and Write is, or how to enter a double quote in a string, or...you get the idea. The point is that implementing the simple stuff gives you the grounds for understanding it, and the same thing is true of algorithms. Sitting there looking at it and hoping inspiration will strike doesn't help much, certainly in the early days. Trying it out does. As I found out when first meeting the QuickSort algorithm. It's a PITA to work out from the format algorithm what the heck it does and how it does it, but when you try it out on paper a little light bulb lights up over your head (probably rather slowly these days, since they are all energy saving and take a week or so to get bright enough to read by).
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
In east we call this implementation..what you are calling applying..!! :P And i know what the hello world program is....were you practicing writing it down again? :D ....anyways i ll follow your approach of dry run.. thanks for your..help!
What? I failed in English? UNPOSSIBLE
-
Use them. The key to understanding anything is applying it. Just looking at an algorithm as text is difficult, actually doing it - even by hand on paper - makes it a lot clearer what is going on.
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
I found this algorithm tutorial and hope that this link can help http://www.topcoder.com/tc?d1=tutorials&d2=alg\_index&module=Static
-
Dated, but a real goodie, even in these OOPs days (I suspect he would have written it rather differently now). And a damn sight more readable them Knuth's "The Art of Computer Programming" even if that did go into a lot more detail! :laugh:
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
OriginalGriff wrote:
And a damn sight more readable them Knuth's "The Art of Computer Programming"
Nope, for me AOCP was far easier to digest than any dry academic text on algorithms. Knuth rated sections by difficulty and provides a reading map at the front so you knew which bits can be skipped without discovering later that you missed a vital subject. Another reason to skip Pascal books is that array indexing isn't zero-based as it usually is for C-like languages, which is common parlance in most modern programming languages.
-
OriginalGriff wrote:
And a damn sight more readable them Knuth's "The Art of Computer Programming"
Nope, for me AOCP was far easier to digest than any dry academic text on algorithms. Knuth rated sections by difficulty and provides a reading map at the front so you knew which bits can be skipped without discovering later that you missed a vital subject. Another reason to skip Pascal books is that array indexing isn't zero-based as it usually is for C-like languages, which is common parlance in most modern programming languages.
dusty_dex wrote:
Another reason to skip Pascal books is that array indexing isn't zero-based as it usually is for C-like languages
That's should not be a problem for anyone able to read Knuth's books. Moreover one should be used to deal with 1-based indices too, unless he/she really want to miss Lua. :-D
Veni, vidi, vici.
-
Introduction to Algorithms" not working for me.. any other shallow sources to learn.. or made easy tutorials..!! Please share your experience..how can we learn them effectively!! A confused student..will appreciate your help..
What? I failed in English! UNPOSSIBLE..
Just a little "not-so-good" luck with timing. Professor Sedgewick's Algorithms 1[^] and Algorithms II[^] courses are on their last day today. But, stay tuned to the Coursera site - Professor Sedgewick says that he will offer those courses again later this year. One of the best Algorithms courses ever.
-
Introduction to Algorithms" not working for me.. any other shallow sources to learn.. or made easy tutorials..!! Please share your experience..how can we learn them effectively!! A confused student..will appreciate your help..
What? I failed in English! UNPOSSIBLE..
Robert Sedgewicks
- Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition[^]
- Algorithms in C++ Part 5: Graph Algorithms[^]
Sedgewick writes fairly well - and C++ will show you that some Os are bigger than others. Numerical Recipes 3rd Edition: The Art of Scientific Computing[^] would also be a good investment. You can also get the C++ source code for all of the above books.
Monster Maker wrote:
how can we learn them effectively
By using them to solve real problems. Some of the stuff is easy, some it requires a fair amount of effort. The usual route is to take one step at a time.
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
-
OriginalGriff wrote:
And a damn sight more readable them Knuth's "The Art of Computer Programming"
Nope, for me AOCP was far easier to digest than any dry academic text on algorithms. Knuth rated sections by difficulty and provides a reading map at the front so you knew which bits can be skipped without discovering later that you missed a vital subject. Another reason to skip Pascal books is that array indexing isn't zero-based as it usually is for C-like languages, which is common parlance in most modern programming languages.
Array indexing is completely irrelevant to understanding why and how the little monsters on that printed page to what they say they do when ran by a computer. A very clear/clean language and good writing skills are the best tools. There should be no malloc/objects/elevated language paradigms in learning programming from 0. The hardest thing ever is figuring out why i = i + 1 is allowed.
-
Introduction to Algorithms" not working for me.. any other shallow sources to learn.. or made easy tutorials..!! Please share your experience..how can we learn them effectively!! A confused student..will appreciate your help..
What? I failed in English! UNPOSSIBLE..
-
Array indexing is completely irrelevant to understanding why and how the little monsters on that printed page to what they say they do when ran by a computer. A very clear/clean language and good writing skills are the best tools. There should be no malloc/objects/elevated language paradigms in learning programming from 0. The hardest thing ever is figuring out why i = i + 1 is allowed.
-
Robert Sedgewicks
- Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition[^]
- Algorithms in C++ Part 5: Graph Algorithms[^]
Sedgewick writes fairly well - and C++ will show you that some Os are bigger than others. Numerical Recipes 3rd Edition: The Art of Scientific Computing[^] would also be a good investment. You can also get the C++ source code for all of the above books.
Monster Maker wrote:
how can we learn them effectively
By using them to solve real problems. Some of the stuff is easy, some it requires a fair amount of effort. The usual route is to take one step at a time.
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
That is the quality answer i was looking for...thanks a lot sir! Do these books include relevant mathematics needed to understand algos.. if not where should i refer?
What? I failed in English exam! UNPOSSIBLE
-
Just a little "not-so-good" luck with timing. Professor Sedgewick's Algorithms 1[^] and Algorithms II[^] courses are on their last day today. But, stay tuned to the Coursera site - Professor Sedgewick says that he will offer those courses again later this year. One of the best Algorithms courses ever.
Ohh no..rightly said..HARD LUCK Will keep looking for courses like this...!!
What? I failed in English Exam! UNPOSSIBLE
-
Here's one I found out for you http://www.personal.kent.edu/~rmuhamma/Algorithms/algorithm.html[^] It's just for understanding , However you need to implement the same for a better experience :)
Ranjan.D
Hey, they were..nice. more readable..!! Thanks ranjan..! :)
What? I failed in English Exam! UNPOSSIBLE
-
That is the quality answer i was looking for...thanks a lot sir! Do these books include relevant mathematics needed to understand algos.. if not where should i refer?
What? I failed in English exam! UNPOSSIBLE
Monster Maker wrote:
Do these books include relevant mathematics needed to understand algos..
Most of the material is focused on helping the reader understand what actually goes on - you get code where a mathematican would take the time honoured shortcut it can easily be shown ... and skip ahead to what can easily be explained ... I think wikipedia would be a good source for any missing formulaes, like Ford–Fulkerson algorithm[^] - you will certainly learn some of the mathematics, but that is not the primary focus of the books. Good luck, you're in for an interesting journey :thumbsup:
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
-
Monster Maker wrote:
Do these books include relevant mathematics needed to understand algos..
Most of the material is focused on helping the reader understand what actually goes on - you get code where a mathematican would take the time honoured shortcut it can easily be shown ... and skip ahead to what can easily be explained ... I think wikipedia would be a good source for any missing formulaes, like Ford–Fulkerson algorithm[^] - you will certainly learn some of the mathematics, but that is not the primary focus of the books. Good luck, you're in for an interesting journey :thumbsup:
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
Hmm nice..reference!! And thanks for the wishes... as my prime focus would be learning the approach that how we actually form new algorithms.. rather than understanding and applying the old ones!! Stay Excellent!! :)
1010111011
-
Introduction to Algorithms" not working for me.. any other shallow sources to learn.. or made easy tutorials..!! Please share your experience..how can we learn them effectively!! A confused student..will appreciate your help..
What? I failed in English! UNPOSSIBLE..
A free online Algorithms course is starting on 1 July 2013 on Coursera - Algorithms[^]. The teacher is Prof. Tim Roughgarden from Stanford. Seems to be a great course.
-
A free online Algorithms course is starting on 1 July 2013 on Coursera - Algorithms[^]. The teacher is Prof. Tim Roughgarden from Stanford. Seems to be a great course.
Thanks for your concern Mr. Amarnath..!! :) :-D :-D :laugh: