# Bachelor of Science in Computer Science (School of Engineering)

**Director: **Associate Professor Alva Couch

The mission of the Bachelor of Science in Computer Science in Engineering program is to provide graduates with the durable knowledge necessary to become future leaders in the rapidly evolving discipline of computer science as well as in other computer-related fields. We aim to give each graduate a solid foundation in both computer science theory and programming practice, and to prepare each graduate for further advanced study in computer science and related fields. We aim to expose each graduate to the challenges and research problems involved in creating new kinds of computer software. We aim to give graduates the skills and commitment to lifelong learning necessary to prepare them to be effective employees or graduate students in computer-related fields. The faculty is dedicated to accomplishing this mission through integration of teaching and research.

Our program objectives include success in industry careers and graduate school. Two to ﬁve years after graduation, graduates of the BSCS program will have:

- Succeeded and advanced in professional careers in or related to computing or software.
- Been admitted to and advanced in graduate study in computer science.

Outcomes of the BSCS program include that:

- Graduates should be able to use computer science theory to analyze algorithms and to reason about properties of programs, including structure, behavior, and performance.
- Graduates should be able to solve problems by using principled methods to create, extend, and improve software.
- Graduates should have had practice applying their knowledge and skills to open-ended problems with more than one good answer.
- Graduates should have practice working in teams.

Additionally, the BSCS degree aims to empower our students with the ability to:

- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions. [CS]

### Requirements

The Bachelor of Science in Computer Science (BSCS) requires a minimum of 120 semester-hours of study, including introductory, foundation, HASS, breadth, and concentration courses.

Introductory courses (10 courses) include Engineering 1; Engineering science 2 or an elective with attribute “Engineering requirements” and value “SOE-Engineering”; Mathematics 32, 34 or 39, and 42 or 44; Mathematics 70 or 72; two courses selected from Physics 11, Chemistry 1 or 16, and Biology 13; and one natural science or mathematics elective worth 3 or more semester hour units. For natural science courses accepted towards the Engineering degrees, refer to the online course catalog for courses with attribute “Engineering Requirements” and value “SOE-Natural Sciences.” For mathematics courses, refer to the online course catalog for courses with attribute “Engineering Requirements” and value “SOE-Mathematics”.

The Humanities, Social Sciences, and Arts (HASS) requirement (24 semester hour units) includes English 1 or 3 and additional courses in Humanities, Arts, or Social Sciences. Of these courses, one course must cover ethics and social context (Engineering Management 54 or Philosophy 24), one course worth at least 3 semester hour units must be Humanities, and one course worth at least 3 semester hour units must be Social Science. Allowable courses in Humanities, Arts, and Social Sciences are listed in the online course catalog with attribute “Engineering Requirements” and possible values "SOE- HASS- Humanities," "SOE-HASS-Arts," and “SOE-HASS-Social Sciences,” respectively; courses labeled with a value of "SOE-HASS" are also acceptable. Philosophy 24 does not satisfy the requirement for three credit hours in Humanities unless Engineering Management 54 is also taken. The breadth requirement (6 semester hour units) includes one course in ethics and social context (Philosophy 24 or Engineering Management 54); and additional courses chosen either from Humanities, Arts, and Social Sciences, or from selected courses covering the broader context of engineering, including COMP 99: Internship in Computer Science. A list of selected courses appropriate for fulfilling the remaining semester hour units of the breadth requirement is available from the department.

The Engineering requirement (three courses) includes Engineering Science 3 and 4; and a statistics course chosen from Mathematics 166, Engineering Science 56, Electrical Engineering 24 or 104, Biomedical Engineering 141, Biology 132, and Physics 153.

The Computer Science major requirement (14 courses) includes Computer Science 11, 15, 40, 80 or 105, 160, 170, 97, and 98; Computer Science 61, Mathematics 61, or Mathematics 65, and ﬁve or more elective courses in Computer Science, three of which must be numbered above 100. At least two credit hours of concentration electives must be chosen from courses covering the social context of computing, including Computer Science 27, 28, 55, 116, 117, 120, 155, and 182-188. In addition, the student must complete a minimum of 40 credit hours of courses with attribute “Engineering requirements” and value “SOE-Computing,” which includes Computer Science courses as well as selected courses from other departments. All courses counted toward the major requirement must be completed with a grade of C- or better.

In addition, there are several restrictions on which courses can be counted as concentration electives. Only one of Computer Science 80 or Computer Science 105 may be counted toward the concentration. At most three semester hour units of Independent Study or Research (Computer Science 93, 94, 191, 193, or 194) and four semester hour units of thesis (Computer Science 197) may be utilized as concentration electives. At most one course numbered 55 or 155 may be counted toward the degree. Internship credit (Computer Science 99) may not be counted toward the concentration requirement, though three semester hour units of Computer Science 99 (Internship in Computer Science) may be counted toward the breadth requirement. For a research experience, students should consider partly fulﬁlling concentration elective requirements via a senior thesis.

At the student's option, one concentration elective may be replaced by one course in Mathematics, selected from the following choices:

- Mathematics 51 - Differential Equations
- Mathematics 63 - Number Theory
- Mathematics 87 - Mathematical Modeling and Computation
- Mathematics 125 - Numerical Analysis
- Mathematics 126 - Numerical Linear Algebra
- Mathematics 133 - Complex Variables
- Mathematics 135 - Real Analysis I
- Mathematics 136 - Real Analysis II
- Mathematics 145 - Abstract Algebra I
- Mathematics 146 - Abstract Algebra II
- Mathematics 155 - Partial Differential Equations I
- Mathematics 156 - Partial Differential Equations II
- Mathematics 163 - Computational Geometry
- Mathematics 165 - Probability
- Mathematics 166 - Statistics

The following sample program is one way of satisfying the above requirements. Further information regarding options and procedures is available from the department.

#### First Year

##### FALL TERM

- Engineering 1
- Mathematics 32 (or 39)
- Physics 11, Chemistry 1 or 16, or Biology 13
- English 1

##### SPRING TERM

- Computer Science 11 Introduction to Computer Science
- Mathematics 34
- Physics 11, Chemistry 1 or 16, or Biology 13
- Humanities, social sciences, or arts elective

#### Sophomore Year

##### FALL TERM

- Computer Science 15 Data Structures
- Mathematics 42
- Natural science or mathematics elective
- Humanities, social sciences, or arts elective
- Humanities, social sciences, or arts elective

##### SPRING TERM

- Computer Science or Mathematics 61 Discrete Mathematics (or Mathematics 65)
- Mathematics 70 or 72 Linear Algebra
- Systems elective
- Humanities, social sciences, or arts elective
- Humanities, social sciences, or arts elective

#### Junior Year

##### FALL TERM

- Computer Science 160 Algorithms
- Systems elective
- Computer Science elective
- Humanities, social sciences, or arts elective
- Breadth elective

##### SPRING TERM

- Computer Science 40 Machine Structure and Assembly-Language Programming
- Computer Science elective
- Humanities, social sciences, or arts elective
- Breadth elective

#### Senior Year

##### FALL TERM

- Computer Science 97 Senior Capstone Project I
- Computer Science 105 Programming Languages
- Computer Science elective
- Probability & Statistics Elective
- Humanities, social sciences, and arts elective

##### SPRING TERM

- Computer Science 98 Senior Capstone Project II
- Computer Science 170 Theory of Computation
- Computer science elective
- Computer science elective
- Humanities, social sciences, and arts elective

Students in the Bachelor of Science in Computer Science program in the School of Engineering must earn a C- or better in 75% of concentration courses. They also must have a C- or better in two-thirds of 120 credit hours of courses.