Algorithmic Thinking (Part 1)
Description
When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan .
- Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
- Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.
About this course: 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 importa…
Frequently asked questions
There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.
When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan .
- Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
- Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.
About this course: 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".
Created by: Rice University-
Taught by: Luay Nakhleh, Associate Professor
Computer Science; Biochemistry and Cell Biology -
Taught by: Scott Rixner, Professor
Computer Science -
Taught by: Joe Warren, Professor
Computer Science
Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.
Help from your peersConnect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.
CertificatesEarn official recognition for your work, and share your success with friends, colleagues, and employers.
Rice University Rice University is consistently ranked among the top 20 universities in the U.S. and the top 100 in the world. Rice has highly respected schools of Architecture, Business, Continuing Studies, Engineering, Humanities, Music, Natural Sciences and Social Sciences and is home to the Baker Institute for Public Policy.Syllabus
WEEK 1
Module 1 - Core Materials
What is Algorithmic Thinking?, class structure, graphs, brute-force algorithms
15 videos, 2 readings expand
- Video: What is Algorithmic Thinking?
- Video: Class structure
- Video: Pseudo-code
- Video: The small-world problem
- Video: Graphs and representation
- Video: Paths and distances
- Video: Brute force
- Video: What Is algorithm efficiency?
- Video: Measuring efficiency
- Video: Efficiency of brute force distance
- Video: Number of steps of brute force distance
- Reading: Class notes
- Reading: Coding notes
- Video: Coding styles and standards - PoC
- Video: Machine grading - PoC
- Video: Plotting data - PoC
- Video: Peer assessment - "We want a shrubbery!" - IIPP
Graded: Homework #1
WEEK 2
Modules 1 - Project and Application
Graph representations, plotting, analysis of citation graphs
3 readings expand
- Reading: Project #1 Description
- LTI Item: Project Submission History
- Reading: Application #1 Description
- Reading: Application #1 Solution
Graded: Assignment: Degree Distribution for Graphs
Graded: Analysis of Citation Graphs
WEEK 3
Module 2 - Core Materials
Asymptotic analysis, "big O" notation, pseudocode, breadth-first search
9 videos expand
- Video: Orders of growth
- Video: Asymptotics
- Video: Illustrating "Big O"
- Video: Illustrating BFS
- Video: Queues and boundary cases
- Video: Pseudocode
- Video: BFS running time - loose analysis
- Video: BFS running time - tighter analysis
- Video: BFS-based distance distribution
Graded: Homework #2
WEEK 4
Module 2 - Project and Application
Connected components, graph resilience, and analysis of computer networks
3 readings expand
- Reading: Project #2 Description
- Reading: Application #2 Description
- Reading: Application #2 Solution
Graded: Assignment: Connected Components and Graph Resilience
Graded: Analysis of a Computer Network
Share your review
Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate $1.- to Stichting Edukans.There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.