Anthony Aaby, Chair; Larry Aamodt, 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:
CPTR |
Introduction to Programming |
4 |
|
CPTR |
Data Structures, Algorithms and Objects |
4 |
|
CPTR |
Internet and Web Programming |
4 |
|
CPTR |
Operating System Design |
4 |
|
CPTR |
Introduction to Database Systems |
4 |
|
CPTR |
Introduction to Computer Networks |
4 |
|
CPTR |
System and Software Engineering |
4 |
|
CPTR |
Colloquium (6 quarters required or number of quarters in residence at WWU, whichever is less.) |
0 |
|
CPTR |
Seminar |
3 |
|
INFO |
Personal Computing |
3 |
|
INFO |
Intermediate Spreadsheets |
1 |
|
INFO |
*Practicum (three or more) |
0-16 |
|
|
|
**Electives (CPTR and INFO courses) |
29-49 |
|
|
|
60 |
*The Practica 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 |
Newswriting |
|
GBUS |
Business Communication |
|
WRIT |
Writing for The Professions |
|
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 Computer Networks |
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 |
System and 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 |
Newswriting |
|
GBUS |
Business Communication |
|
SPCH |
Small Group Communication |
|
SPCH |
Interpersonal and Nonverbal Communication |
|
WRIT |
Writing for the Professions |
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 |
Internet and Web Programming |
4 |
|
CPTR |
Java and Object-Oriented System Design |
4 |
|
CPTR |
System and Software Engineering |
4 |
|
INFO |
*Practicum |
0 |
|
ENGR |
Engineering Economy |
3 |
|
MGMT |
Principles of Management |
4 |
|
PHIL |
Moral Philosophy |
|
|
or |
|
|
3-4 |
GBUS |
Business Ethics |
|
|
*The Practica provide 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 |
Newswriting |
|
GBUS |
Business Communication |
|
SPCH |
Small Group Communication |
|
SPCH |
Interpersonal and Nonverbal Communication |
|
WRIT |
Writing for the Professions |
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 |
|
|
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 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 INTERNET AND WEB PROGRAMMING 4
Introduction to Linux, system software and tools including database management systems and web servers, scripting languages, mark-up languages and GUI design. Pairs programming and laboratory work required. Prerequisite: CPTR 141.
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 COMPUTER NETWORKS 4
Concepts, principles, and implementation of computer networks; architectures, protocol layers, networking algorithms, and network 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 460 PARALLEL AND DISTRIBUTED SYSTEMS 4
Concepts of distributed and parallel systems; parallel and distributed architectures, parallel programming languages, parallel algorithms. Programming in one or more high-level parallel language. Laboratory work required. Prerequisites: CPTR 143, MATH 289. Offered odd years only.
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
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 with 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 105 PERSONAL COMPUTING 3
An introduction to personal computing including hardware, operating system, office applications (word processing, spreadsheets, and databases) and the Internet. Does not apply toward a major or minor in computer science. (Course fees apply.)
INFO 150 SOFTWARE APPLICATION 1
Study of application software from a user perspective. Topics vary and may be repeated for credit when topics vary. Prerequisites vary depending on the software package and level. See Class Schedule. (Course fees apply.)
INFO 240 WEB TECHNOLOGY 1
Study of web technologies from a web development perspective. Topics vary and may be repeated for credit. Prerequisite: Permission of instructor. (Course fees apply.)
INFO 250 SYSTEM SOFTWARE 1
Study of system software from a user and/or administrative perspective. Topics vary and may be repeated for credit when topics vary. Prerequisite: Permission of instructor.
INFO 280 PRACTICUM 0-4; 8
A focused employment, internship, or service learning experience in information systems, information technology, or software engineering documented in a technical report that is a comprehensive and concise accounting of skills acquired, practiced, and level of expertise developed. Departmental approval required. Prerequisite: Sophomore standing in computer science. Graded S or NC.
INFO 480 PRACTICUM 0-4; 8
A focused employment, internship, or service learning experience in information systems, information technology, or software engineering documented in a technical report that is a comprehensive and concise accounting of skills acquired, practices, and level of expertise developed. Departmental approval required. Prerequisite: Junior standing in computer science. Graded S or NC.