Data mining attracted much interests as an essential tool for big data analysis. Especially, designing and implementing advanced data mining algorithms and analysis platforms play crucial roles in extracting executable knowledges from big data. This course covers advanced data mining techniques, algorithms, and core platforms for big data analysis. This course also covers the techniques to effectively analyze very large data and high-speed data.

This undergraduate level course covers fundamental algorithms and data structures used in computer programming. Data structures are ways of organizing data within a computer's storage so that some desired operations may be performed on that data easily or efficiently. Algorithms are sequences of operations that, usually, take some input data and produce some desired output. Together, they form the foundation of computer programming. The topics to be covered include abstract data types, trees, hashing, sorting, graphs, string match, and algorithm design techniques.

Data mining refers to theories and techniques for finding useful patterns from massive amount of data. Data mining has been used in high impact applications including web analysis, fraud detection, recommendation system, cyber security, etc. This course covers important algorithms and theories for data mining. Main topics include mapreduce, finding similar items, mining frequent patterns, link analysis, data stream mining, clustering, graphs, and mining big data.

Reinforcement learning is a field of machine learning that aims to automatically learn how software will behave in order to maximize rewards. Reinforcement learning has been used in many AI applications such as AlphaGo and backgammon. In this course, we will cover important basic concepts of reinforcement learning such as markov decision process, planning, prediction, policy gradient, and exploration / exploitation.

Deep learning is a branch of machine learning based on a set of algorithms that attempt to model high level abstractions in data. Deep learning is a driving force of the recent advances in AI. In this course, we study advanced techniques of deep learning to analyze large amount of data. Topics include linear factor models, autoencoders, representation learning, structured probabilistic models for deep learning, monte carlo methods, partition function, approximate inference, and deep generative models.

This undergraduate level course covers fundamental algorithms and data structures used in computer programming. Data structures are ways of organizing data within a computer's storage so that some desired operations may be performed on that data easily or efficiently. Algorithms are sequences of operations that, usually, take some input data and produce some desired output. Together, they form the foundation of computer programming. The topics to be covered include abstract data types, trees, hashing, sorting, graphs, string match, and algorithm design techniques.

Optimization is a crucial tool for many machine learning techniques. Formulating a problem into an optimization framework, and solving it are core skills for researchers in the area of machine learning. This course covers important theories and algorithms for optimization in machine learning. Topics include convex sets, convex functions, convex optimization, duality, submodular optimization, and algorithms for optimizations.

Data mining refers to theories and techniques for finding useful patterns from massive amount of data. Data mining has been used in high impact applications including web analysis, fraud detection, recommendation system, cyber security, etc. This course covers important algorithms and theories for data mining. Main topics include mapreduce, finding similar items, mining frequent patterns, link analysis, data stream mining, clustering, graphs, and mining big data.