SPLASH

SPLASH is an introductory programming logic course that prepares high school students to begin programming in any language.

Students receive 4 college credits upon successful completion.

Our Goals

Increase the interest and participation of young women, who are severely underrepresented in computer science, to computing and cybersecurity majors.

Prepare young women for college majors such as computer science, information science, cybersecurity, and engineering.

Introduce young women to secure programming.

Course Syllabus

Class Videos

FAQ

FAQ
Building a secure foundation

SPLASH introduces secure coding from the first programming course to ensure that students learn secure and responsible coding. The SPLASH program includes security modules from Security Injections to introduce concepts

Introductory Concepts

– Integer Error

– Input Validation

– Buffer Overflow

– Software Development Life Cycle

– Best Practices for Secure Variables

– Encapsulation

– Data Hiding

– Exception Handling

Web Development & Databases

– Cross-Site Scripting (XSS)

– SQL Injection

Networking & Other Modules

– Wi-Fi

– Man in the Middle Attack

– Security Trade-offs

– Beware of Input Buffer Misbehavior

– Industrial Control Systems

– Mobile Risk Management

A Comprehensive Overview

Completing the SPLASH course equips students with essential skills in C++ programming, including secure coding practices and algorithmic problem-solving techniques. Students will be able to create and execute programs, analyze problems, and design structured solutions using basic control structures and data types.

Understand and apply the software development process

Students will learn the phases of the software development process and should be able to effectively manage projects, collaborate within teams, and deliver high-quality software solutions that meet user needs and industry standards.

Analyze problems and design structured solutions

Students will learn to break down complex problems into manageable components, identify patterns, and formulate logical solutions. Students should be able to identify key problem elements, apply structured solutions, and design adaptive strategies to address various challenges within different fields.

Understand, create, and apply simple data types and arrays

Students should be proficient in declaring variables of different data types, initializing arrays, accessing and modifying array elements, and employing arrays to solve various programming challenges.

Create algorithmic solutions using basic control structures

Students will learn to develop algorithmic solutions with fundamental control structures such as loops, conditionals, and functions. Students should be able to construct algorithmic solutions, applying basic control structures effectively to solve computational problems.

Compile, execute, and run simple programs in C++

Students will learn how to transform human-readable C++ code into machine-readable instructions using a compiler, execute the compiled program, and observe its output. Students should be able to write, compile, and run basic C++ programs.

Understand the importance of secure programming

Students will learn the importance of secure programming in today’s digital landscape to mitigate cybersecurity risks and protect sensitive data from unauthorized access or manipulation. Students should be able to identify common vulnerabilities, implement secure coding techniques, and contribute to building robust and resilient software systems.

We are always looking  for support from private, corporate, or government sources to continue this important initiative. Contact Dr. Siddharth Kaza, or Ms. Claire Keaton (Towson University Admissions).

NEED NEW GRANT CODES: The Security Injections@Towson, SPLASH@Towson, and Cyber4All projects are supported by the National Science Foundation under grants NSF DUE-1241738,  NSF DUE -0817267, NSF DGE-1516113, NSF DGE-1516113, NSF DGE-1241649, the GenCyber program, and the Intel Corporation.