SYLLABUS

CSE308 - Spring 2019

Software Engineering

 https://ppawar.github.io/CSE308-S19/index.html 


Course Description

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. (https://sunyk.cs.stonybrook.edu/students/Undergraduate-Studies/courses/CSE308)

The students work in teams of about four people to produce a significant piece of software during the entire semester. Each team produces a Specification Document, a Design Document, and a Test Plan. Each team gives an oral presentation of a design review and a formal demonstration of their project at the end of the semester.


Course Outcomes

·       An ability to perform project planning, requirements analysis, and system/test design.

·       An ability to work as a team to produce software systems that meet specifications while satisfying an implementation schedule.

·       An ability to produce professional quality oral/written presentations of system designs, reviews, and project demonstrations.


Prerequisites

C or higher: CSE 219 or CSE 260; CSE 320; CE305 or CE306; CSE major.


Staff

Instructor: Pravin Pawar

Schedule: Tuesday/Thursday 5:00 PM 6:20 PM

Office: B424, Department of Computer Science, SUNY Korea

Office Hours: Tuesday/Thursday 10:30 AM 12:00 PM, Wednesday 5:00 PM 6:30 PM

Email: pravin.pawar@sunykorea.ac.kr

Phone: (O) 032-626-1227, (M) 010-8692-4908


Class Time and Place

·        Lectures: Monday/Wednesday 3:30 PM 4:50 PM

·        Place: B206


Textbook


Lecture Notes and Reading Assignments

The following course schedule provides topics, problem sets, quiz dates, and exam dates. Check back frequently.

Date

Activity

Topics

Course material

Monday, February 25, 2019

Lecture 1

Introduction to the course

 Slides

Wednesday, February 27, 2019

Lecture 2

Software Development LifeCycle, introduction to commodity ecologies (Dr. Mark Whitaker)

Slides

Commodity ecology talk

App ideas

Monday, March 4, 2019

Lecture 3

 Introduction to React and MongoDB

Slides Tutorial

Wednesday, March 6, 2019

Lecture 4

 Individual HW given

 

Monday, March 11, 2019

Lecture 5

Text: Chapter 1 – Introduction to Software Engineering

Slides

Wednesday, March 13, 2019

Lecture 6

Text: Chapter 2 – Software Processes

Slides

Monday, March 18, 2019

Lecture 7

 Text: Chapter 3 – Agile Software Development

Slides, Postman

Wednesday, March 20, 2019

Lecture 8

Introduction to OAuth2.0

Github tutorial

Slides

Github tutorial

Monday, March 25, 2019

Lecture 9

Individual HW submission

Text: Chapter 4 – Requirements analysis

 Slides

SRS Examples and Template

Wednesday, March 27, 2019

Entrepreneurship day/ no classes

 

 

Monday, April 1, 2019

Lecture 10

 Project - Milestone 1

polygon

jsonreader

coordinates.json

Wednesday, April 3, 2019

Lecture 11

Quiz 1

 

Monday, April 8, 2019

Lecture 12

Text: Chapter 4   

 

Wednesday, April 10, 2019

Lecture 13

Text: Chapter 5 – System Modeling

 

 

 

Sample SDD 1

Sample SDD 2

SDD Template

Slides

Monday, April 15, 2019

Lecture 14

 Chapter 5 continued

 

Wednesday, April 17, 2019

Lecture 15

Project - Milestone 2 

Introduction to UML 

UML Modeling Exercises

Monday, April 22, 2019

Lecture 16

 UML continued

 

Wednesday, April 24, 2019

Lecture 17

UML modeling exercises

 

Monday, April 29, 2019

Lecture 18

Text: Chapter 6

Project - Milestone 3

Slides

Wednesday, May 1, 2019

Lecture 19

Design patterns

Slides

Monday, May 6, 2019

Substitute holiday/no class

 

 

Wednesday, May 8, 2019

Lecture 20

Project day 

 

Monday, May 13, 2019

Lecture 21

Software testing/ Midterm review 

Slides Examples 

Test plan template

Test plan example

Wednesday, May 15, 2019

Lecture 22

Midterm

 

Monday, May 20, 2019

Lecture 23

Project - Milestone 4 

 

Wednesday, May 22, 2019

Lecture 25

Project management 

Slides 

Monday, May 27, 2019

Lecture 26

Project planning

Slides

Wednesday, May 29, 2019

Lecture 27

Quiz 2

 

Monday, June 3, 2019

Lecture 28

 Project day

 

Wednesday, June 5, 2019

Lecture 29

Project - final presentation

 

Monday, June 10, 2019

 

Grades finalization

 


 

Grading Scheme and Grades Calculation

The CSE308 course has following three graded components:

·       Individual HW Assignment (10%): Each student will be required to complete a programming assignment individually that uses all the needed Web technologies.

·       Quizzes (10%, 2 quizzes given): The quizzes will test each student's understanding of the core course concepts as well as the technologies used for the project.

·       Midterm Exam (20%): This exam will test each student's understanding of the core course concepts as well as the technologies used for the project.

·       Group Project (60%): Students will work in teams of four to create a full-fledged Web application. The expectations for this app is that it is great and approved by the customer. It should be look professionally designed and operate as intended (i.e. bug free). There will be several components to this project, namely, a Requirements Specification Documentation & Presentation, Software Design Documents, Test Plan Documents, Progress Reviews, and of course the Completed Deliverables with a Final Presentation.

The final grade is based on the accumulated points from the individual HW assignment, mid-term exam and group project.


Project

This semester the CSE308 project will be developing a mobile phone application of Commodity Ecology proposed by Dr. Mark D. Whitaker from the Department of Technology & Society at SUNY Korea. The United Nations acknowledged his leading work in understanding global commodity flows. See the following link for details:

https://academicimpact.un.org/content/commodity-ecology-initiative-facilitate-sustainable-development

The students will jointly work with Dr. Mark D. Whitaker (project customer) to understand the requirements of expected mobile application, approve the requirement specifications and develop this app to the level of satisfaction expected by him. Regarding technology choices, refer to the following article which explains how to choose the right tech stack for a mobile app.

https://www.alphalogicinc.com/blog/how-to-choose-your-mobile-app-technology-stack/


Disability Support Services (DSS) Statement:

If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Student Services & Career Team - Academic Building, A208, 032-626-1190. 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 Disability Support Services. For procedures and information go to the following website: http://www.stonybrook.edu/ehs/fire/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 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 http://www.stonybrook.edu/commcms/academic_integrity/index.html


Critical Incident Management Statement:

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.