SPLASH Syllabus

Faculty Contact Information
Faculty Office Hours Email
Dr. Cara Tang By Appointment ctang@towson.edu or cara.tang@pcc.edu

Email is the best way to contact me. Posting and answering questions on the Facebook Group,  GenCyber SPLASH 2017, is encouraged. Virtual appointments are welcome for live interaction – email me to set up a time.

Course Description

This is an introductory course in structured programming logic. Students will learn to analyze problems; define data using simple data types and arrays; and create algorithmic solutions using basic control structures (sequence, selections, loops) and functions.  Successful completion of this course will satisfy the programming prerequisite for COSC236.

In this course, you will learn to systematically break down a problem into manageable parts; plan and design logical solutions; and write effective, structured, and well-documented instructions. Emphasis will be on problem-solving approaches (algorithms) and the fundamental concepts and programming techniques common to modern computer languages including variable assignment, expressions, input/output statements, loops, if-then-else and case constructs, functions, arrays, etc. While C++ will be used to build working programs, the concepts learned in this course are applicable to multiple modern programming languages.

Course Objectives

Upon successful completion of this course, students will be able to:

  1. Understand that security has to be a consideration from the point of initial design and throughout the lifecycle of a product
  2. Analyze problems and design structured solutions
  3. Understand, create, and apply simple data types and arrays
  4. Identify common coding errors such as buffer overflow and integer error that lead to insecure programs
  5. Create algorithmic solutions using basic control structures (sequence, decisions, loops) and functions
  6. Understand the importance of input validation and be able to write correct input validation code
  7. Compile, execute, and run simple programs (in C++)
  8. Understand the importance of secure and responsible programming
  9. Conduct a personal code review (focused on common coding errors) on a program component using a provided checklist
Course Prerequisites

None

Course Attendance and Participation Policy

Student attendance is not required as this is an online class.  However, active participation is expected and encouraged.

Software Requirements
  • We will be using C++ for the labs, and the Cloud 9 development environment. See the instructions for using C++ in Cloud 9, a free online environment.
  • Submit all homework and labs using the submit feature in Blackboard.
Course Materials

An Introduction to Programming with C++ by Diane Zak,Thompson Course Technology, recommended but not required.

Summer Schedule

Wk

Date

Topics and Content

Videos Text

HW & Labs

0 ASAP 1. You will receive your Towson ID and activation instructions from the SPLASH team. Follow the instructions to activate your NetID.
2. Please join the GenCyber SPLASH 2017 Facebook Group.
3. Set up the software we will be using, Cloud 9, as instructed above under Software Requirements.
1 M: 6/12
T: 6/13
W: 6/14
R: 6/15
F: 6/16
Course Overview, Introduction, Cybersecurity First Principles
Programming Analysis – Defining the Problem 
IPO Exercises
Lab 0 Due Today
SecInj: Social Networking Security Due
Introduction (7 parts)
Software Security (2 parts)

1

 

2

Lab0
SecInj: Soc Netwk
SecInj: SDLC 

HW1
2 M: 6/19
T: 6/20
W: 6/21
R: 6/22
F: 6/23
Data Representation, Numbering Systems     HW1 and SecInj: SDLC Due 
Data Types   Number Systems Exercises
Operators, arithmetic & logical 
Data HW and Variables Lab Due 
Algorithms operator exercises    Ops Lab Due
Data (11 parts)
Operators (9 parts)
3

4
Data HW
Variables Lab
Ops Lab
Ops HW
3 M: 6/26
T: 6/27
W: 6/28
R: 6/29
F: 6/30
Ops HW Due
Selection  – if/else                   Select exercise        
Selection – switch      Sel Lab1, Sel Lab2 Due
SecInj: Int Error Due
Test 1 Review      Sel HW Due  
Selection (6 parts)
Test Review (5 parts)
56 Sel Lab1
Sel Lab2
SecInj: Int Error 

Sel HW
4 M: 7/3
T: 7/4
W: 7/5
R: 7/6
F: 7/7
Test 1
Loops – while Loops
Loop exercises   

Loops – for, while cont’d
Loop Lab1 Due
Loops (12 parts)
Old Videos:
Loops
    Loops 2

    Loops 2a

7
Loop Lab1 
Loops HW
5 M: 7/10
T: 7/11
W: 7/12
R: 7/13
F: 7/14
Loops – do while, nested  
Loop Lab2 Due
Files      SecInj: Input Validation Due 

Loops HW Due

