Software Engineering (BS)
With software applications of enormous size, complexity, and expense now prevalent in diverse domains, software engineering has never been as important a field as it is now. Students gain necessary talents to be successful in today’s organizations, following current industry practices: designing and developing software; understanding and applying software development processes and methodologies in their work; leveraging software development tools used in the various phases of the development life cycle, and functioning as an effective member of a software development team or organization. Students develop their knowledge and skill through high-level electives where they write major projects in diverse areas such as client/server programming for the web, distributed programming for large clusters of processors, database programming, and markup language transformation. While working on modern applications with current software engineering practices such as Extreme Programming, students learn to analyze and apply good algorithms and other relevant tools.
Related Programs
Curriculum
| Code | Title | Hours |
|---|---|---|
| Major Requirements | ||
| Select one of the following: | 3-4 | |
| Applied Calculus I | ||
| Calculus I 1 | ||
| Select one of the following: | 3 | |
| Business Statistics | ||
| Statistics | ||
| Fundamentals of Statistics | ||
| Introduction to Probability & Statistics | ||
| COMP 141 | Introduction to Computing Tools and Techniques | 3 |
| COMP 163 | Discrete Structures | 3 |
| or MATH 201 | Introduction to Discrete Mathematics & Number Theory | |
| COMP 170 | Introduction to Object-Oriented Programming | 3 |
| COMP 264 | Introduction to Computer Systems | 3 |
| COMP 271 | Data Structures I | 3 |
| COMP 272 | Data Structures II | 3 |
| COMP 313 | Object-Oriented Design | 3 |
| COMP 317 | Social, Legal, and Ethical Issues in Computing | 3 |
| COMP 330 | Software Engineering | 3 |
| Software Engineering Restricted Electives | 9 | |
Select nine credit hours from the following: | ||
| Requirements Engineering | ||
| Formal Methods in Software Engineering | ||
| Software Quality | ||
| Programming Languages | ||
| Advanced Object-Oriented Programming | ||
| Compiler Construction | ||
| Practicum Capstone | 6 | |
Select six credit hours from the following: 2 | ||
| Open Source Software Practicum | ||
| Hands-on Approach to Security and Privacy | ||
| Broadening Participation in STEM (Computing, Math & Science) | ||
| Internship in Computer Science | ||
| Independent Study | ||
| Computer Science 300-Level Electives | 10 | |
Select ten credit hours from any COMP 300-Level Courses 3 | ||
| Computer Science Free Elective | 3 | |
Select one of the following: | ||
COMP 300-Level Course OR 3 | ||
| Visual Information Processing | ||
| Introduction to Computing | ||
| Total Hours | 61 | |
- 1
By arrangement with the Undergraduate Program Director, the extra credit from MATH 161 Calculus I may be applied towards the computer science electives.
- 2
See the details of registering for these courses in the Computer Science Department website resources. Students are encouraged to complete these credits during junior and senior years to draw on prior experience. Note:
- 3
A list of available COMP 300-level courses can be found here.
Suggested Sequence of Courses
The below sequence of courses is meant to be used as a suggested path for completing coursework. An individual student’s completion of requirements depends on course offerings in a given term as well as the start term for a major or graduate study. Students should consult their advisor for assistance with course selection.
| Year 1 | ||
|---|---|---|
| Fall | Hours | |
| COMP 141 | Introduction to Computing Tools and Techniques | 3 |
| COMP 163 | Discrete Structures | 3 |
| COMP 170 | Introduction to Object-Oriented Programming 1 | 3 |
| UNIV 101 | First Year Seminar | 1 |
| CORE: College Writing Seminar | 3 | |
| CORE: Philosophical Knowledge Tier 1 | 3 | |
| Hours | 16 | |
| Spring | ||
| COMP 271 | Data Structures I | 3 |
| MATH 131 | Applied Calculus I 2 | 3 |
| STAT 103 | Fundamentals of Statistics 3 | 3 |
| CORE: Ethics | 3 | |
| CORE: Historical Knowledge Tier 1 | 3 | |
| Hours | 15 | |
| Year 2 | ||
| Fall | ||
| COMP 264 | Introduction to Computer Systems | 3 |
| COMP 272 | Data Structures II | 3 |
| COMP 317 | Social, Legal, and Ethical Issues in Computing | 3 |
| CAS Language Requirement 101 level 4 | 3 | |
| CORE: Theology and Religious Studies Tier 1 | 3 | |
| Hours | 15 | |
| Spring | ||
| COMP 313 | Object-Oriented Design | 3 |
| COMP 330 | Software Engineering | 3 |
| CAS Language Requirement 102 level 4 | 3 | |
| CORE: Scientific Knowledge Tier 1 | 3 | |
| CORE: Societal & Cultural Knowledge Tier 1 | 3 | |
| Hours | 15 | |
| Year 3 | ||
| Fall | ||
| COMP 300-Level Elective (e.g. COMP 391 or 395 or 398) | 1 | |
| COMP 300-Level Elective | 3 | |
| CORE: Artistic Knowledge & Experience | 3 | |
| CORE: Literary Knowledge & Experience Tier 1 | 3 | |
| CORE: Philosophical Knowledge Tier 2 | 3 | |
| Software Engineering Restricted Elective | 3 | |
| Hours | 16 | |
| Spring | ||
| CORE: Historical Knowledge Tier 2 | 3 | |
| CORE: Scientific Knowledge Tier 2 | 3 | |
| CORE: Theology and Religious Studies Tier 2 | 3 | |
| Software Engineering Restricted Elective | 3 | |
| Software Engineering Restricted Elective | 3 | |
| Hours | 15 | |
| Year 4 | ||
| Fall | ||
| CAS Elective | 3 | |
| COMP Practicum | 3 | |
| CORE: Literary Knowledge & Experience Tier 2 | 3 | |
| CORE: Societal & Cultural Knowledge Tier 2 | 3 | |
| COMP 300-Level Elective | 3 | |
| Hours | 15 | |
| Spring | ||
| CAS Elective | 3 | |
| CAS Elective | 3 | |
| COMP 300-Level Elective | 3 | |
| COMP Free Elective | 3 | |
| COMP Practicum | 3 | |
| Hours | 15 | |
| Total Hours | 122 | |
- 1
COMP 170 Introduction to Object-Oriented Programming is designed to serve as a first introductory programming course. Students seeking a more gentle introduction may start with COMP 125 Visual Information Processing or COMP 150 Introduction to Computing; if one of those courses is taken, it can be counted into the "COMP Free Elective" category of the requirements of the major. Additionally, A score of 4 or 5 on the AP CS Principles Exam or AP CS A exam will earn actual credit for COMP 150 or COMP 170, respectively.
- 2
May substitute MATH 161 Calculus I and may use the extra credit towards COMP Free Electives.
- 3
May substitute STAT 203 Introduction to Probability & Statistics or ISSCM 241 Business Statistics or PSYC 304 Statistics.
- 4
Language must be completed through the 102 course level or through an exam.
General Notes
- Credits never can be double-counted for different categories of the requirements for the major. But a course may satisfy a major requirement and also satisfy a University and/or College requirement (e.g., Core, residency, Engaged Learning, Writing Intensive).
- With permission, extra credits of MATH 161 Calculus I or 300 level MATH, PHYS, or STAT for double majors can be applied to the "Computer Science 300-Level Electives" or "Computer Science Free Electives" categories.)
- It is usually not meaningful to combine a computing major or minor with another, the principal exception being Computer Crime and Forensics Minor; see more detail in the double-dipping rules.
College of Arts and Sciences Graduation Requirements
All Undergraduate students in the College of Arts and Sciences are required to take two Writing Intensive courses (6 credit hours) as well as complete a foreign language requirement at 102-level or higher (3 credit hours) or a language competency test. More information can be found here.
Additional Undergraduate Graduation Requirements
All Undergraduate students are required to complete the University Core, at least one Engaged Learning course, and UNIV 101. SCPS students are not required to take UNIV 101. Nursing students in the Accelerated BSN program are not required to take core or UNIV 101. You can find more information in the University Requirements area.
Learning Outcomes
- By the end of the program, students shall be able to explain the various stages of software development, from requirements elicitation, to design, implementation, testing, and maintenance.
- Students shall be able to write extensive programs in several programming languages and apply a deep understanding of object-oriented design and other software paradigms.
- Students shall be able to design, implement, validate, and maintain software systems, including being able to work with complex software architectures and design patterns.
- Students shall be able to explain and apply testing methodologies, debugging, and techniques to ensure software reliability, usability, security, and performance.
- Students shall be able to apply software project planning and management techniques, including being able to perform cost estimation, risk management, and project scheduling and tracking.
- Students shall be able to work effectively on teams and be able to communicate design ideas and work effectively both verbally and in writing.
- Students shall demonstrate knowledge of and the ability to present well-structured arguments about professional, ethical, legal, security, and social issues and responsibilities as they pertain to computer science