Home
Research profile
Teaching profile
Professional profile
Personal profile
Contact information

Course title

EECS448: Software Engineering -- Fall 2022 (10794)
Tuesdays and Thursdays, 2:30 pm - 3:45 pm, Eaton 2
Teaching website: people.eecs.ku.edu/~saiedian/Teaching

Labs

M 01:00 - 02:50 PM EATN 1005C
Tu 09:00 - 10:50 AM EATN 1005C
W 09:00 - 10:50 AM EATN 1005C
W 02:00 - 03:50 PM EATN 1005A
Th 09:00 - 10:50 AM EATN 1005C
Th 12:00 - 01:50 PM EATN 1005A
F 02:00 - 03:50 PM EATN 1005C

Instructor

Professor Hossein Saiedian
Office: Eaton Hall 3012
Telephone: 785-864-8812
E-Mail: saiedian AT ku.edu
WWW: people.eecs.ku.edu/~saiedian
Office Hours: Tuesdays and Thursdays, 1:00-2:00 PM (and by appointment)

Teaching assistants

Arnab Mukherjee (arnabmukherjee91 AT ku.edu)
Anjali Pare (anjali.pare AT ku.edu)
Liangqin Ren (liangqinren AT ku.edu)

Course description

This course is an introduction to software engineering, and it covers the systematic development of software products. It outlines the scope of software engineering, including life-cycle models, software process, teams, tools, testing, planning, and estimating. It concentrates on requirements, analysis, design, implementation, and maintenance of software products. The laboratory covers CASE tools, configuration control tools, UML diagrams, integrated development environments, and project specific components. Prerequisite: EECS 268 and upper-level EECS eligibility.

Course outcomes

The course outcomes are as follows:

  1. Understand software engineering in terms of requirements, design, and implementation.
  2. Work effectively in a team and deliver a software product (includes a demo and presentations).
  3. Produce a software design based on requirements, a software prototype to explore a particular design, and conduct coherent testing and documentation.
  4. Learn and practice software testing including unit testing, and acceptance testing.
  5. Learn and use version control.

Textbooks

The first textbook is a required textbook and other textbooks are excellent references.

Ian Sommerville
Engineering Software Products: An Introduction to Modern Software Engineering,
Pearson, 2020.
Martin Fowler
UML Distilled: A Brief Guide to the Standard Object Modeling Language
3rd edition, Pearson, 2004.
Roger Pressman and Bruce Maxim
Software Engineering: A Practitioner's Approach
9th edition, McGraw-Hill, 2020.
Ian Sommerville
Software Engineering
10th edition, Pearson, 2016.

Students are responsible for lecture notes, reading assignments, as well as items distributed during the classroom sessions. Important reading materials as well as lecture slides will be placed on the class website.

Lecture notes

Readings

Project resources

Evaluation criteria (subject to revision)

Students will be evaluated as follows:

Exams and quizzes: 50%
Term project: 30%
Homework labs: 20%

Grading scale:
A = 90%..100%
B = 80%..89%
C = 70%..79%
D = 60%..69%

Exams and quizzes will be closed book and notes and on Canvas. Always bring a device that allows you to connect to Canvas and take the exam or quiz. No other devices is to be used other than the device used for connecting to Canvas. No other app other than Canvas should be used.

  • On exams, quizzes, and homework: Avoid a single paragraph response for a question that has multiple parts. If a question says "name three parts of ..." then give three paragraphs, one for each part to prevent ambiguous or intertwining responses. Better yet, start each paragraph as (1), (2), (3). If you provide more than three parts, only the first three will be graded.

  • On exams, quizzes, and homework: Give responses that were discussed and presented in class and are in lecture notes. We are not interested in Wikipedia or similar responses; we will be rewarding students who attend class, take notes, and study their own notes.

  • On exams, quizzes, and homework: Your response will have to be precise and complete and technical. Avoid vague and incomplete responses. We have to make sure you understood the concepts to give full credit. An answer that's basically correct but perhaps vague or incomplete or an answer that has something to do with a correct answer but is not precise or is somehow off the mark will not receive full credit. One way that I judge a good answer: if someone did not know the answer, could they read what you wrote and then understand the answer?

  • No make-up quizzes are given. No late work will be accepted. Certain exceptions may be made for family emergencies, religious observance, and illnesses.

