Spring 2020 Computer Science & Software Engineering Program Changes
Overview
The Computer Science and Software Engineering Programs are experiencing significant changes in the Spring of 2020. These are designed to improve the quality of the offerings, reduce costs to the university, and enable more students to be successful. The following is an overview of the degrees that will be available beginning in Spring 2020.
Be aware that, beginning Spring 2020, current students will have the option to switch to one of the new degrees, but will not be required to do so. In many cases, current students should not change to one of the new degrees, because it would delay their graduation and increase their costs. Also, at this point, these new bachelor's degree offerings are targeted toward campus students. Online students who began with the Pathway program will stay with their current degree programs.
Please see the Frequently Asked Questions on this page for more information about whether changing is the right decision for you.
The New Programs at a Glance
The following figures highlight the structure of the 2020 bachelor’s degree programs for Software Engineering and Computer Science and are described in more detail below.
These two degrees are composed of a number of certificates and modules which can assist students in choosing groups of courses that align with their career goals. They also let students more clearly articulate their areas of specialty to future employers. Also, it provides a valuable credential for students who may finish their degree later online.
The Shared Core Courses
As shown, both the Software Engineering and Computer Science degrees share the same core courses on the left-hand side. These core courses consist of three major components:
Computing Fundamentals Module (Course List) – These courses help students develop practical skills in a wide variety of computing areas. They also help students decide which specific area of computing is the best fit for them. Many students who start with one computing-related degree may find that another is a better fit and change their major. This module helps students discover their path early on, so they can switch their major with minimal impact on their graduation timeline. It also helps them avoid taking courses that don’t apply to their final choice of major.Computer Programming Certificate (Course List) – This sequence of courses prepares students for a job as an intern or an entry-level programmer. The courses begin with the fundamental building blocks of programing and culminate with students working in small teams to complete projects of their choice that can have real-world impact. This sequence of courses unifies (and replaces) the three previous sequences of CS 101/241, CS 124/165/235/246, and CIT 160/260/360.Internship and Senior Project (Course List)– All students are required to complete an internship experience and a capstone project.
In addition to the core courses on the left-hand side of the degree, students choose among additional certificates and modules to align with their career goals.
Software Engineering Specialty Options
The Software Engineering Degree focuses on the principles and practices of developing software systems. For this degree, students must complete one of the following:
Web Development Certificate (Course List) – This certificate helps prepare students for a career in developing software that relates to the Web. This includes courses in frontend and backend development, and in database design. Successful students will have experience in many languages and technologies, and understand the principles that underlie modern Web development.Software Design Certificate (Course List) – This certificate helps prepare students for a career in software development with special focus in the design, architecture, testing, and evaluation of software components. It is a sequence of courses that begins by focusing on small components, progresses through larger data structures and design patterns, and culminates with large-scale system design. Successful students will have a sound understanding of the principles and practices of software design and architecture.Software Quality Assurance Certificate (Course List) – This certificate helps prepare students for a career in quality assurance by providing a solid foundation in both the principles of quality assurance and testing as well as important technical skills in areas such as security and concurrency. Successful students will be prepared for careers as quality assurance engineers or as software engineers that have a special eye toward quality and improvement.Software Management Module (Course List) – This certificate helps students dive deeply in the processes surrounding the creation of software, including requirements elicitation, systems design, as well as software life-cycle models and project management. Successful students often begin employment with a position as a software developer and are well-positioned for a software management track.Embedded Systems Certificate (Course List) – This certificate helps students write the software behind physical systems. Successful students will have great experience with hardware and be well-prepared to develop software for IoT (the Internet of Things).
In addition to completing a certificate or module from the list above, students must also either complete a second certificate or a mix of 12 other credits of their choice from certain computing courses. Advising worksheets will have recommendations of supplemental courses that align well with the Software Engineering certificates and modules listed above.
Computer Science Specialty Options
The Computer Science degree focuses on the algorithmic principles of computing and the way they are applied in important problems today.
For the Computer Science degree, all students must complete the algorithm fundamentals module:
Algorithmic Fundamentals Module (Course List) – All computer science majors complete this module to deepen their understanding of the mathematical and algorithmic foundations of the field, so they know not only the how but the why of computing.
Students also select one of:
Machine Learning Fundamentals Certificate (Course List) – In this certificate, students develop skills in machine learning and the mathematical foundations that support it, and how to apply these skills to uncover meaningful patterns in data. In addition to being prepared for various careers related to programming, successful students will also be prepared for future learning and growth in machine learning.Functional Programming Module (Course List) – This module helps students deepen their understanding of the functional programming paradigm that is essential to modern concurrent and distributed systems. Successful students will be prepared for careers in high use and availability cloud and backend systems.
Course Articulation – How does the old match up to the new?
As part of these curriculum changes, every CS course will be changing in one degree or another. For some courses, the content may remain the same, but the course will still receive a new course number. To help clarify the difference between courses from the old and new lists, the new courses will be given a prefix of CSE (Computer Science and Software Engineering) such as CSE 110.
If you have taken a course from the previous program but would like to move to a new degree that requires the new courses, your previous courses can count in place of many of the new courses.
For a complete list of how the old classes line can fulfill requirements in the new CS/SE programs, you can view the Course Articulation Document that advising and faculty mentors use as a guideline.
If you have further questions about how these courses may transfer, please contact the advising office at CPSEAdvising@byui.edu or contact your faculty mentor.
The following courses are not being changed, but are simply being renamed from using a “CS” to a “CSE” prefix and receiving a different course number, and in some cases the course name is changing slightly. Because the course is the same, the new and old course numbers will be equivalent in the system.
Old Course |
New Course |
Course Name |
CS 237 |
CSE 280 |
Discrete Math I |
CS 238 |
CSE 380 |
Discrete Math II |
CS 290 |
CSE 290R |
Special Topics |
CS 306 |
CSE 381 |
Algorithm Analysis |
CS 312 |
CSE 353 |
Computer Graphics |
CS 313 |
CSE 341 |
Web Engineering II -> Web Backend Development II |
CS 371 |
CSE 471 |
Human Computer Interaction -> User Interface Evaluation and Design |
CS 398 |
CSE 398 |
Internship |
CS 450 |
CSE 450 |
Machine Learning and Data Mining |
CS 460 |
CSE 354 |
Computer Networks |
CS 470 |
CSE 453 |
Computer Security |
CS 480 |
CSE 480 |
Computational Theory |
CS 490R |
CSE 490R |
Special Topics |
CS 498R |
CSE 498R |
Internship |
CS 499 |
CSE 499 |
Senior Project |
CS 499A |
CSE 499A |
Senior Project Part A |
CS 499B |
CSE 499B |
Senior Project Part B |
CIT 230 |
WDD 230 |
Web Frontend Development I |
CIT 261 |
WDD 330 |
Mobile App Development -> Web Frontend Development II |
CIT 336 |
CSE 340 |
Web Backend Development I |
CIT 366 |
WDD 430 |
Web Full-Stack Development |
CIT 465 |
CSE 320A |
Mobile Programming |
Frequently Asked Questions
These changes are motivated by core themes of the BYU-Idaho mission statement to increase the quality of our offerings, reach more students, and reduce costs to the university. These changes meet those themes in the following ways:
Quality – These new degrees allow students to pursue more depth in an area of their choice, including areas not previously offered, such as Software Quality Assurance and Software Management.
Cost – We are unifying previously redundant course offerings, such as multiple courses that taught programming and Web development.
Reach – By moving some topics from beginning programming courses to other places in the program where they can be given better treatment, these entry-level courses can be more accessible to students who are seeing programming for the first time.
Our department will continue to offer the same bachelor’s degrees. The makeup of the Software Engineering and Computer science degrees are changing significantly. Within the computing space, the following bachelor’s degrees are offered by the CSEE and other departments:
Computer Science
Software Engineering
Computer Engineering
Electrical Engineering
Computer Information Technology
Web Design and Development
Applied Technology
Data Science
Business Analytics
For several years, we have conducted surveys and interviews of alumni, employers, graduate schools, and students, and monitored the landscape of the industry. These new programs represent our best effort to match the needs we have identified with the strengths of the department within the constraints of the university.
A module is simply a grouping of courses, whereas a certificate is a grouping of courses that, upon completion, will give students a certificate that they can include on their resume.
For Software Engineering:
Web Development
Software Design
Software Quality Assurance
Software Management
Embedded Systems
For Computer Science:
Machine Learning Fundamentals
Functional Programming
See the Certificate Course Listing page for more detail.
The Certificate Course Listing contains projected dates for each class. Please recognize that they are estimates at this point.
In each case students will complete the common Computing Fundamentals and Computer Programming components. In addition, students in either program may complete, as electives, a number of courses required by the other program. Successful students of each program will be well prepared for employment at graduation.
In truth, there is significant overlap between the two programs, the kinds of students that will take them, and the kinds of jobs that graduates of each program will be qualified to accept. But in general, Software Engineering focuses more on the creation of the software products and systems and the engineering practices around them, whereas Computer Science focuses more directly on applying the fundamental concepts behind computing.
New students that begin in Spring 2020, or later, cannot switch to an older catalog or degree program.
Beginning in Spring of 2020, current or previous students can elect to move forward to a new version of the degree. Moving to a new program is not be the right decision for all students, especially those who are well into an existing program, because it would delay their graduation, require them to take additional courses, and incur additional expense.
No! Current students in existing degree programs can continue and finish their current programs. Those that are in the later stages of the program will likely have little or no impact as new courses become available. Those students that are in the early stages of their program may have more impact as new courses become available, and if they want to take some of the new courses, they can work with the advising office to ensure that a new course will properly count for an older one.
Beginning in Spring 2020, current students can develop a grad plan in I-Plan and see how the new programs would affect their planning. They can further discuss their plans with the advising office or with their faculty mentor, but in short, our recommendation is:
Students who are in the final year or two of their current program will likely not want to switch to the new programs.
Students who are in the first 2-3 semesters of their current program might consider switching to take advantage of some of the new courses, certificates, and modules.
Students who are in between these groups should carefully evaluate their options, using I-Plan, and discussing them with the advising office or their faculty mentor. Please keep in mind that degree plans that require more than 120 credits will be under increased scrutiny.
This is complicated. There are many different types of online and BYU Pathway Worldwide students, each of whom have slightly different requirements and available options. Online students should reach out to their respective advising offices for more details about the programs available to them.
It is our intention to prepare as many of the new courses as possible to be taught online, and the Bachelor’s of Applied Technology degree that Pathway students can select will contain several of the certificates included in the Software Engineering degree, so these students can also benefit from these new offerings.
Please feel free to contact the advising office or your faculty mentor. More detailed information will continue to be published as we get closer to the actual Spring 2020 rollout.