Site-wide links

Software Engineering BS

James Vallino, Chair
(585) 475-2991, J.Vallino@se.rit.edu

http://www.se.rit.edu/

Program overview

As software becomes ever more common in everything from airplanes to appliances, there is an increasing demand for engineering professionals who can develop high-quality, cost-effective software systems. The BS in software engineering combines traditional computer science and engineering with specialized course work in software engineering.

Students learn principles, methods, and techniques for the construction of complex and evolving software systems. The major encompasses technical issues affecting software architecture, design, and implementation as well as process issues that address project management, planning, quality assurance, and product maintenance. Upon graduation, students are prepared for immediate employment and long-term professional growth in software development organizations.

Accreditation

The BS degree in software engineering is accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org.

Curriculum

An important component of the curriculum is complementary course work in related disciplines. As with other engineering fields, mathematics and the natural sciences are fundamental. In addition, students must complete courses in related fields of engineering, business, or science. Three engineering electives, plus a three-course sequence in an application domain, enable students to connect software engineering principles to application areas. A required course in economics or finance bridges software engineering with the realities of the business environment.

Students also complete general education courses in the liberal arts and a required ethics course helps students develop a sense of professionalism and social responsibility in the technical world.

Senior projects

A two-course senior design sequence helps students synthesize and apply the knowledge and experience they have gained in classes and on co-op assignments to a industry-sponsored project. Organizations with challenging technical problems frequently contact faculty seeking assistance on a problem. Many of these issues find their solutions via the work of the senior project teams.

In the first course students organize themselves into teams, based on the number and complexity of the projects available. The bulk of the semester is devoted to requirements elicitation and architectural design, but also may include detailed design, prototyping, and even production, depending on the nature of the project. In addition, teams are responsible for assigning specific roles to team members and developing a project plan that includes scheduled, concrete milestones. In the second course, students work on the tactical issues of development and deployment. Teams complete the construction and integration of their project, conduct testing, and demonstrate the final outcome to faculty and the sponsoring organization.

Organizations that have sponsored senior projects include Wegmans, Paychex, Moog, Northrup Grumman Security Systems, Intel Corp., Webster Financial Group, Oracle, Nokia, IBM Thomas Watson Research, PaeTec Communications, Alstom Signaling Inc., RIT Information and Technology Services, Harris Corporation (RF Communications Division), the Air Force Research Laboratory, Excellus Blue Cross Blue Shield, Telecom Consulting Group NE Corp. (TCN), and Videk.

Cooperative education

Students are required to complete 40 weeks of cooperative education prior to graduation. Students typically begin co-op in their third year of study, alternating semesters of study on campus with co-op blocks. To ensure that co-op is integrated with the curriculum, students must complete their final co-op block prior to taking Software Engineering Project I (SWEN-561).

Software engineering, BS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
CSCI-141, 142 Computer Science I, II 8
MATH-181, 182 LAS Perspective 7A, 7B: Project-based Calculus I, II 8
  LAS Foundation 1: First Year Seminar† 3
  LAS Perspective 1 3
SWEN-101 Freshman Seminar 1
MATH-190 Discrete Mathematics for Computing 3
SWEN-250 Personal SW Engineering 3
  LAS Foundation 2: First Year Writing 3
  YearOne 0
  Wellness Education* 0
Second Year
PHYS-211, 212 LAS Perspective 5, 6: University Physics I, II 8
CSCI-262 Introduction to Computer Science Theory 3
COMM-251 Professional Communication for Software Engineers 3
SWEN-261 Introduction to Software Engineering 3
  LAS Perspective 2, 3 6
STAT-205 Applied Statistics 3
SWEN-220 Math Models of Software Engineering 3
SWEN-262 Engineering of Software Subsystems 3
Third Year
SWEN-256 Software Process and Project Management 3
SWEN-331 Secure Software System Development 3
  SWEN Design Elective 3
CMPE-340 Engineering Fundamentals of Computer Systems 4
  LAS Perspective 4 3
Fourth Year
SWEN-440 SW Sys. Reqts. & Arch. (WI) 3
SWEN-444 H.C. Reqts & Design 3
  Process Elective 3
  Math/science Elective 3
  Application Domain Elective 3
  LAS Immersion 1 3
