Software Engineering Bachelor of Science Degree

A software development degree that encompasses technical issues affecting software architecture, design, and implementation as well as process issues that address project management, planning, quality assurance, and product maintenance.


96%

Outcome Rate of RIT Graduates

$97K

Average First-Year Salary of RIT Graduates


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. This software development degree encompasses technical issues affecting software architecture, design, and implementation as well as process issues that address project management, planning, quality assurance, and product maintenance. Students are prepared for immediate employment and long-term professional growth in a range of software development organizations.

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.

We offer a challenging undergraduate program that prepares students for the demands and challenges of the software industry. The undergraduate degree consists of both core and elective courses that focus on the software engineering lifecycle. In addition, each student must complete a senior project on a team of four or five students.

Plan of Study

The software engineering program has four key elements: engineering design, software product development, teamwork, and communication. The curriculum ensures that the student's coursework balances between software design principles and software process practices. In every course, teamwork is emphasized with a significant part of the final grade being based on team project activities. By the time our students start their senior project, they will have worked on 20 to 25 different student teams in their software engineering courses. Software engineering students also develop their communication skills. In every course, they will be preparing engineering documentation, such as requirements documents, design documents, project plans, burndown charts, and software test plans. Also, at the end of each project cycle, the students make oral presentations on their work and receive critique from the instructor and other students in the class.

The software engineering program focuses on developing skills to:

  1. Model and analyze proposed and existing software systems, especially through the use of discrete mathematics and statistics.
  2. Apply quality principles to the definition of software systems and processes.
  3. Analyze and design complex software systems using contemporary principles such as cohesion and coupling, abstraction and encapsulation, design patterns, frameworks, and architectural styles.
  4. Apply contemporary software engineering methods to planning, management, and development of software systems.
  5. Accurately communicate technical material related to all phases of the software life cycle via concise and correct documents, graphics and oral presentations.
  6. Work in small teams to develop a software system. This includes the ability to assume distinct operational roles (e.g., configuration management, quality assurance) in addition to design and implementation.
  7. Assess the social, environmental, and cultural factors arising from existing software systems as well as potential risks of proposed systems with a clear understanding of the ethical and professional responsibilities necessary for different software product lines.
  8. Relate principles of software engineering to at least one application domain where those principles can be applied.
  9. Explore new topics in software engineering or related application domains with limited oversight and input from faculty or mentors.
  10. Rapidly learn, assess, and adapt to new languages, environments, and paradigms for software development.

With the skills obtained in our program, software engineering students will be able to design and build quality software solutions that meet the customer's requirements, are delivered on time, without defects, and within budget.

An important component of the curriculum is the 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. Two 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 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.

Students also complete general education courses in the liberal arts to develop a sense of professionalism and social responsibility in the technical world.

Engineering Electives

Students may choose engineering electives from software engineering, computer science, or majors in the Kate Gleason College of Engineering. Additional rules and restrictions are listed in the curriculum section.

Senior Design Project

A two-course senior design project helps students synthesize and apply the knowledge and experience they have gained in classes and on co-op assignments to an industry-sponsored project. Organizations with challenging technical problems frequently contact faculty seeking assistance in defining a solution. Many of these issues find their resolution via the work of the software engineering 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.

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.

Combined Accelerated Bachelor’s/Master’s Degrees

Today’s careers require advanced degrees grounded in real-world experience. RIT’s Combined Accelerated Bachelor’s/Master’s Degrees enable you to earn both a bachelor’s and a master’s degree in as little as five years of study, all while gaining the valuable hands-on experience that comes from co-ops, internships, research, study abroad, and more. Learn more about our accelerated bachelor’s/master’s degrees and how you can prepare for your future faster.

Accelerated 4+1 MBA

An accelerated 4+1 MBA option is available to students enrolled in any of RIT’s undergraduate programs. RIT’s accelerated bachelor’s/master’s degrees can help you prepare for your future faster by enabling you to earn both a bachelor’s and an MBA in as little as five years of study.

Loading...

Careers and Cooperative Education

Typical Job Titles

Application Engineer Associate Software Engineer
Embedded Software Engineer Full Stack Developer
Global Technology Analyst iOS Developer
Quality Assurance Engineer Software Test Engineer
System Infrastructure Engineer Web Developer

Salary and Career Information for Software Engineering BS

Cooperative Education

What’s different about an RIT education? It’s the career experience you gain by completing cooperative education and internships with top companies in every single industry. You’ll earn more than a degree. You’ll gain real-world career experience that sets you apart. It’s exposure–early and often–to a variety of professional work environments, career paths, and industries.

Co-ops and internships take your knowledge and turn it into know-how. Your computing co-ops will provide hands-on experience that enables you to apply your computing knowledge in professional settings while you make valuable connections between classwork and real-world applications.

Students in the software engineering degree are required to complete three blocks (40 weeks) of cooperative education experience.

Curriculum for Software Engineering BS

Software Engineering, BS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
GCIS-123
General Education – Elective: Software Development and Problem Solving I
A first course introducing students to the fundamentals of computational problem solving. Students will learn a systematic approach to problem solving, including how to frame a problem in computational terms, how to decompose larger problems into smaller components, how to implement innovative software solutions using a contemporary programming language, how to critically debug their solutions, and how to assess the adequacy of the software solution. Additional topics include an introduction to object-oriented programming and data structures such as arrays and stacks. Students will complete both in-class and out-of-class assignments. Lab 6 (Fall, Spring).
4
GCIS-124
General Education – Elective: Software Development and Problem Solving II
A second course that delves further into computational problem solving, now with a focus on an object-oriented perspective. There is a continued emphasis on basic software design, testing & verification, and incremental development. Key topics include theoretical abstractions such as classes, objects, encapsulation, inheritance, interfaces, polymorphism, software design comprising multiple classes with UML, data structures (e.g. lists, trees, sets, maps, and graphs), exception/error handling, I/O including files and networking, concurrency, and graphical user interfaces. Additional topics include basic software design principles (coupling, cohesion, information expert, open-closed principle, etc.), test driven development, design patterns, data integrity, and data security. (Prerequisite: C- or better in SWEN-123 or CSEC-123 or GCIS-123 or equivalent course.) Lab 6 (Fall, Spring, Summer).
4
MATH-181
General Education – Mathematical Perspective A: Project-Based Calculus I
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals. (Prerequisite: A- or better in MATH-111 or A- or better in ((NMTH-260 or NMTH-272 or NMTH-275) and NMTH-220) or a math placement exam score greater than or equal to 70 or department permission to enroll in this class.) Lecture 6 (Fall, Spring, Summer).
4
MATH-182
General Education – Mathematical Perspective B: Project-Based Calculus II
This is the second in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates. (Prerequisites: C- or better in (MATH-181 or MATH-173 or 1016-282) or (MATH-171 and MATH-180) or equivalent course(s).) Lecture 6 (Fall, Spring, Summer).
4
MATH-190
General Education – Elective: Discrete Mathematics for Computing
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems. (Co-requisites: MATH-182 or MATH-182A or MATH-172 or equivalent courses.) Lecture 3 (Fall, Spring).
3
SWEN-101
Software Engineering Freshman Seminar
Provides first-year students with the skills necessary to succeed at RIT and in the software engineering program. Small group sessions are used to help new students make friends, create a stronger bond with RIT and their program and become acquainted with the campus and its facilities. In addition, students are introduced to the profession of software engineering and to ethical issues they will face at RIT and throughout their careers. (SOFTENG-BS) Lecture 2 (Fall).
1
SWEN-250
Personal Software Engineering
This is a project-based course to enhance individual, technical engineering knowledge and skills as preparation for upper-division team-based coursework. Topics include adapting to new languages, tools and technologies; developing and analyzing models as a prelude to implementation; software construction concepts (proper documentation, implementing to standards etc.); unit and integration testing; component-level estimation; and software engineering professionalism. (Pre-requisites: CSCI-105 or CSCI-141 or SWEN-123 or CSEC-123 or GCIS-123 (all with a C- or better) or equivalent course. Co-requisites: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
YOPS-010
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies. Lecture 1 (Fall, Spring).
0
 
General Education – Artistic Perspective
3
 
General Education – Ethical Perspective
3
ENGL-150
General Education – First-Year Writing: Future of Writing (WI)
This First Year Writing Intensive course is designed to develop first-year students’ proficiency in analytical writing, rhetorical reading, and critical thinking by focusing on particular uses of narrative. Students will read, understand, and interpret a variety of texts representing different cultural perspectives and/or academic disciplines. Increasingly, scholars, artists, public figures and other professionals recognize the value of using stories across genres to inform analytical practice. Students will gain informed practice in using narrative in different disciplines, and become aware of storytelling as one among a number of rhetorical strategies for inquiry. Students will be expected to give presentations as well as write papers both in response to the reading material and in services of their own independent arguments. Lecture 3 (Fall, Spring, Summer).
3
Second Year
COMM-253
General Education – Elective: Communication (WI)
An introduction to communication contexts and processes emphasizing both conceptual and practical dimensions. Participants engage in public speaking, small group problem solving and leadership, and writing exercises while acquiring theoretical background appropriate to understanding these skills. Lecture 3 (Fall, Spring).
3
PHYS-211
General Education – Natural Science Inquiry Perspective: University Physics I
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: C- or better in MATH-181 or equivalent course. Co-requisites: MATH-182 or equivalent course.) Lec/Lab 6 (Fall, Spring).
4
PHYS-212
General Education – Scientific Principles Perspective†
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: (PHYS-211 or PHYS-211A or PHYS-206 or PHYS-216) or (MECE-102, MECE-103 and MECE-205) and (MATH-182 or MATH-172 or MATH-182A) or equivalent courses. Grades of C- or better are required in all prerequisite courses.) Lec/Lab 6 (Fall, Spring).
4
STAT-205
General Education – Elective: Applied Statistics
This course covers basic statistical concepts and techniques including descriptive statistics, probability, inference, and quality control. The statistical package Minitab will be used to reinforce these techniques. The focus of this course is on statistical applications and quality improvement in engineering. This course is intended for engineering programs and has a calculus prerequisite. Note: This course may not be taken for credit if credit is to be earned in STAT-145 or STAT-155 or MATH 252.. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-099
Undergraduate Cooperative Education Seminar
This seminar helps students prepare for Software Engineering co-operative education employment (“co-op”) by developing job search strategies and materials, and reviewing relevant policies. Students are introduced to RIT’s Office of Career Services and Cooperative Education, and learn about professional and ethical responsibilities for their co-op and subsequent professional experiences. Completion of this seminar and the related assignments are required before a SE student can be registered for co-op. (Prerequisites: This class is restricted to SOFTENG-BS or COMPEX-UND Major students with at least 2nd year standing.) Lecture 1 (Fall, Spring).
0
SWEN-256
Software Process and Project Management
An introductory course to software process and related software project management issues. Emphasis is on the study, use, evaluation, and improvement of the software development process and related project management. Topics include software development methodologies, software project planning and tracking, change control, software quality assurance, risk management, and software process assessment and improvement. (Prerequisites: SWEN-261 or equivalent course) Lecture 3 (Fall, Spring).
3
SWEN-261
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
SWEN-262
Engineering of Software Subsystems
An introduction to the principles of the foundations of contemporary software design. Topics include software subsystem modeling, design patterns, design tradeoffs, and component-based software development, with a focus on application of these concepts to concrete design problems. The relationship between design and related process issues such as testing, estimation, and maintenance are also discussed. (Prerequisites: SWEN-261 and (SWEN-250 or (CSCI-243 or 4003-334) or CMPE-380 or SOFTENG-MN) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
SWEN-344
Engineering of Web Based Software Systems
A course in web engineering, emphasizing organizational aspects of web development, design and implementation by individuals and small teams. Students will be instructed in the proper application of software engineering principles to the creation of web applications. Course topics will include, but not be limited to web usability, accessibility, testing, web services, databases, requirements elicitation and negotiation. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
SWEN-488
Software Engineering Summer Co-op
Software Engineering cooperative work block. One summer block of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Summer).
0
 
General Education – Global Perspective
3
 
General Education – Social Perspective
3
Third Year
MATH-241
General Education – Elective: Linear Algebra
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course. (Prerequisites: MATH-190 or MATH-200 or MATH-219 or MATH-220 or MATH-221 or MATH-221H or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-340
Software Design for Computing Systems
To design and develop high quality products software engineers need to understand the physical components and systems that are an integral part of these products. This understanding is critical in the fulfillment of non-functional requirements such as performance, reliability and security. This course will provide software engineering students with hardware, computer architecture, and networking domain specific knowledge. Course programming assignments will provide practical experience developing software that interfaces with hardware components and systems. Credit cannot be granted for this course and CMPE-240. (Prerequisites: SWEN-250 or equivalent course.) Lecture 3 (Fall, Spring).
3
Choose one of the following:
3
   SWEN-444
   Human-Centered Requirements and Design
This course introduces quantitative models and techniques of human-computer interface analysis, design and evaluation, which are relevant to the software engineering approach of software development. User-focused requirements engineering topics are also covered. Contemporary human computer interaction (HCI) techniques are surveyed, with a focus on when and where they are applicable in the software development process. Students will deliver usable software systems derived from an engineering approach to the application of scientific theory and modeling. Other topics may include usability evaluation design, methods of evaluation, data analysis, social and ethical impacts of usability, prototyping and tools. (Prerequisites: SWEN-262 or equivalent courses. Co-requisites: STAT-205 or STAT-145 or MATH-251 or equivalent courses.) Lec/Lab 3 (Fall, Spring).
 
   SWEN-445
   Honors Human-Centered Requirements and Design
This course introduces quantitative models and techniques of human-computer interface analysis, design and evaluation, which are relevant to the software engineering approach of software development. User-focused requirements engineering topics are also covered. Contemporary human computer interaction (HCI) techniques are surveyed, with a focus on when and where they are applicable in the software development process. Students will deliver usable software systems derived from an engineering approach to the application of scientific theory and modeling. Other topics may include: usability evaluation design, methods of evaluation, data analysis, social and ethical impacts of usability, prototyping and tools. (Prerequisites: SWEN-262 or equivalent courses. Co-requisites: STAT-205 or STAT-145 or MATH-251 or equivalent courses.) Lecture 3 (Fall Or Spring).
 
SWEN-499
Software Engineering Co-op (spring)
Software Engineering cooperative work block. One semester of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Fall, Spring).
0
 
