Semester: | Fall 2020 | |
Time: | Tuesday and Thursday, 6:30PM - 7:50PM | |
Location: |
|
|
Texts (recommended, but not required): |
|
Instructor: | Dr. Robert Kelly |
E-mail: | robkelly@cs.stonybrook.edu |
Zoom Office hours: | Tuesdays, 2:30PM-4:00PM, Wednesdays, 2:30PM-4:00PM, and by appointment. |
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 219 (or CSE260), CSE320, CSE305 (or CSE306) are required to enroll in this course. You will also find that CSE333 and CSE336, although not required, provide some suitable background to CSE308. 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:
The course will also satisfy the following program objectives:
Class interaction will be provided using the interaction features of Zoom. For example, during a class students are encouraged to enter any questions using the chat feature. Appropriate questions will be reviewed by the instructor at suitable times during the session, read to the class, and answered. An on-line grade sheet is available during the semester that contains scores for all graded assignments and exams. Oral communications scores are also included. Grades are updated frequently so that students know their up-to-date class status. The grade sheet also contains a ranking so that students know their ranking in the class according to the grading formula during the semester. All graded reviews (e.g., code review) include frequent feedback during the review. Following the session, the comments are summarized and available to the students on request.
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.
|
Your project will most likely 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.
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 should use a relational DBMS for your project since it is consistent with your experience in CSE305. CSE416 database accounts have been 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.
You will submit assignments through a shared repository. Each group of 3-4 students will use a shared repository, accessed by members of the group along with your TA. The assignments are due at Midnight on the due date listed in the class Web site. However, TAs will not begin grading until the next morning, so if you submit it a few hours after midnight it will also be accepted.
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.
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) design review (30%), 3) code review (30%), and your 4) final project presentation (30%).
The mid-term exam will be a 15 minute oral exam conducted in a Zoom session. 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.
Graded project sessions (i.e., GUI review, 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 must bring a student ID to the mid-term exam if given in-person. No one will be allowed to take an exam without the proper ID. If the mid-term exam is conducted through a video session, the 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.
The Pass/No Credit (P/NC) option is not available for this course.
Narayan Acharya
Manoj Madala
Vamshi Muthineni
Jayakrishna Paidy
The class is a hands on programming class, so you will require access to a computer and a Java development environment.
The class TAs are available to help you in understanding the material in many ways. They will provide hints and suggestions when they respond to your submission of a homework assignment. They will also be available in teaching sessions given in the Computer Science Teaching Lab. The TAs for the course are:
The TAs will be coordinating hints and instructions concerning the HW assignment through Piazza. Piazza is a Q&A platform designed to get you answers from classmates and instructors. It serves as a forum to allow you to collaborate and solve common challenges. You can post any doubts you have or errors you may encounter, and we will post our answers on Piazza directly. You are also encouraged to answer any questions posted by your classmates. This way when a issue is resolved, everyone gets to benefit and learn from the answer.
We also be posting assignment-specific instructions or notices on Piazza, so make sure you sign up. We would also like to remind you that Piazza is for sharing errors or doubts you encounter. For the sake of academic integrity, you should avoid posting your actual code in the discussion forums. If you feel it is absolutely necessary, you can check either with the instructor or one of the TAs.
Depending on TA availability, we may hold TA session on tools relating to software engineering.
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 http://www.stonybrook.edu/commcms/academic_integrity/index.html
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.
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.