Kenneth L. Wiggins, Chair; Larry Aamodt, Jonathon Duncan, James Klein.
Computer science is the study of the representation, storage, and manipulation of information. The Department of Computer Science prepares its students for both graduate study and careers in computer science, system analysis and design, software engineering, and networking.
The department offers programs leading to the Bachelor of Arts, Bachelor of Science and Associate of Science degrees. The department cooperates with the School of Engineering in offering a concentration in computer engineering, Bachelor of Science in Engineering (B.S.E.) Degree. The School of Business and The Computer Science Department jointly offer a major in information systems (B.S.).
The Bachelor of Science degree will prepare students for careers or graduate study in computer science. The Bachelor of Arts degree will prepare students for careers in fields applying computer information and data processing. The Bachelor of Science in Engineering with a concentration in computer engineering will prepare students for careers or graduate study in both computer science and computer engineering.
The curriculum follows the guidelines of the Association for Computing Machinery and the Institute of Electrical and Electronics Engineers.
A student majoring in computer science must complete 48 quarter hours in the major, the required cognates, the general studies program, and all baccalaureate degree requirements as outlined in this bulletin. Senior students are required to take the MFT exam in Computer Science. Students planning to go to graduate school in Computer Science should also take the Graduate Record Examination, general and subject (Computer Science) sections.
Major Requirements:
CPTR |
Introduction to Programming |
4 |
|
CPTR |
Data Structures, Algorithms and Objects |
4, 4 |
|
CPTR |
Assembly Language Programming |
3 |
|
CPTR |
Programming Languages |
4 |
|
CPTR |
Theory of Computation |
4 |
|
CPTR |
Operating System Design |
4 |
|
CPTR |
Design and Analysis of Algorithms |
4 |
|
CPTR |
Colloquium (6 quarters required or number of quarters in residence at WWU, whichever is less) |
0 |
|
|
|
Electives (5 must be upper division) |
17 |
Electives must be chosen in consultation with and approved by the academic adviser assigned by the department chair. The minimum acceptable grade for any required or elective CPTR course is C. |
48 |
||
Cognates:
ENGR |
Digital Logic |
3 |
|
MATH |
Analytic Geometry and Calculus I, II, III |
12 |
|
MATH |
Discrete Mathematics |
4 |
|
MATH |
Linear Algebra and Its Applications |
3 |
|
SPCH |
Fundamentals of Speech Communication |
4 |
|
Select one of the following: |
4 |
||
PSYC |
General Psychology |
||
PSYC |
Introduction to Psychology: Social Foundations |
||
PSYC |
Introduction to Psychology: Biological Foundations |
||
Select one mathematics course: |
|
||
MATH |
Applied Statistics |
4 |
|
MATH |
Probability and Statistics |
4 |
|
*Select 12 science credits from the following: |
*12 |
||
ASTR |
General Astronomy |
||
BIOL |
General Biology |
||
CHEM |
General Chemistry |
||
PHYS |
General Physics |
||
PHYS |
Principles of Physics |
||
*8 hours must be taken from one course sequence. |
|||
The Applied Computer Science Major serves those students who wish to pursue career in industry or create a strong interdisciplinary major. A student majoring in Applied Computer Science must complete the core requirements and cognates and select a concentration in an application area and complete the concentration requirements, concentration cognates, the general studies program, and all baccalaureate degree requirements as outlined in this bulletin. Senior students are required to take the MFT exam in Computer Science. Students planning on graduate school should also take the GRE general section.
Core Requirements:
CIS |
Computer Business Applications |
4 |
|
CPTR |
Principles of Computing |
2 |
|
CPTR |
Introduction to Programming |
4 |
|
CPTR |
Data Structures, Algorithms and Objects |
4 |
|
CPTR |
Web Application Development |
4 |
|
CPTR |
Operating System Design |
4 |
|
CPTR |
Introduction to Database Systems |
4 |
|
CPTR |
Introduction to Networking and Computer I/O |
4 |
|
CPTR |
Software Engineering |
4 |
|
CPTR |
*Cooperative Education (three or more) |
0-8 |
|
CPTR |
Colloquium (6 quarters required or number of quarters in residence at WWU, whichever is less.) |
0 |
|
CPTR |
Seminar |
3 |
|
|
|
**Electives (CPTR and CIS courses) |
15-23 |
|
|
|
60 |
*The Cooperative Education must be in the areas of human-computer interaction, information assurance and security, integrative programming and technologies, system administration and maintenance, and system integration and architecture. **Electives must be chosen in consultation with and approved by the academic advisor assigned by the department chair. |
|
||
Cognates:
MATH |
Survey of Calculus |
|
|
|
or |
|
4-8 |
MATH |
Analytic Geometry and Calculus I, II |
|
|
MATH |
Discrete Mathematics |
4 |
|
PHIL |
Introduction to Philosophy |
3 |
|
PSYC |
General Psychology |
|
|
|
or |
|
4 |
PSYC |
Introduction to Psychology: Social Foundations |
|
|
SPCH |
Fundamentals of Speech Communication |
4 |
Mathematics - select one of the following:
MATH |
Applied Statistics |
4 |
|
MATH |
Probability and Statistics |
4 |
Science - select from the following courses: *12
ASTR |
General Astronomy |
|
BIOL |
General Biology |
|
CHEM |
General Chemistry |
|
PHYS |
General Physics |
|
PHYS |
Principles of Physics |
|
|
*Eight hours must be taken from one course sequence. |
|
Communication - select from the following courses: 3-4
JOUR |
Media Writing |
|
GBUS |
Business Communication |
|
SPCH |
Small Group Communication |
|
SPCH |
Interpersonal and Nonverbal Communication |
Recommended General Studies:
RELH |
World Religions |
3 |
|
HIST |
|
Non U.S. History |
4-8 |
LANG |
|
Foreign Language |
0-12 |
A student majoring in computer science must complete the major core requirements, major cognate requirements, the general studies program, and all baccalaureate degree requirements as outlined in this bulletin. In addition, students may choose to complete one of two optional concentrations including associated cognates. Senior students are required to take the MFT examination. Students planning to go to graduate school in Computer Science should also take the Graduate Record Examination, general and subject (Computer Science) sections.
Core Requirements:
CPTR |
Introduction to Programming |
4 |
|
CPTR |
Data Structures, Algorithms, and Objects |
4, 4 |
|
CPTR |
Assembly Language Programming |
3 |
|
CPTR |
Programming Languages |
4 |
|
CPTR |
Theory of Computation |
4 |
|
CPTR |
Operating System Design |
4 |
|
CPTR |
Introduction to Database Systems |
4 |
|
CPTR |
Introduction to Networking and Computer I/O |
4 |
|
CPTR |
Design and Analysis of Algorithms |
4 |
|
CPTR |
Colloquium (6 quarters required or number of quarters in residence at WWU, whichever is less.) |
0 |
|
CPTR |
Seminar |
3 |
|
|
|
*Electives |
20 |
|
|
|
62 |
*Electives must be chosen in consultation with and approved by the academic adviser assigned by the department chair. The minimum grade of C is required in elective CPTR courses. |
|
||
Cognates:
ENGR |
Digital Logic |
3 |
|
MATH |
Analytical Geometry and Calculus I-III |
12 |
|
MATH |
Discrete Mathematics |
4 |
|
MATH |
Linear Algebra and Its Applications |
3 |
|
SPCH |
Fundamentals of Speech Communication |
4 |
|
Select one of the following courses: |
4 |
||
PSYC |
General Psychology |
|
|
PSYC |
Introduction to Psychology: Social Foundations |
|
|
PSYC |
Introduction to Psychology: Biological Foundations |
|
|
Select one mathematics course: |
4 |
||
MATH |
Applied Statistics |
|
|
MATH |
Probability and Statistics |
|
|
*Select 12 science credits from the following courses: |
12 |
||
ASTR |
General Astronomy |
|
|
BIOL |
General Biology |
|
|
CHEM |
General Chemistry |
|
|
PHYS |
General Physics |
|
|
PHYS |
Principles of Physics |
|
|
|
*Eight hours must be taken from one course sequence. |
||
The embedded system concentration serves students who want a career that is focused on developing computer-based devices.
CPTR |
Computer Architecture |
4 |
|
CPTR |
Software Engineering |
4 |
|
ENGR |
Embedded System Design |
4 |
|
ENGR |
Digital Design |
4 |
|
MATH |
Analytic Geometry and Calculus IV |
4 |
|
PHYS |
Principles of Physics |
12 |
|
|
|
|
32 |
Concentration Cognates:
Select one writing course and one speech course from the following: 6-8
JOUR |
Media Writing |
|
GBUS |
Business Communication |
|
SPCH |
Small Group Communication |
|
SPCH |
Interpersonal and Nonverbal Communication |
Recommended Engineering and Math Courses:
ENGR |
Circuit Analysis |
4 |
|
ENGR |
Linear Network Analysis |
4 |
|
ENGR |
Engineering Electronics |
4 |
|
ENGR |
Digital Design |
4 |
|
ENGR |
Signals and Systems |
4 |
|
MATH |
Ordinary Differential Equations |
4 |
Recommended General Studies Courses:
RELH |
World Religions |
3-4 |
|
HIST |
|
Non U.S. History |
4-8 |
LANG |
|
Foreign Language |
0-12 |
The software engineering concentration serves students who want a career as software developers and who want to become expert at developing large scale software, working in teams, and producing products that meet customer needs.
CPTR |
Web Application Development |
4 |
|
CPTR |
Java and Object-Oriented System Design |
4 |
|
CPTR |
Software Engineering |
4 |
|
CPTR |
*Cooperative Education |
0 |
|
ENGR |
Engineering Economy |
3 |
|
MGMT |
Principles of Management |
4 |
|
PHIL |
Moral Philosophy |
|
|
or |
|
|
3-4 |
GBUS |
Business Ethics |
|
|
*The Cooperative Education provides opportunity to build a portfolio of projects and experience which demonstrate competence in five or more of the software engineering knowledge areas (requirements include engineering, design, testing, maintenance, and evolution, configuration management, software engineering management, software engineering process, tools and methods, and quality). |
|
||
Concentration Cognates:
Select one writing course and one speech course from the following: 6-8
JOUR |
Media Writing |
|
GBUS |
Business Communication |
|
SPCH |
Small Group Communication |
|
SPCH |
Interpersonal and Nonverbal Communication |
Recommended Journalism Course:
JOUR |
Creativity and Communication |
3 |
Recommended General Studies Courses:
RELH |
World Religions |
3-4 |
|
HIST |
|
Non U.S. History |
4-8 |
LANG |
|
Foreign Language |
0-12 |
See the computer engineering concentration in the School of Engineering section of this bulletin.
The information systems major is a joint program offered by the School of Business and the Computer Science Department. See the Interdisciplinary Programs section of this bulletin.
A student specializing in computer programming must complete the following quarter hours, the required cognates, the general studies program, and all associate degree requirements as outlined in this bulletin.
Area Requirements:
CPTR |
Introduction to Programming |
4 |
|
CPTR |
Data Structures, Algorithms and Objects |
8 |
|
CPTR |
Assembly Language Programming |
3 |
|
|
|
Electives |
38 |
Electives must be chosen in consultation with and approved by the academic adviser assigned by the department chair and will usually have one of the following prefixes: ACCT, CIS, CPTR, FINA, GBUS, MATH, or MGMT. |
53 |
||
Cognates:
MATH |
Accelerated Precalculus |
|
|
or |
|
|
5-8 |
MATH |
Precalculus Mathematics I, II |
|
|
MATH |
Applied Statistics |
4 |
|
MATH |
Discrete Mathematics |
4 |
|
MATH |
Linear Algebra and Its Applications |
3 |
A student minoring in Computer Science must complete 30 quarter hours. Three credits must be upper division.
The information systems minor is a joint program offered by the School of Business and the Computer Science Department. See the Interdisciplinary Programs section of this bulletin.
CPTR 110 PRINCIPLES OF COMPUTING 2
An introduction to the field of computing including the history and current trends of computing; social and ethical issues; hardware and software concepts; language, spreadsheet, and database applications; and the internet. Does not apply toward a major or minor in computer science.
CPTR 141 INTRODUCTION TO PROGRAMMING 4
Programming-in-the-small, introducing computer science principles and software engineering concepts for designing, coding, executing, and debugging within the C family of programming languages. Laboratory work required.
CPTR 142, 143 DATA STRUCTURES, ALGORITHMS AND OBJECTS 4, 4
Topics include lists, stacks, queues, trees, graphs, searching, sorting, and hashing using concepts of object-oriented programming, space-time efficiency, and software engineering. Team projects and laboratory work required. Prerequisite: CPTR 141.
CPTR 215 ASSEMBLY LANGUAGE PROGRAMMING 3
Introduction to computer architecture, machine language, and assembly language. Laboratory work required. Prerequisite: CPTR 141.
CPTR 235 WEB APPLICATION DEVELOPMENT 4
Introduction to web application development including UNIX systems software, web servers, database management systems, server - and client - side scripting languages, mark-up languages, and GUI design. Laboratory work and project required. Prerequisite: CPTR 141 or other programming experience.
CPTR 301 JAVA AND OBJECT-ORIENTED SYSTEM DESIGN 4
Software design and construction in the context of Object-Oriented Programming libraries. Laboratory work required. Prerequisite: CPTR 143.
CPTR 316 PROGRAMMING LANGUAGES 3-4
Introduces a variety of programming language paradigms and their implementations. Computer science majors must take four hours. Computer engineering majors may take three hours. Laboratory work required. Prerequisites: CPTR 143, MATH 250.
CPTR 345 THEORY OF COMPUTATION 4
Study of the basic theoretical principles of computer science. Areas covered include Chomsky's Hierarchy of formal languages, grammars, and machines; computability by Turing machines and recursive functions, non-computability, and computational complexity. Emphasis on practical implications. Prerequisite: MATH 250. Offered even years only.
CPTR 350 COMPUTER ARCHITECTURE 4
Study of the organization and architecture of computer systems with emphasis on the classical von Neumann architecture. Topics include instruction processing, addressing, interrupt structures, memory management, microprogramming, procedure call implementations, and multiprocessing. Laboratory work required. Prerequisites: CPTR 215, ENGR 354.
CPTR 352 OPERATING SYSTEM DESIGN 4
Principles of operating systems, process management, memory management, file system management, device management, resource allocation, security and protection. Laboratory work required. Prerequisite: CPTR 143, CPTR 215.
CPTR 355 COMPUTER GRAPHICS 4
Introduction to the production of graphical representations of 2- and 3-dimensional objects using the computer. Theory and application of affine matrix transformations to manipulate these objects. Subtopics include fractals and interated function systems (IFS tables), graftals, Beziér curves, stereopsis, animation and morphing. Pairs programming and laboratory work required. Prerequisites: CPTR 141; MATH 117 or equivalent. Offered even years only.
CPTR 415 INTRODUCTION TO DATABASE SYSTEMS 4
Fundamental concepts, system organization, and implementation of database systems. The Relational data model, query languages; database design and normal forms. Laboratory work required. Prerequisites: CPTR 143, MATH 250.
CPTR 425 INTRODUCTION TO NETWORKING AND COMPUTER I/O 4
Concepts, principles, and implementation of modern computer I/O; networks, protocol layers, networking algorithms, and I/O programming. Laboratory work required. Prerequisite: CPTR 352.
CPTR 435 SOFTWARE ENGINEERING 4
Fundamentals of software engineering using a group project as the basic vehicle. Topics covered include software quality characteristics, the software engineering process, life cycles, and tools; the issues involved in building large software systems, professionalism, and ethics. Laboratory work required. Prerequisites: CPTR 143, 316.
CPTR 445 INTRODUCTION TO ARTIFICIAL INTELLIGENCE 4
A survey of key concepts and applications of artificial intelligence (AI) with languages commonly used for building AI systems. Subtopics include propositional logic, knowledge representation, state space/searching, heuristic search expert systems, expert system shells, natural language processing, and cognitive learning models. Team project and laboratory work required. Prerequisite: CPTR 143. Offered odd years only.
CPTR 454 DESIGN AND ANALYSIS OF ALGORITHMS 4
Application of techniques using asymptotic notations, unit costs, and recurrence relations to the analysis of algorithms. Covers basic design strategies by analyzing and implementing algorithms. Proof-of-correctness methods are presented. Examples of NP-complete and NP-hard problems are discussed. Laboratory work required. Prerequisites: CPTR 143 and MATH 250.
CPTR 464 COMPILER DESIGN 4
Fundamentals of compilers and interpreters; symbol tables; lexical analysis, syntax analysis, semantic analysis, code generation, and optimization for general purpose programming languages. Laboratory work required. Prerequisite: CPTR 143, CPTR 215. Offered even years only.
CPTR 494 COOPERATIVE EDUCATION 0-2; 8
Individual contract arrangement involving students, faculty, and cooperating businesses to gain practical experience in an off-campus setting. Prerequisite: CPTR 143 and approval of major adviser one quarter in advance of registration. Graded S or NC.
CPTR 495 COLLOQUIUM 0
Presentation and discussion of current topics of interest within the computer science profession. Required each quarter of all Junior and Senior CS majors. Graded S or NC.
CPTR 496, 497, 498 SEMINAR 1, 1, 1
Presentation and discussion of current topics of interest within computer science. Each student is required to conduct an approved design project from conception to final oral and written reports. Prerequisite: Senior standing in computer science.
INFO 250 SYSTEM SOFTWARE 1;8
Study of system software from a user and/or administrative perspective. Topics vary and may be repeated for credit. Prerequisite: Permission of instructor.