CSE 316 - Fundamentals of Software Development

Spring 2025

Syllabus


Course Description

Introduction to systematic design, development and testing of software systems, including event-driven and Web programming, information management, databases, principles and practices for secure computing, and version control. Students apply these skills in the construction of large, robust programs.
(https://www.cs.stonybrook.edu/students/Undergraduate-Studies/courses/CSE316)

Staff

Instructor: Dr. Christopher Kane
Office: New Computer Science Building, Rm. 107
Office hours: Tuesday/Thursday: 2:30 PM to 4:30 PM - Online Only via Zoom
Email: christopher.kane@stonybrook.edu


Class Time and Place

  • Monday/Wednesday: 5:00 PM - 6:20 PM
  • Frey Hall, Rm. 104

Lecture Schedule, Readings, Assignments

The following schedule is tentative and subject to change. The homework assignments are posted on D2L Brightspace: https://mycourses.stonybrook.edu
Book Abbreviations:
  • Sommerville - Software Engineering, 10th Edition, by Ian Sommerville, ISBN-13: 978-0133943030.
  • LJSDP - Learning JavaScript Design Patterns, 2nd Edition, by Addy Osmani, ISBN-13: 978-1098139872.
Week Date Lecture Topics/Notes Readings
1 Mon. 01/27 Course Introduction n/a
Wed. 01/29 Introduction to Software Engineering Sommerville, Chs. 1 - 3
2 Mon. 02/03 HTML n/a
Wed. 02/05 HTML (cont.) n/a
3 Mon. 02/10 CSS n/a
Programming Assignment 01 - Assigned: Monday, 02/10/2025 n/a
Wed. 02/12 Client-Side Scripting: Javascript n/a
4 Mon. 02/17 Client-Side Scripting: Javascript (cont.) n/a
Wed. 02/19 Client-Side Scripting: Javascript (cont.) n/a
5 Mon. 02/24 React n/a
Wed. 02/26 React n/a
6 Mon. 03/03 React Unit Testing n/a
Programming Assignment 01 - Due: Monday, 03/03/2025

Programming Assignment 02 - Assigned: Monday, 03/03/2025
n/a
Wed. 03/05 Server-Side Scripting: Node.js
7 Mon. 03/10 Server-Side Scripting: Node.js (cont.) n/a
Wed. 03/12 Express Web Server n/a
8 Mon. 03/17 Spring Break - No Class n/a
Wed. 03/19 Spring Break - No Class n/a
9 Mon. 03/24 Relational vs. Non-Relational Databases, MongoDB n/a
Programming Assignment 02 - Due: Monday, 03/24/2025

Programming Assignment 03 - Assigned: Monday, 03/24/2025
n/a
Wed. 03/26 MongoDB and Mongoose (an ODM) n/a
10 Mon. 03/31 Application Security: Introduction n/a
Wed. 04/02 Midterm Exam n/a
11 Mon. 04/07 Application Security: Authentication and Bcrypt n/a
Wed. 04/09 More Unit Testing n/a
12 Mon. 04/14 Software Design with UML UML Distilled, chs. 3 and 5
Programming Assignment 03 - Due: Monday, 04/14/2025

Project - Assigned: Monday, 04/14/2025
n/a
Wed. 04/16 Software Design with UML (cont.) UML Distilled, chs. 4 and 10
13 Mon. 04/21 Relational Databases and MySQL n/a
Wed. 04/23 Relational Database and MySQL (cont.) n/a
14 Mon. 04/28 Properties of High-Quality Software n/a
Wed. 04/30 Properties of High-Quality Software (cont.) n/a
15 Mon. 05/05 Design Patterns LJSDP, chs. 6 and 7
Wed. 05/07 Design Patterns (cont.) n/a
Project - Due: Monday, 05/12/2025 n/a
Final FINAL EXAM: Wedsnesday, May 14th, 2025, 5:30 PM - 8:00 PM n/a


Last Update: January 21, 2025
Page maintained by Christopher Kane