MSU-themed academic profile for a teaching professor with about, publications, teaching, and open teaching tools sections

RG

Ritam Ganguly, Ph.D.

Professor of Instruction
Department of Computer Science & Engineering  ·  Michigan State University
Computer Science Education Formal Verification Distributed System
About

I am a Professor of Instruction at Michigan State University, Department of Computer Science and Engineering. I received my Ph.D. in Computer Science from Michigan State University in 2023, where I transferred from Iowa State University in 2020 after studying there for three years (2017-2020). Previously I attended St. Thomas College of Engineering and Technology (aff. Maulana Abul Kalam Azad University of Technology f.k.a. West Bengal University of Technology) from 2013-2017 where I received my Bachelors of Technology (B.Tech) in 2017.

In my undergraduate years my research was on Data privacy, specifically on Secret sharing of data. Now, my research involves Runtime Verification of Distributed Systems and Computer Science Education.

Research interests

Computer Science Education

The study of effective methods, curricula, and tools for teaching computational thinking and programming skills.

Formal Verification

The use of mathematical proofs to rigorously guarantee that software or hardware systems behave exactly as specified.

Distributed System

The design and analysis of networked computers that coordinate to appear and function as a single coherent system.

Publications
Conference
Socio-Demographic and Academic Factors in Extension Policy Usage: A Mixed-Method Study in Computing Education
Ritam Ganguly, Jeya Amantha Kumar, & Caitlin K. Kirby
2025
ACM conference on Innovation and Technology in Computer Science Education (ITiCSE), Nijmegen, Netherlands
Journal
Crash-Resilient Decentralized Synchronous Runtime Verification
Ritam Ganguly, Shokufeh Kazemloo, & Borzoo Bonakdarpour
2024
IEEE Transactions on Dependable and Secure Computing, vol. 21, no. 3, pp. 1017-1031
Journal
Runtime Verification of Partially-Synchronous Distributed System
Ritam Ganguly, Anik Momtaz, & Borzoo Bonakdarpour
2024
Formal Methods in System Design, Vol. 64, 146–177
Journal
Distributed Runtime Verification of Metric Temporal Properties for Cross-Chain Protocols
Ritam Ganguly, Yingjie Xue, Aaron Jonckheere, Parker Ljung, Benjamin Schornstein, Borzoo Bonakdarpour, & Maurice Herlihy
2023
Journal of Parallel and Distributed Computing
Conference
Distributed Runtime Verification of Metric Temporal Properties for Cross-Chain Protocols
Ritam Ganguly, Yingjie Xue, Aaron Jonckheere, Parker Ljung, Benjamin Schornstein, Borzoo Bonakdarpour, & Maurice Herlihy
2022
International Conference on Distributed Computing Systems (ICDCS), Bologna, Italy
Conference
Monitoring Distributed System under Partial Synchrony
Ritam Ganguly, Anik Momtaz, & Borzoo Bonakdarpour
2020
International Conference on Principles of Distributed Systems (OPODIS), Strasbourg, France
Journal
Multiple video clips preservation using folded back audio-visual cryptography scheme
Imon Mukherjee & Ritam Ganguly
2018
Multimedia Tools and Applications, Volume 77, Issue 5
Conference
A Novel Approach to E-Voting Using Multi-bit Steganography
Soura Dutta, Xavier Das, Ritam Ganguly & Imon Mukherje
2016
International Conference on Intelligent Computing and Communication (ICIC2), Kolkata, India
Conference
Privacy preserving of two sixteen-segmented image using visual cryptography
Imon Mukherjee & Ritam Ganguly
2015
IEEE International Conference on Research in Computational Intelligence and Communication Networks (ICRCICN), Kolkata, India
Teaching

My courses are structured around active learning, evidence-based study strategies, and frequent low-stakes assessment.

Current semester — Spring 2026
CSE 325
Computer Systems
Covers process and processor management, concurrent processes and threads, memory management, networking protocols, and secure programming methods.
Undergraduate 3 credits 170 students
Previous courses
CSE 325
Computer Systems
Covers process and processor management, concurrent processes and threads, memory management, networking protocols, and secure programming methods.
Undergraduate 3 credits Fall 2025 Spring 2025 Fall 2024
CSE 320
Computer Organizationa and Architecture
Covers boolean algebra, digital logic, data representation, computer architecture, assembly language programming, and the interface between hardware and software.
Undergraduate 3 credits Fall 2025 Summer 2025 Spring 2025 Fall 2024 Summer 2024 Spring 2024 Fall 2023
CSE 260
Discrete Structures in Computer Science
Covers the mathematical foundations of computer science, including logic, sets, relations, and combinatorics essential for advanced CS coursework.
Undergraduate 4 credits Fall 2023 Summer 2023
Teaching tools

Tools I use in my own courses, open to everyone. Each visualizes different Operating System, Computer System algorithms and practices. No account needed.

💬
5 state Process Model
An OS process lifecycle model with five states — New, Ready, Running, Blocked, and Exit — to manage CPU scheduling and execution flow.
Open tool
💬
7 state Process Model
An extension of the 5 — state model adding Suspended-–Ready and Suspended–Blocked states to handle processes swapped out of main memory.
Open tool
✏️
Producer–Consumer Synchronization Problem
A classic concurrency problem where a producer and consumer share a bounded buffer, requiring synchronization to prevent overflow and underflow.
Open tool
✏️
Dining Philosophers Synchronization Problem
A concurrency problem modeling five philosophers sharing forks, used to illustrate deadlock, starvation, and resource allocation challenges.
Open tool
✏️
Reader–Writer Synchronization Problem
A concurrency problem managing shared data access where multiple readers can read simultaneously, but writers require exclusive access.
Open tool
✏️
Pizza Chef Synchronization Problem
A synchronization variant where a chef and customers coordinate ingredient availability and pizza production to avoid race conditions and deadlock.
Open tool
💬
Cache Memory Mapping
The technique of organizing and mapping main memory blocks into faster cache memory using direct mapping strategies.
Open tool
💬
Virtual Memory Mapping
A memory management scheme that maps virtual addresses to physical addresses, enabling processes to use more memory than physically available via paging or segmentation.
Open tool