EECS 348 (4 credit hours): Software Engineering -- Fall 2024
Tuesdays and Thursdays, lectures meet in person @ 2:30 pm - 3:45 pm, Eaton 002
Teaching website: people.eecs.ku.edu/~saiedian/Teaching
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)
This course is an introduction to software development fundamentals and software engineering. It incorporates a thorough introduction to a compiled programming language. A baseline knowledge of tools and utilities is covered including the shell, common programs, version control, IDEs, editors, and build tools. Topics include: software development principles (e.g., design patterns, modularity, loose coupling), extending larger codebases, developing larger codebases, continuous integration, continuous deployment, debugging, unit testing, test-driven development, and databases. Grade of C (not C-) required to progress. Prerequisite: EECS 268.
Master the SDLC. Gain a solid understanding of the software development process, from concept to deployment. Explore various development models to choose the right approach for your projects.
Project management fundamentals. Learn essential project management skills like planning, scheduling, and communication. Effectively manage your work and contribute to successful software projects.
Teamwork for software development. Understand the importance of collaboration in software engineering. Learn to work effectively within teams to design, develop, and deliver high-quality software.
Core software engineering concepts. Understand the fundamentals of requirements engineering, architecture, design, testing, implementation, and deployment. Build robust and maintainable software systems.
Essential tools for software engineers. Master industry-standard tools like Git/GitHub for version control and IDEs for efficient coding. Explore programming languages for various tasks (C/C++, shell scripting, web development) and server-side scripting (e.g., PHP) for building web applications, and SQL for backend database access and processing.
Wednesday 09:00 - 10:50 AM (23312), EATN 1005C, Oloko
Wednesday 01:00 - 02:50 PM (23319), EATN 1005D, Oloko
Wednesday 01:00 - 02:50 PM (23313), EATN 1005B, Shaik
Thursday 09:00 - 10:50 AM (23314), EATN 1005C, Ren
Thursday 11:00 - 12:50 PM (23315), EATN 1005B, Shaik
Thursday 04:00 - 05:50 PM (23567), EATN 1005C, Likcani
Friday 01:00 - 02:50 PM (23316), EATN 1005B, rotated
Friday 03:00 - 04:50 PM (23318), EATN 1005C, Likcani
Friday 04:00 - 05:50 PM (23568), EATN 1005D, Ren
Toye Oloko (toye @ ku.edu) W 11:00 - 12:50 PM, EATN 2029
Nyamtulla Shaik (nyam @ ku.edu) Th 9:00 - 10:50 AM, EATN 2029
Liangqin Ren (liangqinren @ ku.edu) Th 11:00 - 11:50 AM and F 3:00 - 3:50 PM, EATN 2029
Kevin Likcani (kevinlikcani @ ku.edu) 11:00 - 12:50 PM, EATN 2029
This course does not have required textbook, but the following are a couple of the popular textbooks in software engineering:
![]() |
Ravi Sethi Software Engineering Cambridge Press, 2022. |
![]() |
Roger Pressman and Bruce Maxim Software Engineering: A Practitioner's Approach 9th edition, McGraw-Hill, 2020. |
There are plenty of resources, tutorials, and YouTube videos on UML.
Two interesting professional software engineers' podcasts:
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 Canvas:
Lecture notes (Canvas)
Readings (Canvas)
Project resources (Canvas)
Evaluation criteria. Students will be evaluated as follows:
Weekly labs: 25%Labs: Certain lab assignments must be completed in the lab under the supervision of the TAs to uphold academic integrity standards. Completing these labs outside the lab will result in no credit.
Term project. The term project will be team-based, with teams consisting of 5-6 members. Project requirements will be discussed in class, and detailed descriptions of project components will be available on Canvas. Teams will need to choose a computing platform, and all projects must be implemented in C++. TAs will offer guidance, support, and feedback for the project components. All project components and code should be maintained on GitHub.
Exams and quizzes Exams and quizzes will be conducted in-person, in the classroom, and will be closed book and notes, administered through Canvas. Always bring a device that can connect to Canvas for taking exams or quizzes. During an exam or quiz, no other devices should be used, and no other files or apps should be open except for Canvas. If using a browser to connect to Canvas, only one tab should be open.
Grading scale
A = 90%..100%
B = 80%..89%
C = 70%..79%
D = 60%..69%
All written work must be typeset and submitted on Canvas. Handwritten submissions will not be accepted, as typesetting is required.
Week 1: August 27 and August 29
Overview of the course
Striving for successful teams
Intro to Git and GitHub
Software life cycle
Week 2: September 3 and September 5
Software tools
Software development models
Software products vs software projects
Agile software development
Git and GitHub
Week 3: September 10 and September 12
Minimal product (project) management
Domain engineering
Requirements engineering
Project management plan (due: 9/22/2024)
Shell programming, make
Week 4: September 17 and September 19
Why modeling
UML use case modeling
Use case modeling; tool: Visual Paradigm
Week 5: September 24 and September 26
September 24: Exam 1
Introduction to C programming
Project requirements (due: 10/13/2024)
Week 6: October 1 and October 3
Compiled programs: C/C++ programming
Eclipse/VS IDE, compiled programs, C programming, git
Week 7: October 8 and October 10
Compiled programs: C/C++ programming
Eclipse/VS IDE, compiled programs, C/C++ programming, git
Week 8: October 15 and October 17
Tuesday October 15: Fall break
Compiled programs: C/C++ programming (continued)
Week 9: October 22 and October 24
UML class diagrams: modeling requirement and design solutions
Software architecture
Design patterns
Web programming with HTML, CSS, JS, and PHP
Project architecture and design (due: 11/10/2024)
October 24: Exam 2 (moved to 10/26)
Week 10: October 29 and October 31
Detailed-design concepts: Modular design, object-oriented
design, design patterns
Object-oriented programming with C++
Week 11: November 5 and November 7
Detailed-design concepts: Modular design, object-oriented design, design patterns
Project implementation (due: 12/8/2024)
SQL programming
Week 12: November 12 and November 14
Detailed-design concepts: Modular design, object-oriented design, design patterns
Software quality assurance
Software testing
Testing coverage criteria
UML class modeling
Week 13: November 19 November 21
Black box test case generation techniques
White box test case generation techniques
Project test cases (due: 12/12/2024)
Project user manual (due: 12/12/2024)
Software testing
Week 14: November 26 and November 28
Examples of code-based testingThursday November 28: Thanksgiving break
Week 15: December 3 and December 5
Regular expressions
Cloud-based software
Microservices architecture
Regular expressions (unassigned in the interest of the term project completion)
Week 16: December 10 and December 12
DevOps and code management
Emerging trends in software engineering
Project implementation due: updated project management plan, requirements, design, test cases, C++ code, user manual
Week 17: December 17
Tuesday December 17: Comprehensive final (1:30-4:00 pm)
Attendance.
Regular attendance is essential for success in this course
and its labs. Attendance may be taken throughout the
semester. Three or more unexcused absences will result in a
one-letter grade reduction in the final course grade, which will
be reflected when grades are posted at the end of the semester.
Students who miss class without a valid excuse are responsible
for obtaining missed materials and assignments. The instructor or the TAs
will not provide individual makeup lectures or one-on-one
instruction. It is the student's responsibility to stay informed
about course content, assignments, and course updates.
Late-work, makeup policy.
Late work will not be accepted. Make-up options for labs,
quizzes, or exams are not available.
Exceptions will be made for
excusable absences.
Requests for excused absences must be submitted in advance and
approved by the instructor, except in emergencies. In such
cases, notify the instructor as soon as possible after the
absence. Please attach verification documents to the request.
Make-up quizzes and exams for excused absences must
be completed before the following session when the quiz/exam
content will be discussed in classroom or its key becomes
public. Make-up for an excused lab absence should be
completed within one week.
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.
Inside classroom policy.
Students are expected to come to the class on time, be
attentive and engaged, conduct themselves professionally, and
avoid anything that could cause a distraction or detrimental
either for other students learning or for the instructor's
presentations. Profanity and swearing is not allowed.
Students are expected to actively participate in all classroom
presentations and discussions, ask questions, and regularly
make contributions such as offering comments, responding with
good answers, and providing feedback.
Canvas announcements.
Announcements is a Canvas tool to post important
information and updates to all members of a course. It is your
responsibility to regularly check your Canvas account for such
announcements (students may also receive an email notification
when a new announcement is posted).
Email communications
E-mail communication is fast, flexible, and effective. You have an
@ku.edu email account and you are expected to regularly check
it. Important information may also be communicated via email.
You are a student registered in a course offered by
the School of Engineering at the University of Kansas, a top regional
and a nationally ranked institution. Your communications, especially
written communications (composition, grammar, spelling, punctuation,
etc), should reflect that status.
Please follow these email guidelines and etiquettes.
Send text-only emails in text-only format. All classroom
assignments, labs, or projects should be typeset and submitted
on Canvas.
Other documents (e.g., documents for an excusable
absence) shoud be emailed in PDF or a well-known image format (e.g.,
JPG or PNG). See the Guidelines for submitting electronic documents.
Grade and absence clarification or correction.
If you believe your grades on an assignment, lab, quiz, or
exam are incorrect, you should formally submit a grade appeal
via email to the instructor within one week of receiving the
graded work. Similarly, if you have an excusable absence, and
you did not provide documentation prior to the absence, submit
relevant documentation within one week of the absence. Failure
to address concerns within these timeframes will result in
the decision becoming final. This timeline ensures timely
resolution and fairness for all parties involved.
Late exam-taking policy. If a
student will have to take an exam or a quiz at a later time
(due to an excused and verified absence), he or she
will be asked to make the following statement:
I understand that I have been granted the opportunity to take
this exam or quiz on [date of rescheduled exam] due to an excused
absence from the original exam on [date of original exam]. In
making this arrangement, I affirm that I did not and will
not, by any means (in writing, speaking, or through digital
communications), obtain any information about the exam content
or details from anyone who has taken it at the original time. I
understand that violating this pledge may result in disciplinary
action, including receiving a failing grade on the exam.
Cell phone policy. Cell phones
should be turned off before coming to the classroom.
Cell phone use for the purposes of texting, email
or other social media should be avoided. Earphones
for music are OK during lab work or individualized
problem solving, as long as the volume allows you to
hear announcements. Also cell phone or other cameras
may be used to photograph projects and the whiteboard
but avoid shots that include the presenter or other students. Laptop/electronic device policy. The use of laptops,
tablets or similar devices is common for taking notes
but turn off audio and avoid any possible uses
that could cause distraction for others
(e.g., Web surfing or social media visits).
Incomplete grade policy. "Incomplete
(I) grades are used to note, temporarily, that students
have been unable to complete a portion of the required
course work during that semester due to circumstances
beyond their control. Incomplete work must be completed
and assigned an A-F or S/U grade within the time
period prescribed by the course instructor. After
one calendar year from the original grade due date,
an Incomplete (I) grade will automatically convert
to a grade of F or U, or the lapsed grade assigned by
the course instructor."
Also please review change of grade policy
here and
here.
Accommodations for students with disabilities.
The University of Kansas is committed to providing
equal opportunity for participation in all programs,
services and activities. Requests for special
accommodations may be made thru the
KU Student Access Services.
The Provost's freedom of expression statement .
"Our IRISE values will guide us and our students as we all
engage with each other in respectful freedom of expression.
In a setting as diverse as KU, we will inevitably encounter
ideas, opinions and philosophies that are different than
our own and which some personally find uncomfortable or
offensive. To be clear, threats, incitement of violence and
targeted harassment are not protected speech under the First
Amendment. Offensive speech, although it can be painful, is
generally considered protected speech. We need to strongly
encourage and facilitate civil and respectful discussion and
interaction. We simply must not inhibit or penalize expression
protected by the First Amendment."
KU's diversity policy statement.
"As a premier international research university, the University of
Kansas is committed to an open, diverse and inclusive learning
and working environment that nurtures the growth and development
of all. KU holds steadfast in the belief that an array of
values, interests, experiences, and intellectual and cultural
viewpoints enrich learning and our workplace. The promotion
of and support for a diverse and inclusive community of mutual
respect require the engagement of the entire university..."
Please also see:
KU's statement on diversity and inclusion.
KU's nondiscrimination, equal opportunity.
"The University of Kansas prohibits discrimination on the
basis of race, color, ethnicity, religion, sex, national
origin, age, ancestry, disability, status as a veteran,
sexual orientation, marital status, parental status, gender
identity, gender expression, and genetic information in the
University's programs and activities."
Please also see:
KU's statement on nondiscrimination and on
racial and ethnic harassment policy.
KU's sexual harassment policy.
"The University of Kansas prohibits sexual harassment and
is committed to preventing, correcting, and disciplining
incidents of unlawful harassment, including sexual harassment
and sexual assault."
Please also see
KU's statement on sexual harassment.
KU's mandatory reporter statement.
"The University of Kansas has decided that all employees, with
few exceptions, are responsible employees or mandatory reporters
who must report incidents of discrimination, harassment, and
sexual violence that they learn of in their employment at KU
to the Office of Civil Rights and Title IX. This includes
faculty members. As such, if you share information about
discrimination, harassment, or sexual violence with me, I
will have to relay that information to the Office of Civil
Rights and Title IX. I truly value your trust in me to share
that information and I want to be upfront about my requirement
as a mandatory reporter. If you are interested in contacting
KU’s confidential resources (those who do not have to make
disclosures to OCRTIX), there are: the Care Coordinator,
Melissa Foree; CAPS therapists; Watkins Health Care Providers;
and the Ombuds Office."
Please see
KU's statement on mandatory reporting.
KU's commercial note-taking ventures.
"Pursuant to the University of Kansas’ Policy on Commercial
Note-Taking Ventures, commercial note-taking is not permitted
in this course. Lecture notes and course
materials may be taken for personal use, for the purpose of
mastering the course material, and may not be sold to any person
or entity in any form. Any student engaged in or contributing
to the commercial exchange of notes or course materials will be
subject to discipline, including academic misconduct charges,
in accordance with University policy. Please note: note-taking
provided by a student volunteer for a student with a disability,
as a reasonable accommodation under the ADA, is not the same
as commercial note-taking and is not covered under this policy."
Please see
KU's statement on commercial note-taking.
Concealed handguns.
"Individuals who choose to carry concealed handguns are solely responsible to do
so in a safe and secure manner in strict conformity with state and federal laws
and KU weapons policy. Safety measures outlined in the KU weapons policy
specify that a concealed handgun:
Common policies
Examples of excusable absences include:
Generative AI tools like ChatGPT can be powerful resources
for learning. They can aid in brainstorming, research, and
writing. However, it's crucial to use these tools ethically
and responsibly.
Think of generative AI as a sophisticated lab tutor or writing
center consultant. These tools can offer valuable support, but
they cannot replace your own intellectual work. Submitting work
generated primarily by AI is considered academic misconduct,
similar to having someone else write your paper or code your
program.
All assignments in this course require your original thought
and effort. You are expected to demonstrate your learning by
completing assignments independently. While you may use AI
tools as a resource, the final product must be your own work.
To clarify expectations and foster transparency, you
will be asked to reflect on your use of AI tools for each
assignment. These reflections should detail how AI assisted
you, the challenges you encountered, and how you overcame
them. This process will help you develop critical thinking
and problem-solving skills.
Remember: The goal of this course is to develop your
abilities. Relying too heavily on AI can hinder your
intellectual growth. By engaging with the challenges of the
course and learning from your experiences, you will build a
strong foundation for success.
The University of Kansas, the School of Engineering, and
in particular, the Department of Electrical Engineering &
Computer Science (EECS) have zero tolerance for academic
dishonesty and academic misconduct.
The institutional definitions and consequences of institutional
academic integrity policies will used. Academic dishonesty
includes any form of plagiarism (cheating) as well as "giving
or receiving of unauthorized aid on examinations or in the
preparation of assignments or reports, knowingly misrepresenting
the source of any academic work, falsification of research
results, and plagiarizing of another's work." An absolutely
minimum consequence of an academic integrity violation will be
a zero for the item in question (e.g., a lab, an assignment,
an exam or quiz), but depending on the severity, the consequence
may be a lower grade, or simply an F for the
course, and the case may be forwarded to the SoE committee
for additional penalties and disciplinary measures.
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 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:
KU's academic misconduct policy: https://policy.ku.edu/governance/USRR#art2sect6
Code of student rights and responsibility: Code of Student Rights and Responsibilities
The ACM's and IEEE's code of ethics. As IT and computing
professionals and/or as engineers, you should be familiar with
the ACM's (IT, computing) and IEEE (engineering) codes of
ethics and apply them during your academic and professional
careers. These are lifelong commitments to integrity and
professional conduct.
We will review these during the first class session, but you
are strongly encouraged to review these codes in detail:
From the ACM's preamble: Computing professionals' actions
change the world. To act responsibly, they should reflect upon
the wider impacts of their work, consistently supporting the
public good. The ACM Code of Ethics and Professional Conduct
("the Code") expresses the conscience of the profession.
From the IEEE's preamble: We, the members of the IEEE, in
recognition of the importance of our technologies in affecting
the quality of life throughout the world, and in accepting
a personal obligation to our profession, its members and the
communities we serve, do hereby commit ourselves to the highest
ethical and professional conduct and agree.
The School of Engineering Statement on EdTech.
"With the switch to online teaching as a result of the
Coronavirus pandemic, professors and instructors at the
KU School of Engineering are aware that some students are
actively posting assignments, laboratory, and exam questions
and responses to EdTech services (e.g., Chegg) even during
exam time frames.
Keep in mind that when a person signs up to participate by
either uploading, and/or downloading, and/or using posted
material from these sites, the “terms of service” that are
agreed to do not protect the person when KU and/or the School
of Engineering decide to conduct investigations related to
academic misconduct (e.g., plagiarism and/or cheating).
In fact, EdTech services, like Chegg, retain contact information
of students who use their services and will release that
information, which is traceable, upon request. Using these
services constitutes academic misconduct, which is not tolerated
in the School of Engineering. It violates Article 3r, Section
6 of its Rules & Regulations, and may lead to grades of F
in compromised course(s), transcript citations of academic
misconduct, and expulsion from the University of Kansas.
If unsure about assignments, it is important that students use
the allowable available resources, such as instructor office
hours, graduate teaching assistants, and/or tutoring. The School
of Engineering wants students to be successful; cheating is
not the way to attain that success."
KU's policy on academic misconduct
LLM and generative AI tools
Academic integrity
Additional important links:
Professor Hossein Saiedian
Electrical Engineering & Computer Science
Eaton Hall 3012
University of Kansas
1520 W 15th St
Lawrence, KS 66045-7621
+1 785 864-8812
saiedian at eecs.ku.edu