Towson UniversityCOSC175
Fall 2017

Table of Contents

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

Faculty Contact Information

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

Email is the best way to contact me. Posting and answering questions on the Facebook Group, SPLASH Fall 2017, 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

None

Return to Table of Contents

Course Attendance and Participation Policy

Attendance is not required as this is an online class.
Active participation is expected and encouraged.

Return to Table of Contents

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.

Return to Table of Contents

Course Materials

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

Return to Table of Contents

Tentative Course 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 Due

SecInj: 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 Due

File 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 3, First 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)



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




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
Array Lab1 Due


SecInj: Buf Ovrflw Due
Array HW Due
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
Arrays Quiz (open Jan 13-15)

Project Proposal Due

Final Exam (open Jan 19-21)
Review
Final Exam Review
 
16 M: 1/22
T: 1/23
W: 1/24
R: 1/25
F: 1/26
Day of Cyber HW Due (Extra Credit)



Final Project Due
 

Return to Table of Contents

Grading and Exam Policy

Assessment

Homework & Labs & Project 250 (25%)
Midterm Exam 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

Copyright

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

Accessing Blackboard

Facebook

Department Resources

Changes to the Syllabus

Return to Table of Contents