CSE 316 : Fundamentals of Software Development


Stony Brook University, Spring 2023

Catalog Description

This course will introduce systematic design, development, and testing of software systems, including event-driven and Web programming, information management, software design, and development fundamentals, and the application of these skills to the construction of large, robust programs. Students design and implement a full-stack, distributed web application.

Course Outcomes

  • Learn event-driven and reactive programming to construct web applications.

  • Understand information management systems.

  • Learn and use current practices in software engineering for building scalable and maintainable software applications.

Staff

Teaching Assistants

Note all TAs are located in room 2126 Old CS building.

Topics

We will cover the following topics in the course:

  • The Principles of Software Engineering

    • Software Development Lifecycle

    • SDLC Models

    • Software Processes

  • Front-end Web Development

    • HTML/CSS

    • JavaScript and React

  • Server-side Development using Node.js

  • Data Management using:

    • NoSQL databases (e.g., MongoDB)

    • SQL databases (e.g., MySQL)

  • Software Design using UML and design patterns.

Course Meeting Times

  • Tuesdays & Thursdays, 9:45 AM – 11:05 AM in Frey Hall 104, West Campus.

  • Lectures will be discussion-oriented. You will solve worksheets in teams designed to help you discover, explore, and apply a concept. You are expected to participate in discussions.

  • Lecture will not be recorded.

Textbooks (optional)

  • Software Engineering, 10th Edition, by Ian Sommerville, ISBN-13: 978-0133943030.

  • Learning JavaScript Design Patterns, by Addy Osmani, ISBN-13: 978-1449331818.

  • Fullstack React, by Anthony Accomazzo, Nate Murray, and Ari Lerner.

Required Software

We will use a number of software platforms in the course:

If additional software is required, they will be mentioned as part of assignments and lectures.

Piazza

  • The Piazza discussion board should be used for all communication with the teaching staff for questions about the course assignments and material. Email should be sent to individual instructors or teaching assistants only to schedule appointments.

  • 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 programming assignment

  • posting the solution to a programming assignment or a link to a website containing the solution

  • in general, anything unrelated to the course material and student learning

  • Therefore, students are expected to use the Piazza forum for all non-personal, course-related communication. Questions about what a programming assignment 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 code is relevant to your Piazza question you may post only short code snippets. For more extensive help with reviewing or debugging your code, please visit office hours.

Email Etiquette

  • Be professional and respectful.

  • Begin your emails appropriately (e.g., Dear Prof. Mitra).

  • Email the course staff under the following circumstances:

    • Brightspace is not properly displaying a grade.

    • One cannot attend office hours and would like to set up an appointment to meet at another time. In this case, the student should include his/her availability for the upcoming week.

  • If a student needs to contact the course staff about a private matter. Examples include:

    • Making arrangements for disability accommodations.

    • To discuss private, personal matters that are impacting one's coursework such as physical or mental illness, death in the family, etc.

  • When emailing the instructor about the course, students should observe the following guidelines to ensure a timely response:

    • use one's official @stonybrook.edu email account

    • use a descriptive subject line that includes "CSE 316" and a brief note on the topic (e.g., "CSE 316: Appointment")

    • briefly explain one's question or concern or request

    • end with a proper closing that includes one's full name, Net ID, and SBU ID number

Assessments and Grading

Examinations

There will be one midterm exam and a cumulative final examination. All exams will be closed-book but you will be allowed to carry one page (standard size) of notes (written on both sides). The midterm and the final exam will be in person.

Tentative Examination Dates and Times:

  • Midterm Exam: Thursday, Mar 9 (9:45 AM - 11:05 AM).

  • Final Exam: Tuesday, May 9 (8 AM - 10:30 AM).

  • See Course Schedule in Brightspace for detailed class schedule.

Make-up Examinations

Make-up exams will be given only in extenuating circumstances, such as a documented personal illness. In such cases, the student must inform the instructor about an anticipated absence before the day of the exam and provide supporting documentation to the Dean of Students Office (e.g., doctor's note stating that the student was ill and unfit to take the quiz or exam). Students who miss an exam for a valid reason will need to take a make-up exam, as appropriate. Specific arrangements will be made on a case-by-case basis. Make-up exams will not be made available to students who are absent due to job-related commitments, vacations, oversleeping, etc.

Programming Assignments

Students will be assigned four programming assignments for homework and a final project. They must be completed in teams of 2. If you cannot form a team and want to work independently, then you should take explicit permission from the instructor. Offering or accepting solutions from others is an act of plagiarism, which is a serious offense. All parties involved in academically dishonest behavior will be penalized according to the Academic Integrity Policy provided below.

Assignments may be submitted late but will be penalized 1% of the maximum score for every 15 minutes that the work is late, up to 24 hours. Work more than 24 hours late will not be accepted for credit. Extensions or late submissions will otherwise not be permitted. If some sort of emergency prevents you from submitting your assignment on time, inform the instructor prior to the assignment deadline and meet with a representative from the Student Support Team about your circumstances. Note due to limited resources for grading, programs that do not compile or run for testing may not be graded. Students who take this course are often surprised by just how much time this course requires of them. You are advised to budget your time wisely and to start working on an assignment the day it is posted.

The final project will be an extension of the programming assignments. Late submissions for the final project will not be accepted.

Re-grades

Any grading errors you believe you have found on a homework submission must be emailed to jmitra@cs.stonybrook.edu with the subject line "CSE316: regrade request for Assignment X". Time is a precious commodity, so please do not spend instructor office hours or TA office hours arguing about points. Regrade requests must be made in writing no later than one week after graded work is returned to the class. Regrade requests that are made later than one week from the date the graded work is returned to the class will not be honored.

Grading Scheme

  • Midterm Exam: 15%

  • Final Exam: 20%

  • Programming Assignments: 35% (7%, 8%, 10%, 10%)

  • Final Project: 25%

  • Class-participation: 5%

Course Grade Cutoffs: A [93-100], A- [90-93), B+ [87-90), B [83-87), B- [80-83), C+ [77-80), C [73-77), C- [70-73), D+ [67-70), D [63-67), F [0-63). Grade cutoffs might be adjusted at the end of the semester if warranted to curve the course grades. When the instructor computes the curved grades, lower bounds of ranges will never be increased.

All scores and course grades will be posted on Brightspace.

Free Tutoring Services

The College of Engineering and Applied Sciences (CEAS) offers a range of free tutoring services for students in CSE, AMS, and other courses. See the CEAS Undergraduate Student Office website for more information. For small group and one-on-one tutoring please inquire also at the Academic Success and Tutoring Center.

Academic Integrity

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 https://www.stonybrook.edu/commcms/academic_integrity.

All examinations will be closed-book. No electronic devices of any kind will be permitted to be used during exams. All cell phones must be silenced or turned off during exams. Any use of electronic devices, textbooks, or any other materials not explicitly permitted will constitute cheating.

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 and 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.

Americans with Disabilities Act

If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Student Accessibility Support Center, ECC (Educational Communications Center) Building room 128, (631) 632-6748. They will determine with you what accommodations, if any, 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 Student Accessibility Support Center. For procedures and information go to the following website: http://www.stonybrook.edu/ehs/fire/disabilities.

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