Spring 2020 Certificate and Module Courses
Overview
The following is a listing of the courses associated with each certificates or modules in the Software Engineering and Computer Science B.S. Programs.
Please see the Program Change Overview page for more information about the changes in general.
Please note: This page is designed to share information early-on and help students in their decision-making process. Every effort has been made to ensure that it is accurate, but if there are any errors or inconsistencies, the university catalog and registration system are the official source of this information and will take precedence over this informational page.
Also, be aware that projected first offering dates are an estimate to help in general planning purposes, but are not to be taken as a firm commitment of course offerings.
Course Articulation
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.
Core Courses (The shared left-hand side)
Computing Fundamentals Module
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.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 100 |
Introduction to Computing |
1 |
Currently Available |
||
CSE 170 |
Introduction to Technical Teamwork |
2 |
Currently Available |
||
CIT 171 |
Introduction to Cyber Security |
2 |
Currently Available |
||
WDD 130 |
Introduction to Web Development |
2 |
Currently Available |
||
ECEN 106 |
Introduction to Computer Systems |
2 |
Currently Available |
||
Choose one: | |||||
CSE 150 |
Data Intuition and Insight |
2 |
Currently Available |
||
BUS 115 |
Introduction to Data Management |
3 |
Currently Available |
||
CIT 111 |
Introduction to Databases |
3 |
Currently Available |
||
GEOL 141 |
GIS Basics |
3 |
Spring 2021 |
Computer Programming Certificate
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.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 110 |
Programing Building Blocks |
2 |
CS 101 |
Currently Available |
|
CSE 111 |
Programing with Functions |
2 |
CS 124 |
CSE 110 |
Currently Available |
CSE 121b |
JavaScript Programing Language |
1 |
CSE 111 |
Currently Available |
|
CSE 210 |
Programing with Classes |
2 |
CS 165 |
CSE 111 |
Currently Available |
CSE 212 |
Programing with Data Structures |
2 |
CS 241 |
CSE 210 |
Currently Available |
CSE 310 |
Applied Programing |
4 |
CS 246 |
CSE 210 |
Winter 2021 |
Internship & Senior Project
All students are required to complete an internship experience and a capstone project.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 398 |
Internship |
1-4 |
CS 398 |
CSE 310 |
Currently Available |
CSE 499 |
Senior Project |
3 |
CS 499 |
CSE 310 |
Currently Available |
As in the past, CSE 499A (1 credit) and CSE 499B (2 credits) will be available to allow students to spread CSE 499 across two semesters.
Software Engineering Certificates and Modules
For a Bachelor's in Software Engineering students must complete one of the following modules/certificates and then either complete a second certificate/module or 12 additional credits from CS, CSE, WDD, ECEN, CIT (at least 3 credits of which are upper division).
Web Development Certificate
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.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
WDD 230 |
Web Frontend Development I |
3 |
CS 213 |
WDD 130 |
Currently Available |
WDD 330 |
Web Frontend Development II |
3 |
CIT 261 |
WDD 230 |
Currently Available |
CSE 340 |
Web Backend Development I |
3 |
CIT 336 |
WDD 230 |
Currently Available |
CSE 341 |
Web Backend Development II |
3 |
CS 313 |
WDD 230 |
Currently Available |
CIT 225 |
Database Design & Development |
3 |
CS 225 |
CSE 111 |
Currently Available |
Software Design Certificate
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.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 130 |
Algorithm Design |
2 |
CSE 110 |
Currently Available |
|
CSE 131 |
Modularization Design |
2 |
CSE 130 |
Currently Available |
|
CSE 220c |
C++ Programming Language |
1 |
CSE 210 |
Winter 2021 |
|
CSE 230 |
Encapsulation Design |
2 |
CSE 220c |
Winter 2021 |
|
CSE 231 |
Inheritance Design |
2 |
CSE 230 |
Spring 2021 |
|
CSE 232 |
Designing Data Structures |
2 |
CS 235 |
CSE 231 |
Fall 2021 |
CSE 331 |
Design Patterns |
2 |
CSE 231 |
Winter 2022 |
|
CSE 430 |
Architecture Design |
2 |
CSE 310 |
Spring 2022 |
Software Quality Assurance Certificate
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.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 270 |
Software Testing |
3 |
CSE 111 |
Winter 2021 |
|
CSE 251 |
Parallelism and Concurrency |
3 |
Winter 2021 |
||
CSE 372 |
Requirements Elicitation |
2 |
Fall 2021 |
||
CSE 453 |
Computer Security |
3 |
CS 470 |
CSE 220c |
Currently Available |
CSE 474 |
Quality Assurance |
3 |
CSE 270 |
Winter 2022 |
|
CSE 220c |
C++ Programming Language |
1 |
CSE 210 |
Winter 2021 |
Software Management Module
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.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 272 |
Software Lifecycle Models |
2 |
CSE 170 |
Spring 2021 |
|
CSE 372 |
Requirements Elicitation |
2 |
Fall 2021 |
||
CIT 380 |
Project Management |
3 |
Currently Available |
||
CSE 471 |
User Interface Evaluation and Design |
3 |
CS 371 |
60+ Credits |
Currently Available |
CSE 473 |
Continuous Improvement |
2 |
CSE 272 |
Fall 2021 |
|
CSE 474 |
Quality Assurance |
2 |
CSE 270 |
Winter 2022 |
Embedded Systems Certificate
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).
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 121c |
C Programming Language |
1 |
CSE 111 |
Currently Available |
|
ECEN 240 |
Fundamentals of Digital Systems |
3 |
ECEN 106 |
Winter 2021 |
|
ECEN 260 |
Microprocessor-based System Design |
3 |
CSE 121c and |
Currently Available |
|
ECEN 324 |
Computer Architecture |
3 |
CSE 212 and |
Currently Available |
|
ECEN 361 |
Embedded Systems |
3 |
ECEN 260 |
Currently Available |
Computer Science Certificates and Modules
For a Bachelor's in Computer Science all students must complete the Algorithm Fundamentals Module. Then, they must complete either the Machine Learning Fundamentals Certificate or the Functional Programming Module.
Algorithmic Fundamentals Module
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.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 180 |
Algorithmic Thinking |
3 |
Currently Available |
||
CSE 121a |
Clojure Programming Language |
1 |
CSE 111 |
Currently Available |
|
CSE 280 |
Discrete Math I |
2 |
CS 237 |
CSE 121a |
Currently Available |
CSE 381 |
Algorithms and Complexity |
3 |
CS 306 |
CSE 280 |
Currently Available |
CSE 251 |
Parallelism and Concurrency |
3 |
Winter 2021 |
Machine Learning Fundamentals Certificate
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.
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
MATH 119 |
Applied Calculus for Data Analysis |
4 |
Currently Available |
||
MATH 341 |
Linear Algebra |
3 |
MATH 119 |
Currently Available |
|
CSE 250 |
Data Science Programming |
2 |
CSE 111 |
Currently Available |
|
CSE 450 |
Machine Learning and Data Mining |
3 |
CS 450 |
CSE 250 |
Currently Available |
CSE 451 |
Big Data Programming and Analysis |
3 |
CSE 250 and |
Winter 2021 |
Functional Programming Module
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 |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
MATH 112 |
Calculus I |
4 |
Currently Available |
||
CSE 380 |
Discrete Math II |
4 |
CS 238 |
CSE 280 |
Currently Available |
CSE 480 |
Computational Theory |
3 |
CS 480 |
CSE 380 |
Currently Available |
CIT 225 |
Database Design and Development |
3 |
CS 225 |
CSE 111 |
Currently Available |
Elective Courses
In addition, the following courses are available as either General Electives or to fill the "Choose 12 credits" Software Engineering electives:
Mobile Programming Related
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 222a |
Swift Programming Language |
1 |
CSE 212 |
Fall 2021 |
|
CSE 222b |
Kotlin Programming Language |
1 |
CSE 212 |
Fall 2021 |
|
CSE 320a |
Mobile Programming |
4 |
CSE 221a |
Spring 2021 |
Other Elective Courses
Course |
Title |
Credits |
Equivalent |
Prerequisites |
Projected |
CSE 350 |
Data Wrangling and Visualization |
3 |
CS 335 |
CSE 250 or |
Currently Available |
CSE 353 |
Computer Vision and Graphics |
3 |
CSE 210 |
Currently Available |
|
CSE 354 |
Computer Networks |
3 |
CS 460 |
CSE 220c |
Currently Available |
CSE 490 |
Special Topics |
3 |
CS 490 |
Instructor Discretion |