Computer Science

Chairperson: Shawn Bowers
Professors: P. De Palma, K. Yerion
Associate Professors: D. Hughes (Emeritus), S. Bowers, Y. Zhang
Assistant Professors: D. Schroeder, G. Sprint

The Department of Computer Science offers a B.A. in Computer Science and Computational Thinking, a B.S. in Computer Science, and jointly administers the B.S. in Computer Engineering with the Department of Electrical Engineering. See the Undergraduate Catalog entry (College of Arts and Sciences) for “Computer Science and Computational Thinking” for a full description of the B.A program. The B.S. in Computer Science program is built upon a foundation of mathematics, natural science, intensive programming, and computer architecture, while the B.A. in Computer Science and Computational Thinking is built upon a foundation of computer science and the liberal arts. All seniors of both programs participate in a large software engineering project, completed under the guidance of a faculty member and a project sponsor. 

Faculty research interests include remote sensor networks, wireless mobile networks, machine learning, genetic algorithms, speech recognition, wearable computing, mathematical modeling, data visualization, computer graphics, database systems, cloud computing, and computer security. Select students can participate in these and other projects through the Gonzaga University Center for Evolutionary Algorithms, the Intel Corporation Computational Sciences Laboratory, the Computer Science Research Laboratory, or directly with a faculty mentor. Students are encouraged to pursue summer research or internships. Many of our students secure summer research funding through the National Science Foundation-sponsored Research Experience for Undergraduates program. Others intern in the computer industry, some with companies that regularly work with our department.

The department has several laboratories which include a general purpose lab, a senior design lab, a group research lab, and a high performance computing lab. The department sponsors two student organizations: a chapter of the Association for Computing Machinery, the world's largest and oldest organization of computer scientists, and a chapter of Upsilon Pi Epsilon, the international honor society for computer science and related disciplines.

Computer Science majors can graduate with departmental honors if they have fulfilled all computer science degree requirements, achieved a grade point average of at least 3.50 in their CPSC courses needed for a major in Computer Science, written a senior thesis under the supervision of a Computer Science faculty member, and successfully completed CPSC 495 and 496.

Computer Engineering

The Departments of Computer Science and Electrical Engineering jointly administer the B.S. in Computer Engineering program. Computer Engineering combines computer science and electrical engineering.  Computer engineers develop computer hardware, software, and especially the kinds of embedded systems found in cell phones, industrial control devices, and medical instruments. See the Undergraduate Catalog 2015-2016 entry "Computer Engineering" for a full description of the program.

B.S. in Computer Science: 128 credits