Fifth Year
SWEN-561, 562 Software Engineering Project I, II 6
  Engineering Electives 6
  Application Domain Electives 6
  LAS Immersion 2, 3 6
  Free Electives 6
Total Semester Credit Hours 128

Please see New General Education Curriculum–Liberal Arts and Sciences (LAS) for more information.

(WI) Refers to a writing intensive course within the major.

* Please see Wellness Education Requirement for more information. Students completing bachelor's degrees are required to complete two Wellness courses.

† The First Year Seminar requirement is replaced by an LAS Elective for the 2014-15 academic year.

Accelerated dual degree option

An accelerated dual degree option is available for outstanding undergraduate students who wish to earn both a bachelor's and a master's degree in game design and development in approximately six years.

Software engineering, BS/MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
CSCI-141 Introduction to Computational Problem Solving 4
CSCI-142 Computational Problem Solving with Structures 4
MATH-181, 182 LAS Perspective 7A, 7B: Project-based Calculus I, II 8
  LAS Foundation 1: First Year Seminar† 3
  LAS Perspective 1 3
SWEN-101 Software Engineering Seminar 1
MATH-190 Discrete Mathematics 3
SWEN-250 Personal Software Engineering 3
  LAS Foundation 2: First Year Writing 3
  YearOne 0
  Wellness Education* 0
Second Year
PHYS-211, 212 LAS Perspective 5, 6: University Physics I, II 8
CSCI-262 Introduction to Computer Science Theory 3
COMM-251 Professional Communication for Software Engineers 3
SWEN-261 Introduction to Software Engineering 3
  LAS Perspective 2, 3 6
STAT-205 Applied Statistics 3
SWEN-220 Math Models of Software Engineering 3
SWEN-262 Engineering of Software Subsystems 3
Third Year
SWEN-256 Software Process and Project Management 3
SWEN-331 Secure Software System Development 3
  SWEN Design Elective 3
CMPE-340 Engineering Fundamentals of Computer Systems 4
  LAS Perspective 4 3
  Cooperative Education (Fall or Spring) co-op
Fourth Year
SWEN-440 SW Sys. Reqts. & Arch. (WI) 3
SWEN-444 H.C. Reqts & Design 3
SWEN-722 Process Engineering 3
  Math/Science Elective 3
  Application Domain Elective 3
  LAS Immersion 1 3
  Cooperative Education (Fall or Spring) co-op
Fifth Year
SWEN-561, 562 Software Engineering Project I, II 6
SWEN-745 Software Modeling 3
  Engineering Electives 6
  Application Domain Electives 6
  LAS Immersion 2, 3 6
  Free Electives 6
  Graduate Electives 6
Sixth Year
SWEN-790 Thesis 6
SWEN-772 Software Quality Engineering 3
SWEN-755 Software Architectures and Product Lines 3
SWEN-749 Software Evolution and Re-engineering 3
  Graduate Elective 3
Total Semester Credit Hours 158

Please see New General Education Curriculum–Liberal Arts and Sciences (LAS) for more information.

(WI) Refers to a writing intensive course within the major.

* Please see Wellness Education Requirement for more information. Students completing bachelor's degrees are required to complete two Wellness courses.

† The First Year Seminar requirement is replaced by an LAS Elective for the 2014-15 academic year.

Software engineering electives

Software engineering electives may include the following:

SWEN-342 Engineering of Concurrent and Distributed Software Systems
SWEN-343 Engineering of Enterprise Software Systems
SWEN-461 Real Time and Embedded Systems
SWEN-462 Modeling of Real Time Systems
SWEN-463 Performance Engineering of Real Time and Embedded Systems
SWEN-467 Hardware Software Co-design for Cryptographic Applications
SWEN-549 Software Engineering Design Seminar

Software engineering process electives

Software engineering process electives may include the following:

SWEN-350 Software Process and Product Quality
SWEN-352 Software Testing
SWEN-356 Trends in Software Development Processes
SWEN-559 Software Engineering Process Seminar

Engineering electives

Students may choose engineering electives from any software engineering (SWEN) elective course, any course offered by the Kate Gleason College of Engineering at the 200-level or higher (for which a student has met the required prerequisites), or the following set of courses offered by the computer science department:

