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.

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.

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 core techniques of deep learning to analyze large amount of data. Topics include machine learning basics, deep feedforward networks, regularization, optimization, convolutional networks, recurrent neural networks, etc.

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.

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.