Kevin Gallagher's Website


This site serves as the personal page of Kevin Gallagher, an Invited Assistant Professor at Instituto Superior Técnico, Universidade de Lisboa.


Current Projects



Email me at kevin.gallagher [at]!


Teaching is one of my passions. During my time at New York University Tandon School of Engineering I taught 7 sections of classes, amounting to over 500 students.


Students learn best when they are comfortable and engaged. For this reason I use a flipped classroom approach whenever possible. However, in recent semesters I have been unable to work in a flipped classroom setting due to the amount of students in my online classes. For these semesters I have focused on creating captivating lecture content and still encouraging interaction when feasable.

Online Teaching

During the pandemic I have learned how to use technology efficiently to create as close to an in-person experience as I can. I have built my own home studio complete with semi-professional lighting, a green screen, a camera, and a professional grade microphone to deliver high quality video to my students.

Assignments and Labs

I believe that people learn best by doing. That’s why I take an assignment focused approach in my classes. Both classes I teach include programming assignments focused around security, and one of my classes includes many labs that teach students how to use some security technologies and perform attacks and defenses hands-on. To see the assignments I have developed, please view the assignments page.


At Instituto Superior Técnico I have taught two courses: the practical labs of the Highly Dependable Systems course, and the entirety of the Advanced topics in Parallel and Distributed Computing course. During my time at New York University Tandon School of Engineering I taught two courses: Information Security and Privacy and Application Security.

Highly Dependable Systems

The Highly Dependable Systems course addresses the security and fault-tolerant aspects of system design, including recent advancements in the areas of blockchain and trustworthy computing. The lab component of this is comprised of practical, hands-on exersizes and projects that help students take the lessons they learned of applied cryptography, consensus, and more, and apply them to practice real world skills.

Advanced Topics in Parallel and Distributed Computing: Decentralization

In the Advanced Topics in Parallel and Distributed Computing class I focused on the security and privacy approaches and challenges of decentralization. In this PhD level course I took a flipped classroom approach and tasked students with presenting and reviewing cutting-edge research in the areas of decentralized systems and security and privacy. Students were graded based on their presentations, their reviews of the papers, and their participation in class discussions. This approach allowed the PhD students to bootstrap knowledge in the area of Blockchain rapidly, to be ready to perform research in this area, and to learn important skills for an academic: paper reviewing, presentation, and choosing research problems.

Information Security and Privacy

The Information Security and Privacy (ISP) course at NYU Tandon is an introduction to the basic concepts, definitions, and technologies in the areas of Information Security and Privacy. This include foundations such as access control, basic information about cryptographic primatives (hashing, asymmetric and symmetric cryptography, etc.) security design principles, threat modeling, privacy, and more. For more information, please see the syllabus.

Application Security

The Application Security course at NYU Tandon teaches about the vulnerabilities typically found in modern applications and focuses on the technologies and techniques used to defend them. This course is programming focused, and includes four assignments in which students must fix broken and poorly written code to patch vulnerabilities. Through these assignments and the course lectures students learn how to write safe and secure code, how to use tools such as fuzzers, CI/CD systems, cloud deployment systems, web development frameworks, database encryption tools, and more to secure applications they write in the future. For more information, please see the syllabus.