Software Development

(Advanced Computer Programming)

Software Development
The software development emphasis is designed to be a two-year industry and certification experience for those interested in pursuing a career in the software industry. Students may choose to complete part of this two-year program or continue to be enrolled for all of it (depending on schedule room and year in school).

When students apply for this program, they will be asked which course they are planning to take their first semester. If a student chooses to continue in the program for subsequent semesters, they do not need to re-apply but will let the instructor know the course they want to take next.

COURSE OPTIONS:

Advanced Computer Programming

  • CE course corresponding to CS 1410 at Weber State University (4 credit hours)

  • Semester Course

  • At the conclusion of the course, students will be able to implement the following to solve algorithmic problems in C++:

    • Input/Output, variables, and math statements

    • Control Structures (conditionals, loops, and switches)

    • Vectors & Strings including string parsing and manipulation

    • User-defined methods and function decomposition

    • Object-oriented programming utilizing polymorphic functions, overloaded functions, inheritance, encapsulation, and abstraction

    • Structures, enumerations, and iterators

    • Try/Catch exception handling

    • Streams and File Input/Output

    • Overloaded operators

    • Arrays, including 2D arrays

    • Recursion

* Course pre-requisite or co-requisite: CS1400 (Computer Programming, 2 CE)

Data Structures & Algorithms

  • CE course corresponding to CS 2420 at Weber State University (4 credit hours)

  • Semester course

  • At the conclusion of the course, students will understand fundamentally how the following data structures work from both a time complexity analysis and a memory management analysis. Students will be able to fully utilize the following data structures to solve complex programming problems:

    • Stacks

    • Queues

    • Linked Lists

    • Pointers

    • Templates

    • Sets & Pairs

    • Maps

    • Hash Tables

    • Trees

    • Heaps

    • Graphs (directed and undirected)

  • At the conclusion of the course, students will understand how to describe and implement the following algorithms in C++:

    • Various Sorting Algorithms including Merge Sort, Quick Sort, Bubble Sort, Insertion & Selection Sort

    • Binary Search

    • Shortest Path / Greedy

    • Minimum Spanning Tree

    • Breadth First Search & Depth First Search

    • A* Pathing

*Course pre-requisite: CS 1410 (Advanced Computer Programming)

Software Development Capstone

  • No concurrent enrollment courses

  • Course pre-requisite: Computer Programming 2 (CE not required)

  • Full year course (students may take a semester with permission from instructor)

  • Students work in teams of 2 or more to design, build and develop a large-scale industry-level project for a business partner or client.

  • Students learn real-world software development design skills as well as project management skills.

  • Students propose projects based on problems/needs of a company and potential programming solutions. These projects may include, but are not limited to, mobile applications, database management and design, web or desktop applications, VR or AR projects.

Programming Certificate

The goal of this emphasis is to have every student graduate from Weber State University with the Programming Essentials Certificate of Completion AND have a full year of industry-level internship experience through the capstone course. This sets students up to be able to get a programming job directly out of high school and/or quickly complete a bachelor’s level Computer Science program before going into industry.


To graduate with the Programming Essentials Certificate of Completion, students must have the following courses complete with a grade of C or higher:

  • CS 1030 – Computer Science Principles

  • CS 1400 – Computer Programming 2

  • CS 1410 – Advanced Computer Programming

  • CS 2420 – Data Structures & Algorithms

The following image shows the suggested pathway for a student going into 9th or 10th grade to be able to fully complete this emphasis by the time they graduate:

software development pathway image

Program pre-requisites:

Students wishing to apply for this emphasis must complete two requirements:

  1. Pre-requisite course completed at home high school with a C or higher. The following are accepted as pre-requisite courses:

  • Computer Programming 1 (Mountain High School ONLY)

  • Computer Programming 2 (All other high schools)*

  1. Complete a technical and group skills pre-assessment at the Davis Catalyst Center. Information for how to sign up for this pre-assessment preceding each school year (or semester) will be sent out to students via email after their application has been received and reviewed by the admissions committee.

*At Davis High School, students register for a full year of Computer Programming 1 to complete the Programming 2 requirements.

Course Fees (per semester):
$50 Equipment Fee - Covers cost of student wear and tear on equipment, so we can continue to provide industry-standard equipment to students.
*Fee waivers are accepted.

For questions about this emphasis, please email the instructor Elizabeth Van Patten at evanpatten@dsdmail.net.
Connect with Elizabeth Van Patten on LinkedIn to see updates on current students’ projects!

image of students in software development course