I am an Assistant Teaching Professor at the Khoury College of Computer Sciences, where I teach both undergraduate and graduate courses in computer science. Please see the Courses Taught section for a brief overview of the courses I teach.
My academic interests lie in software engineering, with a focus on software design, software testing, and software security. In addition to my technical research, I am interested in exploring the pedagogical dimensions of teaching software engineering. My research interests include empirical software engineering, computer science education, and interdisciplinary applications of software engineering in fields such as digital humanities and cheminformatics. Please see the Publications section to know more about my research.
If you are a student at Northeastern University and are interested in collaborating with me, then look at my active projects. If something piques your interest or you have an idea on how to extend the project then contact me at j.mitra@northeastern.edu.
In software engineering, a code smell is defined as a characteristic in the source code that indicates a potential structural flaw that can compromise its maintainability, readability, and long-term flexibility. In software engineering education, teaching students to write code without code smells is a non-trivial challenge as it involves manually reviewing their code and providing constructive feedback. Manual code reviews for large courses do not scale well as they overwhelm the teaching staff, often resulting in incorrect/inconsistent feedback. In this project, we develop an interactive Large Language Model(LLM)-based tool, SmeLLM, to help the teaching staff review code submission by automatically detecting code smells tailored for a specific course. Further, the tool helps the teaching staff generate constructive feedback to help students improve their submission with related examples.
Value Sensitive Design (VSD) is a design methodology that explicitly considers ethical implications throughout the design process. In software engineering, VSD is used to define the requirements of a software system in terms of the values the system is expected to support and the stakeholders who are potentially affected by the system. In this project, we explore how the teaching of VSD can be integrated into software engineering pedagogy.
A web platform to visualize the stories of domestic workers depicted in historical trade cards and post cards produced and exchanged in and across colonial empires. The goal of the project is to provide a platform for historians and the general public to explore and deconstruct the proliferation of racism and sexism through dehumanizing visuals in the age of New Imperialsm, Jim Crow segregation, and the Asian Exclusion.
A repository of benchmarks that capture known vulnerabilities in Android apps.
An evaluation of the effectiveness of Android app security analysis tools in detecting known vulnerabilities.
A tool to measure awareness amongst Android app developers about security-related APIs in Android from StackOverflow discussions.
A tool to predict potential partners for a co-crystal.
An empirical study of the security and privacy of contact tracing apps used during the COVID-19 pandemic. The study was limited to apps in the US on Android.
CS5500 | Currently teaching
This course covers the principles of software engineering. The major topics in the course include the software development lifecycle, design, architecture, testing, security, threat modeling, and continuous integration/deployment. The course is project-based, where students work in teams to design and implement a software system. The course also includes lectures on software engineering research and current trends in the field. Students are expected to read and discuss research papers, apply software engineering principles to their projects, and present their work.
CS 5010 | Currently teaching
A graduate-level course focusing on how to write clean, well-strucutred, well-documented programs. The course covers the principles of programming design paradigms including design patterns. The course is taught in Java. Evaluation is based on programming assignments and group projects.
For a complete list of my publications, please visit my Google Scholar page.
2024-2025
Develop a digital archive for "Race, Gender, and the Visual Culture of Domestic Labor".
2023
Awarded to faculty to develop innovative pedagogical methods.
2019
Awarded to security researchers for making the Android platfom secure.
2018
Awarded for developing a method to automatically predict cocrystals.
Venkatesh-Prasad Ranganath, Google Inc.
Collaborated on developing tools and techniques to secure Android apps.
Prof. Chister Aakeröy, Department of Chemistry Kansas State University
Joint research with Dr. Nandini Sarkar, Senior Scientist at Amgen Inc. on developing tools and algorithms for predicting cocrystals.
Jeff Schiller, Project Manager MIT App Inventor
A visual framework to help novice programmers build Android apps visually through a web interface.
Associate Professor of History, The College of New Jersey
Developed visualization tools and techniques for digital humanities.