## Computer Science BS

#### Program Purpose

Graduates in Computer Science are prepared to be competent software developers and technical problem solvers. Students are also prepared for research into new avenues where computers will have a significant impact, and a large number of our graduates pursue graduate degrees in Computer Science or other disciplines. Graduates are prepared for the lifelong learning necessary in this fast-moving field, including a solid background in both rigorous theoretical foundations and practical training.

**Program Educational Objectives**

The objectives of the Bachelor of Science program in the Computer Science Department at Brigham Young University are to have a high quality program that:

- Prepares students qualified and capable of functioning as professional computer scientists in the workplace. Within a few years of graduation, students should be able to perform analysis, specification, design and implementation of quality computer solutions.
- Prepares students to enter appropriate graduate programs. Within a few years of graduation, students should have the theoretical computer science background and the mathematical and analytical maturity necessary to adapt to changing requirements in the job market, or to enter graduate programs in computer science.
- Prepares students for lifelong learning. Students should have the technical, communication, and character skills necessary for them to read technical articles and participate in discussions that will help them to stay current in the field.
- Prepares students that are broadly educated to enrich their life experiences. Within a few years of graduation, students should have the knowledge and spiritual foundation necessary to make ethical and responsible choices.

#### The Discipline

Computer science touches virtually every area of human endeavor. Software is responsible for everything from the control of kitchen appliances to sophisticated climate models used in predicting future environmental change. Students in computer science learn to approach complex problems in business, science, and entertainment using their strong background in mathematics, algorithms, and data structures.

Fundamentally, computer science is a science of abstraction--creating the right model for a problem and devising the right computer manipulations to solve it.