Lower Division
CPSC 105 Great Ideas in Comp Sci
3.00 credits
Computer science is the study of what is computable. Students will be introduced to computing technologies and learn how these technologies are applied in today's world. The course will focus on the relationship between computation, technology, and society. Topics could include robotics, artificial intelligence, bio-computing, media computing, technology from the movies, and technology and art. On sufficient demand.
CPSC 107 User Centered Web Site Design
3.00 credits
Introduction to quality design principles and user-centered development techniques used in creating a web site. Topics will include human-computer interaction, graphical design, prototyping, and introduction to web programming. On sufficient demand.
CPSC 110 Special Topics for Non Majors
1.00- 3.00 credits
Computer Science topics of special interest to students majoring in other disciplines. Sample topics include principles of programming, web programming, and media computing. May not be counted towards a major in Computer Science. On sufficient demand.
CPSC 121 Computer Science I
3.00 credits
Techniques of problem-solving and algorithmic development. An introduction to programming. Emphasis is on how to design, code, debug, and document programs using good programming style. Fall and Spring.
CPSC 122 Computer Science II
3.00 credits
A continuation of CPSC 121. An examination of dynamic memory management and recursion; an introduction to basic data structures and algorithmic analysis. Fall and Spring.
Prerequisite:
CPSC 121 Minimum Grade: D
CPSC 211 Algorithmic Art
3.00 credits
Algorithmic Art sits at the intersection of mathematics, programming, algorithms, and art. The primary goal of the course is to teach computational thinking to liberal arts students. Student motivation is achieved by presenting programming and math concepts in the context of the visual arts. The assignments use the programming environment called Processing which was developed specifically for visual artists. Fall.
CPSC 212 Computational Modeling
3.00 credits
This course introduces students to the modeling process and computer simulations. It considers two major approaches: system dynamics models and agent-based models. A variety of software tools will be explored. Applications will be chosen from ecology, medicine, chemistry, biology, and others. Spring.
CPSC 213 Special Topics
1.00- 3.00 credits
Topic to be determined by instructor.
CPSC 214 Special Topics
1.00- 3.00 credits
Topic to be determined by instructor.
CPSC 223 Algorith &Abstract Data Struct
3.00 credits
Algorithm analysis using O-notation, sorting, heaps, balanced binary search trees, and hash tables. MATH 231 is a co-requisite or pre-requisite for this course. Fall and Spring.
Prerequisite:
CPSC 122 Minimum Grade: D and MATH 231 Minimum Grade: D and MATH 231 Minimum Grade: D
CPSC 224 Object-Ornt & Event Dr Prog
3.00 credits
Object-oriented topics like overloading, inheritance, and dynamic binding, memory management and event-driven programming. Introduction to object-oriented design. Spring.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 290 Directed Reading
.00- 3.00 credits
Individual exploration of a topic not normally covered in the curriculum.
Upper Division
CPSC 310 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 311 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 312 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 313 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 314 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122
CPSC 315 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 316 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 317 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 318 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 319 Special Topics
1.00- 3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 321 Database Management Systems
3.00 credits
Introduction to database concepts. A study of data models, data normalization, relational algebra. Use of data definition and data manipulation languages including embedded SQL. File and index organization. Fall.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 326 Organization of Program. Lang.
3.00 credits
Examination of the structures and concepts of procedural, functional, and logic-based programming languages. Spring.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 346 Operating Systems
3.00 credits
Study of operating systems internals. Topics include concurrent programming, memory management, file system management, scheduling algorithms, security. Fall.
Prerequisite:
CPEN 231 Minimum Grade: D and CPSC 122 Minimum Grade: D
CPSC 351 Theory of Computation
3.00 credits
Study of the theory of computation. Regular grammars, finite state automata, context-free grammars, pushdown automata, Turing machines, parsing, normal forms, and the Chomsky hierarchy. Fall, odd years.
Prerequisite:
CPSC 122 Minimum Grade: D and MATH 231 Minimum Grade: D
CPSC 353 Applied Cryptography
3.00 credits
Introduction to applied cryptography. Topics could include classical cryptosystems (shift, affine, Vigenere, Playfair, Enigma), modern cryptosystems (DES, AES, RSA, El Gamal), key exchange protocols, digital signatures, security protocols, and zero-knowledge techniques, along with their applications in e-commerce and intelligence. Spring, even years.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 360 Intro to Robotics
3.00 credits
Computational techniques used in the development of intelligent, sensor-based robotic systems. Topics include manipulators, and mobile robots, forward and inverse kinematics, sensors, intelligent architectures, control approaches, environment mapping, and motion planning. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D and CPEN 231 Minimum Grade: D
CPSC 410 Advanced Topics
3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 411 Advanced Topics
3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 412 Advanced Topics
3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 413 Advanced Topics
3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 414 Advanced Topics
3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 425 Computer Graphics
3.00 credits
Introduction to the use of graphics primitives within a higher level language to produce two and three-dimensional images; underlying mathematical operations used to implement standard graphics packages; practical experience with current graphics systems. Fall, even years.
Prerequisite:
CPSC 223 Minimum Grade: D and MATH 231 Minimum Grade: D
CPSC 427 Artificial Intelligence
3.00 credits
Introduction to AI. Topics include automated reasoning, state space and heuristic search, knowledge representation formalisms, and stochastic methods. Spring.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 431 Computer Architecture
3.00 credits
Introduction to fundamental concepts in the design and implementation of computing systems. Topics include fundamentals of computer design, performance and cost, instruction set architecture, computer arithmetic, data path control, processor technology, pipelining, memory system (caches, virtual memory). Spring.
Prerequisite:
CPEN 231 Minimum Grade: D
CPSC 435 Parallel Computing
3.00 credits
Parallel Programming platform; principles of parallel algorithm design; basic communication operations' analytical modeling of parallel programs; programming using the message-passing paradigm (MPI); programming on shared address space platforms (POSIX Thread and OpenMP); and other advanced topics. On sufficient demand.
Prerequisite:
CPEN 231 Minimum Grade: D
CPSC 436 Biomedical Informatics&Comput
3.00 credits
Investigation of the role of computers in the provision of medical services; study of the nature of clinical data, medical information exchange standards, data storage, retrieval, integration and analysis and privacy issues; medical decision-making support; design of healthcare information systems' genomic medicine and its techniques. On sufficient demand.
Prerequisite:
CPEN 231 Minimum Grade: D
CPSC 447 Computer Networks
3.00 credits
Study of main components of computer communications and networks; communication protocols; routing algorithms; machine addressing and network services. Spring, odd years.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 448 Computer Security
3.00 credits
Study of security and information assurance in stand-alone and distributed computing. Topics include ethics, privacy, access control methods and intrusion detection. Fall.
Prerequisite:
CPSC 223 Minimum Grade: D and CPEN 231 Minimum Grade: D
CPSC 450 Design & Analysis-Comp Algorim
3.00 credits
Advanced study of computer algorithms not covered in CPSC 223 along with principles and techniques of computational complexity. Topics could include dynamic programming, B-trees, minimum spanning trees, Floyd and Warshall algorithms, various string matching algorithms, computational geometry, exponential growth of round-off errors, Np-completeness and reducibility. Spring, odd years.
Prerequisite:
CPSC 223 Minimum Grade: D and MATH 231 Minimum Grade: D
CPSC 455 Chaos & Dynamical Systems
3.00 credits
Introduction to the study of discrete nonlinear dynamical systems and their chaotic behavior. The course will focus on investigation s through computer experiments- both numerical and graphical- and the corresponding mathematical analysis of the observed behavior. A significant portion of the course will be devoted to designing graphics programs. In the humanistic tradition of Gonzaga, students will also learn the historical development of the modern science of chaotic dynamical systems. On sufficient demand.
Prerequisite:
MATH 231 Minimum Grade: D and CPSC 122 Minimum Grade: D
CPSC 475 Speech&NaturalLangProcessing
3.00 credits
Computational approaches to language processing: morphology, phonetics, speech recognition, syntax, and semantics. Emphasis on statistical language processing. Fall, even years.
Prerequisite:
CPSC 223 Minimum Grade: D
CPSC 490 Directed Reading
1.00- 3.00 credits
Individual exploration of a topic not normally covered in the curriculum. Arrangement with an instructor.
CPSC 491 Software Engineering
2.00 credits
A survey of approaches used in software engineering focusing on software development processes, requirements engineering, estimation, scheduling, risk analysis, testing, version control, and project management. Students apply the techniques and practices learned in their senior design projects, including the development of a detailed project plan and a functional software prototype. Fall.
Concurrent:
CPSC 491L CPSC 499
CPSC 491L Senior Design Project Lab I
1.00 credit
First semester of a two semester senior design project in which students work in teams to develop a large software product. Teams meet weekly with their faculty project advisors. Fall.
Concurrent:
CPSC 491 CPSC 499
CPSC 492L Senior Design Project Lab II
3.00 credits
Second semester of a two semester senior design project in which students work in teams to develop a large software product. Teams meet weekly with their faculty project advisors. Spring.
Prerequisite:
CPSC 491 Minimum Grade: D and CPSC 491L Minimum Grade: D
CPSC 495 Thesis I
1.00 credit
First of a two semester senior thesis project. Requires arrangement with a faculty supervisor.
CPSC 496 Thesis II
1.00 credit
Second of a two semester senior thesis project. Requires arrangement with a faculty supervisor.
Prerequisite:
CPSC 495 Minimum Grade: S
CPSC 497 Computer Science Internship
.00- 3.00 credits
Computer Industry Internship.
CPSC 499 Computers and Society
1.00 credit
This course discusses ethical, societal, security and legal issues in computing, including their relationship to professional development. Topics are examined within the context of students' senior design projects. Fall.
Concurrent:
CPSC 491 CPSC 491L
 

