This is the archived website of SY 301 from the Fall 2016 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.

Course Policy Statement

(Print-friendly version)

1 Coordinator

Assoc. Prof. Dan Roche, x3-6814, roche@usna.edu

2 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.

3 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)

4 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

5 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.

6 Textbook(s)

(none required)

7 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.

8 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:
  • Homework: Students may collaborate with others in the same class, and may use any static online source. Receiving help from other students (other than MGSP leaders), or posting questions in online help forums, is not permitted. Any help received from any source must be clearly documented and turned in. All actual work (coding, pen-to-paper, etc.) must be done individually; direct copying is never acceptable for credit. Students are expected to understand completely anything turned in for credit.
  • Labs: Students may receive help from others in the same class, and may use any static online source. Receiving help from other students (other than MGSP leaders), or posting questions in online help forums, is not permitted. Any help received from any source must be clearly documented and turned in. All actual work (coding, pen-to-paper, etc.) must be done individually; direct copying is never acceptable for credit. Students are required to understand completely anything turned in for credit.
  • Projects: No collaboration or (unless found on the course website) online assistance is permitted. Students may verbally discuss the project with other students in the same class, for the sole purpose of understanding the instructions; these discussions may never touch on how to actually complete the project. Any student may request to make use of some other online resource, but may only do so if the specific website is approved by the instructor.
  • Quizzes and Exams: No collaboration or resources of any kind allowed, unless explicitly stated.
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.

9 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.

10 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:
  • No late work will be accepted, except under extraordinary circumstances as approved by the instructor. Students on movement orders or otherwise not present when work is due are expected to ensure their work is nonetheless handed in on time.

11 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%