Brigham Young University Homepage

BS in Computer Science
(74–77 hours*)



Program Requirements    |    View MAP   |    View Program Outcomes

  1. Grades below C- are not allowed in major courses.
  2. Complete the following:
      C S 142 : Introduction to Computer Programming. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      C S 142 : Introduction to Computer Programming. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Spring
      PREREQUISITE: Knowledge of algebra.
      DESCRIPTION: Introduction to object-oriented program design and development. Principles of algorithm formulation and implementation.

      Course Outcomes


      C S 224 : Introduction to Computer Systems. (3:3:2)(Credit Hours:Lecture Hours:Lab Hours)
      C S 224 : Introduction to Computer Systems. (3:3:2)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Spring
      PREREQUISITE: C S 142; or instructor's consent.
      DESCRIPTION: How a computer works, from hardware to high-level programming. Logic circuits, computer instructions, assembly language, binary arithmetic, C programming, program translation, data structures, and algorithm analysis.

      Course Outcomes


      C S 235 : Data Structures and Algorithms. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      C S 235 : Data Structures and Algorithms. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Spring; Summer
      PREREQUISITE: C S 142
      DESCRIPTION: Fundamental data structures and algorithms of computer science; basic algorithm analysis; recursion; sorting and searching; lists, stacks, queues, trees, hashing; object-oriented data abstraction.

      Course Outcomes


      C S 236 : Discrete Structures. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      C S 236 : Discrete Structures. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Summer
      PREREQUISITE: C S 235
      DESCRIPTION: Introduction to grammars and parsing; predicate and propositional logic; proof techniques; sets, functions, relations, relational data model; graphs and graph algorithms.

      Course Outcomes


      C S 240 : Advanced Programming Concepts. (4:3:1)(Credit Hours:Lecture Hours:Lab Hours)
      C S 240 : Advanced Programming Concepts. (4:3:1)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Spring; Summer
      PREREQUISITE: C S 236
      DESCRIPTION: Advanced software development with an object-oriented focus. Design, implementation, and testing of several large programs in a Java and Linux environment using current technologies.

      Course Outcomes


      C S 252 : Introduction to Computational and Probabilistic Models in Computer Science. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      C S 252 : Introduction to Computational and Probabilistic Models in Computer Science. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter
      PREREQUISITE: C S 236 or concurrent enrollment.
      DESCRIPTION: Computational models: regular grammars, context-free grammars, Turing machines. Complexity theory: big-O and complexity classes P, NP, NP-complete, and f-NP. Probabilistic Models: Introduction to probability theory, random variables, joint distributions, Bayes rules, Bayes networks.

      Course Outcomes


      C S 312 : Algorithm Design and Analysis. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      C S 312 : Algorithm Design and Analysis. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Spring
      PREREQUISITE: C S 240 & C S 252
      DESCRIPTION: A study of the design and analysis of algorithms as solutions to problems, including dynamic programming, linear programming, greedy algorithms, divide-and-conquer algorithms, graph algorithms, and intelligent search algorithms.

      Course Outcomes


      C S 340 : Software Design and Testing. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      C S 340 : Software Design and Testing. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Spring
      PREREQUISITE: C S 240
      DESCRIPTION: Principles of software design, design patterns, design representation, refactoring. Principles of software quality assurance and testing. Development and testing tools.

      Course Outcomes


      C S 404 : Ethics and Computers in Society. (2:2:0)(Credit Hours:Lecture Hours:Lab Hours)
      C S 404 : Ethics and Computers in Society. (2:2:0)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter
      PREREQUISITE: C S 240 & ENGL 316
      DESCRIPTION: Societal impact of computer technology, the computer scientist's place in society, ethical issues. Reading, discussion, and writing seminar.

      Course Outcomes


  3. Complete one course from the following:
  4. Complete the following supporting courses:
      ENGL 316 : Technical Communication. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      ENGL 316 : Technical Communication. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      OFFERED: Honors also.
      WHEN TAUGHT:Fall; Winter; Spring Contact Department; Summer Contact Department
      PREREQUISITE: First-year writing, junior or senior status.
      DESCRIPTION: Effective processes of written, oral, and visual technical communication, including collaborative processes. Writing for academic and professional audiences.
      NOTE: Carries GE Advanced Written and Oral Communication credit.

      Course Outcomes


      MATH 112 : Calculus 1. (4:5:0)(Credit Hours:Lecture Hours:Lab Hours)
      OFFERED: Honors also.
      WHEN TAUGHT:Fall; Winter; Spring; Summer
      DESCRIPTION: Differential and integral calculus: limits; continuity; the derivative and applications; extrema; the definite integral; fundamental theorem of calculus; L'Hopital's rule.

      Course Outcomes
               
      : Honors Calculus 1.
      Course Outcomes



      MATH 113 : Calculus 2. (4:5:0)(Credit Hours:Lecture Hours:Lab Hours)
      OFFERED: Honors also.
      WHEN TAUGHT:Fall; Winter; Spring; Summer
      PREREQUISITE: Math 112.
      DESCRIPTION: Techniques and applications of integration; sequences, series, convergence tests, power series; parametric equations; polar coordinates.

      Course Outcomes


      MATH 313 : Elementary Linear Algebra. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      MATH 313 : Elementary Linear Algebra. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      OFFERED: Honors also.
      WHEN TAUGHT:Fall; Winter; Spring; Summer
      PREREQUISITE: Math 112.
      RECOMMENDED: Math 290.
      DESCRIPTION: Linear systems, matrices, vectors and vector spaces, linear transformations, determinants, inner product spaces, eigenvalues, and eigenvectors.

      Course Outcomes


      PHSCS 121 : Introduction to Newtonian Mechanics. (3:3:1)(Credit Hours:Lecture Hours:Lab Hours)
      PHSCS 121 : Introduction to Newtonian Mechanics. (3:3:1)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Spring
      PREREQUISITE: Calculus or concurrent enrollment.
      DESCRIPTION: Linear, circular, and projectile motion; their prediction from forces and torques. Conservation of energy and momentum. Weekly lab.

      Course Outcomes


  5. Complete one course from the following:
      STAT 121 : Principles of Statistics. (3:3:1)(Credit Hours:Lecture Hours:Lab Hours)
      STAT 121 : Principles of Statistics. (3:3:1)(Credit Hours:Lecture Hours:Lab Hours)
      OFFERED: Independent Study also; Honors also.
      WHEN TAUGHT:Fall; Winter; Spring; Summer
      RECOMMENDED: MATH 110 or equivalent.
      DESCRIPTION:  Stemplots, boxplots, histograms, scatterplots; central tendency, variability; confidence intervals and hypothesis testing involving one and two means and proportions; contingency tables, simple linear regression.

      Course Outcomes
               
      : Honors Principles of Statistics.
      Course Outcomes



      STAT 201 : Statistics for Engineers and Scientists. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      STAT 201 : Statistics for Engineers and Scientists. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
      WHEN TAUGHT:Fall; Winter; Summer
      PREREQUISITE: MATH 112; or MATH 119
      DESCRIPTION: The scientific method; probability, random variables, common discrete and continuous random variables, central limit theorem; confidence intervals and hypothesis testing; completely randomized experiments; factorial experiments.

      Course Outcomes


  6. Complete eight courses from the following three options:
    1. Six to eight of the courses could be from the following:
        C S 256 : Designing the User Experience. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        C S 256 : Designing the User Experience. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        WHEN TAUGHT:Fall; Winter
        PREREQUISITE: C S 142
        DESCRIPTION: Studio-critique style course on user experience design. Contextual inquiry to identify user needs. Iterative solution design using sketching and storyboards. Human perception and visual design principles. Rapid prototyping and evaluation of proposed solutions.

        Course Outcomes


        C S 330 : Concepts of Programming Languages. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        C S 330 : Concepts of Programming Languages. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        WHEN TAUGHT:Fall; Winter
        PREREQUISITE: C S 240
        DESCRIPTION: Principles and concepts characterizing high-level computer programming languages, process and data abstration, encapsulation, inheritance, functional programming, logic programming, scanners, and parsers.

        Course Outcomes


        C S 345 : Operating Systems Design. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        C S 345 : Operating Systems Design. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        WHEN TAUGHT:Fall; Winter; Spring
        PREREQUISITE: C S 224 & C S 240
        DESCRIPTION: Principles and concepts of operating systems design and the implementation of an operating system.

        Course Outcomes


        C S 355 : Interactive Graphics and Image Processing. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        C S 355 : Interactive Graphics and Image Processing. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        WHEN TAUGHT:Fall; Winter
        PREREQUISITE: C S 240
        DESCRIPTION: Introduces basic concepts of computer graphics, user interfaces and image processing. Includes homogenous coordinate transforms, image transforms, event driven programming and color models. Extends Model-View-Controller architecture.

        Course Outcomes


        C S 360 : Internet Programming. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        C S 360 : Internet Programming. (3:3:0)(Credit Hours:Lecture Hours:Lab Hours)
        WHEN TAUGHT:Fall; Winter
        PREREQUISITE: C S 240
        DESCRIPTION: Internet application programming, including sockets, threads, CGI, database, e-commerce, Web services.

        Course Outcomes


        Any 400-level computer science courses (except C S 404, 405, and C S 498R).
        EC EN 424 : Computer Systems. (4:3:3)(Credit Hours:Lecture Hours:Lab Hours)
        EC EN 424 : Computer Systems. (4:3:3)(Credit Hours:Lecture Hours:Lab Hours)
        WHEN TAUGHT:Winter
        PREREQUISITE: EC EN 330
        DESCRIPTION: Machine-level representations of programs and data, processor architecture, program performance optimizaton, memory hierarchies, virtual memory, linking, exceptions.

        Course Outcomes


        EC EN 425 : Real-Time Operating Systems. (4:3:3)(Credit Hours:Lecture Hours:Lab Hours)
        EC EN 425 : Real-Time Operating Systems. (4:3:3)(Credit Hours:Lecture Hours:Lab Hours)
        WHEN TAUGHT:Fall
        PREREQUISITE: EC EN 324; or EC EN 330
        DESCRIPTION: Hardware/software interface, real-time kernel internals, implementation of high-level language constructs, issues in real-time application software development.

        Course Outcomes


        IT 567 : Cyber Security and Penetration Testing. (3:2:3)(Credit Hours:Lecture Hours:Lab Hours)
        IT 567 : Cyber Security and Penetration Testing. (3:2:3)(Credit Hours:Lecture Hours:Lab Hours)
        WHEN TAUGHT:Winter
        PREREQUISITE: IT 466 or C S 465 or I Sys 560 or equivalent content course from another institution.
        DESCRIPTION: Advanced computer systems security. Vulnerabilities and exploits. System and network attacks. Ethical hacking and penetration testing. Cyber security, cyber weapons, and advanced persistent threats. Legal and regulatory requirements for security and privacy.

        Course Outcomes


          Note: If C S 401R is chosen, it must be taken for three hours.

    2. One of the eight courses could be from the following:
        C S 498R: Special Topics
        Any 500-level computer science course.

        Note: If either C S 498R or 501R is chosen, it must be taken for three hours.

    3. One of the eight courses could be from the following career deepening electives:

    *Hours include courses that may fulfill university core requirements.



    Show all Computer Science Courses