In addition to their major and minor areas of study, all undergraduate students follow a common program designed to complete their education in those areas that the University considers essential for a Catholic, Jesuit, liberal, and humanistic education. The University Core Curriculum consists of forty-five credits of course work, with additional designation requirements that can be met through core, major, or elective courses.

The University Core Curriculum is a four-year program, organized around one overarching question, which is progressively addressed through yearly themes and questions. Hence, core courses are best taken within the year for which they are designated. First year core courses encourage intellectual engagement and provide a broad foundation of fundamental skills. Second and third year courses examine central issues and questions in philosophy and religious studies. The fourth year course, the Core Integration Seminar, offers a culminating core experience. Taken at any time throughout the four years, broadening courses intersect with the core themes and extend students’ appreciation for the humanities, arts, and social and behavioral sciences. Finally, the designation requirements (writing enriched, global studies, and social justice) reflect important values and reinforce students’ knowledge and competencies.

Overarching Core Question: As students of a Catholic, Jesuit, and Humanistic University, how do we educate ourselves to become women and men for a more just and humane global community?
Year 1 Theme and Question: Understanding and Creating: How do we pursue knowledge and cultivate understanding?

  • The First-Year Seminar (DEPT 193, 3 credits): The First-Year Seminar (FYS), taken in the fall or spring of the first year, is designed to promote an intellectual shift in students as they transition to college academic life. Each small seminar is organized around an engaging topic, which students explore from multiple perspectives. The FYS is offered by many departments across the University (click here [PDF] for list of FYS courses).  
  • Writing (ENGL 101, 3 credits) and Reasoning (PHIL 101, 3 credits): The Writing and Reasoning courses are designed to help students develop the foundational skills of critical reading, thinking, analysis, and writing. They may be taken as linked sections. Writing (ENGL 101) carries one of the three required writing-enriched designations (see below).
  • Communication & Speech (COMM 100, 3 credits): This course introduces students to interpersonal and small group communication and requires the application of critical thinking, reasoning, and research skills necessary to organize, write, and present several speeches.
  • Scientific Inquiry (BIOL 104/104L, CHEM 104/104L, or PHYS 104/104L, 3 credits): This course explores the scientific process in the natural world through evidence-based logic and includes significant laboratory experience. Students pursuing majors that require science courses will satisfy this requirement through their major.
  • Mathematics (above Math 100, 3 credits): Mathematics courses promote thinking according to the modes of the discipline—abstractly, symbolically, logically, and computationally. One course in mathematics, above Math 100, including any math course required for a major or minor, will fulfill this requirement. MATH 100 (College Algebra) and courses without the MATH prefix do not fulfill this requirement.

