Subscribe

Archives

Categories

Attribution-NonCommercial-ShareAlike 4.0 International

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.

Syllabus

CSCI 40500/77100: Software Engineering

3 hrs, 3 credits. Computer Science, City University of New York (CUNY) Hunter College.

Details

Field Value
Instructor: Raffi Khatchadourian
Office: 1090H Hunter North Building
Email: khatchad@hunter.cuny.edu
Phone: (212) 650-3988
Office hours: TTh 4:00-5:00 pm
Semester: Fall 2024
Section: CSCI 40500/77100-01
Grader: Ye Paing

Course Description

This course is an introductory survey on the fundamental concepts and principles that underlie current and emerging methods, tools, and techniques for the efficient engineering of high-quality software systems. This may include the understanding and appreciation of problems in large-scale software development such as functional analysis of information processing systems, system design concepts, timing estimates, documentation, and system testing.

Software Engineering (SE) is concerned with all facets of software development, from the early stages of requirements engineering to maintaining the system after it has been deployed. This includes technical processes of software development as well as activities such as software project management and the development of tools, methods, and theories to support software development. This course is not a "programming" course per se, instead, it focuses on surveying some of the critical facets of SE that may be less familiar to students of Computer Science, such as identifying a development process appropriate to the circumstances, eliciting and documenting requirements, using reviews and inspections plus machine-based testing in software development, understanding software evolution in large, complex systems, issues associated with developing dependable software systems, and configuration management of large systems developed by multiple engineers.

Potential Course Topics

Topic Reading Chapter(s)
Software Products 1
Agile Software Engineering 2
Features, Scenarios, and Stories 3
Software Architecture 4
Cloud-based Software 5
NoSQL vs SQL Databases N/A
Microservices Architecture 6
Serverless Computing N/A
Serverless (FaaS) vs. Containers N/A
Security and Privacy 7
Web Application Security N/A
Reliable Programming 8
Testing 9
Design Patterns (if time permits) TBD
DevOps and Code Management 10
Special Topic 1 (if time permits) TBD
Special Topic 2 (if time permits) TBD

Students are required to read the linked articles if no chapter is specified above. The instructor will distribute any supplementary material.

Prerequisites

  • CSCI 33500: Software Analysis and Design III or equivalent.
  • Familiarity with a modern, Object-Oriented programming language, e.g., Java, Python.
    • The examples in the book are in Python but should be understandable by anyone with programming experience.
  • Familiarity with common computing terminology.

Textbook

Title Author ISBN Type
Engineering Software Products Sommerville, I. 978-0135210642 Required

Student Expectations

For this course, you must:

  • Do the chapter readings and cover the lecture slides.
  • Do the homework assignments.
  • Work well with your classmates and team.
  • Complete a term project.

Grading

Category Percentage
Assignments 15%
Midterm exam 30%
Final exam (non-accumulative) 30%
Project 20%
Participation 5%

Key Dates

Event Date
No classes scheduled 10/3
Midterm exam 10/10
Classes follow a Monday schedule 10/15
Withdrawal deadline 11/6
Thanksgiving (college is closed) 11/28
Final exam TBD (no latter than 12/21)

Credit/No Credit Policy & Special Enrollment Permission

The instructor will not approve C/NC requests for this course. However, such requests may be approved by the college on a per-semester basis; students are encouraged to check the college policies. Students are also encouraged to discuss these options with their academic advisors. Special enrollment permissions, e.g., prerequisite waivers, will not be granted without substantial supporting evidence, e.g., sufficient professional experience.

Organization

Lectures

The instructor will post lecture slides for each chapter.

Reading

The instructor will post a corresponding reading assignment for each chapter.

Lab

Students work together with their lab partners on a semester-long project.

Homework

Homework will be assigned after each chapter read. It may include questions at the end of the chapter or short coding assignments depending on the material. Each will be assigned in Blackboard along with submission instructions. I have designed this course to be self-contained. Thus, the only resources you need to answer the questions are contained within the course. Searching the web (e.g., Google) for answers is not only unnecessary but also risks academic violations, which can result in course failure.

Project

Students will work together in assigned groups on a semester-long project. The project must incorporate the lessons learned from the week's topic. Thus, the project will be done incrementally throughout the semester. However, the project will require the following each and every week:

  1. A working prototype of the project. This can be as simple as a project skeleton. Be prepared to "throw away" the prototype each week for the first few weeks as your knowledge of the course progresses.
  2. Code hosted on our GitHub Classroom.
  3. Working tests invoked via continuous integration (CI).

Please inform the instructor if your group requires any computing resources from the Computer Science department to complete your project.

Presentation

A select number of groups may be asked to present their final projects towards the end of the semester.

Notes

  • Deadlines and due dates for assignments will be assigned in class.
  • Late assignments will be penalized.
  • No extensions will be given for extra credit assignments.
  • Assignments are the result of individual effort unless otherwise noted (e.g., group projects).

Exams

Test make-ups will be given if and only if:

  • the request is made sufficiently in advance of the test, and
  • the make-up is scheduled within three (3) business days following the exam period.

Attendance

Attendance is expected for each and every class meeting. The instructor will start the class on time, and students are expected to be present on time.

Professional Presence & Communication

A central focus of this course is to simulate the professional work environment of Software Engineers. Thus, every student is expected to present themselves in a professional manner. Students are expected to participate in their group activities under a professional demeanor.

Academic Violations

CUNY Hunter College regards acts of academic dishonesty (e.g., plagiarism, cheating on examinations, obtaining unfair advantage, and falsification of records and official documents) as serious offenses against the values of intellectual honesty. The college is committed to enforcing the CUNY Policy on Academic Integrity and will pursue cases of academic dishonesty according to the Hunter College Academic Integrity Procedures. Special attention is given to CONTRACT CHEATING (this is where students have work completed on their behalf which is then submitted for academic credit). Academic violations will be pursued to the fullest extent possible, including failure from the course.

