Neil Rhodes

Neil Rhodes is an occasional lecturer in the Computer Science and Engineering department at UC San Diego and formerly a staff software engineer at Google. Most recently, he was one of the lecturers at UCSD Summer Program for Incoming Students (, as well as at the UCSD Summer Academy for transfer students ( He’s taught Algorithms at the undergraduate and graduate level, as well as classes in Machine Learning, Operating Systems, Discrete Math, Automata and Computability Theory, and Software Engineering. As well as teaching at UC San Diego, he’s also taught at Harvey Mudd College. Mr. Rhodes holds a B.A. and M.S. in Computer Science from UCSD. He left the Ph.D. program at UC San Diego to found a company, Palomar Software, and spent fifteen years writing software, books on software development, and designed and taught programming courses for Apple and Palm.

Sort options

Advanced Algorithms and Complexity (Coursera)

You've learned the basic algorithms now and are ready to step into the area of more complex problems and algorithms to solve them. Advanced algorithms build upon basic ones and use new ideas. We will start with networks flows which are used in more typical applications such as optimal [...]
Average: 7 ( 4 votes )

Algorithms on Graphs (Coursera)

If you have ever used a navigation service to find optimal route and estimate time to destination, you've used algorithms on graphs. Graphs arise in various real-world situations as there are road networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get [...]
Average: 8 ( 3 votes )

Data Structures (Coursera)

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different [...]
Average: 6 ( 4 votes )

Algorithmic Toolbox (Coursera)

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem [...]
Average: 7 ( 3 votes )

Algorithms on Strings (Coursera)

World and internet is full of textual information. We search for information using textual queries, we read websites, books, e-mails. All those are strings from the point of view of computer science. To make sense of all that information and make search efficient, search engines use many string algorithms. [...]
Average: 8 ( 3 votes )

Genome Assembly Programming Challenge (Coursera)

In Spring 2011, thousands of people in Germany were hospitalized with a deadly disease that started as food poisoning with bloody diarrhea and often led to kidney failure. It was the beginning of the deadliest outbreak in recent history, caused by a mysterious bacterial strain that we will refer [...]
Average: 3 ( 4 votes )

Data Structures Fundamentals (edX)

Learn about data structures that are used in computational thinking – both basic and advanced. A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently.
Average: 8 ( 2 votes )