Loops Quiz       Project Description
Loops (12 parts) – finish watching 
Files (5 parts)Projects
8 Loop Lab2
SecInj: Input
File Lab
6 M: 7/17
T: 7/18
W: 7/19
R: 7/20
F: 7/21
Functions – void functions, parameters       File Lab Due 
Func Table    Func Exer1    Parameter Practice
Value returning functions, pass by value, pass by reference   Func Lab 1 Due 
Project Proposal Due   Cybersecurity Principle: Modularity
Solving a large problem Func Ex 3 First Prob   SecInj: Data Hiding Due
 
Func 1
Func 2

Func 3
Func 4
9 Func Lab1
SecInj: Data Hiding 

Function HW
7 M: 7/24
T: 7/25
W: 7/26
R: 7/27
F: 7/28
Function HW Due     Functions Quiz 
Arrays
Array Exercises
Array Lab1 Due
Two dimensional arrays    
Arrays 1
Arrays 2
Two Dimensional Arrays
10
11
12
Array Lab 1 
Array HW 
Day of Cyber HW
8 M: 7/31
T: 8/1
W: 8/2
R: 8/3
F: 8/4
Linear & Binary Search   Search Exercises   Array Quiz Review 
SecInj: Buffer Overflow Due, Array HW Due  
Arrays Quiz    Day of Cyber HW Due
Final Exam Review  Post-Survey    Final Project Due
Final Exam
Search SecInj: Buf Ovrflw

Fall Schedule

Wk Date Assignments Due Topics and Content Videos Text HW & Labs
0 ASAP 1. You will receive your Towson ID and activation instructions from the SPLASH team. Follow the instructions to activate your NetID.
2. Please join the SPLASH Fall 2017 Facebook Group.
3. Set up the software we will be using, Cloud 9, as instructed above under Software Requirements.
1 M: 9/18
T: 9/19
W: 9/20
R: 9/21
F: 9/22
Lab 0 Due Today Course Overview
Introduction
Cybersecurity First Principles
Introduction – parts 1-5 1 Lab0
SecInj: Soc Netwk
2 M: 9/25
T: 9/26
W: 9/27
R: 9/28
F: 9/29

SecInj: Soc Netwrk Due

 

SecInj: SDLC Due

Programming Analysis
Defining the Problem
IPO Exercises
Introduction – parts 6-7
Software Security (2 parts)
2 SecInj: SDLC
HW1
3 M: 10/2
T: 10/3
W: 10/4
R: 10/5
F: 10/6

HW1 Due

 

Data HW Due

Variables Lab Due

Data Representation
Numbering Systems
Data Types
Number Systems Exercises
Data (11 parts) 3 Variables Lab
Data HW
4 M: 10/9
T: 10/10
W: 10/11
R: 10/12
F: 10/13
Ops Lab Due Operators – arithmetic & logical
Algorithms
Operator exercises
Operators (9 parts) 4 Ops Lab
Ops HW
5 M: 10/16
T: 10/17
W: 10/18
R: 10/19
F: 10/20

Ops HW Due

 

SecInj: Int Error Due

Sel Lab1 Due

Selection – if/else
Select exercise
Selection – parts 1-4 5 SecInj: Int Error
Sel Lab1
6 M: 10/23
T: 10/24
W: 10/25
R: 10/26
F: 10/27
Sel Lab2 Due Selection – switch
Midterm Exam Review
Selection – parts 5-6
Midterm Review (5 parts)
6 Sel Lab2
Sel HW
7 M: 10/30
T: 10/31
W: 11/1
R: 11/2
F: 11/3

Sel HW Due

 

Loop Lab1 Due

Loops – while loops
Loop exercises
Loops – for loops
Loops – parts 1-6 7 Loop Lab1
Loop Lab2
8 M: 11/6
T: 11/7
W: 11/8
R: 11/9
F: 11/10
Midterm Exam (open Nov 5-6)
Loop Lab2 DueSecInj: Input Validation Due
Loops – do while, nested Loops – parts 7-12 8 SecInj: Input
Loops HW
9 M: 11/13
T: 11/14
W: 11/15
R: 11/16
F: 11/17
Loops HW DueFile Lab Due
Loops Quiz (open Nov 17-18)
Files Files (5 parts) 14 File Lab
Final Project
10 M: 11/20
T: 11/21
W: 11/22
R: 11/23
F: 11/24
Functions – void functions
Parameters
Func Table
Func Exer1
Parameter Practice
Functions – parts 1-2 9
10
Func Lab1
SecInj: Data Hiding
11 M: 11/27
T: 11/28
W: 11/29
R: 11/30
F: 12/1

Func Lab 1 Due

 

SecInj: Data Hiding Due

Function HW Due