General Education – Immersion 1
3
 
Software Engineering Process Elective
3
Fourth Year
Choose one of the following:
3
   CSCI-261
   Analysis of Algorithms
This course provides an introduction to the design and analysis of algorithms. It covers a variety of classical algorithms and data structures and their complexity and will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms. (Prerequisites: (CSCI-243 or SWEN-262) and (MATH-190 or MATH-200) or equivalent courses.) Lecture 3 (Fall, Spring).
 
   CSCI-264
   Honors Analysis of Algorithms
This course provides a challenging introduction to the design and analysis of algorithms with an emphasis on problem solving and algorithmic research. It covers a variety of classical algorithms and data structures and their complexity, as well as deeper coverage of more advanced material; for example, linear programming, approximation algorithms, and randomized algorithms. The course will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms. (Prerequisites: (CSCI-243 or SWEN-262) and (MATH-190 or MATH-200) or equivalent courses.) Lecture 3 (Fall).
 
SWEN-331
Engineering Secure Software
Principles and practices forming the foundation for developing secure software systems. Coverage ranges across the entire development lifecycle: requirements, design, implementation and testing. Emphasis is on practices and patterns that reduce or eliminate security breaches in software intensive systems, and on testing systems to expose security weaknesses. (Prerequisites: SWEN-261 and (SWEN-488 or SWEN-498 or SWEN-499 or CSEC-499 or CSCI-488 or CSCI-499 or CMPE-499) or equivalent course.) Studio 3 (Fall, Spring).
3
SWEN-440
Software System Requirements and Architecture (WI-PR)
Principles and practices related to identifying software system stakeholders, eliciting functional and quality requirements, translating requirements into architectural structures, and analyzing candidate architectures with respect to the requirements. (Prerequisites: SWEN-488 or SWEN-498 or SWEN-499 or CSCI-499 or CSCI-488 or CMPE-499 or CSEC-499 or equivalent courses. Co-requisites: SWEN-444 or SWEN-445 or equivalent course.) Studio 3 (Fall, Spring).
3
SWEN-499
Software Engineering Co-op (spring)
Software Engineering cooperative work block. One semester of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Fall, Spring).
0
 
General Education – Immersion 2
3
 
General Education – Math/Science Elective
3
Fifth Year
SWEN-561
Software Engineering Project I
The first course in a two-course, senior-level, capstone project experience. Students work as part of a team to develop solutions to problems posed by either internal or external customers. Problems may require considerable software development or evolution and maintenance of existing software products. Culminates with the completion and presentation of the first major increment of the project solution. Students must have co-op completed to enroll. (Prerequisites: Co-op requirement completed - (2 completions SWEN-499) and 1 completion of SWEN-488 or SWEN-498) and SWEN-256 and (SWEN-444 or SWEN-445) or equivalent courses and students in SOFTENG-BS Major. Co-requisites: SWEN-440 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-562
Software Engineering Project II
This is the second course in a two-course, senior-level capstone project experience. Students submit one or more additional increments that build upon the solution submitted at the end of the first course. Students make major presentations for both customers as well as technical-oriented audiences, turn over a complete portfolio of project-related artifacts and offer an evaluation of the project and team experience. (Prerequisites: SWEN-561 or equivalent course.) Lecture 3 (Fall, Spring).
3
 
Engineering Elective
3
 
General Education – Immersion 3
3
 
General Education – Math/Science Elective
3
 
Professional Elective
3
 
Software Engineering Design Elective
3
 
Open Electives
12
Total Semester Credit Hours
127

Please see General Education Curriculum (GE) for more information.

(WI-PR) 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 different Wellness courses.

† Students must complete one of the following lab sciences: University Physics II (PHYS-212); University Physics II: AP-C Electricity & Magnetism and University Physics II: AP-C Optics (PHYS-208/209); General Chemistry for Engineers and General & Analytical Chemistry I Lab (CHMG-131/145); General & Analytical Chemistry I and Lab (CHMG-141/145); General Biology I and Lab (BIOL-101/103); Explorations in Cellular Biology and Evolution and Lab (BIOG-101/103); General Biology II and Lab (BIOL-102/104); or Explorations in Animal and Plant Anatomy and Physiology and Lab (BIOG-102/104).

Today’s careers require advanced degrees grounded in real-world experience. RIT’s Combined Accelerated Pathways enable you to earn both a bachelor’s and a master’s degree in as little as five years of study. You’ll earn two degrees while gaining the valuable, hands-on experience that comes from co-ops, internships, research, study abroad, and more. Learn how a Combined Accelerated Pathway can prepare you for your future, faster.

Software Engineering, BS/MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
GCIS-123
General Education – Elective: Software Development and Problem Solving I
A first course introducing students to the fundamentals of computational problem solving. Students will learn a systematic approach to problem solving, including how to frame a problem in computational terms, how to decompose larger problems into smaller components, how to implement innovative software solutions using a contemporary programming language, how to critically debug their solutions, and how to assess the adequacy of the software solution. Additional topics include an introduction to object-oriented programming and data structures such as arrays and stacks. Students will complete both in-class and out-of-class assignments. Lab 6 (Fall, Spring).
4
GCIS-124
General Education – Elective: Software Development and Problem Solving II
A second course that delves further into computational problem solving, now with a focus on an object-oriented perspective. There is a continued emphasis on basic software design, testing & verification, and incremental development. Key topics include theoretical abstractions such as classes, objects, encapsulation, inheritance, interfaces, polymorphism, software design comprising multiple classes with UML, data structures (e.g. lists, trees, sets, maps, and graphs), exception/error handling, I/O including files and networking, concurrency, and graphical user interfaces. Additional topics include basic software design principles (coupling, cohesion, information expert, open-closed principle, etc.), test driven development, design patterns, data integrity, and data security. (Prerequisite: C- or better in SWEN-123 or CSEC-123 or GCIS-123 or equivalent course.) Lab 6 (Fall, Spring, Summer).
4
MATH-181
General Education – Mathematical Perspective A: Project-Based Calculus I
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals. (Prerequisite: A- or better in MATH-111 or A- or better in ((NMTH-260 or NMTH-272 or NMTH-275) and NMTH-220) or a math placement exam score greater than or equal to 70 or department permission to enroll in this class.) Lecture 6 (Fall, Spring, Summer).
4
MATH-182
General Education – Mathematical Perspective B: Project-based Calculus II
This is the second in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates. (Prerequisites: C- or better in (MATH-181 or MATH-173 or 1016-282) or (MATH-171 and MATH-180) or equivalent course(s).) Lecture 6 (Fall, Spring, Summer).
4
MATH-190
General Education – Elective: Discrete Mathematics for Computing
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems. (Co-requisites: MATH-182 or MATH-182A or MATH-172 or equivalent courses.) Lecture 3 (Fall, Spring).
3
SWEN-101
Software Engineering Freshman Seminar
Provides first-year students with the skills necessary to succeed at RIT and in the software engineering program. Small group sessions are used to help new students make friends, create a stronger bond with RIT and their program and become acquainted with the campus and its facilities. In addition, students are introduced to the profession of software engineering and to ethical issues they will face at RIT and throughout their careers. (SOFTENG-BS) Lecture 2 (Fall).
1
SWEN-250
Personal Software Engineering
This is a project-based course to enhance individual, technical engineering knowledge and skills as preparation for upper-division team-based coursework. Topics include adapting to new languages, tools and technologies; developing and analyzing models as a prelude to implementation; software construction concepts (proper documentation, implementing to standards etc.); unit and integration testing; component-level estimation; and software engineering professionalism. (Pre-requisites: CSCI-105 or CSCI-141 or SWEN-123 or CSEC-123 or GCIS-123 (all with a C- or better) or equivalent course. Co-requisites: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
YOPS-10
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies. Lecture 1 (Fall, Spring).
0
 
General Education – First Year Writing (WI)
3
 
General Education – Ethical Perspective
3
 
General Education – Artistic Perspective
3
Second Year
COMM-253
General Education – Elective: Communication (WI)
An introduction to communication contexts and processes emphasizing both conceptual and practical dimensions. Participants engage in public speaking, small group problem solving and leadership, and writing exercises while acquiring theoretical background appropriate to understanding these skills. Lecture 3 (Fall, Spring).
3
PHYS-211
General Education – Natural Science Inquiry Perspective: University Physics I
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: C- or better in MATH-181 or equivalent course. Co-requisites: MATH-182 or equivalent course.) Lec/Lab 6 (Fall, Spring).
4
PHYS-212
General Education – Scientific Principles Perspective†
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: (PHYS-211 or PHYS-211A or PHYS-206 or PHYS-216) or (MECE-102, MECE-103 and MECE-205) and (MATH-182 or MATH-172 or MATH-182A) or equivalent courses. Grades of C- or better are required in all prerequisite courses.) Lec/Lab 6 (Fall, Spring).
4
STAT-205
General Education – Elective: Applied Statistics
This course covers basic statistical concepts and techniques including descriptive statistics, probability, inference, and quality control. The statistical package Minitab will be used to reinforce these techniques. The focus of this course is on statistical applications and quality improvement in engineering. This course is intended for engineering programs and has a calculus prerequisite. Note: This course may not be taken for credit if credit is to be earned in STAT-145 or STAT-155 or MATH 252.. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-99
Undergraduate Cooperative Education Seminar
This seminar helps students prepare for Software Engineering co-operative education employment (“co-op”) by developing job search strategies and materials, and reviewing relevant policies. Students are introduced to RIT’s Office of Career Services and Cooperative Education, and learn about professional and ethical responsibilities for their co-op and subsequent professional experiences. Completion of this seminar and the related assignments are required before a SE student can be registered for co-op. (Prerequisites: This class is restricted to SOFTENG-BS or COMPEX-UND Major students with at least 2nd year standing.) Lecture 1 (Fall, Spring).
0
SWEN-256
Software Process and Project Management
An introductory course to software process and related software project management issues. Emphasis is on the study, use, evaluation, and improvement of the software development process and related project management. Topics include software development methodologies, software project planning and tracking, change control, software quality assurance, risk management, and software process assessment and improvement. (Prerequisites: SWEN-261 or equivalent course) Lecture 3 (Fall, Spring).
3
SWEN-261
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
SWEN-262
Engineering of Software Subsystems
An introduction to the principles of the foundations of contemporary software design. Topics include software subsystem modeling, design patterns, design tradeoffs, and component-based software development, with a focus on application of these concepts to concrete design problems. The relationship between design and related process issues such as testing, estimation, and maintenance are also discussed. (Prerequisites: SWEN-261 and (SWEN-250 or (CSCI-243 or 4003-334) or CMPE-380 or SOFTENG-MN) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
SWEN-344
Engineering of Web Base Software Systems
A course in web engineering, emphasizing organizational aspects of web development, design and implementation by individuals and small teams. Students will be instructed in the proper application of software engineering principles to the creation of web applications. Course topics will include, but not be limited to web usability, accessibility, testing, web services, databases, requirements elicitation and negotiation. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
SWEN-488
Software Engineering Summer Co-op (summer)
Software Engineering cooperative work block. One summer block of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Summer).
0
 
General Education – Global Perspective
3
 
