Software Engineering Bachelor of Science Degree
Software Engineering
Bachelor of Science Degree
- RIT /
- Golisano College of Computing and Information Sciences /
- Academics /
- Software Engineering BS
Overview for Software Engineering BS
Why Pursue a Software Engineering Degree at RIT?
Hands-on Experience: 40 weeks of required cooperative education and internship means nearly a year of hands-on, full-time paid career experience.
Senior Project: In this two-course senior design project, you will synthesize and apply the knowledge and experience you have gained to solve a current challenge in the software industry.
Access to High-Tech Laboratories: Facilities include three student instructional studio labs, a specialized embedded systems lab, and a collaboration lab.
Accelerated Bachelor’s/Master’s Available: Earn both your bachelor’s and your master’s in less time and with a cost savings, giving you a competitive advantage in your field.
STEM-OPT Visa Eligible: The STEM Optional Practical Training (OPT) program allows full-time, on-campus international students on an F-1 student visa to stay and work in the U.S. for up to three years after graduation.
What is Software Engineering?
Software engineering uses principles of both engineering design and computer science to develop, test, deploy, maintain, and repair software applications and computer systems. As software becomes more common in everything from airplanes to appliances, there is an increasing demand for engineering professionals who can use programming languages, frameworks, and methodologies to build high-quality, cost-effective software systems.
RIT’s Bachelor's Degree in Software Engineering
The BS degree in software engineering combines traditional computer science and engineering with specialized software engineering courses. You will learn principles, methods, and techniques for the construction of complex and evolving software systems. The degree in software engineering 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, you will be prepared for a career in software engineering with immediate employment and long-term professional growth in a range of software development organizations.
Software Engineering Courses
We offer challenging software engineering courses that prepare you for the demands and challenges of the software industry. The bachelor's degree in software engineering consists of both core and elective courses that focus on the software engineering lifecycle. In addition, you must complete a senior project on a team of four or five students.
The bachelor of software engineering includes four key elements: engineering design, software product development, teamwork, and communication. The curriculum ensures that your coursework is balanced between software design principles and software process practices.
In every software engineering course, teamwork is emphasized with a significant part of the final grade being based on team project activities. By the time you start your senior project, you will have worked with 20 to 25 different student teams in your software engineering courses.
You will also develop your communication skills by preparing engineering documentation, such as requirements documents, design documents, project plans, burndown charts, and software test plans. At the end of each project cycle, you will do an oral presentation and receive critique from the instructor and other students in the class.
The software engineering degree focuses on developing skills to:
- Model and analyze proposed and existing software systems, especially through the use of discrete mathematics and statistics.
- Apply quality principles to the definition of software systems and processes.
- Analyze and design complex software systems using contemporary principles such as cohesion and coupling, abstraction and encapsulation, design patterns, frameworks, and architectural styles.
- Apply contemporary software engineering methods to planning, management, and development of software systems.
- Accurately communicate technical material related to all phases of the software life cycle via concise and correct documents, graphics and oral presentations.
- 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.
- 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.
- Relate principles of software engineering to at least one application domain where those principles can be applied.
- Explore new topics in software engineering or related application domains with limited oversight and input from faculty or mentors.
- Rapidly learn, assess, and adapt to new languages, environments, and paradigms for software development.
With the skills obtained in the software engineering degree, you will be able to design and build quality software solutions that meet the customer's requirements and are delivered on time, without defects, and within budget.
Software Engineering Elective Courses
In the software engineering degree, 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, you must complete courses in related fields of engineering, business, or science. Two engineering electives, plus a three-course sequence in an application domain, enable you to connect software engineering principles to application areas.
The curriculum is flexible in allowing you to choose elective courses that most interest you and align with the software engineering major. A sampling includes:
Field Sample Elective Courses*
Software Engineering Design Software Modeling, Software Architecture, Mathematical Models of Software
Software Engineering Process Software Testing, Process Engineering, Collaborative Software Development
Engineering Cryptography and Authentication, Internet of Things Security, Game Design and Development II
Professional Financial Accounting, Business Law I, Entrepreneurship, Principles of Marketing
Math/Science General Biology, Soil Science, Multivariable Calculus, Differential Equations
* A full list of software engineering elective courses is listed in the curriculum section.
Enhance Your Software Engineering Degree with a Minor and Immersion
Adding a minor in a complementary area of study deepens your expertise in the core areas of software engineering, and more. With dozens of minors and immersions to choose from, you’ll have your choice of topics to study. While you may choose any minor or immersion as part of your studies, select minors serve to boost the bachelor's degree in software engineering. These include:
- Math
- Applied Statistics
- Economics
- Music
- Creative Writing
- Computer Science
- Business Administration
Software Engineering Degree Senior Design Project
This two-course senior design project will help you synthesize and apply the knowledge and experience you 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, you will determine the requirements and architectural design of the project. In the second course, you will work on the tactical issues of development and deployment 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.
Further Your Career in Software Engineering
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.
- Software Engineering BS/Software Engineering MS: With their BS in software engineering students will be prepared for success in industry as they learn to deliver impactful software on time and on budget. Co-ops and senior projects provide valuable real world experience that prepare students to hit the ground running in industry. And with an accelerated BS/MS degree, students gain skills to advance quickly in their career, through conducting research in key areas including data science for software engineering, artificial intelligence applications in software engineering, and software modeling. Gain hands-on experience through team-based projects that help you master modern software engineering techniques.
- Software Engineering BS/Cybersecurity MS: The BS/MS pathway in software engineering and cybersecurity gives students a well-rounded background in the development and deployment of software complemented by specialization in cybersecurity. With their BS in software engineering students will be prepared for success in industry as they learn to deliver impactful software on time and on budget. Building on this, the MS in cybersecurity program delves into advanced topics such as enterprise-level security strategies and trusted computing, as well as research topics like Internet-of-Things (IoT) security and covert communications. Through hands-on experiences in labs and with partner companies, students will develop a dynamic skill sets attractive to industry.
- Software Engineering BS/Computer Science MS: The BS/MS pathway in software engineering and computer science gives students a well-rounded background in the development and deployment of software complemented by specialization in advanced fields. With their BS in software engineering students will be prepared for success in industry as they learn to deliver impactful software on time and on budget. With their MS in computer science students will dive deeper into computer graphics and visualization, data management, and AI while participating in research and co-ops that make them highly sought after employees in industry. Some graduates pursue further education earning a Ph.D.
- +1 MBA: Students who enroll in a qualifying undergraduate degree have the opportunity to add an MBA to their bachelor’s degree after their first year of study, depending on their program. Learn how the +1 MBA can accelerate your learning and position you for success.
-
Apply for Fall 2025
First-year students can apply for Early Decision II by Jan. 1 to get an admissions and financial aid assessment by mid-January.
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 |
Industries
-
Internet and Software
-
Electronic and Computer Hardware
-
Health Care
-
Utilities and Renewable Energy
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.
Featured Work and Profiles
-
From Computing Exploration to Microsoft
Quincy Myles Jr. ’25 Meet Quincy Myles Jr., a fifth-year software engineering student pursuing a plus-one MBA.
Read More about From Computing Exploration to Microsoft
Curriculum for 2024-2025 for Software Engineering BS
Current Students: See Curriculum Requirements
Software Engineering, BS degree, typical course sequence
Course | Sem. Cr. Hrs. | |
---|---|---|
First Year | ||
GCIS-123 | Software Development and Problem Solving I (General Education) 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 | Software Development and Problem Solving II (General Education) 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 | Calculus I (General Education – Mathematical Perspective A) 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. (Prerequisites: MATH-111 or (NMTH-220 and NMTH-260 or NMTH-272 or NMTH-275) or equivalent courses with a minimum grade of B-, or a score of at least 60% on the RIT Mathematics Placement Exam.) Lecture 4 (Fall, Spring). |
4 |
MATH-182 | Calculus II (General Education – Mathematical Perspective B) This is the second in a two-course sequence. 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-181A or equivalent course.) Lecture 4 (Fall, Spring). |
4 |
MATH-190 | Discrete Mathematics for Computing (General Education) 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, Recitation 1 (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. (Prerequisite: CSCI-105 or CSCI-141 or GCIS-123 or SWEN/CSEC/ISTE-123 or IGME-105 or equivalent with a grade of C- or better.
Co-requisite: CSCI-142 or GCIS-124 or GCIS-127 or SWEN/CSEC/ISTE-124 or CSCI-140 or CSCI-242 or IGME-106 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. (This class is restricted to incoming 1st year or global campus students.) Lecture 1 (Fall, Spring). |
0 |
General Education – Artistic Perspective |
3 | |
General Education – Ethical Perspective |
3 | |
ENGL-150 | FYW: Future of Writing (WI) (General Education – First-Year Writing) 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 | Communication (WI) (General Education) 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 | University Physics I (General Education – Natural Science Inquiry Perspective) 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 |
Choose one of the following: | 3 |
|
MATH-251 | Probability and Statistics (General Education) 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, Recitation 1 (Fall, Spring, Summer). |
|
STAT-205 | Applied Statistics (General Education) 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 GCIS-124 or GCIS-127 or SWEN-124 or CSEC-124 or ISTE-124 or IGME-106 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 GCIS-127 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 – Scientific Principles Perspective† |
4 | |
General Education – Social Perspective |
3 | |
Third Year | ||
MATH-241 | Linear Algebra (General Education) 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 CSCI-243 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 and (CSCI-262 or CSCI-263)) or (SWEN-262 and MATH-241) or equivalent courses.) Lecture 3 (Fall, Spring, Summer). |
|
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 and (CSCI-262 or CSCI-263)) or (SWEN-262 and MATH-241 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 Bachelor’s/Master’s Degrees enable you to earn both degrees 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 Bachelor’s/Master’s Degrees can prepare you for your future, faster.
Software Engineering, BS/MS degree, typical course sequence
Course | Sem. Cr. Hrs. | |
---|---|---|
First Year | ||
GCIS-123 | Software Development and Problem Solving I (General Education) 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 | Software Development and Problem Solving II (General Education) 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 | Calculus I (General Education – Mathematical Perspective A) 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. (Prerequisites: MATH-111 or (NMTH-220 and NMTH-260 or NMTH-272 or NMTH-275) or equivalent courses with a minimum grade of B-, or a score of at least 60% on the RIT Mathematics Placement Exam.) Lecture 4 (Fall, Spring). |
4 |
MATH-182 | Calculus II (General Education – Mathematical Perspective B) This is the second in a two-course sequence. 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-181A or equivalent course.) Lecture 4 (Fall, Spring). |
4 |
MATH-190 | Discrete Mathematics for Computing (General Education) 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, Recitation 1 (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. (Prerequisite: CSCI-105 or CSCI-141 or GCIS-123 or SWEN/CSEC/ISTE-123 or IGME-105 or equivalent with a grade of C- or better.
Co-requisite: CSCI-142 or GCIS-124 or GCIS-127 or SWEN/CSEC/ISTE-124 or CSCI-140 or CSCI-242 or IGME-106 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. (This class is restricted to incoming 1st year or global campus students.) Lecture 1 (Fall, Spring). |
0 |
ENGL-150 | FYW: Future of Writing (WI) (General Education – First-Year Writing) 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 |
General Education – Ethical Perspective |
3 | |
General Education – Artistic Perspective |
3 | |
Second Year | ||
COMM-253 | Communication (WI) (General Education) 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 | University Physics I (General Education – Natural Science Inquiry Perspective) 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 |
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 GCIS-124 or GCIS-127 or SWEN-124 or CSEC-124 or ISTE-124 or IGME-106 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 GCIS-127 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 |
Choose one of the following: | 3 |
|
MATH-251 | Probability and Statistics (General Education) 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, Recitation 1 (Fall, Spring, Summer). |
|
STAT-205 | Applied Statistics (General Education) 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). |
|
General Education – Global Perspective |
3 | |
General Education – Scientific Principles Perspective† |
4 | |
General Education – Social Perspective |
3 | |
Third Year | ||
MATH-241 | Linear Algebra (General Education) 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 CSCI-243 or equivalent course.) Lecture 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 |
|
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). |
|
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 and (CSCI-262 or CSCI-263)) or (SWEN-262 and MATH-241) or equivalent courses.) Lecture 3 (Fall, Spring, Summer). |
|
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 and (CSCI-262 or CSCI-263)) or (SWEN-262 and MATH-241 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. (Prerequisites: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) or equivalent courses).) 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: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) 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: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261)) 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: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) 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: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) 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/Cybersecurity, MS degree, typical course sequence
Course | Sem. Cr. Hrs. | |
---|---|---|
First Year | ||
GCIS-123 | Software Development and Problem Solving I (General Education) 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 | Software Development and Problem Solving II (General Education) 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 | Calculus I (General Education – Mathematical Perspective A) 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. (Prerequisites: MATH-111 or (NMTH-220 and NMTH-260 or NMTH-272 or NMTH-275) or equivalent courses with a minimum grade of B-, or a score of at least 60% on the RIT Mathematics Placement Exam.) Lecture 4 (Fall, Spring). |
4 |
MATH-182 | Calculus II (General Education – Mathematical Perspective B) This is the second in a two-course sequence. 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-181A or equivalent course.) Lecture 4 (Fall, Spring). |
4 |
MATH-190 | Discrete Mathematics for Computing (General Education) 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, Recitation 1 (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. (Prerequisite: CSCI-105 or CSCI-141 or GCIS-123 or SWEN/CSEC/ISTE-123 or IGME-105 or equivalent with a grade of C- or better.
Co-requisite: CSCI-142 or GCIS-124 or GCIS-127 or SWEN/CSEC/ISTE-124 or CSCI-140 or CSCI-242 or IGME-106 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. (This class is restricted to incoming 1st year or global campus students.) 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 | Communication (WI) (General Education) 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 | University Physics I (General Education – Natural Science Inquiry Perspective) 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 |
STAT-205 | Applied Statistics (General Education) 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 GCIS-124 or GCIS-127 or SWEN-124 or CSEC-124 or ISTE-124 or IGME-106 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 GCIS-127 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 – Scientific Principles Perspective† |
4 | |
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 and (CSCI-262 or CSCI-263)) or (SWEN-262 and MATH-241) or equivalent courses.) Lecture 3 (Fall, Spring, Summer). |
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 | Linear Algebra (General Education) 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 CSCI-243 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 |
CSEC 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, Lecture 3 (Fall). |
3 |
CSEC Graduate Electives |
6 | |
CSEC Research Electives |
6 | |
Choose one of the following culminating experiences: | 6 |
|
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). |
|
CSEC Research Elective, plus one (1) CSEC Graduate Elective |
||
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 | Calculus I (General Education – Mathematical Perspective A) 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. (Prerequisites: MATH-111 or (NMTH-220 and NMTH-260 or NMTH-272 or NMTH-275) or equivalent courses with a minimum grade of B-, or a score of at least 60% on the RIT Mathematics Placement Exam.) Lecture 4 (Fall, Spring). |
4 |
MATH-182 | Calculus II (General Education – Mathematical Perspective B) This is the second in a two-course sequence. 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-181A or equivalent course.) Lecture 4 (Fall, Spring). |
4 |
MATH-190 | Discrete Mathematics for Computing (General Education) 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, Recitation 1 (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 | Software Development and Problem Solving I (General Education) 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 | Software Development and Problem Solving II (General Education) 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. (Prerequisite: CSCI-105 or CSCI-141 or GCIS-123 or SWEN/CSEC/ISTE-123 or IGME-105 or equivalent with a grade of C- or better.
Co-requisite: CSCI-142 or GCIS-124 or GCIS-127 or SWEN/CSEC/ISTE-124 or CSCI-140 or CSCI-242 or IGME-106 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. (This class is restricted to incoming 1st year or global campus students.) 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 | Communication (WI) (General Education) 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 | University Physics I (General Education – Natural Science Perspective) 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 |
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 GCIS-124 or GCIS-127 or SWEN-124 or CSEC-124 or ISTE-124 or IGME-106 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 GCIS-127 or equivalent course.) Lec/Lab 3 (Fall, Spring). |
3 |
SWEN-499 | Software Engineering Co-op (summer) 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 |
|
MATH-251 | Probability and Statistics (General Education) 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, Recitation 1 (Fall, Spring, Summer). |
|
STAT-205 | Applied Statistics (General Education) 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). |
|
General Education – Global Perspective |
3 | |
General Education – Scientific Principles Perspective† |
4 | |
General Education – Social Perspective |
3 | |
Third Year | ||
CSCI-262 | Introduction to Computer Science Theory This course provides an introduction to the theory of computation, including formal languages, grammars, auto-mata theory, computability, and complexity. (Prerequisites: (MATH-190 or MATH-200) and (CSCI-140 or CSCI-141 or CSCI-242 or SWEN-123 or SWEN-124 or CSECI-123 or CSEC-124 or GCIS-123 or GCIS-124 or GCIS-127) or equivalent courses.) Lecture 3 (Fall, Spring, Summer). |
3 |
MATH-241 | Linear Algebra (General Education) 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 CSCI-243 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 | |
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 and (CSCI-262 or CSCI-263)) or (SWEN-262 and MATH-241) or equivalent courses.) Lecture 3 (Fall, Spring, Summer). |
|
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 and (CSCI-262 or CSCI-263)) or (SWEN-262 and MATH-241 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 – 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 | |
Professional Elective |
3 | |
Software Engineering Process Elective |
3 | |
Open Electives |
6 | |
General Education – Math/Science Elective |
3 | |
Sixth Year | ||
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, Project 3 (Fall, Spring, Summer). |
3 |
Computer Science Graduate Courses |
15 | |
Computer Science Graduate Cluster 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).
‡ Students who register for CSCI-788 are required to concurrently register for colloquium, which is a mandatory component associated with CSCI-788.
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: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) 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: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261)) 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: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) 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: (SOFTENG-U or CSCISWEN-U or SOFTENG-MS students) and ((SWEN-601 and SWEN-610) or (SWEN-261) 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 GCIS-127 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 GCIS-127) 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 GCIS-127 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 ECON-101H) and (MATH-161 or MATH-171 or 1016-171T or MATH-181 or MATH-181A) and (STAT-145 or CQAS-251 or MATH-251 or STAT-205 or STAT-251) 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 and MATH-161 or MATH-171 or MATH-181 or MATH-181A or equivalent courses.) Lecture 3 (Fall, 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, Lecture 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, Lecture 2 (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, Lecture 2 (Spring). |
IMGS-361 | Image Processing and Computer Vision I This course provides an introduction to the concepts and methods of image processing. The student will be exposed to sampling and quantization methods; descriptors and enhancement techniques based upon the image histogram; geometrical manipulations; interpolation and resampling; feature generation with direct application to image registration/stitching and redundancy reduction; pixel and object-level classification; frequency-domain applications, including automated image registration, data embedding, and image reconstruction; and image data redundancy and compression concepts. Emphasis is placed on efficient algorithmic implementations and applications, in an object-oriented development environment. (Prerequisite: MATH-173 or MATH-182 and IMGS-180 or equivalent courses.) Lecture 3 (Fall). |
MATH-151H | Explorations of Place and Space: Connections and How they Determine Behavior The course will explore the structure of networks and how it relates to the behavior of the people in the networks. Students will develop an understanding, through experimentation and investigation, of how the net result of many apparently independent qualities, events, or ideas is influenced by the network structure. Common and familiar phenomena, such as social networks and food webs, can be modeled as networks. The course will introduce students to the subject of graph theory (the branch of mathematics that studies networks). Students will examine real networks through the viewpoint of a mathematician, gaining an understanding of many seemingly unrelated concepts. The honors seminar integrates the required YearOne curriculum. 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, Recitation 1 (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, Recitation 1 (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). |
Admissions and Financial Aid
This program is STEM designated when studying on campus and full time.
First-Year Admission
A strong performance in a college preparatory program is expected. This includes:
- 4 years of English
- 3 years of social studies and/or history
- 4 years of mathematics is required and must include algebra, geometry, algebra 2/trigonometry, and pre-calculus. Calculus is preferred.
- 2-3 years of science is required and must include chemistry or physics; both are preferred.
- Computing electives are preferred.
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
Financial Aid and Scholarships
100% of all incoming first-year and transfer students receive aid.
RIT’s personalized and comprehensive financial aid program includes scholarships, grants, loans, and campus employment programs. When all these are put to work, your actual cost may be much lower than the published estimated cost of attendance.
Learn more about financial aid and scholarships
Accreditation
The bachelor of science in software engineering program is accredited by the Engineering Accreditation Commission of ABET.
Related News
-
November 8, 2024
RIT professor proposes new way to make artificial intelligence smarter and greener
The brain is a great source of inspiration for Alexander Ororbia, an assistant professor of computer science and cognitive science at RIT. By mimicking how neurons in the brain learn, Ororbia is working to make artificial intelligence more powerful and energy efficient. His research was recently published in the journal Science Advances.
-
April 22, 2024
RIT alumni and faculty innovators to speak at Futurists Symposium on April 26
A highlight of this year’s Imagine RIT: Creativity and Innovation Festival takes place one day before thousands of visitors descend on campus. The annual Futurists Symposium, featuring a unique collection of the university’s alumni and faculty innovators, will be held at 4 p.m. on Friday, April 26, in the Wegmans Theater, MAGIC Spell Studios.
-
April 11, 2024
RIT students from across the globe launch entrepreneurial startups through the Simone Center
According to a 2023 Bloomberg article, over 5 million startup companies are founded each year in the United States. At RIT’s Albert J. Simone Center for Innovation and Entrepreneurship, students are working together to turn their dreams of starting companies into reality.
Contact
- Andy Meneely
- Associate Professor
- Department of Software Engineering
- Golisano College of Computing and Information Sciences
- 585‑475‑7829
- andy.meneely@rit.edu
Department of Software Engineering