SI221 - Data Structures

Course Policy, Fall AY21

Coordinator

CAPT Rick Sarmento, USN • 410-293-6810 • HP453 • sarmento@usna.edu

Course Description

This course examines abstract data types (ADT), data structures, data representation, and information management including storage structures, allocation and collection. ADTs and data structures presented include lists, stacks, queues, trees, heaps, priority queues, maps, dictionaries, and graphs. Sorting and searching techniques, hashing and graph algorithm analysis are also covered. This course is intended for non-majors. Prereq: SI204

Learning Objectives

Upon completing this course, students should be able to:

  1. Understand the fundamentals of time analysis with data structures, such as Big-O.
  2. Possess an understanding of the more difficult concepts in C++ such as abstraction and the idea of separation of implementation and interface.
  3. Given a problem specification, recognize and apply the canonical ADTs (such as Lists, Queues, Stacks, and Trees) appropriate for solving the problem or designing a computer-based system that meets the desired specifications.
  4. Demonstrate the ability to design, describe and implement the canonical ADTs with: arrays, linked lists, binary trees, and other similar structures.
  5. Be proficient in defining and coding recursive algorithms, including recognizing when recursive solutions are appropriate.
  6. Be able to code in an ethical, professional and technical manner across all course topics.

Textbooks

The course is self-contained, all necessary notes and assignments will be available on the course website. If however you wish to purchase a textbook as an additional reference, Michael Main and Walter Savitch, Data Structures and Other Objects Using C++, 4th Edition, Pearson, 2010 is highly recommended and would be a good additional resource for this class.

Schedule of Topics

The course will be covering the following topics, in the order below. See the course calendar for details.

  • Software Development Phases
  • Scope and Lifetime
  • Abstract Data Types
  • Classes
  • Constructors and Destructors
  • Friend and Const and more Constructors
  • Static Members and Nested Classes
  • Stacks
  • Recursion with Stacks
  • Intro to Queues
  • Implementing Queues
  • Creating a List ADT
  • Intro to Templates
  • Programming with Templates
  • Function Objects
  • The Standard Template Library (STL)
  • Intro to Trees
  • Tree Traversals
  • Priority Queues and Heaps
  • Analysis of Algorithm I
  • Analysis of Algorithm II
  • 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:

    When permitted, all assistance, collaboration, and resources must be documented. Midshipmen must clearly state on their assignment what resource(s) they used, with whom they collaborated, or from whom they obtained assistance. 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.

    Any cheating will result in, at a minimum, a zero for the assignment, quiz, lab, or exam in question. All Honor Offenses will be reported to the Honor Board.

    Classroom Conduct

    Section Leader: The section leader will record attendance and bring the students to attention at the beginning and end of each class/lab period. If the instructor is late more than 5 minutes, the section leader will keep the students in place and report to the Computer Science department office. If the instructor is absent, the section leader will direct the students in productive review of course material.

    Food & Drink: Drinks are permitted, but they must be in sealed containers. Food, alcohol, smoking, smokeless tobacco products, and electronic cigarettes are all prohibited.

    Remote learning: When attending class remotely MIDN are to dress appropriately in accordance with MIDREGs. Students should not "multitask" with activities that are not related to class. Further, unless instructed otherwise, MIDN will keep their cameras ON during class.

    Mobile Phones & Smart Watches: Mobile phones must be silent (preferably off) and put away during class/lab/exams. Their use is prohibited. Any use of a smart watch during class/lab/exams to access functions normally associated with a mobile phone is also prohibited. Any use of a mobile phone or smart watch during a quiz or exam will be treated as an Honor Offense for cheating (see above). Any mobile phone or smart watch found in violation of this policy will be confiscated and turned into your Company Officer.

    Laptops, tablets, & computers: When using laptops, tablets, or computers during class/lab, students are prohibited from viewing any material that is not directly related to the course. Unless otherwise stated by the instructor and for a specific purpose, laptops and tablets are not allowed in the classroom/lab.

    Late Assignments

    All assignments will have specified due dates/times, and any assignment turned-in after the specified due date/time will be considered late. Amplified details below.

    Homework: Homework assignments will be due at the beginning of the class following the assignment. Late homework assignments are given zero credit for grading purposes without an excused absence or prearranged coordination with the instructor.

    Labs: Lab assignments will be due at 2359 the night preceding the next lab and will be submitted electronically. Late lab assignments are given zero credit for grading purposes without prearranged coordination with the instructor.

    Projects: Late submissions incur a penalty of 3N points, where N is the number of days late, rounded up to the nearest whole day. One second late will be considered equivalent to one day late.

    Extensions to due dates/times are available on a case-by-case basis and must be requested in advance of the specific assignment's due date/time. Requests for extensions must include sufficient justification and are not guaranteed to be approved.

    Missing multiple assignment deadlines is grounds for significant grade reductions in this course. Anyone missing more than 4 assignment deadlines (5+) cannot achieve a grade higher than a B in the course; someone missing more than 8 assignment deadlines (9+) cannot achieve a grade higher than a C; and for someone missing more than 10 assignment deadlines (11+), the highest grade possible will be a D in this course.

    Grading

    Item 6wk 12wk Final
    HW 10% 10% 10%
    Quizzes 15% 10% 5%
    Labs 25% 20% 15%
    Projects 30% 30% 30%
    Exam (6wk) 20% 15% 10%
    Exam (12wk) 15% 10%
    Exam (Final) 20%

    PDF version of the SI221 course policy.