Software for Resilient Communities
601.310 (3 credits)

Class Information
Past Years
Class Information

Class Schedule
  • Thursday 4:30-7:00pm, Ames 234

This is a project-based course focusing on the design and implementation of practical software systems. Students will work in small teams to design and develop useful open-source software products that support our communities. Students will be paired with community partners and will aim to develop software that can be used after the course ends to solve real problems facing those partners today. Instructors will connect with the community partners and determine viable project areas prior to the course start. Students will meet with their community partners to analyze the challenges in their project area, agree on a concrete target project outcome, and gather requirements for their project. Based on these requirements, students will design and implement open-source software systems.

Current projects during Spring 2021 semester

Projects for the Spring 2021 semester focus on communities at four levels:

  • Johns Hopkins Community: Semesterly
    Contributors: Mia Boloix, Sebastian Cabrejos, James Wang, Rishibrata Biswas, Jeanie Fung has become widely used at Hopkins as a course planner, but it has the potential to do more in the arena of course planning. We extend the app to better support the advising process between students and their academic advisors, as well as to enable schedule sharing and brainstorming between students and their friends.

  • Regional Community: Health Coalition
    Contributors: Abigail Rehmet, Caroline Hoerrner, Elijah Eaton, Melody Hsu, Sam Horrigan

    The Near Southwest Preparedness Alliance (NSPA) is a Virginia-based healthcare coalition serving about one million people with membership that includes hospitals, long-term care facilities, public health, emergency management, and more, coordinating partner response activities during disasters. We create a web-based online tracking system that allows easy online submission of requests by coalition members and intuitive tracking and management for NSPA staff.

  • State-level Community: Ballot Curing
    Contributors: Isaac Frumkin, Nicholas Bowen, Brice Halder, Andrew Zhang

    Absentee ballot rejection is the act of "throwing out" votes due to some sort of error with the ballot. Potential issues include invalid or missing signature, ID or address discrepancy, and being registered in the wrong county. We build a tracking system that would help contacting the people with the erroneous ballots so they fix them on time, enabling their votes to be counted.

  • US Community: Power Grid
    Contributors: Megan Rosen, Valentina Alzate, Caroline Reynolds, Ben Cillie, Daniel Weber

    As control systems for the power grid migrate to Internet Protocol (IP) technology, they open the door for malicious attackers to compromise our power grid. These attacks greatly intensified over the last few years. We help prepare the Spire system, an intrusion-tolerant SCADA for the power grid, to withstand sophisticated red team attacks on the infrastructure. We develop attack vectors and mitigating mechanisms toward a more resilient grid.

Past Years

Projects for the Spring 2018 semester (pilot offering) focus on communities at four levels:

  • Johns Hopkins University Community: improving the registration process and facilitating communication between students and advisors regarding course scheduling, working with the team and the JHU registrar.

  • Reservoir Hill Neighborhood Community: enabling self-service discovery and scheduling of community center resources via a web-based calendar and scheduling system, working with the St. Francis Neighborhood Center.

  • Baltimore City Community: providing visibility into city park usage patterns by analyzing camera data to answer questions about how many people are visiting the parks and when, working with the Parks & People Foundation.

  • US Community: improving the resilience of the power grid through secure and intrusion-tolerant open-source SCADA systems

Academic Integrity

Academic Honesty and Ethical behavior are required in this course, as it is in all courses at Johns Hopkins University. This course will strictly enforce the Computer Science Department Academic Integrity policy which can be found at the department's web page.

Department of Computer Science The Johns Hopkins University
Questions or comments to:
webmaster (at)
TEL: (410) 516-5562
FAX: (410) 516-6134
Distributed Systems and Networks Lab
Computer Science Department
Johns Hopkins University
3400 N. Charles Street Baltimore, MD 21218-2686