Support & Downloads

Quisque actraqum nunc no dolor sit ametaugue dolor. Lorem ipsum dolor sit amet, consyect etur adipiscing elit.

s f

Contact Info
198 West 21th Street, Suite 721
New York, NY 10010
youremail@yourdomain.com
+88 (0) 101 0000 000
Follow Us

Data Structures and Algorithms

$44.00

(3 customer reviews)
Quick info
Categories: ,
Spread the love

Description

Spread the love

Prices differ based on Coursera’s programmes.

Coursera might get your enrollment for free, you only pay for the certificate

This specialization is a mix of theory and practice: you will learn algorithmic techniques for solving various computational problems and will implement about 100 algorithmic coding problems in a programming language of your choice. No other online course in Algorithms even comes close to offering you a wealth of programming challenges that you may face at your next job interview. To prepare you, we invested over 3000 hours into designing our challenges as an alternative to multiple-choice questions that you usually find in MOOCs. Sorry, we do not believe in multiple-choice questions when it comes to learning algorithms…or anything else in computer science! For each algorithm you develop and implement, we designed multiple tests to check its correctness and running time — you will have to debug your programs without even knowing what these tests are! It may sound difficult, but we believe it is the only way to truly understand how the algorithms work and to master the art of programming. The specialization contains two real-world projects: Big Networks and Genome Assembly. You will analyze both road networks and social networks and will learn how to compute the shortest route between New York and San Francisco (1000 times faster than the standard shortest path algorithms!) Afterwards, you will learn how to assemble genomes from millions of short fragments of DNA and how assembly algorithms fuel recent developments in personalized medicine.

WHAT YOU WILL LEARN

  • Apply basic algorithmic techniques such as greedy algorithms, binary search, sorting and dynamic programming to solve programming challenges.

  • Apply various data structures such as stack, queue, hash table, priority queue, binary search tree, graph and string to solve programming challenges.

  • Apply graph and string algorithms to solve real-world challenges: finding shortest paths on huge maps and assembling genomes from millions of pieces.

  • Solve complex programming challenges using advanced techniques: maximum flow, linear programming, approximate algorithms, SAT-solvers, streaming.

3 reviews for Data Structures and Algorithms

  1. greg g

    I have a Mechatronics MSc and now I’m transitioning to CS after starting to work as a software developer. Even with an engineering background, this course was challenging: you need to think hard when designing algorithms, then precisely design and test a solution. (Stress) testing is a concept that is frequently used in everyday software development, too.

    For some assignments, you’ll find the pseudocode in the slides so those need less brain power to implement but for others, you’ll have to come up with your own original solution. This requires time and research. It’s possible to ask others in the forum or Google around for hints, and most assignments can be solved in multiple ways (e.g. I solved several of the dynamic programming assignments with memoized recursive functions). You won’t find many hints from the teachers, though since that would spoil the learning part here – the essence of the course is not in the slides but in solving the assignments on your own.

    Upsides of the course are the automatic grading system, the diversity of the assignments and the quality of the mathematical content and the slides.

    Downsides of the course are the sometimes bad accent of the teachers – this could be eased with more accuraate captioning for the videos -, and the clumsiness of downloading slides (they are not available in one package, and trust me, you’re going to use them a lot!)

    Prerequisites for this course: you will need linear algebra knowledge to know about e.g. geometrical series or limit values, and you will need to know how mathematical proofs work. This is all advanced high school or 1st semester college material, so nothing special. Fortunately the teachers always point to extra links if you’re in trouble.

    Also, you’ll need working knowledge for 1 programming language. Fortunately for many languages, you won’t need to care about I/O, it’s already in the starter files. I learned Python just for fun, during this course for example. All that is needed is basic control statements (loops-if), arrays and functions, nothing more.

    Tips: 1. Don’t give up! 2. You don’t need to solve all the assignments, the ones after the minimum level are usually more advanced. 3. When in trouble, stress test if you can, it helps a lot. 4. If you’re confident, you can ‘make a run for it’ and submit your file – you can submit as many times as you want.

  2. josh f

    Opted for 5 over 4. Not a perfect course but damn close: Assuming ‘basic knowledge’ one of the languages suggested should also have as a pre-requisite ‘introductory computer science’ since having an ability to code in say python at a basic level doesn’t necessarily mean you understand anything about file and bitstream IO, or other useful abstractions that will make this course a wee bit more interesting.

    Anyone who doesn’t have a strong grasp of CS principles shouldn’t be dissuaded however, it just means that your learning curve will be steeper. The trick is digging your heels in and researching the problems, sticking to your guns and hammering out even the most ugly of code until you have a correct solution… AND THEN trying to make the thing faster. You will get faster at writing our your plan, faster at implementing, and learn to read code line by line to understand what is happen beneath the abstraction.

    I’d also urge people to avoid using built-in functionality of your language to solve a lot of these problems, ie. in the Majority Element problem, you *could* just use python’s built-in counter to count instances for you but by doing that, do you really understand what is happening beneath the hood? Do you really understand what the output of that abstraction is doing? Probably not. So do it the ‘by-hand’ way and then take advantage of the built-ins when you rewrite the code for your own use or to put on your repo.

    All in all, a great ‘trial by fire’ course if you’re a novice, and if you’re not a novice, it will help make you a better programmer. For sure.

  3. bounsi d w h

    Splendid! The course material is rich, the teachers explain very well, in great detail and the exercises are pretty challenging, not to mention the set of compatible programming language one can use is very large. I loved it!

    I would recommend this course to anyone serious about learning algorithm analysis and design, this is a great place either to get started or to enhance your current capabilities.

Add a review

Your email address will not be published. Required fields are marked *