The BS curriculum is accredited by the Computing Accreditation Commission of the Accreditation Board for Engineering and Technology (ABET) (http://www.abet.org/).

#### Curricular Structure

BYU Computer Science graduates are known for their solid preparation in the fundamental principles of the discipline. Students are required to do work in physics, statistics and mathematics as well as core Computer Science courses. The Computer Science core curriculum requires work in programming (CS 142), data structures (CS 235), advanced programming (CS 240), discrete mathematics (CS 236), theory of computation (CS 252), algorithm analysis (CS 312), software design and testing (CS 340), and computer systems (CS 224 and CS 324). Students also study the effects of computing on societal issues and ethics (CS 404) and are expected to be able to think critically, write, and speak on these topics.

In addition to the required core, students take eight junior- or senior-level elective courses to help them tailor their curriculum to their individual interests. The elective courses include computer graphics, communications and networking, advanced software design, databases, distributed systems, computer security, artificial intelligence, machine learning, verification and validation, image processing and computer vision, scientific programming, and other topics. Laboratory work is associated with most of the classes. It is in the lab that the student learns to solve problems creatively and to implement algorithmic solutions in software. Students may choose to take an introductory graduate-level course as one of these electives.

In addition to formal coursework, students may also use a portion of their electives to take a capstone course with accompanying project, become involved in undergraduate research, participate in programming competitions, or pursue a mentored project of their own.

The faculty members in the department have a broad background of both industrial and academic experience. They share a wide range of interests with the students in both the undergraduate and graduate classes and in their research laboratories.

#### Enrollment and Graduation Data

2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|

Number of students enrolled in Fall Semester | 427 | 463 | 513 | 533 | 615 | 679 | 789 | 942 | 1067 | 1110 | 1160 | 1101 |

Number of Students Graduated | 78 | 59 | 65 | 74 | 67 | 100 | 126 | 103 | 171 | 168 | 170 |

For more information, see the program's Catalog Description

#### Learning Outcomes

The Computer Science program outcomes reflect both the practical and theoretical nature of the discipline.

**Computational Practice:**

Students will implement significant programming projects. Students will perform analysis, specification, design, implementation, and testing resulting in quality computer software solutions. Students will use data structures, algorithms, programming languages, and software engineering techniques in their programming.

**Computational Theory:**

Students will use theoretical concepts in their programming. Students will have the theoretical computer science background and the mathematical and analytical maturity necessary to allow them to follow and adapt to technological changes in their discipline or to enter graduate programs in Computer Science. Students will use automata theory, mathematics, and abstraction to analyze problems and their algorithmic solutions.

#### Evidence of Learning

The Computer Science Department engages in several mechanisms that are intended to measure and improve the competency of graduating students.

#### Direct Measures

- Computational Practice:
- The required sophomore-level Advanced Programming course (CS 240) includes programming projectes of moderate size, completion of which demonstrates student mastery of the fundamentals of computational practice.
- The required junior-level Software Design and Testing course (CS 340) has a number of large programming projects, which are considered to be evidence of the student's overall ability to design and implement solutions to larger problems and to incorporate elements of data structures, algorithms, and other elements of computational practice.

- Computational Theory: The examinations in the Discrete Structures course (CS 236) demonstrate mastery of the fundamentals of computational theory.

#### Indirect Measures

In addition to directly measuring student achievement on specific competencies related to each outcome, achievement of the outcomes is also assessed indirectly through the following mechanisms:

- End-of-semester student evaluations of each course.
- Senior exit surveys for every graduating student ask the student to evaluate their own perceived capabilities for each of the program outcomes as well as answer general questions about the curriculum, placement, etc.
- Periodic discussions with past, current, and potential employers of CS graduates.
- The National Survey of Student Engagement surveys seniors on a wide variety of topics related to their undergraduate education.
- The university conducts a survey every year of alumni who graduated 3 years before that years survey. This BYU Alumni Questionaire includes questions regarding the Department Objectives and provides a way of assessing the degree to which the objectives are attained a few years after graduation.

#### Performance Criteria

The following performance criteria are used to assess performance on the direct measurements:

**CS 236 Discrete Structures**

**Computational Theory Learning Outcome**

Students have the theoretical computer science background and the mathematical and analytical maturity necessary to allow them to follow and adapt to technological changes in their discipline or to enter graduate programs in computer science. Students use automata theory, mathematics, and abstraction to analyze problems and their algorithmic solutions.

Assessment based on student scores on the final exam.

Outstanding: 90% and above, Acceptable: 80-89%, Marginal: 60-79%,Unacceptable: below 59%.

**CS 240 Discrete Structures**

**Computational Practice Learning Outcome**

Students will perform analysis, specification, design, implementation, and testing resulting in quality computer software solutions. Students use data structures, algorithms, programming languages, and software engineering techniques to implement significant programming projects.

Assessment based on student completion of the two large labs in this course (database/web services, Android).

Outstanding: 2 out of 2 completed with 90% or above, Acceptable: 2 out of 2 completed with 70% or above, Marginal: 1 out of 2 completed with 70% or above or both completed with 50% or above, Unacceptable: 2 or fewer completed with 60% or above.

**CS 340 Operating Systems Design**

**Computational Practice Learning Outcome**

Students will perform analysis, specification, design, implementation, and testing resulting in quality computer software solutions. Students use data structures, algorithms, programming languages, and software engineering techniques to implement significant programming projects.

Assessment based on students' combined score on labs.

Outstanding: 90% and above, Acceptable: 80-89%, Marginal: 60-79%, Unacceptable: below 59%.

#### Learning and Teaching Assessment and Improvement

### Direct Measures

For each direct measure identified here as evidence of learning, the instructor is expected to provide at the end of the semester a report to the undergraduate coordinator on student achievement of these measures. This report includes not only student scores but instructor observations to help place the scores in context. The undergraduate coordinator and undergraduate secretary collate and document this data, which is then added to our department's online document repository.

### Indirect Measures

- Student evaluations of each course are reviewed by the respective instructor and the department chair every semester, and areas of concern are forwarded to the undergraduate coordinator and undergraduate committee as appropriate. Copies of these reviews are stored online by the university.
- Senior exit surveys are conducted and reviewed by the undergraduate committee every year. The undergraduate coordinator collates and documents the results of the surveys, and the results are forwarded to the department faculty as well as added to our online document repository.
- Faculty discussions with employers are forwarded to the undergraduate coordinator as appropriate, who may choose to document specific feedback, forward it to the undergraduate committee, and add it to our document repository.
- The NSSE results are reviewed by the undergraduate committee every year.
- The university conducts a survey every year of alumni who graduated 3 years before that years survey. This BYU Alumni Questionnaire includes questions regarding the Department Objectives and provides a way of assessing the degree to which the objectives are attained a few years after graduation.

### Review and Improvement Process

The undergraduate committee meets on a regular basis to review the program's curriculum and to resolve issues. This includes reviewing the feedback provided through direct and indirect measures as well as making sure the program stays current with fast-moving changes in technology. Part of this review includes annually reassessing the program educational outcomes and student outcomes.

This review is held in March of each year in order to incorporate feedback from employers during the February career fair. During this review, the undergraduate committee examines the following material in order to determine changes that should be made to the curriculum, objectives, and outcomes:

- The Direct Assessment data obtained from specific courses will be examined to spot trends in student understanding that would require attention.
- Senior exit survey results will be examined to spot problems with the curriculum or objectives.
- Feedback from other departments will be solicited to determine if the courses required by other majors are meeting the needs of university stakeholders.
- The Recruiter Survey will be examined to determine if feedback from employers would suggest a change to objectives or curriculum.
- The Alumni Questionnaire, which evaluates students who graduated 3 years ago.
- Faculty input from throughout the year will be reviewed to see if changes need to be made to the objectives.

The undergraduate secretary keeps minutes for each meeting, which are stored in our document repository.

#### Department Assessment Committee

The Computer Science Assessment Committee consists of:

Dr. Mark Clement (Faculty Undergraduate Advisor)

Lynnette Nelson (Undergraduate Advisor)