Semester: | Fall 2024 |
Time: | Tuesday and Thursday, 2:00PM - 3:20PM |
Location/Delivery: | In-person and Synchronous Online: direct instruction occurs in real time either in the designated classroom (CS2120) or via a Zoom session. Most sessions are planned to be offered in-person, but some sessions may be held through Zoom if the educational objectives can be better achieved on-line. For any on-line session, an e-mail message will be sent in advance to each student with the URL needed to access the session. Recordings of in-person class sessions will not be made available, so be sure to attend during the regular class hours. Recordings of on-line class sessions will also not be made available, but you will be enabled to record each session once you are admitted into the Zoom session. |
Texts (recommended, but not required): |
|
Instructor: | Dr. Robert Kelly |
E-mail: | robkelly@cs.stonybrook.edu |
Office hours (Zoom): | Mondays, 5:00PM-6:30PM, Wednesdays, 2:00PM-3:30PM, but most office hour discussions by Zoom in advance of scheduled hours. |
Office location: | New Computer Science 218 |
Introduces the basic concepts and modern tools and techniques of software engineering. Emphasizes the development of reliable and maintainable software via system requirements and specifications, software design methodologies including object-oriented design, implementation, integration, and testing; software project management; life-cycle documentation; software maintenance; and consideration of human factor issues.
This is a project course, so you will be working in a team of 3-4 students to develop a complex system using the principles of software engineering. A single project will be available for all students.
For CSE majors, completion of CSE 316 is required to enroll in this course. You will also find that CSE305, CSE333 and CSE356, although not required, provide some suitable background to CSE416. Depending on how many of these courses you have completed, you may need to spend more time working on the course project to understand the related database and user interface technologies.
The outcomes for the course are:
We will be following the syllabus closely. The assigned reading for the class will be found in the textbook and in documents (articles, standards, etc.) available on the Internet. The readings are included in the class notes and in a page on the class Web site.
Click on the lecture topic below to download a PDF file containing the class notes.
Date | Topics |
---|---|
8/27 (Tu) | Introduction |
8/29 | Introduction (continued) |
9/3 (Tu) | Project Overview |
9/5 | Project Overview (continued) |
9/10 (Tu) | Quality Measures |
9/12 | Data Analysis |
9/17 (Tu) | Data Analysis (continued) |
9/19 | GUI Review prep, DataFrames |
9/24 (Tu) | SeaWulf - Dr. David Carlson, guest speaker |
9/26 | GUI Review prep (continued), Volunteer prototype GUI demos: 1. |
10/1 (Tu) |
GUI Review 1. Bills 2. Bengals 3. Giants |
10/3 | RESTful Services |
10/8 (Tu) | UML Overview, Master Use Case Discussion Volunteer Client/Server Reviews 1. 2. 3. |
10/10 | Project requirements analysis, Client/Server Reviews 1. Bengals 2. Dolphins 3. Browns |
10/15 | Fall Break - no class |
10/17 | Midterm exam prep, Algorithms |
10/21-10/25 | Mid-term exams (no class on 10/22 and 10/24) |
10/29 (Tu) | Preliminary midterm exam results UML, Class diagrams |
10/31 (Th) | Volunteer class diagram 1. Sequence diagrams and activity diagrams |
11/5 (Tu) | Sequence diagrams and activity diagrams (continued) Volunteer sequence diagram 1. Broncos |
11/7 | Volunteer sequence/activity diagrams 1. Broncos (continued) 2. Giants 3. |
11/12 (Tu) | Volunteer UML 1. Browns Design review preparation |
11/14 | Project Management Volunteer project management plan 1. Volunteer Design reviews 1. Browns |
11/19 (Tu) | Design Reviews 1. Dolphins 2. Giants |
11/21 | Volunteer GUI look & feel presentation 1. 2. Coding Conventions |
11/26 (Tu) | Volunteer Code Reviews 1. 2. 3. |
11/28 | Thanksgiving Break - no class |
12/3 (Tu) | Volunteer GUI Presentations |
12/5 (Th) | Final Presentation Guidelines Code Reviews 1. Dolphins 2. Jets |
12/10-12/18 | Final Project Presentations |
Your project will use Java, JavaScript and Python. You can use any IDE appropriate to a particular language. The Java part of the system should use JDK 8.0 or above and Java EE 8.0 or above. Python should be 3.8 or above.
You should coordinate your project documents in a repository to facilitate coordination within your team. You can use whatever repository tool is suitable for your team. For project deliverables, you will use a shared repository, which you should set up to be shared among your teammates, TAs, and the course instructor. Details on the naming of files and folders in this directory is contained in the project deliverable table.
For the user interface part of the project, you can use a Web development tool such as Bootstrap to create the initial prototype of your GUI. Bootstrap is recommended since you will have easy access to the generated HTML.
For the development of your design documents (primarily UML), the most appropriate visual UML Lucidchart. When you sign up for your account, be sure you are using your student email. This will ensure that you get an educational account in which the usage limits do not constrain your work.
For the full development, the Spring Framework might be helpful.
You can use either a relational DBMS or a NoSQL DBMS for your project (CSE305 covers relational and CSE316 covers NoSQL). CSE416 database accounts can be activated on the MySQL server, but you are free to use a different relational DB server, but if you do, you take the risk of performance impact on your final presentation. Instructions on how to access the MySQL server are contained in the CS Department Web site.
Please be sure to request your Stony Brook VPN access. This will allow you to easily implement 2-factor security when you access the SeaWulf.
You are expected to work on the project as part of a small group (maximum of 4 students in a group).
The semester project includes a number of deliverables during the semester. Some of these are intended to ensure that you stay on track, while others are meant to provide feedback during the semester. For the "on-track" assignments, you can lose points on your project if the components are incomplete or late. A few project components are major milestones and will be graded, with the grade counting towards your final project grade.
Each group of 3-4 students use a shared repository, accessed by members of the group along with the TAs. However, most of the grading is done through a series of project reviews. Some ungraded assignments are required, submitted either directly to the instructor or submitted through the shared repository.
This is a three credit graded course. Your final grade is based primarily on your project, but the grade is also influenced by your performance on the mid-term exam, as well as your oral and written communications during class and project reviews.
The components of the grade are:
The oral component of your grade is designed to reflect oral communications skills for you as a member of a software engineering development or research team. An important consideration in this part of the grade is that your grade cannot be reduced by any of your oral communication in class. You start at 0 points in this category, and your grade is increased when you show evidence of effective oral communications. These points are typically earned through "volunteer" presentations in class. The classroom is meant to be a safe way for you to learn the skills necessary for software team communications. You will receive feedback on your communications in class, so that you can improve these skills. For any of your presentations, please let me know any time you would like additional feedback.
The project score is calculated as the weighted average of your scores for your 1) GUI prototype (10%), 2) client-server prototype (5%), 3) DB access prototype (5%), 4) design review (25%), 5) code review (20%), and your 6) final project presentation (35%). The DB access prototype might be removed from the project score calculation.
The mid-term is closed book and conducted as a 15-minute oral exam through a Zoom video session scheduled primarily outside of normal class hours. Please be sure that your Zoom connection provides for a video link in order to confirm your identity. The exam will be designed to assess your skills in requirements analysis, teamwork, project management, and design. Available time slots, both during and outside normal class hours, will be made available to students in the week prior to the midterm exam. Depending on class size, there may be no regular class hours during the week of the mid-term exam. The on-line exam will be recorded and a student’s identity will be validated against his/her official Stony Brook photo. There will be no make-up exams.
Graded project sessions (i.e., GUI review, client-server prototype, DB access prototype, design review, code review, and final presentation) will be scheduled for each team primarily outside of class hours. Students must have an audio and video connection to any such session. These sessions will be recorded to ensure student access and participation.
Students participating in University-sponsored activities will be offered options for make-up of exams and assignments consistent with the University policy as stated in the Undergraduate Bulletin. Similarly, accommodations to students concerning syllabus assignment and exam policies for religious reasons will be granted consistent with Undergraduate Bulletin policies.
The Pass/No Credit (P/NC) option is not available for this course.
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. For more comprehensive information on academic integrity, including categories of academic dishonesty please refer to the academic judiciary website.
Students are expected to attend every class, report for examinations and submit major graded coursework as scheduled. If a student is unable to attend lecture(s), report for any exams 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. Students will be provided reasonable accommodations for missed exams, assignments or projects due to significant illness, tragedy or other personal emergencies. In the instance of missed lectures or labs, the student is responsible for review posted slides, participation in Piazza interaction, and seeking additional information from classmates, TAs, ad the instructor. Please note, all students must follow Stony Brook, local, state and Centers for Disease Control and Prevention (CDC) guidelines to reduce the risk of transmission of COVID.
If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Student Accessibility Support Center, Stony Brook Union Suite 107, (631) 632-6748 or at sasc@stonybrook.edu . 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.
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of University 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.
The following list will contain links and references that will be useful in the course.