General Education – Social Perspective
3
Third Year
MATH-241
General Education – Elective: Linear Algebra
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course. (Prerequisites: MATH-190 or MATH-200 or MATH-219 or MATH-220 or MATH-221 or MATH-221H or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-340
Software Design for Computing Systems
To design and develop high quality products software engineers need to understand the physical components and systems that are an integral part of these products. This understanding is critical in the fulfillment of non-functional requirements such as performance, reliability and security. This course will provide software engineering students with hardware, computer architecture, and networking domain specific knowledge. Course programming assignments will provide practical experience developing software that interfaces with hardware components and systems. Credit cannot be granted for this course and CMPE-240. (Prerequisites: SWEN-250 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-444
Human-Centered Requirements and Design
This course introduces quantitative models and techniques of human-computer interface analysis, design and evaluation, which are relevant to the software engineering approach of software development. User-focused requirements engineering topics are also covered. Contemporary human computer interaction (HCI) techniques are surveyed, with a focus on when and where they are applicable in the software development process. Students will deliver usable software systems derived from an engineering approach to the application of scientific theory and modeling. Other topics may include usability evaluation design, methods of evaluation, data analysis, social and ethical impacts of usability, prototyping and tools. (Prerequisites: SWEN-262 or equivalent courses. Co-requisites: STAT-205 or STAT-145 or MATH-251 or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
SWEN-499
Software Engineering Co-op (spring)
Software Engineering cooperative work block. One semester of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Fall, Spring).
0
 
General Education – Immersion 1
3
 
Professional Elective
3
Fourth Year
SWEN-331
Engineering Secure Software
Principles and practices forming the foundation for developing secure software systems. Coverage ranges across the entire development lifecycle: requirements, design, implementation and testing. Emphasis is on practices and patterns that reduce or eliminate security breaches in software intensive systems, and on testing systems to expose security weaknesses. (Prerequisites: SWEN-261 and (SWEN-488 or SWEN-498 or SWEN-499 or CSEC-499 or CSCI-488 or CSCI-499 or CMPE-499) or equivalent course.) Studio 3 (Fall, Spring).
3
SWEN-440
Software System Requirements and Architecture (WI-PR)
Principles and practices related to identifying software system stakeholders, eliciting functional and quality requirements, translating requirements into architectural structures, and analyzing candidate architectures with respect to the requirements. (Prerequisites: SWEN-488 or SWEN-498 or SWEN-499 or CSCI-499 or CSCI-488 or CMPE-499 or CSEC-499 or equivalent courses. Co-requisites: SWEN-444 or SWEN-445 or equivalent course.) Studio 3 (Fall, Spring).
3
SWEN-499
Software Engineering Co-op (spring)
Software Engineering cooperative work block. One semester of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Fall, Spring).
0
Choose one of the following:
3
   CSCI-261
   Analysis of Algorithms
This course provides an introduction to the design and analysis of algorithms. It covers a variety of classical algorithms and data structures and their complexity and will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms. (Prerequisites: (CSCI-243 or SWEN-262) and (MATH-190 or MATH-200) or equivalent courses.) Lecture 3 (Fall, Spring).
 
   CSCI-264
   Honors Analysis of Algorithms
This course provides a challenging introduction to the design and analysis of algorithms with an emphasis on problem solving and algorithmic research. It covers a variety of classical algorithms and data structures and their complexity, as well as deeper coverage of more advanced material; for example, linear programming, approximation algorithms, and randomized algorithms. The course will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms. (Prerequisites: (CSCI-243 or SWEN-262) and (MATH-190 or MATH-200) or equivalent courses.) Lecture 3 (Fall).
 
 
General Education – Math/Science Elective
3
 
General Education – Immersion 2
3
Fifth Year
SWEN-561
Software Engineering Project I
The first course in a two-course, senior-level, capstone project experience. Students work as part of a team to develop solutions to problems posed by either internal or external customers. Problems may require considerable software development or evolution and maintenance of existing software products. Culminates with the completion and presentation of the first major increment of the project solution. Students must have co-op completed to enroll. (Prerequisites: Co-op requirement completed - (2 completions SWEN-499) and 1 completion of SWEN-488 or SWEN-498) and SWEN-256 and (SWEN-444 or SWEN-445) or equivalent courses and students in SOFTENG-BS Major. Co-requisites: SWEN-440 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-562
Software Engineering Project II
This is the second course in a two-course, senior-level capstone project experience. Students submit one or more additional increments that build upon the solution submitted at the end of the first course. Students make major presentations for both customers as well as technical-oriented audiences, turn over a complete portfolio of project-related artifacts and offer an evaluation of the project and team experience. (Prerequisites: SWEN-561 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-640
Research Methods
Overview of the academic research methodologies used in graduate level work. Topics include: Writing style, Audience analysis, Research Planning, Experiment design and result analysis, Document structure, Research validation, and the process for submission and review to conferences and journals. In this course the student will identify and develop a detailed thesis or capstone proposal that may be continued in a subsequent course. An in-depth study of a software engineering topic will be research focused. The student selects a research problem, conducts background research, and selects appropriate technology and methodologies needed to fully conduct the project. The topic is selected by the student and is in agreement with the student’s advisor and committee. The proposal is presented in a scholarly format for approval by the advisor and committee. (Graduate Computing and Information Sciences) Lecture 3 (Spring).
3
SWEN-732
Collaborative Software Development 
This course covers processes, tools, and techniques for software development, in general, and collaborative, distributed software development, in particular. Students will learn how to design a process specific to their organization and development project needs. This includes how to select a software development life-cycle model, how to select and sequence the development and management activities of a collaborative, distributed software development team structure and dynamics, and how to define the work products, tools, and methods used to perform those activities. The Software Process Engineering Metamodel (SPEM, an Object Management Group standard) will serve to graphically describe, analyze, discuss, and improve software development processes. Special attention will be given to collaboration needs and approaches for small and large teams that may be globally distributed. (Prerequisites: This course is restricted to students with graduate standing in Software Engineering program or GCCIS graduate programs who have completed SWEN-601 and SWEN-610 or equivalent courses.) Lecture 3 (Fall).
3
SWEN-746
Model-Driven Development 
Software models help the software engineer to understand, specify, and analyze software requirements, designs, and implementations (code components, databases, support files, etc.). Model-driven development is a software engineering practice that uses tool-enabled transformation of requirements models to design models and then to code and associated implementation artifacts. Students will use the Unified Modeling Language (UML) and other modeling techniques to capture software requirements, designs, and implementations. Students will also use formal modeling methods to semi-automatically transform among the various models and to study the quality attributes of the modeled software, such as performance, reliability, security, and other qualities. (Co-requisites: SWEN-601 and SWEN-610 or equivalent courses.) Lecture 3 (Fall).
3
 
Software Engineering Design Elective
3
 
General Education – Math/Science Elective
3
 
General Education – Immersion 3
3
 
Open Electives
12
Sixth Year
SWEN-755
Software Architecture
A system’s software architecture is the first technical artifact that illustrates a proposed solution to a stated problem. For all but the simplest system, the achievement of qualities such as flexibility, modifiability, security, and reliability is critically dependent on the components and interactions defined by the architecture. The course focuses on the definition of architectural structures, the analysis of architectures in terms of trade-offs among conflicting constraints, the documentation of architecture for use over a product’s life cycle, and the role of architecture during coding activities. (Prerequisites: SWEN-601 and SWEN-610 and SWEN-746 or equivalent courses.) Lecture 3 (Fall).
3
SWEN-777
Software Quality Assurance
This course explores the concepts of process and product quality assurance and introduces approaches and support tools used to extract the information needed to assess and evaluate the quality of existing software systems. Major maintenance activities are detailed including unit and regression testing, test case generation, software refactoring, API migrations, bug localization and triage, and predicting technical debt. Students will participate in an active learning approach by exercising and practicing code reviews, software testing tools, and quality frameworks. (Prerequisites: SWEN-601 and SWEN-610 or equivalent courses.) Lecture 3 (Spring).
3
SWEN-790
Thesis
This course provides the student with an opportunity to execute a thesis project, analyze and document the project in thesis document form. An in-depth study of a software engineering topic will be research focused, having built upon the thesis proposal developed prior to this course. The student is advised by their primary faculty adviser and committee. The thesis and thesis defense is presented for approval by the thesis adviser and committee. (Enrollment requires completion of all core courses and permission from the department offering the course.) Thesis 6 (Fall, Spring, Summer).
6
SWEN-799
Independent Study
This course provides the graduate student an opportunity to explore an aspect of software engineering in depth, under the direction of an adviser. The student selects a topic, conducts background research, develops the system, analyses results, and disseminates the project work. The report explains the topic/problem, the student's approach and the results. (Completion of 9 semester hours is needed for enrollment) (Enrollment in this course requires permission from the department offering the course.) Ind Study (Fall, Spring, Summer).
3
 
Graduate Electives
6
Total Semester Credit Hours
151

Please see General Education Curriculum (GE) 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 different Wellness courses.

† Students must complete one of the following lab sciences: University Physics II (PHYS-212); University Physics II: AP-C Electricity & Magnetism and University Physics II: AP-C Optics (PHYS-208/209); General Chemistry for Engineers and General & Analytical Chemistry I Lab (CHMG-131/145); General & Analytical Chemistry I and Lab (CHMG-141/145); General Biology I and Lab (BIOL-101/103); Explorations in Cellular Biology and Evolution and Lab (BIOG-101/103); General Biology II and Lab (BIOL-102/104); or Explorations in Animal and Plant Anatomy and Physiology and Lab (BIOG-102/104).

Software Engineering, BS degree/Computing Security, MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
MATH-181
General Education – Mathematical Perspective A: Project-Based Calculus I
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals. (Prerequisite: A- or better in MATH-111 or A- or better in ((NMTH-260 or NMTH-272 or NMTH-275) and NMTH-220) or a math placement exam score greater than or equal to 70 or department permission to enroll in this class.) Lecture 6 (Fall, Spring, Summer).
4
MATH-182
General Education – Mathematical Perspective B: Project-Based Calculus II
This is the second in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates. (Prerequisites: C- or better in (MATH-181 or MATH-173 or 1016-282) or (MATH-171 and MATH-180) or equivalent course(s).) Lecture 6 (Fall, Spring, Summer).
4
MATH-190
General Education – Elective: Discrete Mathematics for Computing
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems. (Co-requisites: MATH-182 or MATH-182A or MATH-172 or equivalent courses.) Lecture 3 (Fall, Spring).
3
SWEN-101
Software Engineering Freshman Seminar
Provides first-year students with the skills necessary to succeed at RIT and in the software engineering program. Small group sessions are used to help new students make friends, create a stronger bond with RIT and their program and become acquainted with the campus and its facilities. In addition, students are introduced to the profession of software engineering and to ethical issues they will face at RIT and throughout their careers. (SOFTENG-BS) Lecture 2 (Fall).
1
GCIS-123
General Education – Elective: Software Development and Problem Solving I
A first course introducing students to the fundamentals of computational problem solving. Students will learn a systematic approach to problem solving, including how to frame a problem in computational terms, how to decompose larger problems into smaller components, how to implement innovative software solutions using a contemporary programming language, how to critically debug their solutions, and how to assess the adequacy of the software solution. Additional topics include an introduction to object-oriented programming and data structures such as arrays and stacks. Students will complete both in-class and out-of-class assignments. Lab 6 (Fall, Spring).
4
GCIS-124
General Education – Elective: Software Development and Problem Solving II
A second course that delves further into computational problem solving, now with a focus on an object-oriented perspective. There is a continued emphasis on basic software design, testing & verification, and incremental development. Key topics include theoretical abstractions such as classes, objects, encapsulation, inheritance, interfaces, polymorphism, software design comprising multiple classes with UML, data structures (e.g. lists, trees, sets, maps, and graphs), exception/error handling, I/O including files and networking, concurrency, and graphical user interfaces. Additional topics include basic software design principles (coupling, cohesion, information expert, open-closed principle, etc.), test driven development, design patterns, data integrity, and data security. (Prerequisite: C- or better in SWEN-123 or CSEC-123 or GCIS-123 or equivalent course.) Lab 6 (Fall, Spring, Summer).
4
SWEN-250
Personal Software Engineering
This is a project-based course to enhance individual, technical engineering knowledge and skills as preparation for upper-division team-based coursework. Topics include adapting to new languages, tools and technologies; developing and analyzing models as a prelude to implementation; software construction concepts (proper documentation, implementing to standards etc.); unit and integration testing; component-level estimation; and software engineering professionalism. (Pre-requisites: CSCI-105 or CSCI-141 or SWEN-123 or CSEC-123 or GCIS-123 (all with a C- or better) or equivalent course. Co-requisites: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
YOPS-10
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies. Lecture 1 (Fall, Spring).
0
 
General Education – Ethical perspective
3
 
General Education – Artistic perspective
3
 
General Education – First Year Writing (WI)
3
Second Year
COMM-253
General Education – Elective: Communication (WI)
An introduction to communication contexts and processes emphasizing both conceptual and practical dimensions. Participants engage in public speaking, small group problem solving and leadership, and writing exercises while acquiring theoretical background appropriate to understanding these skills. Lecture 3 (Fall, Spring).
3
PHYS-211
General Education – Natural Science Inquiry Perspective: University Physics I
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: C- or better in MATH-181 or equivalent course. Co-requisites: MATH-182 or equivalent course.) Lec/Lab 6 (Fall, Spring).
4
PHYS-212
General Education – Scientific Principles Perspective†
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: (PHYS-211 or PHYS-211A or PHYS-206 or PHYS-216) or (MECE-102, MECE-103 and MECE-205) and (MATH-182 or MATH-172 or MATH-182A) or equivalent courses. Grades of C- or better are required in all prerequisite courses.) Lec/Lab 6 (Fall, Spring).
4
STAT-205
General Education – Elective: Applied Statistics
This course covers basic statistical concepts and techniques including descriptive statistics, probability, inference, and quality control. The statistical package Minitab will be used to reinforce these techniques. The focus of this course is on statistical applications and quality improvement in engineering. This course is intended for engineering programs and has a calculus prerequisite. Note: This course may not be taken for credit if credit is to be earned in STAT-145 or STAT-155 or MATH 252.. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-99
Undergraduate Cooperative Education Seminar
This seminar helps students prepare for Software Engineering co-operative education employment (“co-op”) by developing job search strategies and materials, and reviewing relevant policies. Students are introduced to RIT’s Office of Career Services and Cooperative Education, and learn about professional and ethical responsibilities for their co-op and subsequent professional experiences. Completion of this seminar and the related assignments are required before a SE student can be registered for co-op. (Prerequisites: This class is restricted to SOFTENG-BS or COMPEX-UND Major students with at least 2nd year standing.) Lecture 1 (Fall, Spring).
0
SWEN-256
Software Process and Project Management
An introductory course to software process and related software project management issues. Emphasis is on the study, use, evaluation, and improvement of the software development process and related project management. Topics include software development methodologies, software project planning and tracking, change control, software quality assurance, risk management, and software process assessment and improvement. (Prerequisites: SWEN-261 or equivalent course) Lecture 3 (Fall, Spring).
3
SWEN-261
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
SWEN-262
Engineering of Software Subsystems
An introduction to the principles of the foundations of contemporary software design. Topics include software subsystem modeling, design patterns, design tradeoffs, and component-based software development, with a focus on application of these concepts to concrete design problems. The relationship between design and related process issues such as testing, estimation, and maintenance are also discussed. (Prerequisites: SWEN-261 and (SWEN-250 or (CSCI-243 or 4003-334) or CMPE-380 or SOFTENG-MN) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
SWEN-344
Engineering of Web Based Software Systems
A course in web engineering, emphasizing organizational aspects of web development, design and implementation by individuals and small teams. Students will be instructed in the proper application of software engineering principles to the creation of web applications. Course topics will include, but not be limited to web usability, accessibility, testing, web services, databases, requirements elicitation and negotiation. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
SWEN-488
Software Engineering Summer Co-op (summer)
Software Engineering cooperative work block. One summer block of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Summer).
0
 
General Education – Global Perspective
3
 
General Education – Social Perspective
3
Third Year
CSCI-261
Analysis of Algorithms
This course provides an introduction to the design and analysis of algorithms. It covers a variety of classical algorithms and data structures and their complexity and will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms. (Prerequisites: (CSCI-243 or SWEN-262) and (MATH-190 or MATH-200) or equivalent courses.) Lecture 3 (Fall, Spring).
3
SWEN-444
Human-Centered Requirements and Design
This course introduces quantitative models and techniques of human-computer interface analysis, design and evaluation, which are relevant to the software engineering approach of software development. User-focused requirements engineering topics are also covered. Contemporary human computer interaction (HCI) techniques are surveyed, with a focus on when and where they are applicable in the software development process. Students will deliver usable software systems derived from an engineering approach to the application of scientific theory and modeling. Other topics may include usability evaluation design, methods of evaluation, data analysis, social and ethical impacts of usability, prototyping and tools. (Prerequisites: SWEN-262 or equivalent courses. Co-requisites: STAT-205 or STAT-145 or MATH-251 or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
SWEN-499
Software Engineering Co-op (spring)
Software Engineering cooperative work block. One semester of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Fall, Spring).
0
 
Software Engineering Process Elective
3
 
General Education – Immersion 1
3
 
General Education – Math/Science Elective
3
Fourth Year
MATH-241
General Education – Elective: Linear Algebra
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course. (Prerequisites: MATH-190 or MATH-200 or MATH-219 or MATH-220 or MATH-221 or MATH-221H or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-331
Engineering Secure Software
Principles and practices forming the foundation for developing secure software systems. Coverage ranges across the entire development lifecycle: requirements, design, implementation and testing. Emphasis is on practices and patterns that reduce or eliminate security breaches in software intensive systems, and on testing systems to expose security weaknesses. (Prerequisites: SWEN-261 and (SWEN-488 or SWEN-498 or SWEN-499 or CSEC-499 or CSCI-488 or CSCI-499 or CMPE-499) or equivalent course.) Studio 3 (Fall, Spring).
3
SWEN-340
Software Design of Computing Systems
To design and develop high quality products software engineers need to understand the physical components and systems that are an integral part of these products. This understanding is critical in the fulfillment of non-functional requirements such as performance, reliability and security. This course will provide software engineering students with hardware, computer architecture, and networking domain specific knowledge. Course programming assignments will provide practical experience developing software that interfaces with hardware components and systems. Credit cannot be granted for this course and CMPE-240. (Prerequisites: SWEN-250 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-440
Software System Requirements and Architecture (WI-PR)
Principles and practices related to identifying software system stakeholders, eliciting functional and quality requirements, translating requirements into architectural structures, and analyzing candidate architectures with respect to the requirements. (Prerequisites: SWEN-488 or SWEN-498 or SWEN-499 or CSCI-499 or CSCI-488 or CMPE-499 or CSEC-499 or equivalent courses. Co-requisites: SWEN-444 or SWEN-445 or equivalent course.) Studio 3 (Fall, Spring).
3
SWEN-499
Software Engineering Co-op (spring)
Software Engineering cooperative work block. One semester of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Fall, Spring).
0
 
General Education – Immersion 2
3
Fifth Year
SWEN-561
Software Engineering Project I
The first course in a two-course, senior-level, capstone project experience. Students work as part of a team to develop solutions to problems posed by either internal or external customers. Problems may require considerable software development or evolution and maintenance of existing software products. Culminates with the completion and presentation of the first major increment of the project solution. Students must have co-op completed to enroll. (Prerequisites: Co-op requirement completed - (2 completions SWEN-499) and 1 completion of SWEN-488 or SWEN-498) and SWEN-256 and (SWEN-444 or SWEN-445) or equivalent courses and students in SOFTENG-BS Major. Co-requisites: SWEN-440 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-562
Software Engineering Project II
This is the second course in a two-course, senior-level capstone project experience. Students submit one or more additional increments that build upon the solution submitted at the end of the first course. Students make major presentations for both customers as well as technical-oriented audiences, turn over a complete portfolio of project-related artifacts and offer an evaluation of the project and team experience. (Prerequisites: SWEN-561 or equivalent course.) Lecture 3 (Fall, Spring).
3
 
Computing Security Graduate Electives
6
 
General Education – Immersion 3
3
 
Software Engineering Design Elective
3
 
Engineering Elective
3
 
Open Electives
6
 
Professional Elective
3
 
General Education – Math/Science Elective
3
Sixth Year
CSEC-604
Cryptography and Authentication
In this course, students will gain in depth knowledge of cryptography and authentication. Students will explore various cryptographic algorithms and authentication protocols, focusing on their design and implementation. Students will also work on a research or implementation project, based on cryptographic algorithms and/or authentication protocols. The applications of cryptography and authentication in the areas of computer networks and systems will also be investigated. This course requires prior knowledge in Discrete Mathematics. (Prerequisites: (MATH-190 and BS/MS students in Computing Security) or students matriculated in the COMPSEC-MS program.) Lecture 3 (Fall).
3
CSEC-742
Computer System Security
The importance of effective security policies and procedures coupled with experience and practice is emphasized and reinforced through research and practical assignments. Organization and management of security discipline and response to threats is studied. Case studies of effective and failed security planning and implementation will be examined and analyzed. The issues influencing proper and appropriate planning for security and response to attacks will be studied. To be successful in this course students should be knowledgeable in networking, systems, and security technologies. (Prerequisites: CSEC-600 or equivalent course. This course is restricted to BS/MS students in Computing Security and students in the COMPSEC-MS program.) Lab 2 (Fall).
3
CSEC-790
MS Thesis
This course is one of the capstone options in the MS in Computing Security program. It offers students the opportunity to investigate a selected topic and make an original contribution which extends knowledge within the computing security domain. Students must submit an acceptable proposal to a thesis committee (chair, reader, and observer) before they may be registered by the department for the MS Thesis. Students must defend their work in an open thesis defense and complete a written report of their work before a pass/fail grade is awarded. As part of their original work, students are expected to write and submit an article for publication in a peer reviewed journal or conference. (Enrollment in this course requires permission from the department offering the course.) Thesis (Fall, Spring, Summer).
6
 
Computing Security Graduate Electives
6
 
Computing Security Research Electives
6
Total Semester Credit Hours
151

Please see General Education Curriculum (GE) 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 different Wellness courses.

† Students must complete one of the following lab sciences: University Physics II (PHYS-212); University Physics II: AP-C Electricity & Magnetism and University Physics II: AP-C Optics (PHYS-208/209); General Chemistry for Engineers and General & Analytical Chemistry I Lab (CHMG-131/145); General & Analytical Chemistry I and Lab (CHMG-141/145); General Biology I and Lab (BIOL-101/103); Explorations in Cellular Biology and Evolution and Lab (BIOG-101/103); General Biology II and Lab (BIOL-102/104); or Explorations in Animal and Plant Anatomy and Physiology and Lab (BIOG-102/104).

Software Engineering, BS degree/Computer Science, MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
MATH-181
General Education – Mathematical Perspective A: Project-Based Calculus I
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals. (Prerequisite: A- or better in MATH-111 or A- or better in ((NMTH-260 or NMTH-272 or NMTH-275) and NMTH-220) or a math placement exam score greater than or equal to 70 or department permission to enroll in this class.) Lecture 6 (Fall, Spring, Summer).
4
MATH-182
General Education – Mathematical Perspective B: Project-Based Calculus II
This is the second in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates. (Prerequisites: C- or better in (MATH-181 or MATH-173 or 1016-282) or (MATH-171 and MATH-180) or equivalent course(s).) Lecture 6 (Fall, Spring, Summer).
4
MATH-190
General Education – Elective: Discrete Mathematics for Computing
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems. (Co-requisites: MATH-182 or MATH-182A or MATH-172 or equivalent courses.) Lecture 3 (Fall, Spring).
3
SWEN-101
Software Engineering Freshman Seminar
Provides first-year students with the skills necessary to succeed at RIT and in the software engineering program. Small group sessions are used to help new students make friends, create a stronger bond with RIT and their program and become acquainted with the campus and its facilities. In addition, students are introduced to the profession of software engineering and to ethical issues they will face at RIT and throughout their careers. (SOFTENG-BS) Lecture 2 (Fall).
1
SWEN-123
General Education – Elective: Software Development and Problem Solving I
A first course introducing students to the fundamentals of computational problem solving. Students will learn a systematic approach to problem solving, including how to frame a problem in computational terms, how to decompose larger problems into smaller components, how to implement innovative software solutions using a contemporary programming language, how to critically debug their solutions, and how to assess the adequacy of the software solution. Additional topics include an introduction to object-oriented programming and data structures such as arrays and stacks. Students will complete both in-class and out-of-class assignments. Lab 6 (Fall, Spring).
4
SWEN-124
General Education – Elective: Software Development and Problem Solving II
A second course that delves further into computational problem solving, now with a focus on an object-oriented perspective. There is a continued emphasis on basic software design, testing & verification, and incremental development. Key topics include theoretical abstractions such as classes, objects, encapsulation, inheritance, interfaces, polymorphism, software design comprising multiple classes with UML, data structures (e.g. lists, trees, sets, maps, and graphs), exception/error handling, I/O including files and networking, concurrency, and graphical user interfaces. Additional topics include basic software design principles (coupling, cohesion, information expert, open-closed principle, etc.), test driven development, design patterns, data integrity, and data security. (Prerequisite: C- or better in SWEN-123 or CSEC-123 or GCIS-123 or equivalent course.) Lab 6 (Fall, Spring, Summer).
4
SWEN-250
Personal Software Engineering
This is a project-based course to enhance individual, technical engineering knowledge and skills as preparation for upper-division team-based coursework. Topics include adapting to new languages, tools and technologies; developing and analyzing models as a prelude to implementation; software construction concepts (proper documentation, implementing to standards etc.); unit and integration testing; component-level estimation; and software engineering professionalism. (Pre-requisites: CSCI-105 or CSCI-141 or SWEN-123 or CSEC-123 or GCIS-123 (all with a C- or better) or equivalent course. Co-requisites: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
YOPS-10
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies. Lecture 1 (Fall, Spring).
0
 
General Education – Ethical Perspective
3
 
General Education – Artistic Perspective
3
 
General Education – First Year Writing (WI)
3
Second Year
COMM-253
General Education – Elective: Communication (WI)
An introduction to communication contexts and processes emphasizing both conceptual and practical dimensions. Participants engage in public speaking, small group problem solving and leadership, and writing exercises while acquiring theoretical background appropriate to understanding these skills. Lecture 3 (Fall, Spring).
3
PHYS-211
General Education – Natural Science Perspective: University Physics I
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: C- or better in MATH-181 or equivalent course. Co-requisites: MATH-182 or equivalent course.) Lec/Lab 6 (Fall, Spring).
4
PHYS-212
General Education – Scientific Principles Perspective†
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: (PHYS-211 or PHYS-211A or PHYS-206 or PHYS-216) or (MECE-102, MECE-103 and MECE-205) and (MATH-182 or MATH-172 or MATH-182A) or equivalent courses. Grades of C- or better are required in all prerequisite courses.) Lec/Lab 6 (Fall, Spring).
4
STAT-205
General Education – Elective: Applied Statistics
This course covers basic statistical concepts and techniques including descriptive statistics, probability, inference, and quality control. The statistical package Minitab will be used to reinforce these techniques. The focus of this course is on statistical applications and quality improvement in engineering. This course is intended for engineering programs and has a calculus prerequisite. Note: This course may not be taken for credit if credit is to be earned in STAT-145 or STAT-155 or MATH 252.. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-99
Undergraduate Cooperative Education Seminar
This seminar helps students prepare for Software Engineering co-operative education employment (“co-op”) by developing job search strategies and materials, and reviewing relevant policies. Students are introduced to RIT’s Office of Career Services and Cooperative Education, and learn about professional and ethical responsibilities for their co-op and subsequent professional experiences. Completion of this seminar and the related assignments are required before a SE student can be registered for co-op. (Prerequisites: This class is restricted to SOFTENG-BS or COMPEX-UND Major students with at least 2nd year standing.) Lecture 1 (Fall, Spring).
0
SWEN-256
Software Process and Project Management
An introductory course to software process and related software project management issues. Emphasis is on the study, use, evaluation, and improvement of the software development process and related project management. Topics include software development methodologies, software project planning and tracking, change control, software quality assurance, risk management, and software process assessment and improvement. (Prerequisites: SWEN-261 or equivalent course) Lecture 3 (Fall, Spring).
3
SWEN-261
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
SWEN-262
Engineering of Software Subsystems
An introduction to the principles of the foundations of contemporary software design. Topics include software subsystem modeling, design patterns, design tradeoffs, and component-based software development, with a focus on application of these concepts to concrete design problems. The relationship between design and related process issues such as testing, estimation, and maintenance are also discussed. (Prerequisites: SWEN-261 and (SWEN-250 or (CSCI-243 or 4003-334) or CMPE-380 or SOFTENG-MN) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
SWEN-344
Engineering of Web Based Software Systems
A course in web engineering, emphasizing organizational aspects of web development, design and implementation by individuals and small teams. Students will be instructed in the proper application of software engineering principles to the creation of web applications. Course topics will include, but not be limited to web usability, accessibility, testing, web services, databases, requirements elicitation and negotiation. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
 
General Education – Global Perspective
3
 
General Education – Social Perspective
3
Third Year
CSCI-261
Analysis of Algorithms
This course provides an introduction to the design and analysis of algorithms. It covers a variety of classical algorithms and data structures and their complexity and will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms. (Prerequisites: (CSCI-243 or SWEN-262) and (MATH-190 or MATH-200) or equivalent courses.) Lecture 3 (Fall, Spring).
3
MATH-241
General Education – Elective: Linear Algebra
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course. (Prerequisites: MATH-190 or MATH-200 or MATH-219 or MATH-220 or MATH-221 or MATH-221H or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-444
Human-Centered Requirements and Design
This course introduces quantitative models and techniques of human-computer interface analysis, design and evaluation, which are relevant to the software engineering approach of software development. User-focused requirements engineering topics are also covered. Contemporary human computer interaction (HCI) techniques are surveyed, with a focus on when and where they are applicable in the software development process. Students will deliver usable software systems derived from an engineering approach to the application of scientific theory and modeling. Other topics may include usability evaluation design, methods of evaluation, data analysis, social and ethical impacts of usability, prototyping and tools. (Prerequisites: SWEN-262 or equivalent courses. Co-requisites: STAT-205 or STAT-145 or MATH-251 or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
SWEN-499
Software Engineering Co-op (fall)
Software Engineering cooperative work block. One semester of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Fall, Spring).
0
 
Software Engineering Process Elective
3
 
General Education – Immersion 1
3
Fourth Year
SWEN-331
Engineering Secure Software
Principles and practices forming the foundation for developing secure software systems. Coverage ranges across the entire development lifecycle: requirements, design, implementation and testing. Emphasis is on practices and patterns that reduce or eliminate security breaches in software intensive systems, and on testing systems to expose security weaknesses. (Prerequisites: SWEN-261 and (SWEN-488 or SWEN-498 or SWEN-499 or CSEC-499 or CSCI-488 or CSCI-499 or CMPE-499) or equivalent course.) Studio 3 (Fall, Spring).
3
SWEN-340
Software Design of Computing Systems
To design and develop high quality products software engineers need to understand the physical components and systems that are an integral part of these products. This understanding is critical in the fulfillment of non-functional requirements such as performance, reliability and security. This course will provide software engineering students with hardware, computer architecture, and networking domain specific knowledge. Course programming assignments will provide practical experience developing software that interfaces with hardware components and systems. Credit cannot be granted for this course and CMPE-240. (Prerequisites: SWEN-250 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-440
Software System Requirements and Architecture (WI-PR)
Principles and practices related to identifying software system stakeholders, eliciting functional and quality requirements, translating requirements into architectural structures, and analyzing candidate architectures with respect to the requirements. (Prerequisites: SWEN-488 or SWEN-498 or SWEN-499 or CSCI-499 or CSCI-488 or CMPE-499 or CSEC-499 or equivalent courses. Co-requisites: SWEN-444 or SWEN-445 or equivalent course.) Studio 3 (Fall, Spring).
3
SWEN-488
Software Engineering Summer Co-op (summer)
Software Engineering cooperative work block. One summer block of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Summer).
0
SWEN-499
Software Engineering Co-op (spring)
Software Engineering cooperative work block. One semester of appropriate paid work experience in industry. (Prerequisites: SWEN-262 with a grade of C- or better and COMM-253 and SWEN-99 or equivalent courses.) CO OP (Fall, Spring).
0
 
General Education – Math/Science Elective
3
 
General Education – Immersion 2
3
Fifth Year
SWEN-561
Software Engineering Project I
The first course in a two-course, senior-level, capstone project experience. Students work as part of a team to develop solutions to problems posed by either internal or external customers. Problems may require considerable software development or evolution and maintenance of existing software products. Culminates with the completion and presentation of the first major increment of the project solution. Students must have co-op completed to enroll. (Prerequisites: Co-op requirement completed - (2 completions SWEN-499) and 1 completion of SWEN-488 or SWEN-498) and SWEN-256 and (SWEN-444 or SWEN-445) or equivalent courses and students in SOFTENG-BS Major. Co-requisites: SWEN-440 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-562
Software Engineering Project II
This is the second course in a two-course, senior-level capstone project experience. Students submit one or more additional increments that build upon the solution submitted at the end of the first course. Students make major presentations for both customers as well as technical-oriented audiences, turn over a complete portfolio of project-related artifacts and offer an evaluation of the project and team experience. (Prerequisites: SWEN-561 or equivalent course.) Lecture 3 (Fall, Spring).
3
CSCI-664
Computational Complexity 
This course provides an introduction to computational complexity theory. It covers the P=NP problem, time and space complexity, randomization, approximability, and relativization. (Prerequisites: (CSCI-661 or CSCI-660 or CSCI-262 or CSCI-263) and (CSCI-665 or CSCI-261 or CSCI-264) or equivalent courses.) Lecture 3 (Spring).
3
 
Graduate Computer Science Foundation Course 
3
 
General Education – Immersion 3
3
 
Software Engineering Design Elective
3
 
Open Electives
12
 
General Education – Math/Science Elective
3
Sixth Year
CSCI-620
Introduction to Big Data
This course provides a broad introduction to the exploration and management of large datasets being generated and used in the modern world. First, practical techniques used in exploratory data analysis and mining are introduced; topics include data preparation, visualization, statistics for understanding data, and grouping and prediction techniques. Second, approaches used to store, retrieve, and manage data in the real world are presented; topics include traditional database systems, query languages, and data integrity and quality. Case studies will examine issues in data capture, organization, storage, retrieval, visualization, and analysis in diverse settings such as urban crime, drug research, census data, social networking, and space exploration. Big data exploration and management projects, a term paper and a presentation are required. Sufficient background in database systems and statistics is recommended. (Prerequisite: CSCI-603 or CSCI-605 with a grade of B or better or (CSCI-320 or SWEN-344). May not take and receive credit for CSCI-620 and CSCI-420. If earned credit for/or currently enrolled in CSCI-420 you will not be permitted to enroll in CSCI-620.) Lecture 3 (Fall, Spring, Summer).
3
CSCI-630
Foundations of Artificial Intelligence
An introduction to the theories and algorithms used to create artificial intelligence (AI) systems. Topics include search algorithms, logic, planning, machine learning, and applications from areas such as computer vision, robotics, and natural language processing. Programming assignments and oral/written summaries of research papers are required. (Prerequisites:((CSCI-603 or CSCI-605) &CSCI-661) with grades of B or better or ((CSCI-243 or SWEN-262)&(CSCI-262 or CSCI-263)).If you have earned credit for CSCI-331 or you are currently enrolled in CSCI-331 you won't be permitted to enroll in CSCI-630.) Lecture 3 (Fall, Spring).
3
CSCI-635
Introduction to Machine Learning
This course offers an introduction to supervised machine learning theories and algorithms, and their application to classification and regression tasks. Topics include: Mathematical background of machine learning (e.g. statistical analysis and visualization of data), neural models (e.g. Convolutional Neural Networks, Recurrent Neural Networks), probabilistic graphical models (e.g. Bayesian networks, Markov models), and reinforcement learning. Programming assignments are required. (Prerequisites: CSCI-630 or CSCI-331 or equivalent course. Students may not take and receive credit for CSCI-635 and CSCI-335.) Lecture 3 (Fall, Spring).
3
CSCI-642
Secure Coding 
This course provides an introduction to secure coding including topics such as principles of secure coding, security architectures and design, operational practices and testing, programmatic use of cryptography, and defenses against software exploitation. Other topics include software based fault isolation, type-safe languages, certifying compilers; proof-carrying code, and automated program analysis and program rewriting. Programming projects, presentations, and a term paper will be required. (Prerequisites: (CSCI-603 and CSCI-605 with grades of B or better) or (CSCI-243 or SWEN-262) or equivalent courses.) Lecture 3 (Fall).
3
CSCI-711
Global Illumination
This course will investigate the theory of global illumination (GI) in computer image synthesis. Seminal computer graphics papers will be used to explore the various components of the GI pipeline and explain how the path of light in a virtual scene can be simulated and used to create photorealistic imagery. The course will emphasize the theory behind various GI rendering tools and libraries available for image synthesis. The student will put theory into practice via a set of programming assignments and a capstone project. Topics will include light and color, three-dimensional scene specification, camera models, surface materials and textures, GI rendering methods, procedural shading, tone reproduction, and advanced rendering techniques. Readings and summaries of Computer Graphics literature will be required. (Prerequisites: CSCI-610 or CSCI-510 or equivalent course.) Lecture 3 (Fall, Spring).
3
CSCI-788
Computer Science MS Project
Project capstone of the master's degree program. Students select from a set of possible projects and confirm that they have a project adviser. Students enroll in a required colloquium component that meets weekly, during which they present information, related to their projects. Projects culminate with delivery of a final report and participation in a poster session open to the public. (Restricted to students in COMPSCI-MS and COMPSCI-BS/MS programs.) Colloquium 3 (Fall, Spring, Summer).
3
CSCI-799
Computer Science Graduate Independent Study
Students work with a supervising faculty member on topics of mutual interest. A student works with a potential faculty sponsor to draft a proposal that describes what a student plans to do, what deliverables are expected, how the student's work will be evaluated, and how much credit will be assigned for successful completion of the work. The faculty sponsor proposes the grade, but before the grade is officially recorded, the student must submit a final report that summarizes what was actually accomplished. (Enrollment in this course requires permission from the department offering the course.) Ind Study (Fall, Spring, Summer).
6
 
Computer Science Graduate Course
3
 
Graduate Computer Science Foundations Course
3
Total Semester Credit Hours
157

Please see General Education Curriculum (GE) 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 different Wellness courses.

† Students must complete one of the following lab sciences: University Physics II (PHYS-212); University Physics II: AP-C Electricity & Magnetism and University Physics II: AP-C Optics (PHYS-208/209); General Chemistry for Engineers and General & Analytical Chemistry I Lab (CHMG-131/145); General & Analytical Chemistry I and Lab (CHMG-141/145); General Biology I and Lab (BIOL-101/103); Explorations in Cellular Biology and Evolution and Lab (BIOG-101/103); General Biology II and Lab (BIOL-102/104); or Explorations in Animal and Plant Anatomy and Physiology and Lab (BIOG-102/104).

Software Engineering Design Electives

 
Any course offered by Data Science (DSCI)
SWEN-220
Mathematical Models of Software
An introduction to the use of mathematics to model software as part of the software process. Included will be models of software structure and functionality, concurrent and distributed computation, and structured data. (Prerequisites: (MATH-190 or MATH-131) and (CSCI-140, CSCI-142 or CSCI-242) or equivalent courses.) Lecture 3 (Fall, Spring).
SWEN-342
Engineering of Concurrent and Distributed Software Systems
The principles, practices and patterns applicable to the design and construction of concurrent and distributed software systems. Topics include synchronization, coordination and communication; deadlock, safety and liveness; concurrent and distributed design patterns; analysis of performance; distributed state management. (Prerequisites: SWEN-262 and (SWEN-220 or SWEN-344) or equivalent courses.) Studio 3 (Fall, Spring).
SWEN-343
Engineering of Enterprise Software Systems
This course addresses architecture-level design of large, enterprise-critical software systems. The course focuses on enterprise-level design patterns and on design approaches for object-oriented and aspect-oriented application containers: encapsulating database access, application distribution, concurrent session management, security, scalability, reliability, web-based user interaction, and the programming models and tools to support system development, integration, testing, and deployment. Hands-on exercises and a team project will reinforce the course concepts and expose students to the complexity of these systems. (Prerequisites: SWEN-262 and (SWEN-220 or SWEN-344) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
SWEN-514
Engineering Cloud Software Systems
The course focuses on designing and implementing applications using cloud software systems infrastructure and technologies. The course introduces the basic concepts and knowledge on cloud computing systems and application infrastructure. It also briefly introduces key technologies and paradigms related to developing big data applications in the cloud. The course contains a set of related topics which are covered via hands-on class instruction, application development in teams, course materials, and class discussions. Programming projects and demo presentations are required. (Prerequisites: SWEN-262 and (SWEN-220 or SWEN-344) or equivalent courses.) Lec/Lab 3 (Fall).
SWEN-549
Software Engineering Design Seminar
Emerging topics of relevance in software engineering design. (Prerequisites: SWEN-262 and (SWEN-220 or SWEN-344) or equivalent courses.) Lecture 3 (Fall, Spring).
SWEN-563
Real-Time and Embedded Systems
This course provides a general introduction to real-time and embedded systems. It will introduce a representative family of microcontrollers and require students to program on these devices. Fundamental material on real-time operating systems, such as requirements specification, scheduling algorithms and priority inversion avoidance will be presented. The features of a commercial real-time operating system will be discussed and used for course projects. (Prerequisites: SWEN-340 or CMPE-240 or CSCI-251 or CMPE-380 or ((CPET-201 and CPET-202) or 0618-303) or equivalent course.) Lec/Lab 3 (Fall, Spring).
SWEN-564
Modeling of Real-Time Systems
This course introduces the modeling of real-time software systems. It takes an engineering approach to the design of these systems by analyzing system models before beginning implementation. UML will be the primary modeling methodology. Non-UML methodologies will also be discussed. Implementations of real-time systems will be developed manually from the models and using automated tools to generate the code. (Prerequisites: CMPE-240 or CSCI-251 or CMPE-380 or SWEN-340 or equivalent course.) Lec/Lab 3 (Spring).
SWEN-565
Performance Engineering of Real-Time and Embedded Systems
This course discusses issues of performance in real-time and embedded systems. Techniques for profiling the resource usage of a system and for measuring the effect of increasing system requirements will be covered. The control of physical systems will motivate the need for performance tuning of a real-time system. Students will write programs running under a real-time operating system that can maintain control of a physical system. The course will discuss and experiment with performance trade-offs that can be made using hardware-software co-design. (Prerequisites: CMPE-240 or CSCI-251 or CMPE-380 or SWEN-340 or equivalent course.) Lecture 3 (Fall).
SWEN-567
Hardware/Software Co-Design for Cryptographic Applications
The objective of this course is to establish knowledge and skills necessary for efficient implementations of cryptographic primitives on reconfigurable hardware. Implementation platform will be a field programmable gate array (FPGAs) containing general purpose processor and additional reconfigurable fabric for implementations of custom hardware accelerators. In the studio format students work on team projects that require them to design, and then compare and contrast software, custom FPGA hardware, and hybrid hardware-software co-design implementations of selected cryptographic primitives. (Prerequisite: SWEN-261 and CSCI-462 or equivalent courses.) Studio 3 (Spring).
SWEN-711
Engineering Self-Adaptive Software Systems
This course introduces beginning graduate students to key concepts and techniques underlying the engineering of self-adaptive and autonomic software systems. Such software systems are capable of self-management, self-healing, self-tuning, self-configuration and self-protection. The course content includes an introduction of self-adaptive software systems and defines their characteristics. This will be followed by foundational engineering principles and methodology for achieving self-adaptive systems – feedback control, modeling, machine learning, and systems concepts. Selected seminal research paper reading and a term-long project will also be covered in the class. (Prerequisites: This course is restricted to students with graduate standing in Software Engineering program or GCCIS graduate programs who have completed SWEN-601 or equivalent courses.) Lecture 3 (Fall).
SWEN-712
Engineering Accessible Software
This course introduces software accessibility principles, which are relevant to the Software Engineering approach of software development. The course will survey assistive technologies, accessibility standards and their applications to new and existing software, and how to incorporate accessibility principles at the various phases of the software development life cycle. Students will deliver software based on software engineering approach to users with different abilities e.g. people with visual impairments, and older users. Other topics include mobile accessibility, accessibility testing, validation technologies, and tools. (Prerequisites: SWEN-601 and SWEN-610 or equivalent courses.) Lecture 3 (Spring).
SWEN-745
Software Modeling
Modeling plays a pivotal role during the software lifecycle during the pre-construction and post-construction activities of the software lifecycle. During the pre-construction stage, models help software engineers understand, specify, and analyze software requirements and designs. During the post-construction stage, models can be used to analyze software systems while in operation. This kind of analysis includes reliability and safety issues as well as timing constraint analysis. (Department approval) (This course is restricted to students with graduate standing in Software Engineering program or GCCIS PHD program.) Lec/Lab 3 (Fall).
SWEN-746
Model-Driven Development
Software models help the software engineer to understand, specify, and analyze software requirements, designs, and implementations (code components, databases, support files, etc.). Model-driven development is a software engineering practice that uses tool-enabled transformation of requirements models to design models and then to code and associated implementation artifacts. Students will use the Unified Modeling Language (UML) and other modeling techniques to capture software requirements, designs, and implementations. Students will also use formal modeling methods to semi-automatically transform among the various models and to study the quality attributes of the modeled software, such as performance, reliability, security, and other qualities. (Co-requisites: SWEN-601 and SWEN-610 or equivalent courses.) Lecture 3 (Fall).
SWEN-755
Software Architecture
A system’s software architecture is the first technical artifact that illustrates a proposed solution to a stated problem. For all but the simplest system, the achievement of qualities such as flexibility, modifiability, security, and reliability is critically dependent on the components and interactions defined by the architecture. The course focuses on the definition of architectural structures, the analysis of architectures in terms of trade-offs among conflicting constraints, the documentation of architecture for use over a product’s life cycle, and the role of architecture during coding activities. (Prerequisites: SWEN-601 and SWEN-610 and SWEN-746 or equivalent courses.) Lecture 3 (Fall).
SWEN-789
Graduate Special Topics (Design Focused)
This course will cover specialized topics in software engineering. Such topics are often considered emerging and advanced. Graduate standing and specific prerequisites will be noted upon specific proposal of a course. (Prerequisites: SWEN-610 or equivalent course.) Lec/Lab 3 (Fall, Spring, Summer).

Software Engineering Process Electives

SWEN-350
Software Process and Product Quality
This course covers advanced topics in software engineering relating to software quality, with processes and metrics being viewed as a means to achieving quality. Quality is interpreted broadly to include product functionality and performance, project schedule and budget, and business objectives. Software metrics help a software organization on two main fronts: quality assessment of its products and processes, and process improvement towards its main goal: the production of successful software artifacts within schedule and budget constraints. (Prerequisites: SWEN-256 and (STAT-205 or STAT-145 or MATH-251) and (SWEN-488 or SWEN-498 or SWEN-499 or CSCI-499 or CSCI-488 or CSEC-499 or CMPE-499) or equivalent courses.) Lecture 3 (Fall, Spring).
SWEN-352
Software Testing
Concepts and techniques for testing soft ware and assuring its quality. Topics cover software testing at the unit and system levels; static vs. dynamic analysis; functional testing; inspections; and reliability assessment. (Prerequisites: SWEN-261 or equivalent course) Lecture 3 (Fall, Spring).
SWEN-356
Trends in Software Development Processes
A course in the exploration of current approaches in planning, executing and managing the project activities performed during the development of a professional software product. Topics include the characteristics of state of the practice development methods, selecting practices best suited based on project context and techniques for refining practices to achieve process improvement. Students work on team projects inclusive of all development life cycle activities to reinforce concepts presented in class. (Prerequisites: SWEN-256 or equivalent course.) Lec/Lab 3 (Fall, Spring).
SWEN-559
Software Engineering Process Seminar
Emerging topics of relevance in software engineering process. (Prerequisites: SWEN-256 or equivalent course.) Lecture (Fall, Spring).
SWEN-722
Process Engineering
In this course, students will study various lifecycle models for developing software systems. They will study the Software Process Engineering Metamodel (SPEM) standard as a tool for modeling and analyzing engineering processes. Students will use SPEM to characterize various process and organization models and patterns, and they will align these process characteristics to categories of needs for various organizations and projects. The students will study process engineering frameworks and the configuration and assembly of reusable process components into processes. Students will also study how tools and methods support the process. Students will also study software process assessment models, including the Capability Maturity Models, and learn how to identify specific recommendations for an organization to improve their processes. Students will apply their learning to engineer software engineering processes, tools, and methods appropriate for their graduate projects, course projects, and projects for organizations they have worked for. Lec/Lab 3 (Spring).
SWEN-732
Collaborative Software Development
This course covers processes, tools, and techniques for software development, in general, and collaborative, distributed software development, in particular. Students will learn how to design a process specific to their organization and development project needs. This includes how to select a software development life-cycle model, how to select and sequence the development and management activities of a collaborative, distributed software development team structure and dynamics, and how to define the work products, tools, and methods used to perform those activities. The Software Process Engineering Metamodel (SPEM, an Object Management Group standard) will serve to graphically describe, analyze, discuss, and improve software development processes. Special attention will be given to collaboration needs and approaches for small and large teams that may be globally distributed. (Prerequisites: This course is restricted to students with graduate standing in Software Engineering program or GCCIS graduate programs who have completed SWEN-601 and SWEN-610 or equivalent courses.) Lecture 3 (Fall).
SWEN-772
Software Quality Engineering
This course begins with an exploration of the concepts underlying quality systems and the use of metrics. Students are encouraged to discuss the advantages as well as the limitations of systems and quantitative approaches, with a view to understanding the 40 importance of interpretation in metrics usage and of matching quality systems choices to organizational objectives and culture. They learn the use of modern metrics such as DRE, PCE, COQ/COPQ, reliability objectives and SUMI scores through exercises in analyzing and interpreting charts. This is complemented with a project where they work in teams to design an appropriate quality system for a specific project/organizational situation, and discuss the application and analysis of its evaluation experimentation as a means of improving the quality aspects of subject project/organizational situation. (This course is restricted to students with graduate standing in Software Engineering program or GCCIS PHD program.) Lec/Lab 3 (Fall, Spring).
SWEN-789
Graduate Special Topics (Process Focused)
This course will cover specialized topics in software engineering. Such topics are often considered emerging and advanced. Graduate standing and specific prerequisites will be noted upon specific proposal of a course. (Prerequisites: SWEN-610 or equivalent course.) Lec/Lab 3 (Fall, Spring, Summer).

Engineering Electives

 
Any software engineering (SWEN) elective course
 
Any undergraduate level computer science (CSCI) course (exceptions apply)
 
Any graduate level computer science (CSCI) course (exceptions apply)
 
Any course offered through the College of Engineering (exceptions apply)
CSEC-202
Reverse Engineering Fundamentals
This course will teach students the core concepts needed to analyze unknown source code. Students will study a variety of low-level programming languages and how high-level programming language structures relate to low-level programming languages. Students will learn study tools and techniques used for both static and dynamic analysis of unknown binaries, providing the foundation for further study in malware analysis. (Prerequisite: CSEC-201 or equivalent course.) Lec/Lab 3 (Fall, Spring).
CSEC-362
Crypto and Authentication
As more users access remote systems, the job of identifying and authenticating those users at distance becomes increasingly difficult. The growing impact of attackers on identification and authentication systems puts additional strain on our ability to ensure that only authorized users obtain access to controlled or critical resources. This course introduces encryption techniques and their application to contemporary authentication methods. (Prerequisites: (CSEC-101 or CSEC-102 or CSEC-140) and (MATH-131 or MATH-190) or equivalent courses.) Lecture 3 (Fall, Spring).
CSEC-380
Principles of Web Application Security
This course is designed to give students a foundation in the theories and practice relating to web application security. The course will introduce students to the concepts associated with deploying and securing a typical HTTP environment as well as defensive techniques they may employ. (Prerequisites: (CSEC-101 or CSEC-102 or CSEC-140) and NSSA-245 or equivalent courses.) Lecture 3 (Spring).
CSEC-468
Risk Management for Information Security
The three key elements of risk management will be introduced and explored. These are risk analysis, risk assessment, and vulnerability assessment. Both quantitative and qualitative methodologies will be discussed as well as how security metrics can be modeled, monitored, and controlled. Several case studies will be used to demonstrate the risk management principles featured throughout the course. Students will work in teams to conduct risk assessments on the selected case study scenarios. They will develop mitigation plans and present the results of their analysis both in written reports and oral presentations. (Prerequisites: CSEC-101 or CSEC-102 or CSEC-140 or equivalent course and at least 3rd year standing.) Lecture 3 (Fall).
CSEC-471
Penetration Testing Frameworks & Methodologies
The process and methodologies employed in negotiating a contract, performing a penetration test, and presenting the results will be examined and exercised. Students will be exposed to tools and techniques employed in penetration testing. Assignments will explore the difficulties and challenges in planning for and conducting an assessment exposing potential vulnerabilities. Students will develop a metric used to evaluate the security posture of a given network and will develop a coherent and comprehensive report of their findings to present to their client. Particular attention will be paid to the ramifications of the findings toward the security of the targets. (Prerequisites: This course is restricted to students in GCCIS with at least 3rd year student standing.) Lec/Lab 3 (Spring).
CSEC-472
Authentication and Security Models
Access control and authentication systems are some of the most critical components of cybersecurity ecosystems. This course covers the theory, design, and implementation of systems used in identification, authentication, authorization, and accountability processes with a focus on trust at each layer. Students will examine formal models of access control systems and approaches to system accreditation, the application of cryptography to authentication systems, and the implementation of IAAA principles in modern operating systems. A special focus will be placed on preparing students to research and write about future topics in this area. (Prerequisites: CSEC-362 or CSCI-462 or equivalent course.) Lec/Lab 3 (Fall, Spring).
CSEC-604
Cryptography and Authentication
In this course, students will gain in depth knowledge of cryptography and authentication. Students will explore various cryptographic algorithms and authentication protocols, focusing on their design and implementation. Students will also work on a research or implementation project, based on cryptographic algorithms and/or authentication protocols. The applications of cryptography and authentication in the areas of computer networks and systems will also be investigated. This course requires prior knowledge in Discrete Mathematics. (Prerequisites: (MATH-190 and BS/MS students in Computing Security) or students matriculated in the COMPSEC-MS program.) Lecture 3 (Fall).
CSEC-731
Web Server and Application Security Audits
This course discusses the processes and procedures to perform a technical security audit of web servers and web based applications. Students will not only explore Web Servers and Applications/Services threats, but also apply the latest auditing techniques to identify vulnerabilities existing in or stemming from web servers and applications. Students will write and present their findings and recommendations in audit reports on web servers and application vulnerabilities. To be successful in this course students should be knowledgeable in a scripting language and comfortable with the administration of both Linux and Windows platforms. (Prerequisites: CSEC-600 or equivalent course. This course is restricted to BS/MS students in Computing Security and students in the COMPSEC-MS program.) Lecture 3 (Spring).
CSEC-733
Information Security Risk Management
This course will provide students with an introduction to the principle of risk management and its three key elements: risk analysis, risk assessment and vulnerability assessment. Students will also learn the differences between quantitative and qualitative risk assessment, and details of how security metrics can be modeled/monitored/controlled and how various types of qualitative risk assessment can be applied to the overall assessment process. Several industry case studies will be studied and discussed. Students will work together in teams to conduct risk assessments based on selected case studies or hypothetical scenarios. Finally, they will write and present their risk assessment reports and findings. (Prerequisites: This course is restricted to BS/MS students in Computing Security and students in the COMPSEC-MS program.) Lecture 3 (Spring).
CSEC-741
Internet of Things Security
As the world becomes more and more connected as ever before via various kinds of devices and systems on the Internet, called the Internet of Things (IoT), the associated security and privacy-related issues also become increasingly challenging. This course is designed for students who wish to advance their knowledge in the Internet of Things security. It provides students opportunities to explore security and privacy-related issues manifested by various kinds of IoT devices and systems such as sensors, sensor networks, SCADA systems, vehicular systems, consumer IoT devices, etc. (Prerequisites: CSEC-600 or equivalent course.) Lecture 3 (Spring).
EEET-261
Fundamentals of Audio Engineering
This course provides a fundamental study of the technology and practice used in recording, editing, mixing, production, and distribution of sound. Topics include microphone types, selection and application the mixing console, mixing techniques and introduction to Signal Processing equipment and associated techniques, an introduction to the concepts relating to digital audio technology such as sampling, the Nyquist theorem, alias frequencies, quantization, dynamic range, compression and their applications will be covered. Topics include basics of digital audio, session creation, importing media, recording techniques, editing, mixing, and mastering. In addition, the course teaches how-to-listen sonic difference to appropriately apply the technical knowledge and to achieve highest sound quality. (Prerequisites: MATH-101 or MATH-111 or MATH-171 or MATH-181 or MATH-181A equivalent course.) Lecture 3 (Fall, Spring).
IGME-320
Game Design & Development II
This course continues to examine the core theories of game design as they relate to the professional field. Beginning with a formalized pitch process, this course examines the design and development paradigm from story-boarding and pre-visualization through rapid iteration, refinement, and structured prototyping exercises to further examine the validity of a given design. Specific emphasis is placed on iterative prototyping models, and on methodologies for both informal and formal critique. This course also explores production techniques and life-cycle in the professional industry. (Prerequisites: (IGME-202 and IGME-220 or equivalent courses and GAMEDES-BS or NWMEDID-BS or GAMEDD-MN students) or (IGME-102 and IGME-220 or equivalent courses and GAMED-MN students).) Lec/Lab 3 (Fall, Spring).
ISTE-230
Introduction to Database and Data Modeling
A presentation of the fundamental concepts and theories used in organizing and structuring data. Coverage includes the data modeling process, basic relational model, normalization theory, relational algebra, and mapping a data model into a database schema. Structured Query Language is used to illustrate the translation of a data model to physical data organization. Modeling and programming assignments will be required. Note: students should have one course in object-oriented programming. (Prerequisites: ISTE-120 or ISTE-200 or IGME-101 or IGME-105 or CSCI-140 or CSCI-142 or NACA-161 or NMAD-180 or BIOL-135 or GCIS-123 or equivalent course.) Lec/Lab 3 (Fall, Spring).
ISTE-340
Client Programming
This course will explore the analysis, design, development, and implementation of client-side programming in the context of Internet technologies, mobile devices, Web-based client systems and desktop applications. Students will learn to design and build usable and effective interactive systems, clients, and interfaces. Key features addressed will include browser and platform compatibility, object reusability, bandwidth and communications issues, development environments, privacy and security, and related technologies and APIs. Programming is required. (Prerequisites: (ISTE-240 or IGME-330) and (GCIS-124 or ISTE-121 or ISTE-200 or CSCI-142 or CSCI-140 or IGME-106 or IGME-102) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
ISTE-341
Server Programming
This course provides in-depth work in server-side programming. Students will develop dynamic, data centric web pages and systems, and server-side information services that will be available to clients implemented in a variety of software technologies. Topics include XML parsing, generation, and consumption; web configuration and security; design patterns; web service structures, and application security. Programming projects are required. (Prerequisites: ISTE-340 and (ISTE-230 or CSCI-320) and (SWEN-383 or SWEN-262) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
ISTE-456
Mobile Application Development II
This course extends the Foundations of Mobile Design course in that students will learn to apply mobile design skills to develop applications in the Android platform. Students will design, develop, and test mobile applications using the Android Studio IDE. This course covers the major components such as activities, receivers, content providers, permissions, intents, fragments, data storage, and security. Programming projects are required (Prerequisites: (ISTE-252 and ISTE-340) or IGME-330 or equivalent courses.) Lec/Lab 3 (Fall, Spring).
NSSA-290
Networking Essentials For Developers
This is a course in the basics of network communication for software developers. Topics will include the OSI 7-layer model and its realization in the TCP/IP protocol stack. Students will also learn about naming and name resolution as it is used in the internet, plus the basics of routing and switching. The focus in all of this will be on an analysis of how name resolution, routing and switching operate at the developer's perspective. The specifics of how the socket transport layer appears to the programmer and operates will be a key topic. Finally, an overview of authentication mechanisms and number of examples of the security vulnerabilities of existing communication protocols will be provided to instruct students on the inherent risks of communication via the INTERNET. (Prerequisites: GCIS-124 or ISTE-121 or ISTE-200 or CSCI-142 or CSCI-140 or CSCI-242 or IGME-102 or IGME-106 or equivalent course.) Lecture 3 (Fall, Spring).

Professional Electives

 
Any Engineering elective
ACCT-110
Financial Accounting
An introduction to the way in which corporations report their financial performance to interested stakeholders such as investors and creditors. Coverage of the accounting cycle, generally accepted accounting principles, and analytical tools help students become informed users of financial statements. (This course is available to RIT degree-seeking undergraduate students.) Lecture 3 (Fall, Spring, Summer).
BLEG-200
Business Law I
An introduction to legal principles and their relationship to business organizations. Explores the U.S. legal system, the U.S. court system, civil and criminal procedure, the role of government agencies, legal research, and the substantive areas of law most relevant to business, including constitutional law, tort law, criminal law, contract law, intellectual property, debtor-creditor relations, bankruptcy, business entities, securities regulation, and antitrust law. (This course is available to RIT degree-seeking undergraduate students.) Lecture 3 (Fall, Spring, Summer).
DECS-310
Operations Management
A survey of operations and supply chain management that relates to both service- and goods- producing organizations. Topics include operations and supply chain strategies; ethical behavior; forecasting; product and service design, including innovation and sustainability; capacity and inventory management; lean operations; managing projects; quality assurance; global supply chains; and the impacts of technology. (Prerequisites: STAT-145 or MATH-251 or equivalent courses.) Lecture 3 (Fall, Spring, Summer).
ECON-405
International Trade and Finance
This course first surveys the sources of comparative advantage. It then analyzes commercial policy and analyzes the welfare economics of trade between countries. Some attention is paid to the institutional aspects of the world trading system. Finally, the course introduces the student to some salient notions in international finance such as national income accounting, the balance of payments, and exchange rates. (Prerequisites: ECON-101 or completion of one (1) 400 or 500 level ECON course and ECON-201 or equivalent course.) Lecture 3 (Fall Or Spring).
ECON-430
Managerial Economics
Managerial Economics involves the application of economic theory to business decision-making. Most of the emphasis is microeconomic in nature, the theory of the firm and consumer theory, but there is some macroeconomic influence, particularly in the forecasting area. Since this is an applied economics course, it has a strong quantitative flavor. (Prerequisites: (ECON-101 or completion of one (1) 400 or 500 level ECON course) and ECON-201 or equivalent course.) Lecture 3 (Fall).
FINC-220
Financial Management
Basic course in financial management. Covers business organization, time value of money, valuation of securities, capital budgeting decision rules, risk-return relation, Capital Asset Pricing Model, financial ratios, global finance, and working capital management. (Prerequisites: (ECON-101 or ECON-201) and ACCT-110 and (STAT-145 or STAT-251 or CQAS-251 or MATH-251 or MATH-252 or STAT-205) or equivalent courses.) Lecture 3 (Fall, Spring, Summer).
FINC-425
Stock Market Algorithmic Trading
The course is a “hands-on” lab-based class designed to help students develop algorithmic trading strategies to invest in the stock market that can be implemented by retail and professional traders.The course has a strong emphasis on practical application with the purpose of building marketable skills for careers in finance. Students learn how to design algorithmic trading models through the use of a computerized trading platform that allows back-testing of data on thousands of different stocks. The software platform includes an automated wizard for building advanced technical trading models without programming knowledge; but also has an embedded programming language, similar to C-sharp, for those students that have those skills and elect to use them. (Knowledge of programming is not required; and there are no pre or co-requisites; but a laptop is strongly recommended.). Lecture 3 (Spring).
HRDE-386
Human Resources Development
A one-semester, three-credit course in human resource development provides the prospective manager practical information on methods to enhance the productivity, quality, and effectiveness of an organization through the creation of an environment where individual and collective performance and development has primacy. The course requires students to assimilate course material related to the following: to organizational strategy, systems thinking and legal compliance; workforce development, career development of employees; individual development and training; measuring outcomes; human resource processes and effective communications. Students integrate theoretical classroom concepts with practical knowledge and work experiences. As part of the course: students continually practice effective communication skills; students may work in teams; and are expected to engage in critical and innovative thinking. Students' understanding of human resource development is intended to help them enhance organizational effectiveness through implementing processes designed to develop and train employees. Lecture 3 (Fall, Spring).
INTB-225
Global Business Environment
Being an informed global citizen requires an understanding of the global business environment. Organizations critical to the development of the global business environment include for-profit businesses, non-profits, governmental, non-governmental, and supranational agencies. This course introduces students to the interdependent relationships between organizations and the global business environment. A holistic approach is used to examine the diverse economic, political, legal, cultural, and financial systems that influence both organizations and the global business environment. (This course is available to RIT degree-seeking undergraduate students.) Lecture 3 (Fall, Spring).
MGMT-150
Business 1T: An Introduction to Business
Designed as an introductory business course for students in the Saunders College that want to learn more about the fundamentals of business. This course provides an overview of the functions and processes of business organizations. Topics include the role and responsibility of the manager, the processes and functions of business, the impact of technology, business planning process, doing business in global environments, and career exploration. NOTE: Students may not take MGMT 150 if they have already taken MGMT 101 and MGMT 102. (Students may not take MGMT-150 if they have already taken MGMT-101 and MGMT-102.) Lecture 3 (Fall, Spring).
MGMT-215
Organizational Behavior
As an introductory course in managing and leading organizations, this course provides an overview of human behavior in organizations at the individual, group, and organizational level with an emphasis on enhancing organizational effectiveness. Topics include: individual differences, work teams, motivation, communication, leadership, conflict resolution, organizational culture, and organizational change. (This class is restricted to undergraduate students with at least 2nd year standing.) Lecture 3 (Fall, Spring, Summer).
MGMT-350
Entrepreneurship
This course studies the process of creating new ventures with an emphasis on understanding the role of the entrepreneur in identifying opportunities, seeking capital and other resources, and managing the formation and growth of a new venture. It addresses the role of entrepreneurship in the economy and how entrepreneurial ventures are managed for growth. (This class is restricted to undergraduate students with at least 3rd year standing.) Lecture 3 (Fall, Spring, Summer).
MGMT-420
Managing Innovation and Technology
This course focuses on commercializing technology, and gives students the chance to work on real business projects involving new technology. Topics covered include assessing inventions for market readiness, drivers of innovation, technology-driven entrepreneurship and intrapreneurship, managing different types of innovation, and the construction of a technology strategy for a firm or business unit. Students learn how to understand both technology and business perspectives as well as how to formulate a profitable technology strategy. Projects focus on current situations in real companies, including, on occasion, student-owned startup companies. (This class is restricted to undergraduate students with at least 3rd year standing.) Lecture 3 (Fall, Spring).
MGMT-470
Applied Entrepreneurship and Commercialization
This unique undergraduate course enables students to learn the entrepreneurial (value creation) process by advancing a business idea. The course provides weekly seminars focusing on customer discovery and business model development and weekly coaching mentoring sessions with an established entrepreneur/early stage marketer. The project is team based. Students may enter the course with a business concept or be integrated into an existing team in the course. Lecture 3 (Fall, Spring, Summer).
MKTG-230
Principles of Marketing
An introduction to the field of marketing, stressing its role in the organization and society. Emphasis is on determining customer needs and wants and how the marketer can satisfy those needs through the controllable marketing variables of product, price, promotion and distribution. (This class is restricted to undergraduate students with at least 2nd year standing.) Lecture 3 (Fall, Spring, Summer).
SOIS-205
Practicing and Assessing Leadership
By integrating course concepts of leadership styles and theories with a leadership field experience, students will be able to assess their skills as a leader and create a plan for growth and development for future success. Each student will be required to create a leadership learning agenda and development plan at the beginning of the semester based on their current leadership experience. The learning agenda will identify goals for achievement and strategies for assessing and improving upon their effectiveness as a leader. Lecture 3 (Fall, Spring).

Math/Science Electives*

BIOG-101
Explorations in Cellular Biology and Evolution
This course serves as an introduction to cellular, molecular, and evolutionary biology. Topics will include: a study of the basic principles of modern cellular biology, including cell structure and function; the chemical basis and functions of life, including enzyme systems and gene expression; and the origin of life and evolutionary patterns of organism development on Earth. (Prerequisites: Students may not take BIOG-101 if they have already taken BIOL-101. See the Biology department with any questions.) Lecture 3 (Fall, Summer).
BIOG-102
Explorations in Animal and Plant Anatomy and Physiology
This course serves as an introduction to animal and plant anatomy and physiology, in addition to the fundamentals of ecology. Topics will include: animal development; animal body systems; plant development; unique plant systems; Earth’s terrestrial and aquatic environments; population and community ecology; animal behavior; and conservation biology. (Prerequisites: Students may not take BIOG-102 if they have already taken BIOL-102. See the Biology department with any questions.) Lecture 3 (Spring, Summer).
BIOL-101
General Biology I
This course serves as an introduction to cellular, molecular, and evolutionary biology. Topics will include: a study of the basic principles of modern cellular biology, including cell structure and function; the chemical basis and functions of life, including enzyme systems and gene expression; and the origin of life and evolutionary patterns of organism development on Earth. Lecture 3 (Fall, Summer).
BIOL-102
General Biology II
This course serves as an introduction to animal and plant anatomy and physiology, in addition to the fundamentals of ecology. Topics will include: animal development; animal body systems; plant development; unique plant systems; Earth's terrestrial and aquatic environments; population and community ecology; animal behavior; and conservation biology. Lecture 3 (Spring, Summer).
BIOL-130
Introduction to Bioinformatics
This course will explore topics in the field of bioinformatics including tools and resources used by the discipline, including direct experience with the common user environment. Lecture 3 (Fall).
CHMG-131
General Chemistry for Engineers
This rigorous course is primarily for, but not limited to, engineering students. Topics include an introduction to some basic concepts in chemistry, stoichiometry, First Law of Thermodynamics, thermochemistry, electronic theory of composition and structure, and chemical bonding. The lecture is supported by workshop-style problem sessions. Offered in traditional and online format. Lecture 3 (Fall, Spring).
CHMG-141
General & Analytical Chemistry I
This is a general chemistry course for students in the life and physical sciences. College chemistry is presented as a science based on empirical evidence that is placed into the context of conceptual, visual, and mathematical models. Students will learn the concepts, symbolism, and fundamental tools of chemistry necessary to carry on a discourse in the language of chemistry. Emphasis will be placed on the relationship between atomic structure, chemical bonds, and the transformation of these bonds through chemical reactions. The fundamentals of organic chemistry are introduced throughout the course to emphasize the connection between chemistry and the other sciences. Lecture 3 (Fall, Spring, Summer).
CHMG-142
General & Analytical Chemistry II
The course covers the thermodynamics and kinetics of chemical reactions. The relationship between energy and entropy change as the driving force of chemical processes is emphasized through the study of aqueous solutions. Specifically, the course takes a quantitative look at: 1) solubility equilibrium, 2) acid-base equilibrium, 3) oxidation-reduction reactions and 4) chemical kinetics. (Prerequisites: CHMG-141 or CHMG-131 or equivalent course.) Lecture 3 (Fall, Spring, Summer).
ECON-403
Econometrics I
Econometrics I provides students with the opportunity to develop their skills in applied regression analysis. It covers various regression estimation techniques, data preparation and transformation, and the interpretation of regression results. There is particular emphasis on the dangers of misuse of regression techniques. The course covers regression analysis for both cross-sectional and time series data. (Prerequisites: ECON-101 or completion of one (1) 400 or 500 level ECON course and (MATH-171 or 1016-171T or MATH-181 or MATH-181A) and (STAT-145 or STAT/CQAS-251 or MATH-251 or STAT-205 or equivalent courses.) Lecture 3 (Fall, Spring).
ECON-404
Mathematical Methods: Economics
Mathematical Methods: Economics provides students with an introduction to quantitative techniques used in economics such as matrix algebra, one- and multi-variable differential calculus, and unconstrained and constrained optimization. The emphasis of the instruction is on the application of these techniques to fortify and broaden a student's understanding of traditional economic topics like utility maximization, cost minimization, duality in consumer theory, expected utility, and profit maximization. (Prerequisites: ECON-101 or completion of one (1) 400 or 500 level ECON course and (MATH-171 or MATH-181 or MATH-181A) or equivalent courses.) Lecture 3 (Spring).
ENVS-101
Concepts of Environmental Science
This course is the foundation course for the Environmental Science major and presents an integrated approach to the interrelated, interdisciplinary principles of environmental science through lecture, case studies and active participation. In this course, the focus will be on sustainability as the foundation for problem solving while investigating a number of environmental issues and establishing environmental literacy. Topics may include biodiversity, ecosystems, pollution, energy, and global climate change. To demonstrate the interdisciplinary methodology of environmental science, elements of government/political science/policy, ethics, economics, sociology, history and engineering are embedded in the scientific matrix used to present this course. Lecture 3 (Fall, Spring).
ENVS-111
Soil Science
This is an introductory course on soil science, covering concepts such as soil taxonomy, soil ecology, physical soil properties, soil formation and geomorphology, and soil conservation. The lecture portion of the course will consist of in-class demonstrations and exercises, discussion groups, and traditional lecture materials. Lab exercises will focus on field sampling techniques and bench analyses, soil texture and partial size analyses, basic soil chemistry properties, land use planning, and spatial analyses. Lab 3 (Fall).
IMGS-111
Imaging Science Fundamentals
This course is an exploration of the fundamentals of imaging science and the imaging systems of the past, present, and future. Imaging systems studied include the human visual system, consumer and entertainment applications (e.g., traditional and digital photography, television, digital television, HDTV, and virtual reality); medical applications (e.g., X-ray, ultrasound, and MRI); business/document applications (e.g., impact and non-impact printing, scanners, printers, fax machines, and copiers) and systems used in remote sensing and astronomy (e.g., night-vision systems, ground- and satellite-based observatories). The laboratory component reinforces the principles and theories discussed in the lecture, while giving students experience with many imaging systems and exposure to the underlying scientific principles. Lab 3 (Fall).
IMGS-112
Astronomical Imaging Fundamentals
This course provides an understanding and appreciation of the fundamental science goals driving the development of contemporary astronomical imaging systems and the basic principles and concepts underlying those systems. Students will investigate the world's most powerful telescopes and cameras presently operating in the realm of human vision, as well as systems that image the “invisible”, by tapping the infrared, X-ray, and radio regimes of the electromagnetic spectrum. Laboratory exercises familiarize students with basic visualization, manipulation, and measurement of real astronomical images (drawn from major-facility archives) that span these regimes. Students will also get a glimpse of the future of astronomical imaging. This course satisfies a General Education elective requirement in the areas of natural science inquiry, scientific principles, or science/math literacy. Math proficiency at college algebra level is required. Lab 3 (Spring).
IMGS-361
Image Processing and Computer Vision I
This course is an introduction to the basic concepts of digital image processing. The student will be exposed to image capture and image formation methodologies, sampling and quantization concepts, statistical descriptors and enhancement techniques based upon the image histogram, point processing, neighborhood processing, and global processing techniques based upon kernel operations and discrete convolution as well as the frequency domain equivalents, treatment of noise, geometrical operations for scale and rotation, and grey-level resampling techniques. Emphasis is placed on applications and efficient algorithmic implementation using the student's programming language of choice. (Prerequisites: IMGS-180 and IMGS-261 or equivalent courses.) Lecture 3 (Fall).
MATH-219
Multivariable Calculus
This course is principally a study of the calculus of functions of two or more variables, but also includes the study of vectors, vector-valued functions and their derivatives. The course covers limits, partial derivatives, multiple integrals, and includes applications in physics. Credit cannot be granted for both this course and MATH-221. (Prerequisite: C- or better MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring, Summer).
MATH-231
Differential Equations
This course is an introduction to the study of ordinary differential equations and their applications. Topics include solutions to first order equations and linear second order equations, method of undetermined coefficients, variation of parameters, linear independence and the Wronskian, vibrating systems, and Laplace transforms. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring, Summer).
MATH-251
Probability and Statistics I
This course introduces sample spaces and events, axioms of probability, counting techniques, conditional probability and independence, distributions of discrete and continuous random variables, joint distributions (discrete and continuous), the central limit theorem, descriptive statistics, interval estimation, and applications of probability and statistics to real-world problems. A statistical package such as Minitab or R is used for data analysis and statistical applications. (Prerequisites: MATH-173 or MATH-182 or MATH 182A or equivalent course.) Lecture 3 (Fall, Spring, Summer).
MATH-311
Linear Optimization
This course presents the general linear programming problem. Topics include a review of pertinent matrix theory, convex sets and systems of linear inequalities, the simplex method of solution, artificial bases, duality, parametric programming, and applications. (Prerequisites: MATH-241 or MATH-241H or equivalent course.) Lecture 3 (Spring).
MATH-351
Graph Theory
This course covers the theory of graphs and networks for both directed and undirected graphs. Topics include graph isomorphism, Eulerian and Hamiltonian graphs, matching, covers, connectivity, coloring, and planarity. There is an emphasis on applications to real world problems and on graph algorithms such as those for spanning trees, shortest paths, and network flows. (Prerequisites: MATH-190 or MATH-200 or equivalent course.) Lecture 3 (Fall).
MATH-367
Codes and Ciphers
This course will introduce, explain and employ both the classical and modern basic techniques of cryptography. Topics will include the Vignère cipher, affine ciphers, Hill ciphers, one-time pad encryption, Enigma, public key encryption schemes (RSA, Diffie-Hellman, El-Gamal, elliptic curves), and hash functions. The course will include an introduction to algebraic structures and number theoretic tools used in cryptography. (Prerequisites: MATH-190 or MATH-200 or equivalent course.) Lecture 3 (Spring).
MEDG-101
Human Biology I
This course is one of a two-course set of courses that explores the biology of the human body. This course focuses on: cells, their structure, and organization; the human reproductive cycle; principle of genetic inheritance; transmission of disease and the body’s defense against disease. Recommended to concurrently take: MEDG-103 Human Biology Laboratory I *Note: Taken alone, this course fulfills the Scientific Principles Perspective. When taken with MEDG-103 the two courses together fulfill the Natural Science Inquiry Perspective Lecture 3 (Fall).
MEDG-102
Human Biology II
This course is one of a two-course set of courses that explores the biology of the human body. This course focuses on the examination of the body's structure (anatomy), its function (physiology), the principle of homeostasis that governs the integrated control of all body organ systems, and various disease states (pathology) that affect its health. Recommended to concurrently take: MEDG-104 Human Biology Laboratory II *Note: Taken alone, this course fulfills the Scientific Principles Perspective. When taken with MEDG-104 the two courses together fulfill the Natural Science Inquiry Perspective Lecture 3 (Spring).
PHYS-213
Modern Physics I
This course provides an introductory survey of elementary quantum physics, as well as basic relativistic dynamics. Topics include the photon, wave-particle duality, deBroglie waves, the Bohr model of the atom, the Schrodinger equation and wave mechanics, quantum description of the hydrogen atom, electron spin, and multi-electron atoms. (Prerequisites: PHYS-209 or PHYS-212 or PHYS-217or equivalent course.) Lecture 3 (Fall, Spring, Summer).
PHYS-220
University Astronomy
This course is an introduction to the basic concepts of astronomy and astrophysics for scientists and engineers. Topics include the celestial sphere, celestial mechanics, methods of data acquisition, planetary systems, stars and stellar systems, cosmology, and life in the universe. (Prerequisites: PHYS-211 or PHYS-211A or PHYS-207 or PHYS-216 or (MECE-102 and MECE-103 and MECE-205) or equivalent courses.) Lecture 3 (Fall, Spring).
STAT-257
Statistical Inference
Learn how data furthers understanding of science and engineering. This course covers basic statistical concepts, sampling theory, hypothesis testing, confidence intervals, point estimation, and simple linear regression. A statistical software package such as MINITAB will be used for data analysis and statistical applications. (Prerequisites: MATH-251. NOTE: Students cannot receive credit for both MATH-252 and STAT-257 nor for both STAT-205 and STAT-257.) Lecture 3 (Fall, Spring).

Admission Requirements

Freshman Admission

For all bachelor’s degree programs, a strong performance in a college preparatory program is expected. Generally, this includes 4 years of English, 3-4 years of mathematics, 2-3 years of science, and 3 years of social studies and/or history.

Specific math and science requirements and other recommendations

  • 4 years of math including pre-calculus required
  • Requires chemistry or physics and strongly recommends both
  • Computing electives are recommended

Transfer Admission

Transfer course recommendations without associate degree
Courses in computer science, calculus, liberal arts; calculus-based physics, chemistry, or biology

Appropriate associate degree programs for transfer
AS degree in computer science, engineering science, or liberal arts

Learn about admissions, cost, and financial aid 

Accreditation

The bachelor of science in software engineering is accredited by the Engineering Accreditation Commission of ABET.

Latest News