Teaching
CSE 5306 Distributed Systems
Issues and challenges in distributed systems, including: communication, distributed processes, naming and name services, synchronization, consistency and replication, transactions, fault tolerance and recovery, security, distributed objects, and distributed file systems.
Use cases: MapReduce, Spark, Google File System, Cassandra, Pregel, Spanner, Raft, Bitcoin.
CSE 5311 Design and Analysis of Algorithms
Techniques for analyzing upper bounds for algorithms and lower bounds for problems. Problem areas include: sorting, data structures, graphs, dynamic programming, combinatorial algorithms, linear programming, introduction to parallel models, NP-completeness, approximation algorithms.
CSE 6332 Cloud Computing and Big Data
The focus of this course is on data management techniques and tools for storing and analyzing very large volumes of data. Topics include: cloud computing; virtualization; distributed file systems; large data processing using Map-Reduce; data modeling, storage, indexing, and query processing for big data; key-value storage systems, columnar databases, NoSQL systems; big data technologies and tools; large-scale stream processing systems; data analytics frameworks; big data applications, including graph processing, recommendation systems, and machine learning.
Use cases: MapReduce, Spark, Pig, Hive, Spark SQL, Pregel, Bigtable, Dynamo.