Year 2 Theme and Question: Being and Becoming: Who are we and what does it mean to be human?

  • Philosophy of Human Nature (PHIL 201, 3 credits): This course provides students with a philosophical study of key figures, theories, and intellectual traditions that contribute to understanding the human condition; the meaning and dignity of human life; and the human relationship to ultimate reality.
  • Christianity and Catholic Traditions (RELI, 3 credits). Religious Studies core courses approved for this requirement explore diverse topics including Christian scriptures, history, theology, and practices as well as major contributions from the Catholic intellectual and theological traditions (click here [PDF] for a list of approved courses) .

Year 3 Theme and Question: Caring and Doing: What principles characterize a well lived life?

  • Ethics (PHIL 301 or RELI, 3 credits): The Ethics courses are designed to help students develop their moral imagination by exploring and explaining the reasons humans should care about the needs and interests of others. This requirement is satisfied by an approved ethics course in either Philosophy (PHIL 301) or Religious Studies (click here [PDF] for a list of approved courses).
  • World/Comparative Religion (RELI, 3 credits): Religious Studies courses approved for this core requirement draw attention to the diversity that exists within and among traditions and encourage students to bring critical, analytical thinking to bear on the traditions and questions considered. These courses carries one of the required two global-studies designations (see below) (click here [PDF] for a list of approved courses).

