Search

Software Engineering

This is an archived copy of the 2011-12 Catalog. To access the most recent version of the catalog, please visit http://catalog.iastate.edu.

(A program administered by the Department of Electrical and Computer Engineering and the Department of Computer Science.)

Undergraduate Study

For the undergraduate curriculum in software engineering leading to the degree Bachelor of Science.

This curriculum is jointly administered by the Department of Electrical and Computer Engineering (ECpE) Department and the Department of Computer Science (CS) Department at Iowa State University, and it provides undergraduate students with the opportunity to learn software engineering fundamentals, to study applications of the state-of-the art software technologies, and to prepare for the practice of software engineering. The student-faculty interaction necessary to realize this opportunity occurs within an environment that is motivated by the principle that excellence in undergraduate education is enhanced by an integrated commitment to successful, long-term research and outreach programs.

The software engineering curriculum offers emphasis areas in software engineering principles, process, and practice. Students may also may take elective courses in computer engineering and computer science.

The objective of the software engineering program at Iowa State University is that its graduates should demonstrate expertise, engagement, learning, leadership, and teamwork within five years after graduation.

  • Expertise: Graduates should establish peer-recognized expertise used for problem solving in specification, abstraction, analysis, design, implementation, testing and validation, evaluation, evolution, and maintenance of software systems following the real-world practices of project management, system integration, and use of tools and their development.Graduates should establish peer-recognized expertise together with the ability to articulate that expertise and use it for problem solving in the planning, design, development, validation, and evolution of software using contemporary practices.
  • Engagement: Graduates should be engaged in the professional practice, locally and globally, contributing through the ethical, competent, and creative practice of Software software engineering in industry, academia, or the public sector, or graduates may use the program as a foundation for interdisciplinary careers in business, law, medicine, or public service, or higher education.
  • Learning: Graduates should demonstrate sustained learning through graduate work or professional improvement opportunities and through self study, and they should demonstrate the ability to adapt to rapid technological changes.
  • Leadership: Graduates should exhibit leadership and initiative to advance professional and organizational goals, facilitate the achievements of others, and obtain results.
  • Teamwork: Graduates should demonstrate effective teaming and commitment to working with others of diverse cultural and interdisciplinary background by applying software engineering abilities, communication skills, and knowledge of contemporary and global issues.

As a complement to the instructional activity, the Electrical and Computer Engineering and Computer Science (ECpE) and CS Departments provide opportunities for each student to have experience with broadening activities. Through the cooperative education and internship program, students have the opportunity to gain practical industry experience. Students have the opportunity to participate in advanced research activities, and through international exchange programs, students learn about engineering practices in other parts of the world.


Curriculum in Software Engineering

Administered by the Department of Electrical and Computer Engineering and the Department of Computer Science in the College of Liberal Arts and Sciences.

Leading to the degree bachelor of science.

Total credits required: 124.5 cr. See also Basic Program and Special Programs.
International Perspectives: 3 cr.1
U.S. Diversity: 3 cr.1
Communication Proficiency/Library requirement (minimum grade of C):
ENGL 150Critical Thinking and Communication3
ENGL 250Written, Oral, Visual, and Electronic Composition3
LIB 160Library Instruction0.5
ENGL 314Technical Communication3
Total Credits9.5

General Education Electives: 2
Choose 3 courses from the following:15
Principles of Microeconomics
Principles of Macroeconomics
Engineering Economic Analysis
Arts and Humanities
Social Sciences
Additional Arts and Humanites or Social Sciences course
Basic Program:

Complete with 2.00 GPA including transfer courses:

