|CS 284-A - Data Structures||Michael Greenberg|
|TTh 11:00am-12:15pm||Gateway South 447|
|Prerequisite(s): CS 115|
|Corequisite(s): CS 135||Office hours on Zoom|
|Recitations: RE (1pm Fri) and RF (2pm Fri)||W 1-2pm; Th 12:15-1:15pm (or by appointment)|
|CA(s): Venkat Anna, Cindy Tran||Venkat MW 2:30-3:30pm; Cindy TTh 2-3pm|
This course is an introduction to fundamental data structures in Computer Science. These data structures, and the algorithms that go with them, make up the standard toolkit for programmers regardless of language and application. We will use the Java programming language for representing both the data structures and also for developing simple programming projects that put them to use. Expect to do a significant amount of programming, as well as paper and pencil exercises.
After successful completion of this course, students will be able to:
Abstract Data Types Understand the importance of Abstract Data Types and Data Structures. Use UML to represent ADTs.
Complexity Calculate the Big O of diverse non-recursive algorithms and use it to compare efficiency.
Collections Use and understand Collection class in Java, with major emphasis on Lists, Stacks and Queues. Implement double linked lists in Java.
Trees Implement Binary Search Trees, Max/Min-Heaps, Priority Queues in Java, and understand the basic concepts of self-balancing Binary Search Trees such as Red-Black and AVL trees.
Sets and Maps Understand what are Sets and Maps, and more specifically implement hash tables in Java.
Sorting Program basic sorting algorithms (such as Insertion, Selection, Merge and Quick) in Java using the Comparable interface.
Programming Combine different classes together to implement big programming assignments in Java, including a final project that combines some of the data structures studied in class.
Testing Use JUnit to create unit tests for each project.
There are two lectures per week in addition to a recitation on Fridays. Lectures will cover topics on the board, along with some livecoding.
Class time will occasionally feature code review, where I talk over bits of student code from the homework to highlight good choices and point out possible improvements. Code review is anonymous, and no one will know which code is yours (maybe not even you!)… but if you’re uncomfortable with the possibility of your code being critiqued in front of other people, please let me know.
Our schedule is on the home page.
There will be an in-class midterm in week 8 of the term, right before spring break. According to the Spring 2022 final exam schedule, our exam is 8am-11am in X-X-218B on 5/12/2022, i.e., in our classroom (McLean 218B) on Thursday, May 12th.
Textbook(s): Elliot B. Koffman & Paul A.T. Wolfgang, Data Structures: Abstraction and Design Using Java, 4th Edition, Wiley, ISBN: 978-1-119-70359-4
There will be slide PDFs available online as a support tool, but they won’t necessarily correspond in a one-to-one way with what we talk about in the course.
Some unsolicited advice on notes: I did not take notes during college, and I regret it. Taking notes is a very useful activity even if you never look at your notes. The act of writing something down in your own words helps you remember it.
- Attendance Students are expected to attend all classes.
- Homework There will be five (5) homework (programming) assignments throughout this course. Code that does not compile will not be accepted. If urgent or unusual circumstances prohibit you from submitting a homework assignment in time, please e-mail the instructor. To be sure that we’ll be flexible, please give us as much notice as possible.
- Quizzes There will be quizzes throughout the semester, typically on Thursdays (but I reserve the right to mix things up!). Quizzes will be graded for accuracy. If a student is absent (unexcused) on a day that a quiz is given, they will receive an automatic 0 for that quiz.
- Exams There will be two exams in this course, a midterm, covering the first half of the course, and a final, covering the second half of the course.
Homework is due on Thursdays at 11:59pm ET. Late homework will lose points: 2% for each hour late (rounded up). (After 50 hours, late work will not be accepted. We are always willing to give feedback, though.) If you know you will not be able to meet a homework deadline, let us know sooner rather than later.
Quizzes and exams are all time sensitive. If you miss a quiz or need to make alternate arrangements, let us know as soon as possible. The later you ask, the less flexibility we will have.
There are 100 possible points that a student can earn in this course. Percentages are listed below.
Each homework and quiz has its own internal “point total”, but these are only locally relevant: each homework is worth the same as the others; each quiz is worth the same as the others.
Undergraduate Honor System
Enrollment into the undergraduate class of Stevens Institute of Technology signifies a student’s commitment to the Honor System. Accordingly, the provisions of the Stevens Honor System apply to all undergraduate students in coursework and Honor Board proceedings. It is the responsibility of each student to become acquainted with and to uphold the ideals set forth in the Honor System Constitution. More information about the Honor System including the constitution, bylaws, investigative procedures, and the penalty matrix can be found online at http://web.stevens.edu/honor/
The following pledge shall be written in full and signed by every student on all submitted work (including, but not limited to, homework, projects, lab reports, code, quizzes and exams) that is assigned by the course instructor. No work shall be graded unless the pledge is written in full and signed.
“I pledge my honor that I have abided by the Stevens Honor System.”
Reporting Honor System Violations.
Students who believe a violation of the Honor System has been committed should report it within ten business days of the suspected violation. Students have the option to remain anonymous and can report violations online at www.stevens.edu/honor.
Exam Room Conditions
The following procedures apply to quizzes and exams for this course. As the instructor, I reserve the right to modify any conditions set forth below by printing revised Exam Room Conditions on the quiz or exam.
- Students may not use any of the following devices during quizzes and/or exams. Any electronic devices that are not mentioned in the list below are also not permitted.
- Students may use the following materials during quizzes and/or exams. Any materials that are not mentioned in the list below are not permitted.
|Typed notes (one 8½x11 sheet, front and back)||yes|
- Students are not allowed to work with or talk to other students during quizzes and/or exams.
Stevens Institute of Technology is dedicated to providing appropriate accommodations to students with documented disabilities. Student Counseling and Disability Services works with undergraduate and graduate students with learning disabilities, attention deficit-hyperactivity disorders, physical disabilities, sensory impairments, and psychiatric disorders in order to help students achieve their academic and personal potential. They facilitate equal access to the educational programs and opportunities offered at Stevens and coordinate reasonable accommodations for eligible students. These services are designed to encourage independence and self-advocacy with support from SCDS staff. The SCDS staff will facilitate the provision of accommodations on a case-by-case basis. These academic accommodations are provided at no cost to the student.
Disability Services Confidentiality Policy
Student Disability Files are kept separate from academic files and are stored in a secure location within the office of Student Counseling, Psychological & Disability Services. The Family Educational Rights Privacy Act (FERPA, 20 U.S.C. 1232g; 34CFR, Part 99) regulates disclosure of disability documentation and records maintained by Stevens Disability Services. According to this act, prior written consent by the student is required before our Disability Services office may release disability documentation or records to anyone. An exception is made in unusual circumstances, such as the case of health and safety emergencies.
For more information about Disability Services and the process to receive accommodations, visit the Disability Services website. If you have any questions please contact email@example.com or call (201) 216-3748.
Name and Pronoun Usage
As this course includes group work and in-class discussion, it is vitally important for us to create an educational environment of inclusion and mutual respect. This includes the ability for all students to have their chosen gender pronoun(s) and chosen name affirmed. If the class roster does not align with your name and/or pronouns, please inform the instructor of the necessary changes.
Stevens Institute of Technology believes that diversity and inclusiveness are essential to excellence in academic discourse and innovation. In this class, the perspective of people of all races, ethnicities, gender expressions and gender identities, religions, sexual orientations, disabilities, socioeconomic backgrounds, and nationalities will be respected and viewed as a resource and benefit throughout the semester. Suggestions to further diversify class materials and assignments are encouraged. If any course meetings conflict with your religious events, please do not hesitate to reach out to your instructor to make alternative arrangements.
You are expected to treat your instructor and all other participants in the course with courtesy and respect. Disrespectful conduct and harassing statements will not be tolerated and may result in disciplinary actions.
Mental Health Resources
Part of being successful in the classroom involves a focus on your whole self, including your mental health. While you are at Stevens, there are many resources to promote and support mental health. The Office of Counseling and Psychological Services (CAPS) offers free and confidential services to all enrolled students who are struggling to cope with personal issues (e.g., difficulty adjusting to college or trouble managing stress) or psychological difficulties (e.g., anxiety and depression). Appointments are can be made by phone at (201) 216-5177.
In the event of an urgent or emergent concern about the safety of yourself or someone else in the Stevens community, please immediately call the Stevens Campus Police at (201) 216-5105 or on their emergency line at (201) 216-3911. These phone lines are staffed 24/7, year round. Other 24/7 resources for students dealing with mental health crises include the National Suicide Prevention Lifeline ((800) 273-8255) and the Crisis Text Line (text “Home” to 741-741). If you are concerned about the wellbeing of another Stevens student, and the matter is not urgent or time sensitive, please email the CARE Team at firstname.lastname@example.org. A member of the CARE Team will respond to your concern as soon as possible.