CS 302: Data Structure
This course covers the core data structure concepts in CS. This includes lists, graphs, tress, sets, hashes, heaps, and many different operations on them. The course also introduces algorithmic complexity analysis.
Teaching Interests: (Grad) Parallel Computing, Adv. Algorithm Design, Adv. Graph Analytics; (Undergrad) Data Structure, Computer Organization/Arch., Graph Mining, Theory of Algorithms.
This course covers the core data structure concepts in CS. This includes lists, graphs, tress, sets, hashes, heaps, and many different operations on them. The course also introduces algorithmic complexity analysis.
This course introduces and applies advanced concepts and techniques of large-scale network (graph) analytics to solve real-world problems in myriad disciplines. Concepts include, but not limited to, graph representations, centrality, motifs, subgraph mining, parallel algorithm design for graphs, machine learning on/with graphs, and real-world applications with graphs.
This course covers advanced programming techniques for a diverse range of High Performance Computing (HPC) platforms. The course introduces the foundations of parallel computing, including parallel architectures, parallel programming methods and techniques, parallel algorithm designs, and parallel performance analysis.
Introduction to big data analytics and data mining, Methods of analytics and statistical modeling, MapReduce and Algorithms using MapReduced, Finding similar items – Locality Sensitive Hashing, Link analysis, Frequent Itemsets, Clustering, Data analytics life cycle, data exploration and data analysis, etc.
Intel x86 processors, 64-bit processors, AMD processors
Reference Models, Physical Layers, Data Link Layer, MAC, Internet, TCP/UDP, Application Layer, etc.
Process management, multiprogramming, memory management, file management, concurrent programming, etc.
I designed and administered this advanced graduate course that introduces and applies advanced concepts and techniques of large-scale network (graph) analytics to solve real-world problems in myriad disciplines.
I taught the following concepts: processor and multicore design, performance evaluation, instruction set design and implicit parallelism, data path design and pipelining, control structures and microprogramming, memory management, caches, interrupts and I/O structures, parallel processing, GPU, and so on.
I taught basic and advanced concepts of Object Oriented Programming and the language C++. The course stressed on the application of the aforementioned concepts to solve intersting computational problem.
Courses: Computer Organization II, Object Oriented Programming