- IC312: Data Structures
- Fall, AY18
Coordinator and Instructors
- Coordinator: Asst. Prof. Adam J. Aviv (firstname.lastname@example.org)
- Instructor: Prof. Ric Crabbe (email@example.com)
This course examines abstract data types (ADTs), 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.
Learning Objectives and Student Outcomes
- Understand the fundamentals of algorithm analysis. (supports outcome 2)
- Possess an understanding of the concept of abstraction and be able to describe the idea of separation of implementation and interface. (supports outcome 1)
- Recognize and apply the canonical ADTs (Lists, Queues, Stacks, Trees, Priority Queues, Dictionaries, and Graphs) appropriate for solving a problem. (supports outcome 1)
- Demonstrate the ability to implement the canonical ADTs with: arrays, linked lists, binary trees, hash tables, balanced trees, and other similar structures (supports outcome 2)
- Be proficient in defining and coding recursive algorithms, including recognizing when recursive solutions are appropriate (supports outcome 2)
- (Student Outcome 1) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
- (Student Outcome 2) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
The instructors have an "open door" policy for EI and our willing to schedule EI when requested. While not required to attend EI, there is an opportunity for extra credit for scheduling at least two EI session throughout the semesters (see below).
Collaboration and Academic Integrity
For the purposes of this class, we make a distinction between:
- Discussion means talking between classmates about how to tackle a particular (written or programming) problem. Anything that is written down in a discussion (including code) must be erased or destroyed, and cannot be submitted. Students must wait at least one hour after any discussion before they sit down to write up their own solutions.
- Collaboration means actually sitting down and working together on a problem. This is beyond discussion because the written materials are not destroyed. However, each student must still write up their own solution in their own words. Furthermore, copying is not collaboration, and each student is responsible to have a complete understanding of anything they submit.
Discussion is allowed on projects and homeworks, but collaboration is only allowed for homeworks. Copying is never allowed. A simple rule of thumb is that, for anything submitted as a course project, you should be the only human being that has ever seen it, other than your instructor. The only exception to this rule is that the MGSP leader for IC 312 may look at your project to provide help, but this must be clearly documented.
Citations must be given for all help received from any source, including MGSP leaders, other faculty members, other students, any other person, or any online source. Examples of good citations are:
- Discussed problem 3(b) with MIDN Carter
- Received help from MGSP leader in debugging NullPointerException in the Widget class
http://en.wikipedia.org/Big_O_notationreferenced for problem 2
You do not need to cite the instructor or the course website.
Further details can be found at the CS department's honor website http://www.usna.edu/CS/Resources/honor.php. In case of any ambiguity, it is the responsibility of the Midshipman to ask the instructor for clarification on the policy. This document does not cover every possible scenario, and Midshipmen are expected to ask when in any doubt on these issues.
No food or beverages (except in closable containers) are permitted in the classroom.
The section leader is responsible for:
- Calling the class to attention and recording attendance for the instructor.
- Contacting the department main office (x36800, MI 346) if the instructor is 10 minutes late, and making sure students do productive work in the instructor's absence.
Homeworks and projects submitted after the deadline will not receive credit, in order to facilitate immediate posting of solutions. Exceptions for bona fide emergencies or other exceptional circumstances will be considered by the instructor.
All homeworks, projects, and exams must be completed in order to earn a passing grade in the class. Homeworks and projects may be submitted (or resubmitted), after the deadline, for no credit, in order to satisfy this requirement.
Students missing class for valid reasons are excused from in-class quizzes.
Otherwise, each student is responsible to make up the work they miss due to planned absences such as movement orders for sports and extra-curricular activities as well as medical procedures. There will be no blanket exception to the late policy to account for absences. Generally, students should plan ahead and make arrangements with classmates or the instructor to ensure their work is submitted prior to the deadline.
Quizzes are a low-stakes chance for students to assess their progress. They will be given at the start of class and graded immediately following. Students are expected to write the correct answers on their quizzes. Solutions will not be posted, but questions will be. No collaboration is allowed on quizzes.
Routine out-of-class homework assignments will be assigned frequently and are usually due at the next class meeting, or within one week. Some homeworks will involve programming.
Collaboration is allowed on homeworks (according to definitions above), but copying is never allowed, from other students, the Internet, or from prior iterations of this course. All sources must be properly, clearly, and specifically cited.
Students must complete all homework assignments in order to earn a passing grade in the class. You may turn in homework late to make up missed assignments to meet this requirement; however, a zero will still be marked on the assignment.
There are 11 homework assignments, and for your 16-Week grade, we will drop the lowest/non-zero homework assignment. All homework will count in the grade calculation prior to the 16-Week grade.
There will be 3 significant projects in this class, plus a mini-project as part of a homework assignment (HW10).
Except when directed to work in small groups, projects must be on an individual effort. Students may informally discuss projects but may not collaborate in any way (see definitions above). Any discussion or resources used must be properly, clearly, and specifically cited.
Students must complete all projects in order to earn a passing grade in the class. "Completion" is at the discretion of the instructor, but entails (at least) submitting code that substantially works as specified in the project requirements.
While EI is not required, it is strongly encouraged. As part of that encouragement, you can receive 1% bonus on your final grade for attending at least two EI session. One must occur prior to the 6-week Mark and the other must occur prior to the 16-Week mark.
While the bonus is only available for in-person EI, you may also email your instructor questions at any time. While most replies will occur very quickly, please allow for at least 24-hours for a reply before emailing your instructor again with a gentle reminder. See the courses resources page for information about how to ask questions over email.
|6 Weeks||12 Weeks||16 Weeks||Final|