Administrated by the College of Engineering and the College of Liberal Arts and Sciences.
For the undergraduate curriculum in Software Engineering leading to the degree Bachelor of Science. The Software Engineering Program is accredited by the Engineering Accreditation Commission of ABET, https://www.abet.org, under the commission’s General Criteria and Program Criteria for Software and Similarly Named Engineering Programs.
A software engineer uses their expertise to design, develop, and evaluate software, configure and install computer systems, and build and maintain software systems throughout their lifecycle. Specific tasks software engineers perform evolve quickly, reflecting changes in technology, as well as the needs of employers. Software engineers work as members of teams that may include experts in engineering, marketing, manufacturing, accounting, training, and design.
The Software Engineering Program provides undergraduate students with the opportunity to learn Software Engineering fundamentals, to study applications of 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 motivated by the principle that excellence in undergraduate education is enhanced by an integrated commitment to successful, long-term research, and outreach programs.
Student learning outcomes
Graduates of the Software Engineering curriculum should have, at the time of graduation:
- An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
- An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
- An ability to communicate effectively with a range of audiences.
- An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
- An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
- An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
- An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.
PROGRAM EDUCATIONAL Objectives
Within five years of graduation, the graduates should:
1. Attain a productive career in Software Engineering or related fields.
2. Attain leadership roles and become effective collaborators and innovators to advance professional and organizational goals.
3. Engage in lifelong learning and professional development.
4. Encourage and support diversity and inclusiveness in their workplace.
We expect that these objectives will be manifested in our graduates through the following five key attributes: (a) peer-recognized expertise, (b) engagement in professional practice, (c) sustained learning, (d) leadership and (e) teamwork.
Demonstration of expertise involves applying state-of-the-art practices for solving problems in the design, development, validation, evolution and sustainment of (software) products. Demonstration of professional engagement involves contributing locally and globally to the use of ethical, competent, and creative practices in industry, academia or the public sector. Demonstration of sustained learning involves the ability to adapt to rapid technological, environmental, and organizational changes through self-study and group study and through opportunities of professional development or graduate study. Demonstration of leadership involves the ability to take initiative, and to facilitate the advancements of individuals and the community by influencing others and by having a widespread, positive impact on critical issues and projects. Finally, demonstration of teamwork involves the ability to work with collaborators who have varied expertise, and with diverse cultural and interdisciplinary backgrounds.
As a complement to the instructional activity, the College of Engineering and the College of Liberal Arts and Sciences provide opportunities for each student to have experience with broadening activities. Students have the opportunity to gain practical industry experience in the cooperative education and internship program. Students have the opportunity to participate in advanced research activities. Through international exchange programs, students learn about engineering practices in other parts of the world.
Curriculum in Software Engineering
Degree requirements leading to the degree Bachelor of Science in Software Engineering.
Total credits required: 125 cr.
Any transfer credit courses applied to the degree program require a grade of C or better (but will not be calculated into the ISU cumulative GPA, Engineering Basic Program GPA, or Software Engineering Core GPA). See also Engineering Basic Program and Special Programs. Note: Pass/Not Pass credits cannot be used to meet graduation requirements.
International Perspectives: 3 cr.1
U.S. Cultures and Communities: 3 cr.1
Communication Proficiency/Library requirement:
ENGL 1500 | Critical Thinking and Communication (C or better in this course) | 3 |
ENGL 2500 | Written, Oral, Visual, and Electronic Composition (C or better in this course) | 3 |
LIB 1600 | Introduction to College Level Research | 1 |
Choose one of the following: | 3 | |
Proposal and Report Writing (C or better in this course) | ||
Technical Communication (C or better in this course) | ||
Total Credits | 10 |
General Education Requirements: 21 cr.2
Choose 1 course from the following: | 3 | |
Principles of Microeconomics | ||
Principles of Macroeconomics | ||
Engineering Economic Analysis | ||
Approved Arts and Humanities or Social Sciences courses | 9 | |
ENGL 2500 | Written, Oral, Visual, and Electronic Composition (C or better in this course) | 3 |
Choose one of the following ENGL courses (C or better in this course) | 3 | |
Proposal and Report Writing | ||
Technical Communication | ||
SPCM 2120 | Fundamentals of Public Speaking | 3 |
Total Credits | 21 |
Engineering Basic Program: 24 cr.
A minimum GPA of 2.00 is required for this set of courses (please note that transfer course grades will not be calculated into the Engineering Basic Program GPA). See Requirement for Entry into Professional Program in College of Engineering Overview section.
CHEM 1670 | General Chemistry for Engineering Students | 4 |
or CHEM 1770 | General Chemistry I | |
ENGL 1500 | Critical Thinking and Communication (C or better in this course) | 3 |
Software Engineering Orientation | ||
SE 1850 | Problem Solving in Software Engineering 3 | 3 |
LIB 1600 | Introduction to College Level Research | 1 |
MATH 1650 | Calculus I | 4 |
MATH 1660 | Calculus II | 4 |
PHYS 2310 | Introduction to Classical Physics I | 4 |
PHYS 2310L | Introduction to Classical Physics I Laboratory | 1 |
Total Credits | 24 |
Math and Physical Science: 17 cr.
COMS 2270 | Object-oriented Programming (C- or better in this course) | 4 |
COMS 2280 | Introduction to Data Structures (C- or better in this course) | 3 |
MATH 2670 | Elementary Differential Equations and Laplace Transforms | 4 |
Math Elective: Choose one of the following: | 3 | |
Matrices and Linear Algebra | ||
Calculus III | ||
Combinatorics | ||
Graph Theory | ||
Theory of Linear Algebra | ||
STAT 3300 | Probability and Statistics for Computer Science | 3 |
Total Credits | 17 |
Software Engineering Core: 37 cr.
A minimum GPA of 2.00 is required for this set of courses, including any transfer courses (please note that transfer course grades will not be calculated into the Software Engineering Core GPA):
CPRE 2810 | Digital Logic | 4 |
Choose one of the following: | 3 | |
Advanced Programming Techniques | ||
Embedded Systems I: Introduction | ||
Choose one of the following: | 3 | |
Introduction to Computer Architecture and Machine-Level Programming | ||
Computer Organization and Assembly Level Programming | ||
Choose one of the following: | 3 | |
Introduction to Operating Systems | ||
Operating Systems: Principles and Practice | ||
Choose one of the following: | 3 | |
Discrete Computational Structures | ||
Theoretical Foundations of Computer Engineering | ||
COMS 3110 | Introduction to the Design and Analysis of Algorithms | 3 |
COMS 3630 | Introduction to Database Management Systems | 3 |
SE 3090 | Software Development Practices | 3 |
SE 3170 | Introduction to Software Testing | 3 |
SE 3190 | Construction of User Interfaces | 3 |
SE 3390 | Software Architecture and Design | 3 |
SE 4210 | Software Analysis and Verification for Safety and Security | 3 |
Note: CPRE 2880, CPRE 3810, and CPRE 3080 are 4-credit courses. The Software Engineering Core credit requirement (37 credits) is given in terms of 3-credit courses. If the 4-credit courses are taken instead, then the extra credits will be used as credits for Supplemental Electives. | ||
Total Credits | 37 |
Other Remaining Courses: 26 cr.
SE 4910 | Senior Design Project I and Professionalism | 3 |
Careers in Software Engineering | ||
SE 4920 | Senior Design Project II | 2 |
Software Engineering Electives 2 | 9 | |
Supplemental Electives 2 | 9 | |
Open Elective 2 | 3 | |
Total Credits | 26 |
Optional Co-op/Internships
Co-op (ENGR 3980) or internship (ENGR 3960) is optional |
Transfer Credit Requirements
The degree program must include a minimum of 30 credits at the 3000-level or above in professional and technical courses earned at ISU in order to receive a Bachelor of Science in Software Engineering. These 30 credits must include SE 4910 Senior Design Project I and Professionalism and SE 4920 Senior Design Project II. The Software Engineering degree program requires a grade of C or better for any transfer credit course that is applied to the degree program.
- 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. Cultures and Communities and International Perspectives courses may not be taken Pass/Not Pass.
- Choose from approved lists.
- See Basic Program for Professional Engineering Curricula for accepted substitutions for curriculum designated courses in the Engineering Basic Program.
See also: A 4-year plan of study grid showing course template by semester.
Note: International Perspectives and U.S. Cultures and Communities courses are used to meet the General Education Electives.
Software Engineering, B.S.
Freshman | |||
---|---|---|---|
Fall | Credits | Spring | Credits |
SE 1010 | R | SE 1660 | R |
SE 1850 | 3 | COMS 2270 | 4 |
MATH 1650 | 4 | MATH 1660 | 4 |
CHEM 1670 or 1770 | 4 | PHYS 2310 | 4 |
LIB 1600 | 1 | PHYS 2310L | 1 |
Economics Elective | 3 | ENGL 1500 | 3 |
15 | 16 | ||
Sophomore | |||
Fall | Credits | Spring | Credits |
COMS 2280 | 3 | SE 31901 | 3 |
CPRE 28101 | 4 | COMS 3270 or CPRE 28801, 2 | 3 |
MATH 2670 | 4 | CPRE 3100 or COMS 2300 | 3 |
SPCM 2120 | 3 | Math Elective | 3 |
ENGL 2500 | 3 | General Education Elective | 3 |
17 | 15 | ||
Junior | |||
Fall | Credits | Spring | Credits |
SE 30901 | 3 | SE 31701 | 3 |
COMS 3210 or CPRE 38101, 2 | 3 | SE 33901 | 3 |
COMS 3110 | 3 | COMS 3520 or CPRE 30801, 2 | 3 |
COMS 36301 | 3 | ENGL 3140 or 3090 | 3 |
General Education Elective | 3 | General Education Elective | 3 |
15 | 15 | ||
Senior | |||
Fall | Credits | Spring | Credits |
SE 4910 | 3 | SE 4920 | 2 |
SE 42101 | 3 | Software Engineering Elective | 3 |
Software Engineering Elective | 3 | Software Engineering Elective | 3 |
Supplemental Elective | 3 | Supplemental Elective | 3 |
STAT 3300 | 3 | Supplemental Elective | 3 |
Open Elective | 3 | ||
15 | 17 | ||
Total Credits: 125 |
- *
Total credits required - 125 credits. Any transfer credit courses applied to the degree program require a grade of C or better (but will not be calculated into the ISU Cumulative GPA, Engineering Basic Program GPA, or Software Engineering Core GPA). See also Basic Program and Special Programs.
Engineering Basic Program - A minimum GPA of 2.00 is required for this set of courses, including any transfer courses (please note that transfer course grades will not be calculated into the Engineering Basic Program GPA)
Must receive a C or better grade in required English classes.
Must receive a C- or better grade in MATH 1650, MATH 1660, COMS 2270, and COMS 2280.
General Educational Elective courses to be selected in consultation with Software Engineering Academic Advisors from a list of approved courses. They must include courses that satisfy university and college general education requirements. These courses include courses or categories of courses such as International Perspectives and U.S. Cultures and Communities, World Language, Arts and Humanities, and Social Sciences. Pass/Not Pass credit is not accepted.
Software Engineering Electives and Supplemental Electives must be selected from the program-approved list.
- 1
Software Engineering Core (A minimum GPA of 2.00 is required for this set of courses, including any transfer courses but transfer course grades will not be calculated into the Software Engineering Core GPA)
- 2
Students who take the 4-credit lab courses CPRE 2880, CPRE 3080, and CPRE 3810 instead of the corresponding 3-credit alternatives can apply the additional credits toward Supplemental Electives. The total number of credits required in the Software Engineering Program remains the same for all students.
The Software Engineering Program has established concurrent undergraduate and graduate programs with the Department of Computer Science, the Department of Electrical and Computer Engineering, and the Ivy College of Business. Please visit https://se.iastate.edu/academics/ for details.