Value returning functions
Pass by value, Pass by reference
Cybersecurity Principle: Modularity
Solving a large problem
Func Ex 3First Prob
Functions – parts 3-4 9
10
Function HW
12 M: 12/4
T: 12/5
W: 12/6
R: 12/7
F: 12/8

Functions Quiz (open Dec 3-4)

 

Array Lab1 Due

Arrays
Array Exercises
Arrays – parts 1-2 11 Array Lab 1
13 M: 12/11
T: 12/12
W: 12/13
R: 12/14
F: 12/15
Project Proposal DueArray HW Due Two dimensional arrays Arrays – part 3 12 Array HW
Dec 18 – 24 Vacation
Dec 25 – 31 Vacation
Jan 1 – 7 Vacation
14 M: 1/8
T: 1/9
W: 1/10
R: 1/11
F: 1/12
SecInj: Buf Ovrflw DueArrays Quiz (open Jan 12-13) Linear & Binary Search
Search Exercises
Array Quiz Review
Search (1 part) SecInj: Buf Ovrflw
Day of Cyber HW
15 M: 1/15
T: 1/16
W: 1/17
R: 1/18
F: 1/19

Day of Cyber HW Due

 

Final Project Due
Final Exam (open Jan 19-20)

Review
Final Exam Review
Post-Survey

 

 

 

 

Grading and Exam Policy

Submission 

  • All homework and lab assignments are submitted via Blackboard.

Homework Assignments

  • No late homework will be accepted.
  • Students are strongly encouraged to work in pairs for homework whenever possible. Each student is responsible for submitting the homework, with or without their partner.

Lab Assignments

  • No late labs will be accepted.
  • Students are strongly encouraged to work in pairs for all lab work. One student should drive (type) and one student navigate (read and review). Switch roles often.

Tests, Quizzes, and Exams

  • If you miss a test or quiz, you must notify me within 24 hours, or your grade will be 0.
    • All tests are open book, open notes.

Make-up Exam Policy

  • Make-up exams will be permitted only under extenuating circumstances and only with prior notification and documentation (original funeral notice, original doctor note, etc.).
  • The instructor reserves the right to create alternate make-up exams for students who are not able to take the scheduled exams.
  • Exams cannot be made up after the exam date has passed unless prior arrangements have been made.

View your Grades

  • All grades will be available in Blackboard. View “My Grades” from the course homepage.
    • Check your grades! Any corrections must be reported and resolved prior to the last day of classes.

How your Grade will be Determined

Assessment

Homework & Labs & Project  250 (25%)
Test 1 200 (20%)
Three quizzes 300 (30%)
Final Exam 250 (25%)
Total 1000

Grading Scale

Grade Percentage
A 93-100+%
A- 90-92.99%
B+ 87-89.99%
B 83-86.99%
B- 80-82.99%
C+ 77-79.99%
C 70-76.99%
D+ 67-69.99%
D 60-66.99%
F Below 60
Other Policies and Procedures

Special Needs – Students having special needs as defined by the Americans with Disabilities Act should:

  • Notify the Office for Students with Disabilities as early in the term as possible.
  • Notify the instructor after you have contacted the Office of Disability Services of any reasonable accommodations that would be appropriate for your situation.

Academic Honesty

  • Each student’s academic work must be the result of his or her own thought, research, or self-expression.
  • Cheating includes, but is not limited to: copying the work of another person (plagiarism) or permitting your work to be copied by another person, discussing test answers or questions with people who have not completed the test, distributing assignment materials to other students, posting course materials that have not been formally released to students in the course, and collaborating on the completion of assignments not specifically designated in the syllabus as being group projects”.
  • Please  refer to the Undergraduate Catalog, Appendix F for the Academic Integrity Policy. Cheating  may result in academic penalties (zero points on the assignment/test in question, a failing grade for the course), disciplinary action, and/or a referral to the Dean of Student Affairs. Examples 1) If it appears that two or more students have submitted the same material for any solo assignments, each student involved will receive zero points for that assignment. 2) If it appears that a student has copied an assignment from published material (including Internet sites), the student will receive zero points for that assignment.

Copyright

  • The materials used on this course Web site may be protected by copyright and are only for the use of students enrolled in this course for the purposes associated with this course and may not be retained or further disseminated.

Withdrawals: The withdrawal date can be found at http://www.towson.edu/registrar/calendars/

Accessing Blackboard

Facebook

  • You are welcome to join the Facebook group especially created for this class: GenCyber SPLASH 2017
  • This group allows you to connect with classmates, post and answer questions, or discuss topics relevant to the course.

Department Resources

Changes to the Syllabus

  • The instructor reserves the right to make changes to this syllabus.

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.