SWE 205: Introduction To Software Engineering

SWE 205: Introduction To Software Engineering

 
Course Information
Class/Laboratory Schedule: 

3 lectures per week, 50 minutes each (3-0-3)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 

ICS 102

Prerequisite Courses: 
Catalog Description: 

Introduction to software engineering and software processes. Construction techniques and principals. Concepts of Programming Languages: Syntax and semantics. Analysis and Design Modes. Ethical and professional responsibilities.

Textbook(s): 

Somerville, Ian. Software Engineering, 7th Edition, Addison-Wesley, 2004.

Pressman, R.S. Software Engineering: A Practitioner’s Approach, 6th Edition, McGraw-Hill Companies, Inc, 2005

Course Outcomes: 

Upon completion of this course, students will have the ability to:

  • Select the most appropriate processes for a given software project
  • Deferential between software processes and know theiradvantages/disadvantages in certain context.
  • Identify various design issues in programming languages andillustrate with examples how the design issues have been handledin various popular programming languages
  • Show basic program development skill in four programmingparadigms: object-oriented, imperative, functional, and logic.
  • Create a number of different UML analysis models such as classmodel, use-cases, sequence diagram, activity diagram, and statecharts.
  • Create a number of different UML design models such as classmodel, use-cases, sequence diagram, activity diagram, and statecharts.
  • Apply construction techniques and principals such as exceptions.
  • Demonstrate understanding of the ethical and professionalresponsibilities.
  • Demonstrate good writing and oral communication skills.
Topics Covered: 
  • Introduction to Software Engineering
  • Generic View of Processes
  • Software Processes Models
  • Software Project Management
  • Software Requirements
  • Software Analysis
  • Software Design
  • Software Testing
  • Basics of Programming Languages
  • Software Construction Techniques
  • Managing People / Group Dynamics
  • Communication Skills
  • Professionalism​