Computer Science BS
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.
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/).
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
|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
The Computer Science program outcomes reflect both the practical and theoretical nature of the discipline.Computational Practice:
Students will design and implement significant computer programs that meet a human need.
Students will analyze problems and their algorithmic solutions using theoretical concepts.
Students will have sufficient maturity in computer science to work in a professional setting or enter a graduate program.
Our program is accessible to everyone, including women, minorities, and those new to programming, and provides an equal opportunity for every student to succeed.
Evidence of Learning
The Computer Science Department is developing several mechanisms over the next several years (2020 - 2021) that will measure the competency of graduating students.
- Computational Practice
- A locally developed Field Assessment that will evaluate competency for both computational practice and computational theory. Questions will be drawn from exams in CS 240, CS 224, and CS 324 (computational practice) and in CS 235, CS 236, CS 252, and CS 312 (computational theory). Exam questions from a variety of courses will enable fine-grained evaluation of how well students are meeting these learning outcomes, enabling the department to identify areas for improvement.
- A measure of code quality from project-based classes, such as CS 340. This will be designed to enable fine-grained evaluation of how well students are meeting the computational practice learning outcome, enabling the department to identify areas for improvement. This may take the form of a rubric-based evaluation of student code samples from a course project.
- Computational Theory
- A locally developed Field Assessment, as described above.
- Career Preparation
- Measurements of student placement in jobs and graduate school, including the percentage having a job offer or graduate school acceptance and their satisfaction with these outcomes.
- The percentage of students having "great experiences" during their undergraduate years. These include mentored research, capstone classes, and internships.
- Diversity, Equity, and Inclusion
- A set of measures to ensure the department is meeting diversity and inclusion goals, so that all students have an equal opportunity to succeed. These include the pass rate in CS 142, CS 235, and CS 240, the percentage of women and minorities in each of these courses and their pass rates relative to the overall pass rate, and the percentage of women and minorities that declare for the major and that graduate each year.
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.
The following performance criteria are used to assess performance on the direct measurements:
- Field Assessment. Outstanding: 90% and above, Acceptable: 80-89%, Marginal: 60-79%,Unacceptable: 59% and below.
- Code Quality. Outstanding: 90% and above, Acceptable: 80-89%, Marginal: 60-79%,Unacceptable: 59% and below.
- Pass rate. Outstanding: 90% and above, Acceptable: 80-89%, Marginal: 60-79%, Unacceptable: 59% and below.
- Field Assessment. Outstanding: 90% and above, Acceptable: 80-89%, Marginal: 60-79%, Unacceptable: 59% and below.
Percentage of students having a job offer at graduation. Outstanding: 90% and above, Acceptable: 80-89%, Marginal: 60-79%,Unacceptable: 59% and below.
Student satisfaction with job offers at graduation (7-point Likert Scale, averaged). Outstanding: 6.0 and above, Acceptable: 5.0 to 5.9, Marginal: 4.0 to 4.9, Unaceptable: 2.9 and below.
Percentage of students applying to graduate schools who are accepted. Outstanding: 90% and above, Acceptable: 80-89%, Marginal: 60-79%,Unacceptable: 59% and below.
Student satisfaction with graduate school offers (7-point Likert Scale, averaged). Outstanding: 6.0 and above, Acceptable: 5.0 to 5.9, Marginal: 4.0 to 4.9, Unaceptable: 2.9 and below.
Diversity, Equity, and Inclusion
- Percentage of women that declare for and graduate from the major. Outstanding: 50% to 60%, Acceptable: 30%-49%, Marginal: 20%-29%, Unacceptable: 19% and below. (National measure is 18%)
- Qualitative data indicating a healthy learning environment for women, minorities, and those new to programming.
Learning and Teaching Assessment and Improvement
For each direct measure identified here as evidence of learning, the department will coordinate collecting data. Instructors and TAs of relevant courses will provide help with assessing code quality. The undergraduate coordinator, undergraduate adviser, and other staff collate and document this data, which is then added to our department's online document repository.
- 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 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 committee keeps minutes for each meeting, which are stored in our document repository.
Department Assessment Committee
The Computer Science Assessment Committee consists of:
Daniel Zappala (Undergraduate Committee Chair and Faculty Undergraduate Advisor)
Ryan Farrell (Associate Chair)
Lynnette Nelson (Undergraduate Advisor)