CSE 160: Computer Science A: Honors

(Procedural and object-oriented programming)

Spring 2024

Syllabus

Instructor: Dr. Paul Fodor

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


Course Description

First part of a two-semester sequence, CSE 160 and CSE 260. An introduction to procedural and object-oriented programming methodology and basic data structures. Topics include program structure, conditional and iterative programming, procedures, arrays, object classes, encapsulation, information hiding, inheritance, polymorphism, file I/O, exceptions and simple data structures, such as lists, queues and stacks. (https://www.cs.stonybrook.edu/students/Undergraduate-Studies/courses/CSE160).

Prerequisite: Computer Science Honors Program or the Honors College or the WISE Honors Program or University Scholars.
Corequisite: CSE 161
Credits: CSE160 is 3 credits, CSE161 is 1 credit SBC: TECH

Course Outcomes

The following are the official course goals agreed upon by the faculty for this course:
  • An ability to program in a procedural and object oriented language, using concepts such as loops, methods, object classes, encapsulation, inheritance, and polymorphism.
  • An ability to use and define fundamental data structures such as arrays, stack and queues.
  • An ability to program with sound code structure and use systematic software debugging and testing techniques.

Staff

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


Class Time and Place

  • CSE 160 (50401): Computer Science A: Honors (Lecture): TuTh 10:00AM - 11:20AM, Computer Science 2120.
  • CSE 161 (51379): Laboratory for Computer Science A: Honors: TuTh 11:30AM - 12:50PM, Computer Science 2120.

Textbook

Optional: Introduction To Java Programming and Data Structures, Author: Y. Liang, Publisher: Pearson , 12th edition (December 4, 2019).

https://www.amazon.com/Introduction-Programming-Structures-Comprehensive-Version/dp/0136520245/


Grading Schema

Grades will be based on homework and exams according to the following formula:
  • Homework assignments -- 15%
  • Labs -- 10%
  • Midterm exams (2) -- 50% (25% each)
  • Final exam -- 25%

The grade for CSE161 (lab) will be the same with the grade for CSE160 (lecture) since this is the combined grade that includes the lab credit as well as all the other grade components. The lab is intended for practice material for the entire course.

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)

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.

SPECIAL RULE: If your final total percentage in the class is above the class average, you're guaranteed to receive a grade of C or higher for this class. The way that this works is that at the end of the semester after all points from the exams, homework assignments and labs are incorporated in the final percentage total for all students, I will compare the class average with the above cutoff for a C grade (that is, 73).

  • If the class average is above 73, then I use the grade above cutoffs, that is: 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).
  • If the class average is below 73 (for example 70.91), then I deduct the difference between the fixed cutoff and the integer part of the class average from all cutoffs. For example, if the class average is 70.91, then the cutoffs will become: A [92-100], A- [87-91), B+ [84-87), B [80-84), B- [77-80), C+ [74-77), C [70-74), C- [67-70), D+ [62-67), D [57-62), F [0-57).

I taught this class every year since 2011. Although assignments and exams were similar in difficulty, the total average fluctuates from semester to semester. The average of all total averages (without extra credit) between 2011 and 2022 was 73.57.

Extra credit: 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 extra credit is added to the total for each student after the special rule described above, so, for those students that submit the extra credit on time, it increases the total percentage with 4 points.

After we grade the final exam, we will post the average of the total percentage before the extra credit and the final grade cutoffs, then compute the total including the extra credit for all students and post them on Brightspace including the final grades earned in this class. We hold office hours within the next 24 hours and post the final grade on SOLAR.

End of semester schedule: After we grade the final exam, we will post the average of the total percentage before the extra credit and the final grade cutoffs, then compute the total including the extra credit for all students and post them on Brightspace including the final grades earned in this class. We hold office hours within the next 24 hours and post the final grade on SOLAR.

Re-grading: For re-grading of an assignment or exam, arrange a re-evaluation within one week of receiving the graded work. All requests that are later than one week from the date the graded work is posted on Brightspace (and exams are returned in class) will not be entertained. All regrading is done either in the instructor office hours or by email to the instructor.

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

Finally, 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.


Examinations

