This course addresses the emerging issues in designing, building, managing, and evaluating advanced data-intensive systems and applications. Data engineering is concerned with the role of data in the design, development, management, and utilization of complex computing/information systems.
This course emphasizes fundamental algorithms and advanced methods of algorithmic design, analysis and implementation. This class overs techniques used to analyze problems and algorithms (including asymptotic, upper/lower bounds, best/average/worst case analysis, amortized analysis, complexity), basic techniques used to design algorithms (including divide and conquer/greedy/dynamic programming/heuristics, choosing appropriate data structures) and important classical algorithms (including sorting, string, matrix, and graph algorithms) and data structures.