Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
CSE 216 : Programming Abstractions FALL 2024
Course Description
Intermediate-level programming concepts and paradigms, including functional programming, object-orientation, basics of type systems, memory management, program and data abstractions, parameter passing, modularity, version control, and parallel programming. Includes weekly recitations, which provide students with experience in the practice of programming in a variety of high-level languages.
Prerequisites
-
C or higher in CSE 214
-
CSE major
This course operates under the assumption that the student has retained the knowledge of (1) data structures and basic algorithms covered in CSE 214 (and its prerequisite classes), (2) basic knowledge of Java, as covered in CSE 114 and CSE 214, and (3) the mathematical and logical concepts covered in CSE 215. Specifically, the following knowledge/skills are expected:
-
the ability to write programs of a few hundred lines of code in the Java programming language,
-
an understanding of fundamental data structures, including lists, binary trees, hash tables, and graphs, and the ability to employ these data structures in the form provided by the standard Java libraries,
-
an understanding of the basic principles of recursion,
-
the ability to construct simple command-based user interfaces, and to use basic I/O for input and output of data, and
-
a solid foundation of basic mathematical and geometric reasoning using pre-calculus concepts.
Course Outcomes
-
An understanding of programming paradigms and tradeoffs.
-
An understanding of functional techniques to identify, formulate and solve problems.
-
An ability to apply techniques of object-oriented programming in the context of software development.
Exam Schedule
There will be three exams, as follows:
-
Midterm I: Sep 30 (Monday)
-
Midterm II: Oct 30 (Wednesday)
FINAL EXAM
-
Section 1: Dec 11 (Wednesday), 11:15 am - 1:45 pm* (location to be decided)
-
Section 2: Dec 18 (Wednesday), 11:15 am - 1:45 pm* (location to be decided)
Student responsibility statement (from the Office of the Registrar): It is the responsibility of the student to plan class schedules to avoid conflicts with final exams and regularly scheduled classes.
Note 1: Practice tests will not be offered, but teaching assistants will hold a review session before the final exam.
Note 2: The midterm exams will be held at the usual lecture venue. Students must take the exam for the section in which they have officially registered. If a student takes the exam meant for a section in which they are not enrolled, it will not be graded, and the student will be marked 'absent' from the exam.
Course Material
All course material will be hosted here, linked from the Lectures, Assignments , and Recitations sections. There will be no paper handouts. Students are expected to attend every class.
Reference Book(s) and additional reading
Material will mostly be covered from
-
Scott, Michael L., Programming Language Pragmatics. Morgan Kaufmann; 3rd Edition (2009).
For details pertaining to specific programming languages, the recommended material will mostly be from the following:
-
Python tutorial: https://docs.python.org/3/tutorial/
-
OCaml learning material: https://ocaml.org/learn/
Additional practice problems are not provided separately, as students are expected to utilize the collection of problems provided in the recitations and in the reference book and other learning material. Combined, these resources already provide several hundred practice problems of varying degrees of difficulty.
Recitations
Recitations are a mandatory component of this course. Weekly recitations will provide practice for the concepts discussed in the lectures. The recitation material will be made available here in the 'Recitations' section to students ahead of time. Ready-made solutions to the recitation problems will not be provided, but students are encouraged to discuss these problems with their peers, during the office hours provided by the teaching staff, or in the discussion forum for this course.
Discussion Forum
As platform for course-related technical discussion, we will use Piazza. The details will be provided to all students via an announcement on Brightspace. Everyone is expected to
-
use this platform responsibly, and maintain social decorum at all times, and
-
not use this platform for non-technical (especially non-course related) concerns.
Attendance
Students are expected to attend every class, report for examinations, and submit graded coursework as scheduled. If a student is unable to report for any exam or complete major graded coursework as scheduled due to extenuating circumstances, the student must contact the instructor as soon as possible. Students may be requested to provide documentation to support their absence and/or may be referred to the Student Support Team for assistance.
-
In the instance of a missed lecture, the student is responsible for reviewing the lecture slides and staying up to date with the material covered in class.
-
There are no make-up options (e.g., by attending a different section) for missed recitations. However, there are at least 11 scheduled recitations throughout the semester, and the 10 best scores will be considered for the student's final grade.
-
There are no make-up options for a missed exam (subject to the university policies on Student Participation in University-Sponsored Activities and Final Exams). Please note that neither the final exam nor the midterm exams for this course overlap with religious holidays, as per NY State Education Law 224-A.
Communication Policy
Follow the communication decorum below as strictly as possible for effective and efficient communication with the instructor and the teaching assistants:
-
The most efficient form of communication is to use Piazza. This is typically much faster, since multiple members of the teaching staff and your peers are all involved in the Q&A.
-
Even though a discussion forum (Piazza) will be used, in-person Q&A during instructor or TA office hours are encouraged. All students should make use of these resources.
-
For email communication:
-
do not use any email address for the instructor other than the one provided in the introductory slides during the first lecture (the same email can also be found here).
-
do not use any email address to communicate with a teaching assistant (TA) other than the one provided on this course web site.
-
clearly state the course and subject matter in your email subject. For example, "CSE 216: homework 3 doubt".
-
if there is an announcement that is sent to the entire class, do not hit reply! Send a separate email with a proper subject.
-
-
Follow announcements carefully. Emails asking for information already available in announcements or on the course site may not receive a response.
Homework Assignments
All assignments must be electronically submitted via Brightspace. Do not send any assignment via email! Submission instructions will be provided as part of the homework document. A few extremely important things to keep in mind:
-
Code that does not compile will receive no credit, no matter how minor the reason behind the compile error may be.
-
Do not send file timestamps screenshots as "evidence" of having done the assignment on time. File timestamps can be manipulated extremely easily, and the teaching staff will not consider such things for grading (and/or re-grading, grade disputes, etc.).
-
Make sure that you double-check what you are submitting. It is absolutely worth spending one extra minute to make sure that you are not submitting compiled binaries, for example. Always keep a time-window in mind, and do not submit in a hurry.
-
Make sure your submission process is complete. Otherwise, the teaching staff cannot see your files. As a result, it cannot be graded.
Late submission policy: All assignment submissions will incur a 10-point penalty per day for missing the submission deadline. This penalty will be imposed strictly, and without any further sub-division in the penalization. For example, if a homework is due by 11:59 pm tonight, then a submission at 12:00 am or 12:01 am (i.e., just one or two minutes later) will be treated as delayed by one day. If you receive, say, 94/100 in that homework, your grade will thus become 84/100.
Grading Policy
Assignments: All assignments will be graded by our graduate teaching assistants. Once the grades are announced on Brightspace, a Google form will be available to the students. In case a student spots a grading error, a correction can be requested by using this form within 24 hours of the announcement on Brightspace. After this time window, the form will be closed, and such requests will no longer be considered.
-
Grade errors can only be reported once, so make sure you have thought carefully before submitting the form. The form can only be used once per homework by one person, and there is no "re-reporting"!
-
Reporting a grading error makes a member of the teaching staff go through the submitted assignment and its grading very carefully. It doesn't always mean that the score will increase. It can also result in a lower score!
Midterm exams: Results of the midterm exams will be announced on Brightspace. Students can request a regrade directly to the course instructor during any instructor office hour within a 7-day period. After that, students can come and see their exams during instructor office hours for the rest of the semester, but regrade requests will not be accepted.
Final Exam: For the final exam, there will be a special office hour designated to resolve any grade disputes. This will be announced after the final exam. Exams will not be scanned, emailed, or transferred in any other way for students not present during this office hour. This final chance for resolution is extremely time-sensitive, and the final grade will be calculated immediately after its conclusion.
Recitations: Recitation grades are based on attending the assigned weekly recitation and participating in the problem-solving process. Missed recitation grades cannot be redeemed in any other way.
Final Grade
The Pass/No Credit (P/NC) option is not available for this course. This course will have 4 homework assignments, two midterm exams, and one final exam. The grading schema is as follows:
-
Programming Assignments (4 assignments, 8 % each): 32 %
-
Recitations (10 recitations*, 1 % each): 8 %
-
Midterm I: 18 %
-
Midterm II: 18 %
-
Final exam: 24 %
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 the 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 grade-entry errors. They will not be altered for any reason, so please do not ask me to do so. Any unethical request for grade change or a "bump" will be ignored, and may be reported to relevant authorities.
Numeric scores (out of 100) will be reported on Brightspace. Letter grades will only be available directly on SOLAR, after being finalized. Letter grades are not for discussion and/or dispute, except in cases of obvious error in data-entry. In particular, details such as the following will not be disclosed:
-
How the grading is done on a curve. E.g., "I have 78. Is that enough for B+?"
-
Where the exact cutoffs are. E.g., "what is/was the cutoff for B+?"
-
How far/near is the student to the next cutoff. E.g., "I got 83.5 but I got A-. How close was I to getting an A?"
-
Questions implied through comparative and/or accusatory remarks. E.g., "My best friend got 76.2 and I got 76, but it's unfair that they got B+ while I got B."
Academic Integrity
You may discuss the homework assignments and recitation problems in this course with anyone you like. Each submission (including written material and coding), however, must be the student's own work, and only their own work. Any evidence of written homework submissions or source code being copied, shared, or transmitted in any way between students (this includes using source code downloaded from the Internet or written by others in previous semesters or by an AI) will be regarded as evidence of academic dishonesty. Additionally, any evidence of sharing of information or using unauthorized information during an examination will also be regarded as evidence of academic dishonesty.
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 are 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 :
Student Accessibility Support Statement
If you have a physical, psychological, medical, or learning disability that may impact your course work, please contact Student Accessibility Support Center, 128 ECC Building, (631) 632-6748, or at [email protected]. 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:
and search "Fire Safety and Evacuation and Disabilities".
Critical Incident Management
Access to the Piazza forum is not a mandatory component of this course. As such, disruptive behavior that compromises the safety of the learning environment, inhibits other students' ability to learn, or interrupts the ability of the teaching staff to constructively participate, will lead to the immediate removal of those responsible for such disruption.
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.