Algorithmic Thinking (Part 1)

This Specialization covers much of the material that first-year Computer Science students take at Rice University. Students learn sophisticated programming skills in Python from the ground up and apply these skills in building more than 20 fun projects. The Specialization concludes with a Capstone exam that allows the students to demonstrate the range of knowledge that they have acquired in the Specialization.

Created by: Luay Nakhleh

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100

icon
Course Description

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".

icon
Instructor Details

placeholder

Luay Nakhleh received a BSc degree in Computer Science from the Technion (Israel) in 1996, a Master's degree in Computer Science from Texas A&M University in 1998, and a PhD degree in Computer Science from UT Austin in May 2004 (Advisor: Prof. Tandy Warnow). While at UT Austin, he received the Outstanding Doctoral Dissertation Award, the Bert Kay Dissertation Award, the Texas Excellence Teaching Award, and the Outstanding Teaching Assistant Award. Luay joined the Computer Science department at Rice University as an Assistant Professor in July 2004, and was promoted to Associate Professor, with tenure, effective July 2010. While at Rice, he received the DOE CAREER award in 2006, the NSF CAREER award in 2009, the Phi Beta Kappa Teaching award in 2009, an Alfred P. Sloan Research Fellowship in 2010 (in the Molecular logy category), and a John P. Simon Guggenheim Foundation Fellowship in 2012 (in the Organismic logy and Ecology category).

icon
More courses by Luay Nakhleh

Algorithmic Thinking (Part 2)

Free

icon
More data structures and algorithms courses

Python Data Structures

Free

Operations Analytics

Free

Data Structures and Performance

Free

Algorithms for DNA Sequencing

Free

Excel/VBA for Creative Problem Solving, Part 2

Free

Master the Coding Interview: Data Structures + Algorithms

$11.99

icon
Reviews

4.5

53 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Qi D on 18-Feb-17

coursea does not allow me to quit the class. Also, I cannot do the homework or watch video at my own pace.

By Wynand on 11-Jan-18

Not quite the same level of energy presents in IIPP and Computing Principles. Also did not like the peer review projects, too messy.

By Deepak V on 19-Jun-19

It was a good learning experience

By Marcello F on 10-Sep-17

Great course !

By Cameron B on 3-May-16

I found the material of this course to be very enlightening, it's not too difficult if you have the appropriate background. However, it will take a decent amount of time to fully complete. As part of the specialization, all of the skills I've learned were consolidated and put to an interesting use with this class.

By Arnob B on 21-Sep-17

Last assignment was a bit weird but great course otherwise!

By Garlic J on 14-May-16

Project is interesting, bu the video lecture is kind of repetitive and does not cover much

By Karun on 23-Sep-16

The applications were too time consuming. Please consider adding a tool that makes graphing easier. The course itself was very good and engaging and without us knowing it, would teach core fundamentals of computing through the coding exercises.

By Maysam Q R on 17-Sep-19

The class is very useful, I already see the improvement in the codes that I write. And the assignments are very well-designed and truly helpful.

By Deepthi V J on 6-Oct-19

good one

By Eul S S on 23-Aug-19

E

By Adam C on 9-Jul-19

Great course!