Evaluating Secure Programming Knowledge

Abstract. Secure programming is a widely used term for programming robustly. Applying the principles and methodologies of this style of programming would significantly improve the quality of software in use today. Teaching students how to program robustly, or securely, is a first step towards this goal. This paper presents a concept map for secure programming and then some questions used to evaluate students’ knowledge of this subject. These questions have been given both before and after a term of programming, computer security, and other classes that cover this subject. In this paper, we discuss how the questions reveal the students’ understanding of material in the concept map, and what erroneous ideas the questions reveal.

Author: Matt Bishop, Jun Dai, Melissa Dark, Ida Ngambeki, Phillip Nico, and Minghua Zhu
Given at: Tenth World Conference on Information Security Education
Date: May 30, 2017

Corresponding paper

First slide (slide 1)
Last slide (slide 25)
 

Slides in PDF and PS


Slides

Slide 1: Evaluating Secure Programming Knowledge
Slide 2: “Secure” Programming
Slide 3: The Problem
Slide 4: no title
Slide 5: Look at Humanities, Social Sciences
Slide 6: Benefits
Slide 7: How We Do This
Slide 8: Concept Inventory
Slide 9: Concept Inventory Key
Slide 10: Example Question: Handling User Input
Slide 11: Example Question: Handling User Input
Slide 12: Example Question: Indexing Into an Array
Slide 13: Example Question: Indexing Into an Array
Slide 14: Example Question: Handling Missing Data
Slide 15: Example Question: Handling Missing Data
Slide 16: Example Question: Pointer Validation
Slide 17: Example Question: Pointer Validation
Slide 18: Example Question: Input Validation
Slide 19: Example Question: Input Validation
Slide 20: Analysis
Slide 21: Analysis
Slide 22: Conclusion
Slide 23: Weinberg’s Second Law
Slide 24: Thanks To
Slide 25: Presenter