Muhammad Mustafa Rafique Headshot

Muhammad Mustafa Rafique

Assistant Professor
Department of Computer Science
Golisano College of Computing and Information Sciences

585-475-4528
Office Hours
Monday: 2:30-4:30 pm Wednesday: 2:30-4:30 pm And by appointment
Office Location
Office Mailing Address
20 Lomb Memorial Drive, (GOL) 70-3571, Rochester, NY 14623

Muhammad Mustafa Rafique

Assistant Professor
Department of Computer Science
Golisano College of Computing and Information Sciences

Education

BS in Computer Science, NUCES (Pakistan); MS, Ph.D. in Computer Science, Virginia Tech

Bio

Dr. M. Mustafa Rafique is an Assistant Professor in the Department of Computer Science at Rochester Institute of Technology (RIT). He has more than fifteen years of professional and research experience developing practical solutions for large-scale enterprise applications, and creating innovative solutions for massively parallel, distributed and high-performance computing systems for a variety of application domains.  Dr. Rafique's research interests lie broadly in experimental computer systems, encompassing distributed platforms for cloud and high-performance computing, Internet of Things (IoT), and emerging data analytics frameworks for machine learning, smarter cities, and cognitive systems. Prior to joining RIT, Dr. Rafique was a staff member in the High Performance Systems Group at IBM Research in Dublin (Ireland). He has also worked at NEC Labs (Princeton) and Qatar Computing Research Institute (QCRI) on designing innovative solutions for adaptive and efficient resource management in massively parallel computing systems. Dr. Rafique earned his MS and Ph.D. degrees in Computer Science from Virginia Tech in 2010 and 2011, respectively. He is a Senior Member of the IEEE.  In his spare time, Dr. Rafique plays badminton, tennis, bridge and chess.

585-475-4528

Areas of Expertise
Distributed and parallel systems
High-performance computing
Resource management in heterogeneous systems

Currently Teaching

CSCI-652
3 Credits
An introduction to the study of distributed systems. The course covers distributed system architectures such as client-server and peer-to-peer, distributed system design issues such as communication, fault tolerance, coordination, and deadlock, distributed system middleware such as remote method invocation (RMI) and tuple space, and the theory of distributed algorithms such as logical clocks and leader election. Programming projects are required.
CSCI-759
3 Credits
This course examines current topics in Systems. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances will be identified as belonging to the Distributed Systems cluster, the Architecture and Operating Systems cluster, the Security cluster, or some combination of these three clusters.
CSCI-251
3 Credits
This course is an introduction to the organization and programming of systems comprising multiple computers. Topics include the organization of multi-core computers, parallel computer clusters, computing grids, client-server systems, and peer-to-peer systems; computer networks and network protocols; network security; multi-threaded programming; and network programming. Programming projects will be required.