CHEM 167General Chemistry for Engineering Students4
or CHEM 177 General Chemistry I
ENGL 150Critical Thinking and Communication3
ENGL 250Written, Oral, Visual, and Electronic Composition (see above for grade requirements)3
ENGR 101Engineering OrientationR
S E 185Problem Solving in Software Engineering3
LIB 160Library Instruction0.5
MATH 165Calculus I4
MATH 166Calculus II4
PHYS 221Introduction to Classical Physics I (See Basic Program rule)5
Total Credits26.5
Math and Physical Science:
COM S 227Introduction to Object-oriented Programming4
COM S 228Introduction to Data Structures3
MATH 267Elementary Differential Equations and Laplace Transforms4
Total Credits11
Software Engineering Core:
CPR E 281Digital Logic4
COM S 229Advanced Programming Techniques3
or CPR E 288 Embedded Systems I: Introduction
COM S 321Introduction to Computer Architecture and Machine-Level Programming3
or CPR E 381 Computer Organization and Assembly Level Programming
COM S 352Introduction to Operating Systems3
or CPR E 308 Operating Systems: Principles and Practice
COM S 311Design and Analysis of Algorithms3
COM S 330Discrete Computational Structures3
or CPR E 310 Theoretical Foundations of Computer Engineering
COM S 363Introduction to Database Management Systems3
S E 319Software Construction and User Interfaces3
S E 329Software Project Management3
S E 339Software Architecture and Design3
The core requirement is for the three credit courses. If the four credit course is taken instead the extra credit will be added to Supplementary Electives
Total Credits31
Other Remaining Courses: 38 cr.
S E 491Senior Design Project I and Professionalism3
S E 492Senior Design Project II2
SP CM 212Fundamentals of Public Speaking3
STAT 330Probability and Statistics for Computer Science3
One of the following:3
Report and Proposal Writing *
Technical Communication *
Math Elective3
Software Engineering6
Technical Elective 53
Supplementary Elective9
Open Elective3
Total Credits38

*

with a minimum grade of C

Note: Excess credits from CPR E 288 Embedded Systems I: Introduction, CPR E 381 Computer Organization and Assembly Level Programming, and/or CPR E 308 Operating Systems: Principles and Practice may be applied to meet Supplementary Elective credit requirement.

Seminar/Co-op/Internships
S E 166Careers in Software EngineeringR
Co-op or internship is optional
Transfer Credit Requirements

The degree program must include a minimum of 30 credits at the 300-level or above in professional and technical courses earned at ISU in order to receive a B.S. in software engineering. These 30 credits must include S E 491 Senior Design Project I and Professionalism, S E 492 Senior Design Project II, and credits in the core professional curriculum and/or in technical electives. The software engineering degree program requires a grade of C or better for any transfer credit course that is applied to the degree program.

  1. These university requirements will add to the minimum credits of the program unless the university-approved courses are also approved by the department to meet other course requirements within the degree program. U.S. diversity and international perspectives courses may not be taken Pass/Not Pass.
  2. Choose from department approved lists.
  3. See Basic Program for Professional Engineering Curricula for accepted substitutions for curriculum designated courses in the Basic Program.
  4. 2.00 required including transfer courses.
  5. Credit for only one of the following is allowed:
    CPR E 381Computer Organization and Assembly Level Programming4
    or COM S 321 Introduction to Computer Architecture and Machine-Level Programming
  6. Credit for only one of the following is allowed:
    CPR E 308Operating Systems: Principles and Practice4
    or COM S 352 Introduction to Operating Systems
  7. Credit for only one of the following is allowed:
    CPR E 310Theoretical Foundations of Computer Engineering3
    or COM S 330 Discrete Computational Structures

Note: International perspectives and U.S. diversity courses are used to meet the general education electives.

 Courses primarily for undergraduate students

S E 101. Software Engineering Orientation.

Cr. R.
Introduction to the procedures, policies, and resources of Iowa State University and the department of Computer Science and Electrical and Computer Engineering. Information on engineering and computer-based professions.

S E 166. Careers in Software Engineering.

Cr. R.
Overview of the nature and scope of the software engineering profession. Relationship of coursework to careers. Departmental rules, student services operations, degree requirements, program of study planning, career options, and student organizations.

S E 185. Problem Solving in Software Engineering.

(3-1) Cr. 3. Prereq: Credit or enrollment in MATH 142
Introduction to software engineering and computer programming. Systematic thinking process for problem solving in the context of software engineering. Group problem solving. Solving software engineering problems and presenting solutions through computer programs, written documents and oral presentations. Introduction to principles of programming, software design, and extensive practice in design, writing, running, debugging, and reasoning about programs.

S E 298. Cooperative Education.

Cr. R. F.S.SS. Prereq: Permission of department and Career Services
First professional work period in the cooperative education program. Students must register for this course before commencing work.

S E 319. Software Construction and User Interfaces.

(Cross-listed with COM S). (3-0) Cr. 3. F. Prereq: COM S 228
Basic theory of grammars, parsing. Language paradigms. State-transition and table-based software design. Rapid system prototyping. Review of principles of object orientation, object oriented analysis using UML. Event-driven and clock-driven simulation. Software construction methods. Frameworks and APIs. User interface architecture, evaluation of user interface. Design of windows, menus, and commands. Introduction to format specification and model-based software design. Introduction to domain-specific software engineering. Nonmajor graduate credit.

