You should be comfortable with mathematical induction, big-O notation,sorting algorithms, basic data structures, and binary heaps. In particular,if you are a transfer student and have not obtained a thorough understandingof binary heaps from CS 61B or a similar course, you should read Chapter7 of CLR (Chapter 6 of CLRS) in preparation for this course.
From the online course catalog:Introduces the basic principles and techniques for the design, analysis, and implementation of efficient algorithms and data representations. Discusses asymptotic analysis and formal methods for establishing the correctness of algorithms. Considers divide-and-conquer algorithms, graph traversal algorithms, and optimization techniques. Introduces information theory and covers the fundamental structures for representing data. Examines flat and hierarchical representations, dynamic data representations, and data compression. Concludes with a discussion of the relationship of the topics in this course to complexity theory and the notion of the hardness of problems.
Data Structures And Algorithms Cormen.pdf
Scientific and engineering software almost always needs to be efficient in both time and memory. You should first consider optimizing at a high level, choosing data structures and algorithms that are inherently efficient. At a lower level, you should understand how computers work, and how to efficiently use modern computer architectures. 2ff7e9595c
Comments