

Hi,
My aim, in this course, is to provide a general introduction to software engineering. Within the ten weeks at our disposal, I will introduce important concepts such as software processes development, testing, and management, while describing the essential software design and modeling activities, from requirements specification through to software quality.
Course Overview
The objective is to provide a general introduction to software engineering. Specifically, you will be introduced to key concepts, including software development processes and project management. You will learn the essentials of software design, modeling, and testing, from requirements specification to software quality assurance.
Throughout this course, students will participate in a term-long team project, which will account for 50% of their final grade. Additionally, there will be weekly homework formative assignments, which account for the remaining 50% of your grade. These assignments are intended to reinforce concepts introduced each week, fostering active learning through discussion, collaboration, and the practice of various software engineering approaches in project implementation and management.
While there will be a fair amount of programming, the primary focus of this course is on processes, tools, and methods rather than coding. I have carefully selected the course content to include foundational concepts that are essential for meeting the stated objectives. Advanced topics have been omitted to maintain a focus on these fundamentals.
​​​
Course Learning Outcomes:
​
By the end of this course, students should be able to:
-
Communicate technical information effectively, both orally and in writing.
-
Synthesize requirements for a realistic software system and write a requirements specification document.
-
Select the most appropriate software process model for various situations.
-
Model system requirements using UML notations.
-
Design software systems using UML notations.
-
Validate designs and adjust the software specifications or design as necessary.
-
Effectively use software tools such as Teams and GitHub for project management and team collaboration in a software engineering context.
-
Participate effectively in a team environment.
-
Produce professional-quality software-related documents
​
Course Content:
-
The scope and the need for software engineering
-
Software engineering processes
-
Software development life cycle
-
Requirements engineering
-
Agile software development
-
Scrum
-
UML modeling and diagram notations
-
Software project management
-
Software project planning, scheduling
-
Software Testing
​
Suggested books
There is no required textbook for this class, but the following books constitute a very good reference for this course; their systematic consultation is warmly advised.
-
Software Engineering: A Practitioner's Approach by Roger Pressman and Bruce Maxim
-
​Object-Oriented and Classical Software Engineering, by Stephen R. Schach
-
​Software Engineering, by Ian Sommerville
-
​Ethical Engineering: A Practical Guide with Case Studies, by Eugene Schlossberger
-
​Handbook of Software Engineering Methods, by Lara Letaw
​
​​
Contact
I'm always looking for new and exciting opportunities. Let's connect.
123-456-7890
