This course focuses on the fundamentals of computer algorithms, emphasizing methods useful in practice. Upon successful completion of this course, the student will be able to: explain and identify the importance of algorithms in modern computing systems and their place as a technology in the computing industry; indentify algorithms as a pseudo-code to solve some common problems; describe asymptotic notations for bounding algorithm running times from above and below; explain methods for solving recurrences useful in describing running times of recursive algorithms; explain the use of Master Theorem in describing running times of recursive algorithms; describe the divide-and-conquer recursive technique for solving a class of problems; describe sorting algorithms and their runtime complexity analysis; describe the dynamic programming technique for solving a class of problems; describe greedy algorithms and their applications; describe concepts in graph theory, graph-based algorithms, and their analysis; describe tree-based algorithms and their analysis; explain the classification of difficult computer science problems as belonging to P, NP, and NP-hard classes. (Computer Science 303)
" This course focuses on the algorithmic and machine learning foundations of computational biology, combining theory with practice. We study the principles of algorithm design for biological datasets, and analyze influential problems and techniques. We use these to analyze real datasets from large-scale studies in genomics and proteomics. The topics covered include: Genomes: biological sequence analysis, hidden Markov models, gene finding, RNA folding, sequence alignment, genome assembly Networks: gene expression analysis, regulatory motifs, graph algorithms, scale-free networks, network motifs, network evolution Evolution: comparative genomics, phylogenetics, genome duplication, genome rearrangements, evolutionary theory, rapid evolution "
Studies how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Models of randomized computation. Data structures: hash tables, and skip lists. Graph algorithms: minimum spanning trees, shortest paths, and minimum cuts. Geometric algorithms: convex hulls, linear programming in fixed or arbitrary dimension. Approximate counting; parallel algorithms; online algorithms; derandomization techniques; and tools for probabilistic analysis of algorithms.
No restrictions on your remixing, redistributing, or making derivative works.
Give credit to the author, as required.
Your remixing, redistributing, or making derivatives works comes with some
restrictions, including how it is shared.
Your redistributing comes with some restrictions. Do not remix or make
derivative works.
Copyrighted materials, available under Fair Use and the TEACH Act for US-based
educators, or other custom arrangements. Go to the resource provider to see
their individual restrictions.