S E 329. Software Project Management.

(Cross-listed with CPR E). (3-0) Cr. 3. Prereq: COM S 309
Process-based software development. Capability Maturity Model (CMM). Project planning, cost estimation, and scheduling. Project management tools. Factors influencing productivity and success. Productivity metrics. Analysis of options and risks. Version control and configuration management. Inspections and reviews. Managing the testing process. Software quality metrics. Modern software engineering techniques and practices. Nonmajor graduate credit.

S E 339. Software Architecture and Design.

(Cross-listed with CPR E). (3-0) Cr. 3. Prereq: S E 319
Modeling and design of software at the architectural level. Architectural styles. Basics of model-driven architecture. Object-oriented design and analysis. Iterative development and unified process. Design patterns. Design by contract. Component based design. Product families. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, safety, security, reliability, reusability, etc. Analysis and evaluation of software architectures. Introduction to architecture definition languages. Basics of software evolution, reengineering, and reverse engineering. Case studies. Introduction to distributed system software. Nonmajor graduate credit.

S E 396. Summer Internship.

Cr. R. Repeatable. SS. Prereq: Permission of department and Career Services
Summer professional work period.

S E 397. Software Engineering Internship.

Cr. R. Repeatable. F.S. Prereq: Permission of department and Career Services
One semester maximum per academic year professional work period.

S E 398. Cooperative Education.

Cr. R. F.S.SS. Prereq: 298, permission of department and Career Services
Second professional work period in the cooperative education program. Students must register for this course before commencing work.

S E 409. Software Requirements Engineering.

(Cross-listed with COM S). (3-0) Cr. 3. Prereq: COM S 309, 319
The requirements engineering process, including identification of stakeholders, requirements elicitation techniques such as interviews and prototyping, analysis fundamentals, requirements specification, and validation. Use of Models: State-oriented, Function-oriented, and Object-oriented. Documentation for Software Requirements. Informal, semi-formal, and formal representations. Structural, informational, and behavioral requirements. Non-functional requirements. Use of requirements repositories to manage and track requirements through the life cycle. Case studies, software projects, written reports, and oral presentations will be required. Nonmajor graduate credit.

S E 412. Formal Aspects of Specification and Verification.

(Cross-listed with COM S, CPR E). (3-0) Cr. 3. Prereq: 319, COM S 309
Introduction to prepositional/predicate/temporal logic, program verification using theorem proving, model-based verification using model checking, and tools for verification. Nonmajor graduate credit.

S E 416. Software Evolution and Maintenance.

(Cross-listed with CPR E). (3-0) Cr. 3. Prereq: COM S 309
Practical importance of software evolution and maintenance, systematic defect analysis and debugging techniques, tracing and understanding large software, impact analysis, program migration and transformation, refactoring, tools for software evolution and maintenance, experimental studies and quantitative measurements of software evolution. Written reports and oral presentation. Nonmajor graduate credit.

S E 417. Software Testing.

(Cross-listed with COM S). (3-0) Cr. 3. Prereq: COM S 309, 319
Comprehensive study of software testing, principles, methodologies, management strategies and techniques. Test models, test design techniques (black box and white-box testing techniques), integration, regression, system testing methods, and software testing tools. Nonmajor graduate credit.

S E 490. Independent Study.

Cr. arr. Repeatable. Prereq: Senior classification in software engineering
Investigation of an approved topic.

S E 491. Senior Design Project I and Professionalism.

(2-3) Cr. 3. Prereq: 329, completion of 29 credits in the S E core professional program, ENGL 314
Preparing for entry to the workplace. Selected professional topics. Use of technical writing skills in developing project plan and design report; project poster. First of two-semester team-oriented, project design and implementation experience.

S E 492. Senior Design Project II.

(1-3) Cr. 2. Prereq: 491
Second semester of a team design project experience. Emphasis on the successful implementation and demonstration of the design completed in S E 491 and the evaluation of project results. Technical writing of final project report; oral presentation of project achievements.

S E 498. Cooperative Education.

Cr. R. Repeatable. F.S.SS. Prereq: 398, permission of department and Career Services
Third and subsequent professional work periods in the cooperative education program. Students must register for this course before commencing work.