Computer Science and Electrical Engineering

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
First Offering

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
First Offering

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
First Offering

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
First Offering

WDD 230

Web Frontend Development I

3

CS 213
& CIT 230

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
or CIT 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
First Offering

CSE 130

Algorithm Design

2

CSE 110

Currently Available

CSE 131

Modularization Design

2

CSE 130
and CSE 111

Currently Available

CSE 220c

C++ Programming Language

1

CSE 210

Winter 2021

CSE 230

Encapsulation Design

2

CSE 220c
and CSE 131

Winter 2021

CSE 231

Inheritance Design

2

CSE 230

Spring 2021

CSE 232

Designing Data Structures

2

CS 235

CSE 231
and CSE 212

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
First Offering

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
First Offering

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
and CIT 380

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
First Offering

CSE 121c

C Programming Language

1

CSE 111

Currently Available

ECEN 240

Fundamentals of Digital Systems

3

ECEN 106
and CSE 121c

Winter 2021

ECEN 260

Microprocessor-based System Design

3

CSE 121c and
(ECEN 160 or 240)

Currently Available

ECEN 324

Computer Architecture

3

CSE 212 and
(ECEN 160 or 240)

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
First Offering

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
First Offering

MATH 119

Applied Calculus for Data Analysis

4

Currently Available

MATH 341

Linear Algebra

3

MATH 119
or MATH 112

Currently Available

CSE 250

Data Science Programming

2

CSE 111

Currently Available

CSE 450

Machine Learning and Data Mining

3

CS 450

CSE 250
or CSE 310

Currently Available

CSE 451

Big Data Programming and Analysis

3

CSE 250 and
(CSE 350 or 450)

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
First Offering

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
or CIT 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
First Offering

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
or CSE 221b

Spring 2021

Other Elective Courses

Course

Title

Credits

Equivalent

Prerequisites

Projected
First Offering

CSE 350

Data Wrangling and Visualization

3

CS 335
Math 335

CSE 250 or
MATH 325 or
(CSE 111 and MATH 221)

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