of the Secure Program Design Education Tool will be
discussed. Experimental results will be given in
section VI and conclusions will be presented in
section VII.
2 COMP 280 DATA
STRUCTURES
Comp 280 Data Structures is a required course for
undergraduate students who’s major is computer
science. This course takes students that have
completed, as a prerequisite, a foundational
programming class to the next level of learning data
structures. The course examines essential data
structures (linked lists, stacks, queues, trees, balanced
search trees, hash tables, and binary heap). It analyzes
and implements techniques such as sorting,
searching, and use of STL data structures (set, map,
priority queue, stack, queue, vector, list) to solve
general problems. The emphasis of the course is on
building computer programs that implement essential
data structures, and more importantly learn how and
when to use them. The students journey through the
thought process of programming efficiency and
effectiveness in order to handle problems like the
speed of data retrieval, storage and management.
Further, they gain experience with performing the
presentation and discussion of their design logic; and
handle questions and feedback from their peers. In
order to enhance a students’ knowledge in secure
programming developement, we taught the
Introduction to Secure Program Design module in
COMP 280 Data Structures class. We also developed
a Secure Program Design Education Tool to help
students understand related topics.
3 OBJECTIVE AND GOALS
Designing and implementing secure software is a
very critical issue in today’s society. This results in
many new requirements for software developers. In
order to prepare our students for the expectations of
the Cybersecurity workforce and for them to
effectively learn secure software design, we
developed a Secure Program Design Education Tool
for the Data Structures computer science class to
achieve this goal. Objectively this tool will provide
students a visual interactive tutorial, step by step
demonstrations on how input flaws and buffer
overflow occur, and how to prevent them, to help
students grasp an improves understanding of related
topics and developing secure software. This tool was
designed for undergraduate Data Structures course
and can be used by another courses or lectures
involved with security topics. After utilizing this tool,
students should understand how input flaws and
buffer overflow occur, and how to prevent them by
writing secure code.
4 DESIGN CONSIDERATIONS
The design considerations of Secure Program Design
Education Tool are visually simplistic, user friendly
and interactive, consistent and platform
independence. It is implemented with JavaFX.
4.1 Visually Simplistic
Visualization is an effective technique to help
students understand a subject matter of importance.
Visually simplistic is necessary for an education tool
because it can provide an easy way to help students
understand the effects of these vulnerabilities. In this
tool Java swing GUI widget toolkit is used to allow
students to input data and display results. In this way,
students can immediately see the results of inputting
invalid data or writing data over a boundary, and learn
input flaws and buffer overflow.
4.2 User Friendly and Interactive
User friendly and interactive is another important
consideration to design the tool and make it easy for
students to use it. On the input flaws demonstration
page, there are several demo buttons to allow students
to learn the different results of correct input, incorrect
input and invalid input as shown in Figure 1. Students
can click buttons to move to the next page or go back
to the previous page.
Students can try to input various data by
themselves in unsecure program and secure program.
The tool will generate different results based on their
inputs. Figure 2 is the screen that shows how unsecure
program leads to input flaws. Although a correct input
is a positive integer, a user can input a character, or
negative number in a unsecure program. In these
pages, users can still move to other pages at any time.
Once a user inputs data the result will be displayed on
the screen.
4.3 Consistent
Consistent means that after the users have explored
one page of the application, they can quickly know