Summer 2016

Table of Contents

Faculty Contact Information  
Course Description  
Course Objectives  
Course Prerequisites  
Course Attendance & Participation Policy  
Software Requirements
Required Course Materials  
Course Schedule and Assignments  
Grading and Exam Policy  
Other Policies and Procedures  

Faculty Contact Information

Dr. Cara Tang    
Office Hours:   By Appointment

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

Return to Table of Contents

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.

Return to Table of Contents

Course Objectives

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

  1. Understand and apply the software development process.

  2. Understand that security has to be a consideration from the point of initial design and throughout the lifecycle of a product

  3. Analyze problems and design structured solutions

  4. Understand, create, and apply simple data types and arrays.

  5. Identify common coding errors such as buffer overflow and integer error that lead to insecure programs 

  6. Create algorithmic solutions using basic control structures (sequence, decisions, loops) and functions.

  7. Understand the importance of input validation and be able to write correct input validation code

  8. Compile, execute, and run simple programs (in C++)

  9. Understand the importance of secure and responsible programming.

  10. Conduct a personal code review (focused on common coding errors) on a program component using a provided checklist

Return to Table of Contents

Course Prerequisites


Return to Table of Contents

Course Attendance and Participation Policy

Student Attendance is not required as this is an online class.

Student Participation: Active participation is expected and encouraged.

Return to Table of Contents

Software Requirements

Return to Table of Contents

Required Course Materials

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

Return to Table of Contents

Tentative Course Schedule



Topics and Content



HW & Labs

0 ASAP 1. You will receive your Towson ID and activation instructions from Dr. Blair Taylor. Follow the instructions to activate your NetID.
2. Please join the GenCyber SPLASH 2016 Facebook Group.
3. Set up the software we will be using, Cloud 9, as instructed above under Software Requirements.
1 M: 6/20
T: 6/21
W: 6/22
R: 6/23
F: 6/24
Course Overview, Introduction, Cybersecurity First Principles
Cloud 9 instructions
Programming Analysis - Defining the Problem    IPO Exercises
Lab 0 due today!
Intro Part 1
Intro Part 2
Software Security 1
Software Security 2

2 M: 6/27
T: 6/28
W: 6/29
R: 6/30
F: 7/1
Data Representation, Numbering Systems       HW1 and Lab1 Due Today
Data Types   Number Systems Exercises 
Operators, arithmetic & logical 
Data HW and Variables Lab Due
Algorithms operator exercises    Ops Lab Due
Data 1
Data 2



Data HW
Variables Lab
Ops Lab
Ops HW
3 M: 7/4
T: 7/5
W: 7/6
R: 7/7
F: 7/8
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 1
Selection 2

Selection 3    
Test Review


SecInj: Int Error
Sel Lab1
Sel Lab2
Sel HW
4 M: 7/11
T: 7/12
W: 7/13
R: 7/14
F: 7/15
Test 1       
Loops - while Loops     
Loop exercises   

Loops - for, while cont'd  
Loop Lab1 Due

Loops 2

Loops 2a


Loop Lab1
Loops HW
5 M: 7/18
T: 7/19
W: 7/20
R: 7/21
F: 7/22
Loops - do while, nested 
Loop Lab2 Due
Files      SecInj: Input Validation Due

Loops HW Due

Loops Quiz       Project Description
Loops 3

8 Loop Lab2
SecInj: Input
File Lab
6 M: 7/25
T: 7/26
W: 7/27
R: 7/28
F: 7/29
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

Solving a large problem Func Exer 3 Solution to First Prob    Func Lab 2 Due   
Func 1
Func 2

Func 3
Func 4
Func Lab1
Func Lab2
Function HW
7 M: 8/1
T: 8/2
W: 8/3
R: 8/4
F: 8/5
Function HW Due     Functions Quiz
Array Exercises
Array Lab1 Due    
Two dimensional arrays    
Arrays 1
Arrays 2
Two Dimensional Arrays
Array Lab 1
Array Lab 2
Array HW
Day of Cyber HW
8 M: 8/8
T: 8/9
W: 8/10
R: 8/11
F: 8/12
Linear & Binary Search   Search Exercises   Array Quiz Review  Array Lab2 Due
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  

Return to Table of Contents

Grading and Exam Policy


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

Return to Table of Contents

 Other Policies and Procedures

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

Academic Honesty


Withdrawals: The withdrawal date can be found at

Accessing Blackboard


Department Resources

Changes to the Syllabus

Return to Table of Contents