Bachelor of Science in Computer Science

About

In the Bachelor of Science in Computer Science program, you’ll learn about algorithms, performance analysis, networks, computer architectures, information systems and software engineering. You can choose to concentrate in database programming, network security, operating systems, 3D graphics programming or computational informatics.

Our graduates go on to work as software developers, software engineers, game programmers, database programmers and more.

Curriculum & Requirements

Computer Science Major, Bachelor of Science (BS)

The Bachelor of Science in Computer Science program is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org.

Our traditional computer science degree provides extensive preparation in both the theoretical and practical aspects of computer science. It will prepare you for a variety of careers in computing or for additional study at the graduate level. In this program you will study both general purpose programming and programming for specialized purposes and environments. In addition, you will learn about algorithms, performance analysis, networks, computer architectures, information systems and software engineering. You will also work on a realistic project in a team environment. The program includes a variety of advanced courses that allow you to tailor your degree to your specific interests.

Grade Requirements: As a computer science student, you are expected to maintain an overall university GPA ≥2.3. Each computer science course must be completed with a minimum grade ≥C+. All supporting courses required by the department must be completed with a minimum grade ≥C.

Note: no course may be used as both a requirement and an elective in a student's program.

Required Computer Science Courses
CSCD 202COMPUTING ETHICS4
CSCD 210PROGRAMMING PRINCIPLES I5
CSCD 211PROGRAMMING PRINCIPLES II5
CSCD 212OBJECT ORIENTED PROGRAMMING WITH DESIGN PATTERNS5
CSCD 240C AND UNIX PROGRAMMING5
CSCD 260ARCHITECTURE AND ORGANIZATION4
CSCD 300DATA STRUCTURES5
CSCD 320ALGORITHMS5
CSCD 327RELATIONAL DATABASE SYSTEMS4
CSCD 330COMPUTER NETWORKS4
CSCD 340OPERATING SYSTEMS5
CSCD 350SOFTWARE DEVELOPMENT PRINCIPLES4
CSCD 420AUTOMATA AND COMPILERS4
CSCD 488SENIOR PROJECT5
Web Development–choose one of the following
CSCD 378WEB APPLICATION DEVELOPMENT4
or CSCD 379 .NET WEB APPLICATION DEVELOPMENT
Security–choose one of the following
CSCD 303COMPUTER AND INFORMATION SECURITY4
or CSCD 434 NETWORK SECURITY
or CSCD 437 SECURE CODING
Required Supporting Courses
EENG 160DIGITAL CIRCUITS4
MATH 161CALCULUS I5
MATH 162CALCULUS II5
MATH 231LINEAR ALGEBRA5
MATH 301DISCRETE MATHEMATICS5
MATH 380ELEMENTARY PROBABILITY AND STATISTICS5
Required Laboratory Science Sequence–choose one sequence from the following 10-13
Biology
BIOLOGY I
BIOLOGY II
BIOLOGICAL INVESTIGATION
Chemistry
GENERAL CHEMISTRY I
and GENERAL CHEMISTRY LABORATORY I
and GENERAL CHEMISTRY II
and GENERAL CHEMISTRY LABORATORY II
Geology
PHYSICAL GEOLOGY - THE SOLID EARTH
PHYSICAL GEOLOGY - SURFICIAL PROCESSES
Physics
GENERAL PHYSICS I
GENERAL PHYSICS II
MECHANICS LABORATORY
HEAT AND OPTICS LABORATORY
Required Electives–choose six courses; at least four courses must be 400-level24
Note: many of these elective courses have prerequisites.
Note: other courses may be used with prior approval of the department.
COMPUTER AND INFORMATION SECURITY
C++ PROGRAMMING
DISCRETE STRUCTURES
PRACTICAL PROBLEM SOLVING
3D MODELING AND ANIMATION II
3D MODELING AND ANIMATION III
GUI PROGRAMMING
.NET PROGRAMMING
ANDROID MOBILE DEVELOPMENT
IOS MOBILE DEVELOPMENT
INTRODUCTORY COMPUTER GRAPHICS
WEB APPLICATION DEVELOPMENT
.NET WEB APPLICATION DEVELOPMENT
EXPERIMENTAL COURSE (prior departmental approval of topic content is required)
SEMINAR (prior departmental approval of topic content is required)
DIRECTED STUDY (prior departmental approval of topic content is required)
SCIENTIFIC PROGRAMMING
RANDOMIZED ALGORITHMS AND PROBABILISTIC ANALYSIS
ADVANCED DATABASE MANAGEMENT SYSTEMS
DATA MINING
BIG DATA ANALYTICS
ADVANCED COMPUTER NETWORKS
NETWORK SECURITY
PRINCIPLES OF PROGRAMMING LANGUAGE
SECURE CODING
TOPICS IN COMPUTER SCIENCE (prior departmental approval of topic content is required)
DISTRIBUTED MULTIPROCESSING
GPU COMPUTING
ADVANCED ARCHITECTURE AND ORGANIZATION
EMBEDDED SYSTEMS
EMBEDDED REAL-TIME CONTROL
PARALLEL AND CLOUD COMPUTING
3D COMPUTER GRAPHICS PRINCIPLES
ADVANCED 3D COMPUTER GRAPHICS
VIRTUAL REALITY AND DATA VISUALIZATION
INTELLIGENT SYSTEMS
MODELING AND SIMULATION
HUMAN COMPUTER INTERFACE
INTERNSHIP (variable credit–up to two 4 credit internships are allowed)
EXPERIMENTAL COURSE (variable credit–prior departmental approval of topic content is required)
SEMINAR (variable credit–may be repeated)
DIRECTED STUDY (variable credit–prior departmental approval of topic content is required)
Required Senior Capstone
CSCD 490SENIOR CAPSTONE5
Total Credits140-143

Catalog Listing

Program Learning Outcomes

Students who successfully earn a BS in Computer Science from EWU should be able to do the following:​​​

  • analyze a problem and identify and define the computing requirements appropriate to its solution;
  • analyze the local and global impact of computing on individuals, organizations, and society;
  • apply design and development principles in the construction of software systems of varying complexity;
  • apply knowledge of computing and mathematics appropriate to the discipline;
  • apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices;
  • communicate effectively with a range of audiences;
  • demonstrate an understanding of professional, ethical, legal, security, and social issues and responsibilities;
  • design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs;
  • function effectively on teams to accomplish a common goal;
  • recognize the need for, and will have the ability to engage in, continuing professional development;
  • use current techniques, skills, and tools necessary for computing practice.
  • identify risk with regard to security, to participate in risk mitigation activities, and to provide application and information security.