Converse with mountains and text overlay with academic year and Undergraduate Catalog

Computer Science



Download PDF

Faculty

  • Greg Gagne
  • Helen Hu (Chair)
  • Kathryn Lenth
  • Jingsai Liang

Computer Science Courses

Program Goals

  • To attain a system-level understanding of the computer.
  • To understand the concepts and techniques of software design.
  • To acquire significant project experience working both individually and in a group setting.
  • To develop effective problem solving skills.

Objectives

The Computer Science Program offers an academic major leading to the Bachelor of Science degree, as well as an academic minor and a minor in applied computing. The curriculum in computer science is designed to meet the needs of students whose ultimate objective is to pursue a career in the field or to go on to postgraduate study. Students planning to pursue postgraduate study in computer science should consider an additional math minor.

Program Requirements

Students must maintain an overall 2.5 GPA in courses required for the academic major, the academic minor, and the minor in applied computing. A 2.8 GPA in CMPT 201 and CMPT 202 is a prerequisite for enrollment in upper division courses for the academic major and minor. Computer Science major and minor requirements must be satisfied with a grade of C- or better. No more than four (4) credit hours from May term courses and two (2) credit hours from internships may be applied to the elective upper division computer science requirement for the academic major. May term courses and internship credit hours may not be applied towards the upper division elective requirement for either the academic minor or the minor in applied computing.

Students must meet the university-wide graduation requirements in addition to the Computer Science major:

  • 124 total hours
  • 30 upper division hours
  • WCore or Honors College requirements

Computer Science Major

Requirement Description Credit Hours Prerequisites
I. World Language Requirement 8  
Computer Science majors must complete eight credit hours in a single world language.
II. Prerequisite Programming Courses 4  
Take four (4) credits:    
CMPT 190 Learning to Code 2  
CMPT 201 Introduction to Computer Science 4 C0-requisite CMPT 215
CMPT 210 Just Enough Java 2 CMPT 190 or prior programming experience
Students with prior programming experience may apply any upper division CMPT coursework toward the Programming Course requirement.
III. Lower Division Computer Science Courses 8  
CMPT 202 Introduction to Data Structures 4 CMPT 201 or CMPT 210
CMPT 251 Computer Systems and Programming 4 CMPT 201 or CMPT 210
IV. Upper Division Computer Science Courses 27  
CMPT 306 Algorithms 4 CMPT 202 and MATH 210
CMPT 307 Databases 4 CMPT 202
CMPT 322 Software Engineering 4 CMPT 202 and CMPT 307
CMPT 328 Computer Architecture 4 CMPT 251
CMPT 351 Operating Systems 4 CMPT 251
CMPT 352 Computer Networks 4 CMPT 251 or both CMPT 202 and command-line experience
CMPT 385 Senior Project Proposal Writing—offered fall 1 CMPT 322
CMPT 390 Senior Capstone—offered spring 2 CMPT 385
V. Electives 12  
Computer Science Majors must complete twelve (12) credits of additional upper-division coursework in CMPT. Students may apply at most four (4) credits of May term hours and at most two (2) credits of internship hours toward the upper division elective requirement.
VI. Required Courses from Other Programs 8  
MATH 210 Discrete Mathematics 4  
Choose one:      
MATH 201
or
DATA 220
or
WCSAM 203
Calculus I
or
Introduction to Statistics
or
Linear Algebra

4

4

4
 
Total Hours for the Computer Science Major 67  

Double dipping is allowed for courses listed in Section VI.

Recommended Plan of Study for Computer Science

* Must complete three electives.

Computer Science Minor

Requirement Description Credit Hours Prerequisites
I. Prerequisite Programming Courses 4  
Take four (4) credits:
CMPT 190 Learning to Code 2  
CMPT 201 Introduction to Computer Science 4  
CMPT 210 Just Enough Java 2 CMPT 190 or prior programming experience
Students with prior programming experience may apply any upper division CMPT coursework toward the Programming Course requirement.
II. Required Courses 16  
CMPT 202 Introduction to Data Structures 4 CMPT 201 or CMPT 210
CMPT 251 Computer Systems and Programming 4 CMPT 201 or CMPT 210
MATH 201 Calculus I 4 MATH 144 or consent of instructor or placement test
MATH 210 Discrete Mathematics 4  
III. Electives 4  

Additional upper division computer science coursework (4)

May term courses and internship hours may not be applied toward this requirement.
Total Hours for the Computer Science Minor 24  

Applied Computing Minor

Requirement Description Credit Hours Prerequisites
I. Prerequisite Programming Courses 4  
Take four (4) credits:
CMPT 190 Learning to Code  2  
CMPT 201 Introduction to Computer Science 4  
CMPT 210 Just Enough Java 2 CMPT 190 or prior programming experience
Students with prior programming experience may apply any upper division CMPT coursework toward the Programming Course requirement.
II. Required Courses 8  
CMPT 202 Introduction to Data Structures 4 CMPT 201 or CMPT 210
CMPT 251 Computer Systems and Programming 4 CMPT 201 or CMPT 210
III. Core Courses 4  
Choose one of the following:
CMPT 307  Databases 4 CMPT 202
CMPT 328 Computer Architecture 4 CMPT 251
CMPT 352 Computer Networks 4 Consent of instructor
CMPT 355 Compilers 4 CMPT 202 and CMPT 251
IV. Electives 8  

Additional upper division computer science coursework (8)

May term courses and internship hours may not be applied towards this requirement.
Total Hours for the Applied Computing Minor 24