CSCI-261 Analysis of Algorithms
CSCI-331 Introduction to Intelligent Systems
CSCI-344 Programming Langauge Concepts
CSCI-351 Data Communications and Networks I
CSCI-352 Operating Systems
CSCI-420 Principles of Data Mining
CSCI-431 Introduction to Computer Vision
CSCI-442 Language Processors
CSCI-451 Data Communications and Networks II
CSCI-454 Parellel Computing
CSCI-462 Cryptography
CSCI-510 Introduction to Computer Graphics

Application domain courses

 

An application domain is a set of three courses that expose a student to a domain area in which software engineering is often applied. There are standard pre-defined application domains and a student is free to suggest a student-defined domain. Example application domain areas include:

  • Artificial Intelligence
  • Bioinformatics
  • Business Applications
  • Computational Mathematics
  • Computer Engineering
  • Computer Security
  • Economics 
  • Entrepreneurship
  • Industrial and Systems Engineering
  • Interactive Entertainment
  • Public Policy
  • Scientific and Engineering Computing
  • Statistics
  • Usability
  • Student-defined domain

 

Additional information

Laboratories

Equipped with the latest technology, the software engineering department’s facilities include three student instructional studio labs, a specialized embedded systems lab, and a collaboration lab. In addition, freshmen are encouraged to take advantage of the department’s mentoring lab. Staffed by advanced software engineering students, this lab offers new students an environment where they can learn from those who have successfully fulfilled most of the major's academic requirements.

Students enrolled in software engineering courses also can use any of the department’s eleven team rooms. Equipped with a computer and projector, network connections, a meeting table, seating for six, and generous whiteboard space, these rooms support the department’s commitment to teamwork, both inside and outside the classroom.

Senior software engineering students have unrestricted access to the department’s projects lab for the duration of their senior projects.

[arrow] Click to view program requirements in the Quarter Calendar

Quarter Curriculum - For Reference Only

Effective fall 2013, RIT will convert its academic calendar from quarters to semesters. The following content has been made available as reference only. Currently matriculated students who began their academic programs in quarters should consult their academic adviser for guidance and course selection.

Program overview

As software becomes ever more common in everything from airplanes to appliances, there is an increasing demand for engineering professionals who can develop high-quality, cost-effective software systems. The BS in software engineering combines traditional computer science and engineering with specialized course work in software engineering.

Students learn principles, methods, and techniques for the construction of complex and evolving software systems. The program encompasses technical issues affecting software architecture, design, and implementation as well as process issues that address project management, planning, quality assurance, and product maintenance. Upon graduation, students are prepared for immediate employment and long-term professional growth in software development organizations.

Accreditation

The BS degree in software engineering is accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org.

Curriculum

An important component of the curriculum is complementary course work in related disciplines. As with other engineering fields, mathematics and the natural sciences are fundamental. In addition, students must complete courses in related fields of engineering, business, or science. Three engineering electives, plus a three-course sequence in an application domain, provide the opportunity to connect software engineering principles to areas in which they may be applied. A required course in economics or finance bridges software engineering with the realities of the business environment.

The liberal arts component of the program consists of six core courses and a three-course concentration. A required ethics course helps students develop a sense of professionalism and social responsibility in the technical world.

Senior projects

Software engineering students take a two-course senior design sequence during their final year of study. The goal is for students to synthesize and apply the knowledge and experience they have gained in classes and on co-op assignments to a industry-sponsored project. Companies and other organizations with challenging technical problems frequently contact our software engineering faculty seeking assistance on a problem. Many of these issues find their solutions via the work of the senior project teams.

In the first course students organize themselves into teams, based on the number and complexity of the projects available. The bulk of the semester is devoted to requirements elicitation and architectural design, but also may include detailed design, prototyping, and even production, depending on the nature of the project. In addition, teams are responsible for assigning specific roles to team members and developing a project plan that includes scheduled, concrete milestones.

In the second course, students work on the tactical issues of development and deployment. Teams complete the construction and integration of their project, conduct testing, and demonstrate the final outcome to faculty and the sponsoring company.

