CSE214 - Data Structures
Spring 2024, SUNY Korea
Spring 2024, SUNY Korea
Instructor: Byungkon Kang
Classes: T,Th 10:30 - 11:50 @C103 (CHANGED)
Recitation: W 14:00 - 14:55 @C107 (CHANGED)
Prerequisites: A grade of 'C' or higher in CSE114.
Office hours (@B421): TTh 15:30 - 16:30, W 10:00 - 12:00, 13:00 - 14:00
TA office hours (@ the CS commons)
Yoora Kim (yoora.kim@stonybrook.edu): T 15:30 - 17:30
Sunwoo Kim (sunwoo.kim.2@stonybrook.edu): TTh 19:30 - 22:30
Methew Schenck (methew.schenck@stonybrook.edu): M 15:00 - 19:00, W 15:00 - 17:00
This is a course designed to introduce core concepts in data structures and their related algorithms. We will go over some of the most fundamental and frequently used programming constructs (known as data structures) that will help you store, manage, and manipulate your data. In addition to the "major" data structures, we'll have a chance to take a look at some of the concepts and algorithms associated with them.
The following is the list of the official course outcomes that is expected of students successfully completing this course.
An ability to program using sophisticated features of object oriented programming.
An ability to define and use data types, and use algorithmic design.
An understanding of the importance of time and memory efficiency in algorithm design.
Take a look at this set of self-assessment problems to learn what is expected of the students who pass this course.
A textbook is not mandatory, but many of the materials will be based on the following book.
"Data structures and the Java collections framework" (3rd ed.), William J. Collins.
It's an old book, but not outdated in terms of the core idea.
The following may be subject to change, so please check back regularly.
You'll need your 'stonybrook.edu' account to access the slides.
Week 1: Course introduction + Review of Java Ch. 1 & 2 (2/27 HW0 out, 2/29 HW0 due), Rec. 1 - Java settings (2/28)
Week 2: Java Settings + Object-oriented programming basics Ch. 1 & 2(3/5, 3/7 HW1 out) , Rec. 2 - OOP practice (3/6)
Week 3: Complexity measures Ch. 3 (3/12, 3/14 HW1 due, HW2 out), Rec. 3 - Run-time analysis (3/13)
Week 4: ArrayList Ch. 6 (3/19 HW2 due, HW3 out), Linked List Ch. 7 (3/21), Rec. 4 - ArrayList iterators (3/20)
Week 5: Linked List Ch. 7 (3/26 HW3 due), Midterm 1 (3/28 HW4 out), Rec. 5 - List exercise + midterm review (3/27)
Week 6: Stacks Ch. 8 (4/2), Queues Ch. 8 (4/4 HW4 due, HW5 out), Rec. 6 - Stacks (4/3)
Week 7: Queues Ch. 8 (4/9) Recursion Ch. 5 (4/11 HW5 due), Rec. - No class (4/10) // Midterm report
Week 8: Recursion Ch. 5 (4/16), Trees Ch. 9, 10 (4/18 HW6 out), Rec. 7 - Recursion practice (4/17)
Week 9: Trees Ch. 9, 10 (4/23), Balanced BSTs Ch. 12.1 (4/25 HW6 due), Rec. 8 - Trees (4/24) // Last week for GPNC/W option
Week 10: Balanced BSTs Ch. 12.1 (4/30 HW7 out), Midterm 2 (5/2), Rec. 9 - Balanced BSTs + midterm review (5/1)
Week 11: Priority queues Ch. 13 (5/7 HW7 due), Rec. 10 - Priority queues (5/8)
Week 12: Rec. 11 - Sorting Ch. 11 (5/14 HW8 out), No class (5/15) Sorting Ch. 11 (5/16) // Make-up recitation on TUESDAY(May 14th)
Week 13: Maps and sets Ch. 12 (5/21 HW8 due, 5/23 HW9 out), Rec. 12 - Hashing (5/22)
Week 14: Graphs Ch. 15 (5/28, 5/30 HW9 due, HW10 out), Rec. 13 - Graphs (5/29)
Week 15: Dynamic programming (6/4), Rec. 14 - Dynamic programming + final review (6/5 HW10 due)
Final exam: June 13th, 9:00 - 11:30
For homework assignments and tests, you have exactly three (3) days since the release of the grades to make a petition for a regrade. I understand this is a bit short, but it's necessary to facilitate progress in assignment schedule. Keep in mind that everything in that assignment/test will be regraded (i.e., not just that specific problem you requested for).
You *must* complete all homework assignments. Late submissions are worth 0%, but are nevertheless required for successfully completing this course.
For every missed assignment, your final grade will be reduced by one whole letter (e.g., 'B-' to 'C-').
You may not submit an 'empty' homework - A valid submission is a work that received a nonzero grade.
You may bring a single A4-sized double-sided 'cheat-sheet' for your reference. The sheet must be handwritten in pen/pencil on a paper. No photocopies, attachments, or printouts will be allowed.
There will be one comprehensive final exam, with more emphasis on the recent materials, on the designated final date. Cheat-sheet allowed.
These include (unannounced) pop-quizzes and programming exercises given during the recitation sessions.
Missing more than 20% of the lectures will result in an automatic F grade.
Missing more than 20 minutes of class will be counted as an unexcused absence (abusing this 20-minute grace period will definitely result in a series of unexcused absences).
Up to 2 (two) excused absences will be ignored, but you must notify me via written notes at least two days prior.
I will notify those who are not in good standing at around week 8. This will be a good time for you to decide if you wish to change your grade options for this course. However, such a midterm report will also be available whenever and to whoever request for it.
** A midterm report is not a report on your midterm exams. It's a report on your current standing in class.
Students should pursue their academic goals in an honest way that does not put you at an unfair advantage over other students. You are responsible for all work you submitted and representing other’s work as yours is always wrong. Faculty is required to report any suspected instance of academic dishonesty to the school. Regarding your homework, you are encouraged to discuss it with others, but you should write your own code. For more information please refer to http://www.stonybrook.edu/commcms/academic\_integrity/index.html.
Typing in a query to a virtual assistant software such as ChatGPT does not count as your own 'work'. Even the slightest use of these tools in any of your assignments will result in the immediate dismissal from class with a grade of 'F'. Any suspected students will be subjected to further investigations such as interviews, additional in-person assignments, etc..
If you have a physical, psychological, medical or learning disability that may impact your course work, please let the instructor know. Reasonable accommodation will be provided if necessary and appropriate. All information and documentation are confidential.
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures.