SY301 Data Structures for Cyber Operations
Course Policy, Fall AY17
Coordinator: Assoc. Prof. Dan Roche, x3-6814, roche@usna.edu
Course Description: This course will cover the usual Data Structures topics, with a focus on cyber-operations. Students will learn how complex data are represented in computer programs and how the implementation/interface distinction helps enable it. They will learn the most common abstract data types and the standard implementations of them. They will explore how complexity in representation enables more sophisticated software, but also creates complex vulnerabilities. Examples will segue into the Web and Database course.
Learning Objectives:
  1. Be able to perform complex programming tasks (supports Student Outcomes b, c, and i)
  2. Understand the fundamentals of algorithm analysis (supports Student Outcomes a and b)
  3. Recognize and apply the canonical ADTs (Lists, Queues, Stacks, Trees, Priority Queues, Maps, and Graphs) appropriate for solving a problem (supports Student Outcomes a, b, and i)
  4. Demonstrate the ability to implement the canonical ADTs with arrays, linked lists, binary trees, hash tables, balanced, trees, and other similar structures (supports Student Outcomes a, b, and c)
  5. Be proficient in defining and coding recursive algorithms, including recognizing when recursive solutions are appropriate (supports Student Outcomes a, b, c, and i)
  6. Understand the role of algorithmic complexity and data structure choices in the cyber domain, and understand the ramifications of different data structures (supports Student Outcomes a, b, c, and i)
Student Outcomes:
(a) An ability to apply knowledge of computing and mathematics appropriate to the program’s student outcomes and to the discipline
(b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
(c) An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs
(d) An ability to function effectively on teams to accomplish a common goal
(e) An understanding of professional, ethical, legal, security, and social issues and responsibilities
(f) An ability to communicate effectively with a range of audiences
(g) An ability to analyze the local and global impact of computing on individuals, organizations and society
(h) Recognition of the need for, and an ability to engage in, continuing professional development
(i) An ability to use current techniques, skills, and tools necessary for computing practices
Course Website: The course website can be found at www.usna.edu/cs/roche/301/. Students are responsible for all material and assignments posted on the webpage, whether or not they are mentioned explicitly mentioned in class.
Textbook(s): (none required)
Extra Instruction: Extra instruction (EI) is strongly encouraged and should be scheduled by email with the instructor. EI is not a substitute lecture; students should come prepared with specific questions or problems.
Collaboration: The guidance in the Honor Concept of the Brigade of Midshipmen and the Computer Science Department Honor Policy must be followed at all times. See www.usna.edu/CS/resources/honor.php. Specific instructions for this course:
All collaboration and outside sources should always be cited. The same rules apply for giving and receiving assistance. If you are unsure whether a certain kind of assistance or collaboration is permitted, you should assume it is not, work individually, and seek clarification from your instructor.
Classroom Conduct: The section leader will record attendance and bring the class to attention at the beginning and end of each class. If the instructor is late more than 5 minutes, the section leader will keep the class in place and report to the Computer Science department office. If the instructor is absent, the section leader will direct the class. Drinks are permitted, but they must be in reclosable containers. Food, alcohol, smoking, smokeless tobacco products, and electronic cigarettes are all prohibited. Cell phones must be silent during class.
Late Policy: Penalties for late submission of graded work may vary among courses or from semester to semester, but they will be the same for all sections of a given course. For this course:
Grading: Grades will be calculated as follows, with one exception: All assigned work must be completed to a satisfactory level of effort in order to pass the class. That is, any assigned homework, lab, or project must be turned in - even if late and for zero credit - in order to earn a passing grade in the course. The definition of "satisfactory level of effort" is at the discretion of the instructor, but generally means a C- level.
6 weeks 12 weeks 16 weeks Final
Homework and Quizzes 5% 5% 5% 5%
Labs 20% 20% 20% 20%
Projects 35% 35% 35% 35%
Midterm Exams 40% 40% 40% 20%
Final Exam 0% 0% 0% 20%
Total 100% 100% 100% 100%