Companies and organizations that have sponsored senior projects include Wegmans, Paychex, Moog, Northrup Grumman Security Systems, Intel Corp., Webster Financial Group, Oracle, Nokia, IBM Thomas Watson Research, PaeTec Communications, Alstom Signaling Inc., RIT Information and Technology Services, Harris Corporation (RF Communications Division), the Air Force Research Laboratory, Excellus Blue Cross Blue Shield, Telecom Consulting Group NE Corp. (TCN), and Videk.

Cooperative education

Students must complete 40 weeks of cooperative education prior to graduation. Students typically begin co-op in their third year of study, alternating quarters of study on campus with co-op blocks. To ensure that co-op is integrated with the academic program, students must complete their final co-op block prior to taking Software Engineering Project I.

Software engineering, BS degree, typical course sequence (quarters)

CourseQtr. Cr. Hrs.
First Year
4010-101 Freshman Seminar 1
4003-241 Problem-Based Introduction to Computer Science 4
4003-242 Data Structure Problem Solving 4
4003-243 Object-Oriented Programming 4
1016-281, 282, 283 Calculus I, II, III 12
1016-265, 366 Discrete Mathematics I, II 8
  Liberal Arts* 8
  Wellness Education† 0
1720-050 052 First-Year Enrichment I, II 2
Second Year
4010-350 Personal Software Engineering 4
4010-361 Software Engineering 4
4010-362 Engineering of Software Subsystems 4
0535-351 Professional Communications 4
1017-311 University Physics I 4
Choose one of the following science sequences: 8
   1017-312, 313    University Physics II, III  
   1011-215, 216 205, 206    Chemical Principles I, II, and Labs  
   1001-201, 202, 205, 206    General Biology I, II, and Labs  
1016-314 Engineering and Statistics 4
0306-340 Engineering Fundamentals of Computer Systems 4
4003-380 Introduction to Computer Science Theory 4
  Liberal Arts* 8
  Wellness Education† 0
Third, Fourth, and Fifth Year
  Math/Science Elective‡ 4
4010-456 Software Process and Project Management 4
4010-444 Engineering Methods for Software Usability 4
4010-441 Principles of Concurrent Systems 4
4010-540 Principles of Software Architecture and Design 4
4010-420 Formal Methods of Specification and Design 4
4010-555 Software Requirements Engineering 4
4010-561, 562 Software Engineering Project I, II 8
  Software Engineering Electives** 12
  Application Domain Electives§ 12
  Engineering Electives†† 12
  Free Electives 12
  Liberal Arts* 20
  Cooperative Education (four quarters required) Co-op
Total Quarter Credit Hours 195

* Please see Liberal Arts General Education Requirements for more information.

† Please see Wellness Education Requirement for more information.

‡ Software engineering majors are required to take one four-credit math/science elective from the following list: College Chemistry (1011-208), General Biology (1011-201), Matrix Algebra (1016-331), Combinatorial Mathematics (1016-365), Differential Equations (1016-306) or Theory of Graphs and Networks (1016-467)

§ Each student must complete a three-course sequence in an application domain related to software engineering. Current domains include industrial and systems engineering, bioinformatics, business applications, computational mathematics, computer security, economics, interactive entertainment, public policy, remote sensing, usability, computer engineering, artificial intelligence, scientific and engineering computing, imaging and publishing technology.

** Students must choose three of the following courses: Principles of Distributed Software Systems (4010-442), Principles of Information Systems Design (4010-443), Software Process and Product Quality (4010-450), Software Testing (4010-452), or Agile Software Development (4010-556).

†† Each student must complete three separate or related engineering electives. Choices can be made from software engineering, industrial and systems engineering, computer engineering, and other pre-approved computer science courses. Prerequisites apply.

Additional information

Laboratories

Equipped with the latest technology, the software engineering department’s facilities include three student instructional studio labs, a specialized embedded systems lab, and a collaboration lab. In addition, freshmen are encouraged to take advantage of the department’s mentoring lab. Staffed by advanced software engineering students, the mentoring lab offers our newest students an environment where they can learn from those who have successfully fulfilled most of the program’s academic requirements.

Students enrolled in software engineering courses also can use any of the department’s eleven team rooms. Equipped with a computer and projector, network connections, a meeting table, comfortable seating for six, and generous whiteboard space, these rooms support the department’s commitment to teamwork, both inside and outside the classroom.

Senior software engineering students have unrestricted access to the department’s projects lab for the duration of their senior projects.