Email

  • Emails to the instructor must be via CUNY email addresses for FERPA reasons.
  • Include the class name or number in the subject line of the email.
  • Email thread hijacking is strongly discouraged. Ensure that the subject of your email matches its contents.
  • Ensure that your correct email address is entered into the CUNY Blackboard.

Bulletin Board

You should check the Blackboard site regularly since all class material will be posted there. Please make sure you have configured Bb to use your CUNY email address. You are responsible for any email the instructors might send there.

Laptop Loans, Computer Science Facilities, & Labs

  • Laptops and other computing equipment is available for loan through Hunter College.
  • All Computer Science students can (remotely) use any of the general-purpose labs throughout Hunter College.
  • Computer Science majors and students enrolled in CSCI courses can obtain an account on the Computer Science Department Network. More information can be found on the Computer Science Department's website.

Counseling & Wellness Services

Counseling & Wellness Services (CWS) provides mental health, health, and wellness services aimed at enhancing students' quality of life and maximizing personal and academic growth and development. More information can be found on the Counseling & Wellness Services website.

Special Needs

Students with special needs should see me for accommodation at least two weeks prior to the due date of any assignment or exam.

ADA Compliance

In compliance with the American Disability Act of 1990 (ADA) and with Section 504 of the Rehabilitation Act of 1973, Hunter College is committed to ensuring educational parity and accommodations for all students with documented disabilities and/or medical conditions. It is recommended that all students with documented disabilities (Emotional, Medical, Physical and/or Learning) consult the Office of Accessibility located in Room E1124 to secure necessary academic accommodations. For further information and assistance please call (212-772-4857)/TTY (212-650-3230).

Family Educational Rights and Privacy Act (FERPA)

The Family Educational Rights and Privacy Act (FERPA) (20 U.S.C. § 1232g; 34 CFR Part 99) is a Federal law that protects the privacy of student education records. The law applies to all schools that receive funds under an applicable program of the U.S. Department of Education.

FERPA gives parents certain rights with respect to their children's education records. These rights transfer to the student when he or she reaches the age of 18 or attends a school beyond the high school level. Students to whom the rights have transferred are "eligible students."

  • Parents or eligible students have the right to inspect and review the student's education records maintained by the school. Schools are not required to provide copies of records unless, for reasons such as great distance, it is impossible for parents or eligible students to review the records. Schools may charge a fee for copies.
  • Parents or eligible students have the right to request that a school correct records which they believe to be inaccurate or misleading. If the school decides not to amend the record, the parent or eligible student then has the right to a formal hearing. After the hearing, if the school still decides not to amend the record, the parent or eligible student has the right to place a statement with the record setting forth his or her view about the contested information.
  • Generally, schools must have written permission from the parent or eligible student in order to release any information from a student's education record. However, FERPA allows schools to disclose those records, without consent, to the following parties or under the following conditions (34 CFR § 99.31):
    • School officials with legitimate educational interest;
    • Other schools to which a student is transferring;
    • Specified officials for audit or evaluation purposes;
    • Appropriate parties in connection with financial aid to a student;
    • Organizations conducting certain studies for or on behalf of the school;
    • Accrediting organizations;
    • To comply with a judicial order or lawfully issued subpoena;
    • Appropriate officials in cases of health and safety emergencies; and
    • State and local authorities, within a juvenile justice system, pursuant to specific State law.

Schools may disclose, without consent, "directory" information such as a student's name, address, telephone number, date and place of birth, honors and awards, and dates of attendance. However, schools must tell parents and eligible students about directory information and allow parents and eligible students a reasonable amount of time to request that the school not disclose directory information about them. Schools must notify parents and eligible students annually of their rights under FERPA. The actual means of notification (special letter, inclusion in a PTA bulletin, student handbook, or newspaper article) is left to the discretion of each school.

For additional information, you may call 1-800-USA-LEARN (1-800-872-5327) (voice). Individuals who use TDD may use the Federal Relay Service.

Or you may contact us at the following address:

Family Policy Compliance Office U.S. Department of Education 400 Maryland Avenue, SW Washington, D.C. 20202-8520

Sexual Misconduct

In compliance with the CUNY Policy on Sexual Misconduct, Hunter College reaffirms the prohibition of any sexual misconduct, which includes sexual violence, sexual harassment, and gender-based harassment retaliation against students, employees, or visitors, as well as certain intimate relationships. Students who have experienced any form of sexual violence on or off-campus (including CUNY-sponsored trips and events) are entitled to the rights outlined in the Bill of Rights for Hunter College.

  1. Sexual Violence: Students are strongly encouraged to immediately report the incident by calling 911, contacting NYPD Special Victims Division Hotline (646-610-7272) or their local police precinct, or contacting the College's Public Safety Office (212-772-4444).
  2. All Other Forms of Sexual Misconduct: Students are also encouraged to contact the College's Title IX Campus Coordinator, Dean John Rose (jtrose@hunter.cuny.edu or 212-650-3262) or Colleen Barry (colleen.barry@hunter.cuny.edu or 212-772-4534) and seek complementary services through the Counseling and Wellness Services Office, Hunter East 1123. CUNY Policy on Sexual Misconduct Link: http://www.cuny.edu/about/administration/offices/la/Policy-on-Sexual-Misconduct-12-1-14-with-links.pdf

Credits

Portions of this syllabus are based on the syllabus used for the CEN 5035 Software Engineering Fall 2016 course of the Department of Computer Science & Engineering, the University of Florida by Steve Thebaut, as well as syllabi from Atanas Rountev.

Fork me on GitHub