All written work must be typeset and submitted on Canvas.

Term project. The term project will be team-based (teams of 4-6 individuals). The team project requirements will be discussed in-depth in class. The student teams will have to decide what computing platform and programming language to choose. The TAs will provide direction and support for the project artifacts or labs but are not expected to be expert on programming, programming languages, or computing platforms. Project code should be maintained on GitHub.

Technical problems. If you experience technical problems with your EECS account or the EECS servers or the lab equipment, please submit a support request help at: https://tsc.ku.edu/request-support-engineering-tsc.

Attendance. Attendance is important and required. Throughout the semester, attendance may randomly be taken; three absences or three zeros on lab assignments will result in a failing grade for the course. Furthermore, if a student misses a class session, he or she will be entirely responsible for learning the materials missed without the benefit of a private lecture on the instructor's part. Furthermore, the student will be responsible for finding out what assignments may have been given and when they are due, any updates to the project, schedule or the course syllabus.

Tentative weekly schedule (review for updates)

Overview of the course
Striving for Successful Team (Intro to Git and GitHub)
Software Life Cycle

All lecture notes (slides) are on Canvas

Software Development Models
Chapter 1: Sofftware Products
Chapter 2: Agile Software Engineering
Agile Software Development

Lab 1: Git and GitHub [Check out Github's education pack]

All lecture notes (slides) are on Canvas

Agile Development (lecture notes)
Chapter 2: Agile Software Engineering
Minimal Product (Project) Management
Domain Engineering
Requirements Engineering

Project part 1: Team profiles

All lecture notes (slides) are on Canvas

Why Modeling
Modeling with UML
UML Use Case Modeling
Chapter 3: Features, Scenarios, and Stories

Project: Vision statement

All lecture notes (slides) are on Canvas

UML class modeling
UML state transition modeling (will be covered at later time)
Thursday September 22: Exam 1

Lab: Use case modeling

All lecture notes (slides) are on Canvas

More on UML class modeling
From requirements to design: architectural selection

All lecture notes (slides) are on Canvas

Chapter 4: Software Architecture

Tuesday October 11: No class (last day of fall break)

The SDLC revisited: The Unified Process
UML diagrams for software design

All lecture notes (slides) are on Canvas

Detailed-design concepts: Modular design, object-oriented design, design patterns

Thursday October 20: Exam 2

All lecture notes (slides) are on Canvas

Detailed-design concepts: Modular design, object-oriented design, design patterns

Concepts related to writing programs (documentation, self-describing programs, coding conventions, pre- and post-conditions, interpreters vs compiled programs, the compilation process, "make" and "git")

All lecture notes (slides) are on Canvas

Chapter 5. Cloud-based Software
Chapter 6. Microservices Architecture

All lecture notes (slides) are on Canvas

Software quality assurance
Chapter 9. Software Testing
Testing coverage criteria
Black box test case generation techniques

All lecture notes (slides) are on Canvas

White box test case generation techniques (continued)
Chapter 9. Software Testing

All lecture notes (slides) are on Canvas

Examples of code-based testing

Thursday November 24: No class (Thanksgiving break)

All lecture notes (slides) are on Canvas

Chapter 8. Reliable Programming
Chapter 7. Security and Privacy

All lecture notes (slides) are on Canvas

UML revisited: modeling behavioral properties
Chapter 10. DevOp and Code Management
Emerging trends in software engineering

All lecture notes (slides) are on Canvas

Comprehensive final December 14 1:30-4:00 pm

Attendance, late work, and makeup policies

Attendance expectation. Regular attendance is essential for success in this course. Attendance will be recorded throughout the semester via iClicker for classroom meetings (and, if the course includes a lab component, via a sign-up attendance sheet for lab sessions). More than three unexcused absences (in classrooms or labs) will result in a one‑letter reduction in the final course grade, which will be applied when grades are posted at the end of the term.

Course-specific attendance policy (EECS 581). Because this course meets once per week, a single absence carries the weight of two regular sessions. Accordingly, no more than two unexcused absences will be permitted (equivalent to four regular sessions under the standard format); a third unexcused absence will result in the one-letter grade reduction described above. This applies to the Tuesday classroom sessions; TA/Scrum-meeting participation is assessed separately, using the project rubric posted on Canvas.

Late-work, makeup policy. Late work and make‑up opportunities for labs, quizzes, and exams are available exclusively for students with excused, documented, and approved absences, ensuring full support for those with qualifying circumstances.

Excused absence requests. Requests for excused absences must be submitted in advance and approved by the instructor, except in cases of emergency. Supporting documentation must accompany all requests. For emergencies, notify the instructor as soon as possible following the absence. Examples of excusable absences include:

  • Illness or injury
  • Verifiable personal mental health or medical crisis, or that of a relative
  • Unforeseen life event or compelling circumstances beyond the student's control (e.g., divorce, birth or adoption of a child, death, loss of employment, sexual assault, domestic violence)
  • Academic field trips or conferences
  • Participation in university activities at the request of university authorities (e.g., an approved concert or athletic event)
  • Jury duty or officially mandated court appearances

If a student experiences a confidential personal or family situation that does not fall under the above categories, they may consult CAPS or their academic advisor, who can then contact me on their behalf.

Make-up policy and integrity. For excused absences, quizzes and exams must be made up before the content is reviewed or the answer key is released. Labs, assignments, or homework are due within one week of the absence. Additional flexibility will be provided for special circumstances.

By taking a make-up assessment, you affirm that you have an excused absence and have not sought or received any information about its content from prior test-takers. Violating this pledge is academic misconduct (see above).

Responsibility for missed work. Students who miss class are responsible for obtaining any missed materials.

Common policies

Classroom conduct policy: Students are expected to arrive on time, remain attentive, and conduct themselves professionally. Please avoid behaviors that disrupt the learning environment or instructor presentations, and note that profanity is strictly prohibited. Additionally, students are encouraged to actively engage during class sessions by asking questions, contributing to discussions, and providing feedback.

Canvas announcements. Important course updates will be posted via Canvas Announcements. You are responsible for checking Canvas regularly; email notifications may also be sent depending on your account settings.

Email communications
As an engineering student at the University of Kansas, all written communications should reflect professional standards. Please note:

  • Subject lines: Must be descriptive and begin with EECS### for course-related messages.
  • Etiquette: Please follow standard professional email etiquette.
  • Format: Send text-only emails in text-only format. All classroom assignments, labs, or projects should be typeset and submitted on Canvas.
  • Attachments: Other documents (e.g., documents for an excusable absence) should be emailed in PDF or a well-known image format (e.g., JPG or PNG). Please choose a descriptive file name for the attachment (avoid file names like "image", "my document", etc.).

Grade and absence clarification or correction. We want to ensure your records are accurate and fair. If you believe a grade on an assignment, lab, quiz, or exam is incorrect, you must submit an grade correction request within one week of receiving the graded work. Similarly, if you need to submit documentation for an excused absence after the fact, you must do so within one week of the absence. Failure to address these matters within this one-week timeframe will result in the decision becoming final, ensuring timely resolution and consistency for the entire class.

Typographical errors. Any typographical errors on exams or other course materials, including those introduced by Canvas, will be resolved in favor of the students.

Technical problems. Submit a support request help at: https://tsc.ku.edu/request-support-engineering-tsc.

Electronic device policy: Cell phones must be silenced before entering the classroom. While laptops, tablets, and phones are welcome for note-taking and approved tools like iClicker, non-academic uses (such as social media or web surfing) must be avoided to prevent distractions. Audio should remain turned off. Additionally, devices may be used to photograph whiteboard notes or projects, provided the shots exclude the instructor and other students.

Incomplete grade policy. An Incomplete ("I") grade is reserved for exceptional circumstances beyond your control and must be resolved within the instructor's timeframe (up to one year before automatically converting to an "F" or "U"). For full details please review KU policies: here and here.

Accommodations for students with disabilities. The University of Kansas is committed to equal opportunity and accessible learning. Requests for special accommodations should be made through KU Student Access Services.

Nondiscrimination and equal opportunity. KU strictly prohibits discrimination based on protected characteristics across all programs and activities. For full institutional policies, please review KU's statements on nondiscrimination and the racial and ethnic harassment policy.

Sexual harassment. KU prohibits sexual harassment and is committed to preventing, correcting, and disciplining unlawful harassment and assault. Please review KU's statement on sexual harassment for details.

Mandatory reporter statement. As a faculty member and KU employee, I am a mandatory reporter required to share disclosures of discrimination, harassment, or sexual violence with the Office of Civil Rights and Title IX. For confidential support options (such as CAPS, Watkins Health Care, or the Ombuds Office), please review KU's statement on mandatory reporting.

Commercial note-taking ventures. Pursuant to KU's commercial note-taking policy, selling lecture notes or course materials for commercial gain is strictly prohibited and subject to disciplinary action. Note-taking provided as an official ADA accommodation for a student with a disability is exempt.

Concealed handguns. Individuals choosing to carry concealed handguns must do so safely and in strict compliance with state/federal laws and KU weapons policy, which requires that handguns remain under constant control, fully concealed, holstered with the trigger covered, and carried with the safety on and no round in the chamber.

LLM and generative AI tools

Generative AI tools, such as ChatGPT, GitHub Copilot, Gemini, and others, can be valuable resources for learning. When used appropriately, they may assist in brainstorming, exploring ideas, and refining drafts. However, they must never replace your own intellectual work.

These tools are akin to the writing center consultants, the EECS programming tutors, and lab assistants: they can guide and support but must not generate final submissions. Submitting content primarily generated by AI is a violation of academic integrity, comparable to submitting work completed by someone else.

Unless explicitly permitted, all coursework must reflect your original understanding, reasoning, and expression. Use of generative AI tools is not permitted for any assignment unless the instructor explicitly authorizes it for that specific assignment; where such use is authorized, it must be disclosed via a brief reflection describing how and why the tool was used, the specific prompts entered, how the output was validated and revised, and any challenges or limitations encountered.

  • A description of how and why AI was used
  • The specific prompts you entered
  • How you validated and revised the AI output
  • The challenges or limitations you faced while using AI

Failure to disclose use of AI tools or submitting AI-generated work as your own will be treated as academic misconduct. Minimum consequences include a zero on the assignment. Depending on severity, further penalties may include failure in the course and formal referral to the School of Engineering disciplinary committee.

This course is designed to build your skills—not evaluate the performance of generative tools. Authentic engagement with course challenges leads to meaningful growth. Overreliance on AI undermines both your learning and the integrity of our academic community.

Intellectual honesty is not optional; it defines your identity as an engineer, a scholar, and a professional.

Academic integrity policy

The University of Kansas, the School of Engineering, and the Department of Electrical Engineering & Computer Science (EECS) maintain a zero-tolerance policy toward academic dishonesty and misconduct. All students enrolled in this course are expected to uphold the highest standards of integrity and professionalism in their academic work.

Academic dishonesty includes, but is not limited to:

  • Plagiarism and unauthorized collaboration: Representing another person’s work, ideas, or writing as your own without proper attribution, or giving/receiving unapproved help on assignments, projects, quizzes, or exams.
  • Cheating: Using unauthorized resources or materials during assessments, or submitting work completed by someone else.
  • Misrepresentation and falsification: Knowingly presenting false information, fabricating or manipulating data/research results, or falsely representing your presence, participation, or attendance in a course activity.

The minimum consequence for an academic integrity violation is a zero on the item in question (e.g., lab, assignment, quiz, or exam). Depending on severity, penalties may include a grade reduction, a failing grade for the course, and formal referral to the School of Engineering's disciplinary committee for further review and sanctions.

Please also see KU's academic misconduct policy

LMS features. During exams or quizzes, only one device should be used, with solely the Canvas app or a single browser tab for Canvas open. Having any other tab, app or file open will be considered a violation of academic integrity. To further facilitate academic integrity, the following features of Canvas will be utilized:

  • The "originality checking" mechanisms of LMS will be utilized for exams but also assignments.
  • LMS features to prohibit printing, copying/pasting of exams will be turned on.
  • LMS lockdown feature will be employed.

Code of student rights and responsibility: Code of Student Rights and Responsibilities