CS5500: Foundations of Software Engineering
Spring 2024
Catalog Description
This course covers the foundations of software engineering, including software development life cycle models (e.g., waterfall, spiral, agile); requirements analysis; software design principles and patterns; testing (functional testing, structural testing, testing strategies); debugging; software architecture and design; and integration. Includes a course project where some of the software engineering methods (from requirements analysis to testing) are applied in a team-based setting. Requires admission to MS program or completion of all transition courses.
Course Outcomes
Learn current practices in software engineering for building scalable and maintainable software applications.
Design and develop medium-scale web applications using modern software engineering tools.
Understand the processes to develop and maintain information management systems.
Major Topics
Software Processes
Requirements Engineering
System Modeling
Design and Implementation
Software testing
Software Maintenance & Evolution
Course Meeting Times
CS5500-01
T 11:45 – 1:25 PM, Th 2:50 - 4:30 PM
WVH 108.CS5500-04
T, F 3:25 – 5:05 PM
Snell Engineering Center 108.
Lectures will not be recorded, except for exceptional circumstances such as bad weather or the instructor is unable to take in-person class.
Textbooks (optional)
Software Engineering, 10th Edition, by Ian Sommerville, ISBN-13: 978-0133943030.
Learning JavaScript Design Patterns, by Addy Osmani, ISBN-13: 978-1449331818.
UML Distilled by Martin Fowler.
Polyglot Persistence by Martin Fowler and Pramod Sadalage.
Required Software
We will use several software platforms and programming languages in the course:
If additional software is required, they will be mentioned as part of assignments and lectures.
Piazza
Join Piazza if you haven't already.
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 or just Joydeep).
Email the course staff under the following circumstances:
Canvas is not properly displaying a grade.
One cannot attend office hours and would like to schedule 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 @northeastern.edu email account
use a descriptive subject line that includes "CS 5500" and a brief note on the topic (e.g., "CS 5500: Appointment")
briefly explain one's question or concern or request
end with a proper closing that includes one's full name.
Assessments and Grading
Assignments
Students will be assigned six homework assignments. Three of the six will be programming assignments to help students learn the tech stack needed to complete the final project. The remaining three assignments will be related to software engineering activities such as requirements, design, and threat modeling. The non-programming assignments must be completed in teams of two. The programming assignments must be completed individually. Students are expected to create their teams.
Final Project
The final project will require students to develop a software application with proper documentation and a tests to verify the software's behavior w.r.t requirements. Students will complete the project in groups of two -- the same group as the assignments. Groups are expected to present their project in a final presentation describing their design, implementation, and challenges they faced during the project.
Group Work Policy
Each group member will receive the same grade as the group's. However, individual grades can be adjusted by up to 20% if the group members feel that an individual has not contributed equally. Members in a group will have the opportunity to submit an evaluation of their group members anonymously.
Late Policy
Every student is allowed to submit exactly one assignment 48 hours after the due date without any penalty. For group assignments, if student X submits an assignment late, but student Y has not submitted any assignment late yet, then student Y can use their late token on a future assignment for the group.
Beyond the late token, 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 a health or other emergency prevents you from submitting your assignment on time, inform the instructor before the deadline. Extension requests due to job-related commitments, vacations, or travel plans will not be considered.
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.
Re-grades
Any grading errors you believe you have found on a homework submission must be emailed to j.mitra@northeastern.edu with the subject line "CS 5500: 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.
Class Participation
Lectures will be accompanied by activities. These activities can be programming-related or quiz-like questions. Students are encouraged to discuss with their peers to complete the given activities. In-class activities will not be graded but must be submitted in the same week of that class for credit.
Grading Scheme
Six Assignments: 45%
8% each for three programming assignments
7% each for the remaining three
Final Project: 30%
Final Presentation: 20%
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), F [0-70). Course grade cutoffs are flexible and subject to change. Final scores will not be rounded.
Academic Integrity
Each student must pursue their 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 OSCCR. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the OSCCR website at https://osccr.sites.northeastern.edu/academic-integrity-policy/ and the Khoury website at https://www.khoury.northeastern.edu/information-for-overview/current-undergrad/undergraduate-advising-academic-support/academic-policies/.
Violation of academic integrity on a homework assignment lead to a 0 on that assignment. Repeated violations will result in a failing grade for the course. Violation of academic integrity on the final project will also result in a failing grade for the course.
Students with Disabilities
Students who have disabilities who wish to receive academic services and/or accommodations should visit the Disability Resource Center at 20 Dodge Hall or call (617) 373-2675. If you have already done so, please provide your letter from the DRC to me early in the semester so that I can arrange those accommodations.
Inclusivity
Name and Pronoun Usage
As this course includes class discussion, it is vitally important for us to create an educational environment of inclusion and mutual respect. This includes the ability for all students to have their chosen gender pronoun(s) and chosen name affirmed. If the class roster does not align with your name and/or pronouns, please inform the instructor of the necessary changes.
Inclusion Statement
We believe diversity and inclusiveness are essential to excellence in academic discourse and innovation. In this class, the perspective of people of all races, ethnicities, gender expressions and gender identities, religions, sexual orientations, disabilities, socioeconomic backgrounds, and nationalities will be respected and viewed as a resource and benefit throughout the semester. Suggestions to further diversify class materials and assignments are
encouraged. If any course meetings conflict with your religious events, please do not hesitate to reach out to your instructor to make alternative arrangements.
You are expected to treat your instructor and all other participants in the course with courtesy and respect. Disrespectful conduct and harassing statements will not be tolerated and may result in disciplinary actions.