Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Online Course

Algorithmic Thinking (Part 1)

Rice University via Coursera

Overview

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part course builds on the principles that you learned in our Principles of Computing course and is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to real-world computational problems.

In part 1 of this course, we will study the notion of algorithmic efficiency and consider its application to several problems from graph theory. As the central part of the course, students will implement several important graph algorithms in Python and then use these algorithms to analyze two large real-world data sets. The main focus of these tasks is to understand interaction between the algorithms and the structure of the data sets being analyzed by these algorithms.

Recommended Background - Students should be comfortable writing intermediate size (300+ line) programs in Python and have a basic understanding of searching, sorting, and recursion. Students should also have a solid math background that includes algebra, pre-calculus and a familiarity with the math concepts covered in "Principles of Computing".

Syllabus

Module 1 - Core Materials
-What is Algorithmic Thinking?, class structure, graphs, brute-force algorithms

Modules 1 - Project and Application
-Graph representations, plotting, analysis of citation graphs

Module 2 - Core Materials
-Asymptotic analysis, "big O" notation, pseudocode, breadth-first search

Module 2 - Project and Application
-Connected components, graph resilience, and analysis of computer networks

Taught by

Luay Nakhleh, Scott Rixner and Joe Warren

Related Courses

Reviews

4.1 rating, based on 15 reviews

Start your review of Algorithmic Thinking (Part 1)

  • Zach completed this course, spending 5 hours a week on it and found the course difficulty to be hard.

    This course is the first part of a somewhat challenging conclusion to the specialization. The course is split into several two-week long components, during which you will have to complete a quiz and a machine-graded piece of code. Finally you will have...
  • Csaba Koller

    Csaba Koller completed this course and found the course difficulty to be hard.

    I took this course back when it was one course, more than a year ago so some things may have changed since. This course is mainly built on understanding maths and not coding, unlike the previous courses in the specialization. The point of the course...
  • Kristina Šekrst completed this course and found the course difficulty to be hard.

    I took this course when it was still a single course, and I'm writing this review a bit late, so I believe that the issues have been changed so far. I think the better way was to expand the course into a couple of more weeks, rather than splitting it into two courses. The teaching style was great, and I enjoyed it very much. The programming assignments were a bit difficult sometimes, but enjoyable. However, I don't think this is a beginner's course, since there's lot of talk about algorithmic complexity (which was awesome). Maybe some more examples could be added to illustrate the complexities with real-life algorithms.
  • Prose Simian completed this course, spending 7 hours a week on it and found the course difficulty to be medium.

    Good course - comparable to the same professors' IIPP, but a little rougher round the edges - with a fairly challenging final project. One weakness was treatment of the relevant maths, which was a little sketchy.

    Rated 1 (& not reviewed at greater length) because it was cynically switched to pay only - and the material split over two courses - with no warning. :(
  • Rajkumar Singh is taking this course right now.

  • Mark Collins

    Mark Collins completed this course.

  • Félix Pérez is taking this course right now.

  • Anonymous

    Anonymous completed this course.

  • Anonymous

    Anonymous completed this course.

  • Frederick Hill

    Frederick Hill is taking this course right now.

  • Colin Khein completed this course.

  • Mark Henry Butler completed this course.

  • Asr completed this course.

  • Profile image for Alex Ivanov
    Alex Ivanov

    Alex Ivanov completed this course.

  • Raphael Favero

    Raphael Favero completed this course.

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free

Never stop learning Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free