
This online 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 into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computation
Neil Rhodes
Computer Science and Engineering
Daniel M Kane
Department of Computer Science and Engineering / Department of Mathematics
Michael Levin
Computer Science
Michael Levin
Computer Science