CSE 260 - Syllabus- Fall 2023

Computer Science B: Honors

Data Structures and Programming Abstractions

http://www.cs.stonybrook.edu/~cse260


Course Description

Second part of a two-semester sequence, CSE 160 and CSE 260. Applies object-oriented programming methodology to data storage and manipulation on complex data sets, such as, binary trees, heaps, priority queues, balanced trees and graphs. Recursive programming is heavily utilized. Fundamental sorting and searching algorithms are examined along with informal efficiency comparisons. Intermediate-level programming language concepts and paradigms, including functional programming, basics of type systems, event-driven programming, program and data abstractions, and modularity.(https://www.stonybrook.edu/sb/bulletin/current/courses/cse/#260)
Prerequisites: CSE160.
Corequisite: CSE261.
4 credits in total (CSE260 is 3 credits, CSE261 is 1 credit)

Course Outcomes

The following are the official course goals agreed upon by the faculty for this course (https://www.cs.stonybrook.edu/students/Undergraduate-Studies/courses/CSE260):
  • An ability to define and use complex object-oriented data structures and use them in the context of large-scale software development.
  • An understanding of the importance of time and memory efficiency in algorithm design.
  • An understanding of programming language paradigms and tradeoffs.
  • An understanding of functional techniques to identify, formulate and solve problems.

Staff

Instructor: Dr. Paul Fodor
214 New Computer Science Department, Stony Brook University
Office hours: Mondays and Wednesdays 9:30-11AM on Google Meet only: https://meet.google.com/xyu-jhqc-bdx
Email: paul.fodor@stonybrook.edu
Phone: 1 (631) 632-9820


Class Time and Place

  • Lectures: TuTh 10:00AM - 11:20AM, Computer Science 2120.
  • Labs:TuTh 11:30AM - 12:50AM, Computer Science 2120.

Textbooks

  • Introduction To Java Programming, Comprehensive Version, Author: Daniel Liang, Publisher: Pearson , Edition: 11th, 2017. ISBN-13: 978-0134670942.
  • Scott, Michael L., Programming Language Pragmatics (3rd ed.), Morgan Kaufmann, 2009, ISBN-10: 0123745144..

Grading Schema

Grades will be based on homework and exams according to the following formula:
  • Homework assignments = 15%
  • Labs = 10%
  • Midterm exam 1 = 25%
  • Midterm exam 2 = 25%
  • Final exam = 25%

CSE261 is the lab for CSE260 and will get the same grade as CSE260.

The Pass/No Credit (P/NC) option is not available for this course.

This policy applies to all CSE/ISE undergraduate courses used to satisfy the graduation requirements for the major.

Grade Cutoffs

A [95-100], A- [90-95), B+ [87-90), B [83-87), B- [80-83), C+ [77-80), C [73-77), C- [70-73), D+ [65-70), D [60-65), F [0-60)

SPECIAL RULE: If all your grades, including homework assignments, labs and your three exam grades are above the respective class averages, you're guaranteed to receive a grade of C or higher for this class.

There will be extra credit problems as a part of homework assignments which values to an increase of less than 4% in the final grade.

The grades will be posted on Brightspace: http://blackboard.stonybrook.edu for privacy reasons.

The final grade you receive in this class will reflect, as far as possible, the extent to which you have mastered the concepts and their applications. How much someone needs a grade, or how close they are to the next higher grade, will have no effect on grade. As the instructor, I want everyone to do well in this course, and will make every reasonable effort to help you understand the material taught. However, the grades provided at the end of the semester are final, except for rare situations involving grading errors. They will not be altered for any reason, so please do not ask me to do so.

Re-grading

For re-grading of an assignment or exam, please meet with the person (instructor or teaching assistant) responsible for the grading. Please arrange a re-evaluation within one week of receiving the graded work. All such requests that are later than one week from the date the graded work is returned to the class will not be entertained. To promote consistency of grading, questions and concerns about grading should be addressed first to the TA and then, if that does not resolve the issue, to the instructor. You are welcome to contact the TA by email or come to his office hour. If you would like to speak with the TA in person, and have a schedule conflict with his office hour, you are welcome to make an appointment to meet the TA at another time.

Examinations:

There will be two cumulative midterm exams and a cumulative final exam. All exams will be closed-book and closed-notes. The exams will be administerred online using Respondus LockDown Browser with Monitoring. Do not miss any exams. Make-up exams will be given only in extenuating circumstances (e.g., doctor's note stating that you were ill and unfit to take the exam). Students who miss an exam for a valid reason need to take a make-up exam; specific arrangements will be made on a case-by-case basis.

  • Midterm Exam #1:Tu. 10/3/2023, closed book in-person exam, in classroom, during class time (80 minutes).
  • Midterm Exam #2:Th. 11/9/2023, closed book in-person exam, in classroom, during class time (80 minutes).
  • Final Exam: Thursday, December 14, 2023, closed book in-person exam, in classroom, 11:15-1:15 PM (120 minutes).

Laboratory assignments

You will be given problems that require a programmed solution during lab hours. You will have only the lab period to edit, compile, and execute your solution. Before leaving, you will demonstrate your work to the lab TA. TAs will assign grades of 0 - 3 as follows:

  • 0 - student did not attend lab
  • 1 - student attended lab and attempted to complete it, but it has major problems (doesn't compile or does nothing of value)
  • 2 - student attended lab and when executed, student work is partially complete
  • 3 - student attended lab and all work completed

Programming homework assignments

There will be regular programming assignments which must be submitted electronically on Brightspace (http://blackboard.stonybrook.edu) by the announced due date and time. All code must compile. Code that does not compile will not be graded. Assignments will be graded based on program performance and documentation. You may not submit any programming assignment late. Late programming work will not be graded. All program code that is submitted electronically must have the following information listed clearly in documentation (comments in your program code) at the beginning of each file: your name, the course (CSE 260), your section, the programming assignment number, the lab/recitation date and your section's graduate TA's name. There is also a programming project before the end of the semester.

  • Code that does not compile will not receive any credit.
  • Submissions that are no submitted as requested in the assignment will not receive any credit. That is, if the submission requires a Test.java file, any submissions of test.java, test.text, test, etc. will not receive any credit. Similarly, if the requirements say that a method computeBalance with 2 paramenters is required, any submission that defined methods like compute_balance, computer_Balance, etc. will also not receive any credit.

Tentative Class Schedule

Week Lecture Topics
1 Generics in Java
2 Lists, Stacks, Queues, and Priority Queues in Java
3 Sets and Maps in Java
4 Developing Efficient Algorithms
5 Sorting
6 Implementing Lists, Stacks, Queues, and Priority Queues
7 Binary Search Trees
8 AVL Trees
9 Hashing
10 Graphs and Applications
11 Weighted Graphs and Applications
12 Weighted Graphs and Applications
13 Functional Programming
14 Functional Programming
15 Program execution

Communications

Piazza

The Piazza discussion board should be used for all communication with the teaching staff for questions about the course assignments and material. Piazza is a forum for additional learning and assistance. The following are not appropriate uses of Piazza:

  • cyber-bullying
  • posting memes
  • complaining about a grade
  • airing concerns/comments/criticisms about the course
  • posting more than a few lines of source code from an attempt at a homework problem
  • posting the solution to a homework problem or a link to a website containing the solution
  • in general, anything unrelated to the course material and student learning

Therefore, you are expected to use the Piazza forum for all non-personal, course-related communication. Questions about what a homework problem is asking, technical problems that need troubleshooting, or other questions that might be of interest to other students must be posted to Piazza and not emailed to the instructor or a TA. If Piazza is used inappropriately it will be closed/removed for you. We will not tolerate cyber-bullying. Anonymous posting is turned off, so we can see who you are. Improper conduct will be reported to the Dean of Students Office.

Email Etiquette

If you have a private matter to discuss, when emailing your instructor about the course, use the following guidelines to ensure a timely response:

  • use your official @stonybrook.edu email account (we cannot respond to an other email due to FERPA regulations)
  • use a descriptive subject line that includes "CSE260: " and a brief note on the topic
  • begin with a proper greeting, such as "Hi Prof. Fodor"
  • briefly explain your question or concern or request including the course (we are teaching several courses)
  • end with a proper closing that includes your full name, Net ID and SBU ID number

Student Accessibility Support Center Statement:

If you have a physical, psychological, medical, or learning disability that may impact your course work, please contact the Student Accessibility Support Center, Stony Brook Union Suite 107, (631) 632-6748, or at sasc@stonybrook.edu. They will determine with you what accommodations are necessary and appropriate. All information and documentation is confidential.

Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and the Student Accessibility Support Center. For procedures and information go to the following website: https://ehs.stonybrook.edu//programs/fire-safety/emergency-evacuation/evacuation-guide-disabilities  and search Fire Safety and Evacuation and Disabilities.


Academic Integrity Statement:

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Faculty is required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology & Management, Nursing, Social Welfare, Dental Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty please refer to the academic judiciary website at http://www.stonybrook.edu/commcms/academic_integrity/index.html

Critical Incident Management Statement:

Critical Incident Management: Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Student Conduct and Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Until/unless the latest COVID guidance is explicitly amended by SBU, during Fall 2023"disruptive behavior” will include refusal to wear a mask during classes.

Page maintained by Paul Fodor