CSE214 - Data Structures
Spring 2025, SUNY Korea
Spring 2025, SUNY Korea
Instructor: Byungkon Kang
Classes: T,Th 12:30 - 13:50 @A115
Recitation: W 14:00 - 14:55 @A115
Prerequisites: A grade of 'C' or higher in CSE114.
Office hours (@B421): T,Th 14:00 - 16:00. No need to make appointments for office-hour visits.
TA office hours (@ the CS commons, 4th floor of building B)
Hawon Park - T 16:00 - 18:00
Seongbin Yu - T 19:00 - 22:00, Th 18:00 - 20:00
Seongbeen Na - MW 15:30 - 18: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/25 HW0 out), Rec. 1 - Java Settings (2/26), Continued (2/27 HW0 due)
Week 2: Object-oriented programming basics Ch. 1 & 2(3/4), Rec. 2 - OOP practice (3/5), Continued (3/6 HW1 out)
Week 3: Complexity measures Ch. 3 (3/11), Rec. 3 - Run-time analysis (3/12), Continued (3/13 HW1 due, HW2 out)
Week 4: ArrayList Ch. 6 (3/18), Rec. 4 - ArrayList iterators (3/19), ArrayList Ch.6 (3/20 HW2 due, HW3 out),
Week 5: Linked List Ch. 7 (3/25), Rec. 5 - Linked List + Midterm review (3/26) Midterm 1 (3/27 HW3 due, HW4 out)
Week 6: Stacks Ch. 8 (4/1), Rec. 6 - Stacks (4/2), Queues (4/3, HW4 due, HW5 out)
Week 7: Recursion Ch. 5 (4/8), Rec. 7- Queues (4/9), Recursion cont.'d Ch. 5 (4/10, HW5 due) // Midterm report
Week 8: Trees Ch. 9 (4/15), Rec. 8 - Recursion practice (4/16), Trees Ch. 9, 10 (4/17 HW6 out) // Last week for GPNC/W option
Week 9: Balanced BSTs Ch. 12.1 (4/22), Rec. 9 - Trees (4/23), Balanced BSTs Ch. 12.1 (4/24 HW6 due, HW7 out)
Week 10: Priority queues Ch. 13 (4/29), Rec. 10 - midterm review (4/30), Midterm 2 (5/1 HW7 due)
Week 11: No class (5/6), Rec. 11 - Sorting Ch. 11 (5/7), Sorting Ch. 11 (5/8 HW8 out)
Week 12: Maps and sets Ch. 12 (5/13), Rec. 12 - Maps (5/14), Maps and sets Ch. 12 (5/15 HW8 due, HW9 out)
Week 13: Graphs Ch. 15 (5/20), Rec. 13 - Graphs (5/21), Graphs Ch. 15 (5/22 HW9 due, HW10 out)
Week 14: Dynamic programming (5/27), Rec. 14 - DP (5/28), Dynamic programming (5/29 HW10 due)
Week 15: Final review (6/3 6/4 Last day of class) // Schedule change! Last class moved to June 4th (Wed.).
Final exam: June 10th, 12:30 - 15:00
Your final raw score is determined by the following breakdown. The final letter grade will be decided on a curve, where the boundary cases can be promoted to higher letter grades based on class participation and performance improvement over time.
You *must* complete all homework assignments. Late submissions are worth 0%, but are nevertheless required for successfully completing this course. Such late assignments are to be turned in within 3 days (72 hours) of the original due date. Anything submitted after that period is considered missing work. 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 is worth 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. The same submission policy as the assignments' applies to programming recitations - You must complete *everything*, regardless of lateness.
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. If you wish to be excused due to sickness, you must (1) send me an email *before* the class starts, mentioning which hospital you intend to visit, and (2) submit a doctor's note within a day clearly explaining why you had to be absent (only stating your symptoms is not a valid note).
For all graded works, 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 keep up with the class schedule. Keep in mind that everything in that assignment/test will be regraded (i.e., not just that specific problem you requested for).
I will notify those who are not in good standing at around week 7 or 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 to whoever request for it up until week 13.
** 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 (including mere installation of such plug-ins) 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.