Learning Algorithms

  • (2 Pages)
  • +
  • 1
  • 2

26 Replies - 3812 Views - Last Post: 25 February 2013 - 04:34 PM

#16 TwoOfDiamonds  Icon User is offline

  • D.I.C Regular

Reputation: 54
  • View blog
  • Posts: 272
  • Joined: 27-July 12

Re: Learning Algorithms

Posted 22 February 2013 - 05:49 AM

Is there any Discrete Math course or tutorial on the internet? Or on Khan Academy ?
Was This Post Helpful? 0
  • +
  • -

#17 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1992
  • View blog
  • Posts: 4,144
  • Joined: 11-December 07

Re: Learning Algorithms

Posted 22 February 2013 - 06:08 AM

Quote

Is there any Discrete Math course or tutorial on the internet?


If only thee was some way of searching for things on the web. I guess that's crazy talk though. Who could ever build a successful business around that...
Was This Post Helpful? 0
  • +
  • -

#18 TwoOfDiamonds  Icon User is offline

  • D.I.C Regular

Reputation: 54
  • View blog
  • Posts: 272
  • Joined: 27-July 12

Re: Learning Algorithms

Posted 22 February 2013 - 06:16 AM

I mean a good one ... I don't want to follow a tutorial/course/etc that is not good ... I want to learn things the right way ... and since in my country you can't choose Discrete Math in highschool ... I can't make a difference between good and bad ...

So no need to be sarcastic ^_^ since I practically learnt everything about programming by myself from the internet :)
Was This Post Helpful? 0
  • +
  • -

#19 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1992
  • View blog
  • Posts: 4,144
  • Joined: 11-December 07

Re: Learning Algorithms

Posted 22 February 2013 - 06:34 AM

Ah, OK. A good course is a different question. I don't have first-hand experience of it but MIT put a lot of their course material online and they have a good reputation.

http://ocw.mit.edu/c...-2005/index.htm
Was This Post Helpful? 0
  • +
  • -

#20 TwoOfDiamonds  Icon User is offline

  • D.I.C Regular

Reputation: 54
  • View blog
  • Posts: 272
  • Joined: 27-July 12

Re: Learning Algorithms

Posted 22 February 2013 - 06:40 AM

Yea ... I saw that one when I googled ... but I can't find how I can "take" that course
Was This Post Helpful? 0
  • +
  • -

#21 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1992
  • View blog
  • Posts: 4,144
  • Joined: 11-December 07

Re: Learning Algorithms

Posted 22 February 2013 - 06:51 AM

I don't think it's intended to be "taken", short of applying for their degree course. However, the lecture notes, assignments and sample solutions are there for you to learn from.
Was This Post Helpful? 0
  • +
  • -

#22 TwoOfDiamonds  Icon User is offline

  • D.I.C Regular

Reputation: 54
  • View blog
  • Posts: 272
  • Joined: 27-July 12

Re: Learning Algorithms

Posted 22 February 2013 - 07:08 AM

I would like better a course or a tutorial of some sort that I can take step by step :)
Was This Post Helpful? 0
  • +
  • -

#23 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7744
  • View blog
  • Posts: 13,083
  • Joined: 19-March 11

Re: Learning Algorithms

Posted 22 February 2013 - 06:02 PM

If you want to really visualize the sorting algorithms, this might be helpful.
It's certainly brilliant:

Bubblesort:
http://youtu.be/lyZQPjUT5B4

The same poster also has visualisations for the other major sorts. Check 'em out!
Was This Post Helpful? 0
  • +
  • -

#24 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10563
  • View blog
  • Posts: 39,087
  • Joined: 27-December 08

Re: Learning Algorithms

Posted 22 February 2013 - 06:32 PM

In computer science, you have to get good at reading and practicing yourself without something holding your hand and guiding you along, like a teacher/classroom setting. We have a math resource thread on DIC that's a good resource, though not a step-by-step guide.

Discrete Math classes are really unique. You could take three different Discrete Math classes at three different schools and get three very different flavors. It's generally a survey course with topics of interest to the teacher, including some or all of the topics: number theory, combinatorics, graph theory, discrete probability, natural languages, proof by induction, recurrence relations, logic, set theory, functions and relations, and computational complexity. Occasionally, it's used to teach you how to write proofs. I've taken both the survey and proofs-based versions. If you want good textbooks, Epp and Johnsonbaugh are very good. Rosen is the classic.

You could also look for online courses in those topics, though I think you'll find they start to become more like MIT's OCW than like a Khan Academy Calculus I class.
Was This Post Helpful? 0
  • +
  • -

#25 TwoOfDiamonds  Icon User is offline

  • D.I.C Regular

Reputation: 54
  • View blog
  • Posts: 272
  • Joined: 27-July 12

Re: Learning Algorithms

Posted 23 February 2013 - 10:38 AM

Hey !

I looked for Sedgewick's book and I was wondering what's the difference between "Algorithms in C" and "Algorithms in C++" , besides the language syntax , and with which one should I start ?

Thank you !
Was This Post Helpful? 0
  • +
  • -

#26 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7744
  • View blog
  • Posts: 13,083
  • Joined: 19-March 11

Re: Learning Algorithms

Posted 24 February 2013 - 03:13 PM

I can only vouch for Algorithms in C, haven't looked at the c++ version, but I would tend to think that simpler is better, so go with the C version. I also see that he credits a co-author for "C++ consulting", while he wrote all of the code for the C version himself.

Extending the ideas to object-oriented languages should really be just a matter of OO design. If you know how a linked list works, it should be no great trick to implement it in Java or C++ - that's the point of Java and C++.
Was This Post Helpful? 1
  • +
  • -

#27 wordswords  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 76
  • View blog
  • Posts: 272
  • Joined: 17-December 11

Re: Learning Algorithms

Posted 25 February 2013 - 04:34 PM

Algorithms are great fun, and I studied algorithmic complexity and calculus and data structures at university. I reasoned about graph algorithms and tried to understand the proof behind these.

Do I use my knowledge about algorithms in my day-to-day job as a software engineer? Not really. This may differ for those C++ programmers who are down at the machine level and need to optimise their code as efficiently as possible, but as a Java/Ruby/Python web application developer, I do not need to know how to implement a graph algorithm, or the merits of a dozen different sorting algorithms. I use in-built language features designed by those people with PhDs in Computer Science. I implemented an A* pathfinding algorithm the other day, but that was for fun, not something that someone paid me to do.

What I do find useful is a knowledge of design patterns and a good understanding of object orientated design. These are not really algorithms but they're transferable templates that you can take from one application to the next, and provide very useful ideas about how to structure programs. So my recommendation, assuming you know the basics, and understand why nested loops are bad and what sorting algorithms do, and linked lists and all those basic data structures, is to try and get your head around design patterns.
Was This Post Helpful? 0
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2