There will be two midterm exams and a final exam. All exams will be closed-book and closed-notes. Students must bring photo ID to each exam. Students will not be admitted late to any exam.

  • Midterm Exam #1: Thursday, 3/7/2024, in-person in classroom, during class time (80 minutes).
  • Midterm Exam #2: Thursday, 4/11/2024, in-person in classroom, during class time (80 minutes).
  • Final Exam: Tuesday, May 7, 2024, closed book in-person exam, in classroom, 8:00-10:00 AM (120 minutes).

Do not miss any exams. Make-up exams will be given only in extenuating circumstances (e.g., acceptable in-person (preferably the University Student Infirmary in the Mendelson Quad) doctor's note stating that the student was ill and unfit to take the exam on the day of the exam) at the discretion of the instructor, subject to the university policies on Student Participation in University-Sponsored Activities and official religious holidays. Note that no examinations for this course overlap with religious holidays, as per NY State Education Law 224-A. Students who miss an exam for a valid reason must contact the instructor immediately to schedule a make-up exam at the earliest possible time (doctor note(s) are required for the period of postponement stating that the student is unfit to take the exam until the student takes the corresponding exam).


Laboratory assignments

You will be given problems that require a programmed solution during the laboratory. TAs will assign grades of 0 - 3 as follows:

  • 0 - the student did not attend the lab,
  • 3 - the solutions are complete.

The students can use either their own computers or the computers in the lab. The computers in the lab can be accessed using the CS account credentials. All student get a CS account created when they register for any CS course. An email goes out to new students with their CS credentials. If they already have an account they will use their existing CS username and password. If they do not know their username and/or password they will need to email RT@cs.stonybrook.edu from their @stonybrook.edu email with their SB ID# requesting a password reset.

Missing some labs: If you have a valid reason (e.g., doctor's note with an ailment for the day of the lab, athletic event recognized by the school), then I can accept the lab by email to the instructor (we cannot accept labs (late or not) by email in any other case because the students are required to attend the labs). We waive 2 labs from everyone in the class for the entire semester, so, if you have a personal event and you cannot attend, then you can miss up to 2 labs without a grade penalty.

We cannot accept labs by email because the students are required to attend the labs.


Programming homework assignments

There will be regular programming homework assignments which must be submitted electronically on Brightspace only (http://Brightspace.stonybrook.edu) by the announced deadline: due date and time (we cannot accept submissions by email at any date or time). You may not submit any programming assignment late - Late programming work will not be graded. All assignments are graded after the assignment deadline and the final grade will be posted on Brightspace. All program code that is submitted must have your name in a comment at the beginning of each file. All code must compile. Code that does not compile will not be graded. Assignments will be graded based on strict posted program specification. The assignments are valued different amounts of points depending on the difficulty of the programming problems. All assignments problems will be summed up and the percentage of earned points from the total assignment points will be factored in the assignment points in the total points in the grading schema.

Submissions that are not submitted as requested in the assignment (i.e, required program names, file names, method names) will not receive any credit. For example, 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, different number of parameters, etc. will also not receive any credit. Precision is an essential quality of programs and any mistakes in programming have social, economical, ethical consequences, therefore, learning to be precise is an important skill taught in this class. No package declaration should be included in the submitted files, unless required by the problem description.


Tentative Class Schedule

Week Lecture Topics
1 Introduction to Computers
2 Programming and Java, Elementary Programming
3 Selections
4 Mathematical Functions, Characters, and Strings
5 Loops
6 Methods
7 Arrays
8 Multi-dimensional Arrays
9 Objects and Classes
10 Object-Oriented Thinking
11 Inheritance and Polymorphism
12 Exception Handling and Text I/O
13 Abstract Classes and Interfaces
14 Recursion

Class 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 also used for class announcements. Piazza is a forum for additional learning and assistance. 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.

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

If you use Piazza inappropriately, you will be removed from Piazza. 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 "CSE160: " 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 and SBU ID number

Student Accessibility Support Center Statement:

https://www.stonybrook.edu/commcms/provost/faculty/handbook/academic_policies/syllabus_statement.php

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 Professions, 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:

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. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook.

Page maintained by Paul Fodor