Faculty Contact Information
Faculty | Office Hours | |
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:
- Understand that security has to be a consideration from the point of initial design and throughout the lifecycle of a product
- Analyze problems and design structured solutions
- Understand, create, and apply simple data types and arrays
- Identify common coding errors such as buffer overflow and integer error that lead to insecure programs
- Create algorithmic solutions using basic control structures (sequence, decisions, loops) and functions
- Understand the importance of input validation and be able to write correct input validation code
- Compile, execute, and run simple programs (in C++)
- Understand the importance of secure and responsible programming
- 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 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)
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 |
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
- https://blackboard.towson.edu
- You can access the syllabus directly at: http://spot.pcc.edu/~ctang/splash/175syllsu17.htm
- 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
- Visit the department web page at : http://cis1.towson.edu/~cisweb
- Resources are available for COSC students. See Student Resources
Changes to the Syllabus
- The instructor reserves the right to make changes to this syllabus.