Is there any Discrete Math course or tutorial on the internet? Or on Khan Academy ?
26 Replies  3938 Views  Last Post: 25 February 2013  04:34 PM
#17
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...
#18
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
So no need to be sarcastic since I practically learnt everything about programming by myself from the internet
#19
Re: Learning Algorithms
Posted 22 February 2013  06:34 AM
Ah, OK. A good course is a different question. I don't have firsthand 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
http://ocw.mit.edu/c...2005/index.htm
#20
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
#21
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.
#22
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
#23
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!
It's certainly brilliant:
Bubblesort:
http://youtu.be/lyZQPjUT5B4
The same poster also has visualisations for the other major sorts. Check 'em out!
#24
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 stepbystep 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 proofsbased 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.
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 proofsbased 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.
#25
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 !
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 !
#26
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 coauthor for "C++ consulting", while he wrote all of the code for the C version himself.
Extending the ideas to objectoriented 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++.
Extending the ideas to objectoriented 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++.
#27
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 daytoday 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 inbuilt 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.
Do I use my knowledge about algorithms in my daytoday 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 inbuilt 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.