Year 4 Theme and Question: Imagining the Possible: What is our role in the world?” 

  • Core Integration Seminar (DEPT 432, 3 credits). The Core Integration Seminar (CIS) offers students a culminating core experience in which they integrate the principles of Jesuit education, prior components of the core, and their disciplinary expertise. Some CIS courses may also count toward a student’s major or minor. The CIS is offered by several departments across the University (click here [PDF] for list of CIS courses).

The Broadening Courses

  • Fine Arts & Design (VART, MUSC, THEA, 3 credits): Arts courses explore multiple ways the human experience can be expressed through creativity, including across different cultures and societies. One approved course in fine arts, music, theatre, or dance will fulfill this requirement (click here [PDF] for a list of approved courses).
  • History (HIST, 3 credits): History courses are intended to develop students’ awareness of the historical context of both the individual and the collective human experience. One course in History (HIST 101, HIST 102, HIST 112, HIST 201, HIST 202) will fulfill this requirement.
  • Literature (3 credits): Literature courses foster reflection on how literature engages with a range of human experience. One approved course in Literature (offered by English, Classics, or Modern Languages) will fulfill this requirement (click here [PDF] for a list of approved courses).
  • Social & Behavioral Sciences (3 credits): Courses in the social and behavioral sciences engage students in studying human behavior, social systems, and social issues. One approved course offered by Criminal Justice, Economics, Political Science, Psychology, Sociology, or Women and Gender Studies will fulfill this requirement (click here [PDF] for a list of approved courses).

The Designations
Designations are embedded within already existing core, major, minor, and elective courses. Students are encouraged to meet designation requirements within elective courses as their schedule allows; however, with careful planning students should be able to complete most of the designation requirements within other core, major, or minor courses.

  • Writing Enriched (WE; 3 courses meeting this designation): Courses carrying the WE designation are designed to promote the humanistic and Jesuit pedagogical ideal of clear, effective communication. In addition to the required core course, Writing (ENGL 101), which carries one of the WE designations, students must take two other WE-designated courses (click here [PDF] for a list of approved courses).
  • Global-Studies (GS; 2 courses meeting this designation): Courses carrying the GS designation are designed to challenge students to perceive and understand human diversity by exploring diversity within a context of constantly changing global systems. In addition to the required core course, World/Comparative Religion (RELI 300-level), which carries one of the GS designations, students must take one other GS-designated course (click here [PDF] for a list of approved courses).
  • Social-Justice (SJ; 1 course meeting this designation): Courses carrying the SJ designation are designed to introduce students to one or more social justice concerns. Students must take one course that meets the SJ designation (click here [PDF] for a list of approved courses).

Major-specific adaptations to the University Core Curriculum

All Gonzaga students, regardless of their major, will complete the University Core Curriculum requirements. However some Gonzaga students will satisfy certain core requirements through major-specific programs or courses. Any major-specific adaptations to the core are described with the requirements for the majors to which they apply.