Courses

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
3.00 credits
Topic to be determined by instructor.
CPSC 214 Special Topics
3.00 credits
Topic to be determined by instructor.
CPSC 215 Special Topics
3.00 credits
CPSC 222 Introduction to Data Science
3.00 credits
This course provides an introduction to the underlying ideas, concepts, and techniques used in data science. Students gain skills in statistical and computational thinking, and their practical application to real-world, data-driven problem solving and decision making. The course teaches important concepts and skills in both statistical reasoning and computer programming for the purpose of analyzing real-world data sets. Examples are drawn from diverse areas such as economics, social science, health and wellness, climate science, and education. Students gain experience using the Python programming language, Python’s standard libraries for data science applications and computational notebooks (e.g., using Jupyter). The course also raises important social questions concerning privacy, social inequality, and professional ethics related to data science and its applications.
CPSC 223 Algorithm&Abstract Data Struct
3.00 credits
Algorithm analysis using Big-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 Software Development
3.00 credits
This course covers topics in object-oriented programming, user-interface design and development, and software construction including program design, development tools, and basic concepts in software engineering. Students work on hands-on development assignments and projects throughout the semester. Fall and Spring.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 260 Computer Organization
3.00 credits
This course covers basic topics in the design of modern computer systems. Topics include digital logic, computer system components, machine-level code, memory organization and management, computer arithmetic, assembly-language programming, and basic connections between high-level and low-level languages (C and assembly). This course also serves as a foundation for courses on networking. security, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Fall and Spring. **** Students who have taken and received credit for CPEN 231 may not also receive credit for CPSC 260. *****
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.
CPSC 310 Special Topics
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
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
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
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
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 321 Database Management Systems
3.00 credits
Introduction to relational database concepts and techniques. Topics include the relational model, database design, SQL, transactions, file and index organization, and using databases within software applications, Fall.
Prerequisite:
CPSC 122 Minimum Grade: D or CPSC 222 Minimum Grade: D
CPSC 322 Data Science Algorithms
3.00 credits
This course provides a detailed overview of the processes and techniques used in creating data science applications. Emphasis is placed on popular algorithms for the analysis, classification, and mining of relational data. Students learn to implement data science algorithms and techniques over real-world data sets through assignments and projects in Python. Topics include data preparation and cleaning, summary statistics, basic data visualization techniques, feature selection, discretization, k nearest neighbors, naive bayes, decision trees, ensemble methods, apriori rule mining, and k-means clustering. On sufficient demand.
Prerequisite:
CPSC 122 Minimum Grade: D or CPSC 222 Minimum Grade: D
CPSC 323 Machine Lrng & Intllgnt Systms
3.00 credits
This course provides a detailed overview of topics in machine learning with an emphasis on algorithms and techniques for unstructured and complex data sets. Students implement and apply machine learning algorithms to examples drawn from time series, image, audio, textual, and numerical data. Topics include regression analysis, support vector machines, genetic algorithms, neural networks and heuristic search. Concepts and issues in building intelligent systems and the role of machine learning are also discussed. On sufficient demand.
Prerequisite:
CPSC 322 Minimum Grade: D or CPSC 223 Minimum Grade: D
CPSC 324 Big Data Analytics
3.00 credits
This course covers tools and techniques used in applying statistical and machine learning approaches to large, real-world data sets. Through hands-on assignments and projects, students learn popular programming models and toolkits for performing large-scale data analyses. The course also explores distributed and high-performance frameworks that can be used in data-intensive applications for filtering, clustering, and classifying data. Advanced analytic approaches discussed include data sketching, principal component analysis, recommendation algorithms, topic modeling, Bayesian networks, and deep learning. On sufficient demand.
Prerequisite:
CPSC 322 Minimum Grade: D or CPSC 223 Minimum Grade: D
CPSC 325 Data Science Project Lab
3.00 credits
This course provides an overview of how to design a data science system and deploy the system into a production environment. Students complete a semester-long project that involves researching a data science problem, proposing a solution to the problem, implementing the solution, and deploying the solution as a hosted web application. Emphasis is placed on working with web-based application programming interfaces, gathering and processing data, researching and implementing common machine algorithms for data mining and classification, and securely deploying models in the cloud. Spring.
Prerequisite:
CPSC 322 Minimum Grade: D and (CPSC 323 Minimum Grade: D or CPSC 324 Minimum Grade: D)
CPSC 326 Organization of Program Langs
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 331 UI/UX Design
3.00 credits
Exploration of theories and principles related to human-computer interaction, user experience design, and user interface design. Development of techniques and practices for designing and evaluating software usability. Spring.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 332 Web Development
3.00 credits
Techniques of web-based software application development. Introduces programming languages and frameworks for web programming. Emphasis on web programming basics using well-established approaches including the basics of full-stack web development. Fall.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 333 Mobile App Development
3.00 credits
This course provides an introduction to mobile application development. The primary aim of this course is to provide students with a thorough introduction to designing and building native and/or cross-platform apps for mobile devices. The platform, frameworks/libraries, and development tools used in this course vary and are dependent on the current demand in industry. Topics include object-oriented programming, design patterns, user interface design and implementation, data storage, working with application programming interfaces, threading, camera and photos, and location and maps. Additional topics are covered based on trending mobile app features. (Fall)
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 334 Linux and DevOps
3.00 credits
This course covers topics of using and managing Linux OSes from the command line, virtual machines, containers, DevOps philosophy, continuous integration, continuous deployment, and Git. Students work on hands-on development assignments and projects throughout the semester. Spring.
Prerequisite:
CPSC 122 Minimum Grade: D
CPSC 341 Internet of Things
3.00 credits
The Internet of things (IoT) is the network of physical devices, buildings (smart building), furniture (smart home), vehicles (smart transportation), and many others. In this class, students will learn key technologies in IoT and obtain hands-on experience by building IoT devices. A substantial part of the material will cover IoT applications, IoT architecture, embedded systems, network protocols, sensor networks, and IoT security. Students will also work on research projects related to IoT applications, design, and security. Fall.
Prerequisite:
CPSC 122 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, and security. Fall.
Prerequisite:
CPSC 122 Minimum Grade: D and CPSC 260 Minimum Grade: D or (CPEN 231 Minimum Grade: D and CPEN 231L Minimum Grade: D)
CPSC 348 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 CPSC 260 Minimum Grade: D or (CPEN 231 Minimum Grade: D and CPEN 231L Minimum Grade: D)
CPSC 349 Cybersecurity Project Lab
3.00 credits
Hands-on cybersecurity studies using a cyber range. Students, working in teams, engage in mission-specific virtual environments using real-world tools, network activity, and a library of cyber-threat scenarios. Spring.
Prerequisite:
CPSC 260 Minimum Grade: D or (CPEN 230 Minimum Grade: D and CPEN 230L Minimum Grade: D)
CPSC 351 Theory of Computation
3.00 credits
Study of automata, languages, and computability theory. Regular grammars, finite state automata, context-free grammars, pushdown automata, Turing machines, decidable and undecidable problems, and problem reduction. Fall, odd years.
Prerequisite:
CPSC 122 Minimum Grade: D and (MATH 231 Minimum Grade: D or MATH 301 Minimum Grade: D)
CPSC 353 Applied Cryptography
3.00 credits
Topics include classical cryptosystems, block ciphers, public key cryptosystems, key exchange protocols, and hash functions. Spring, even years.
Prerequisite:
CPSC 122 Minimum Grade: D and (MATH 231 Minimum Grade: D or MATH 301 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 415 Advanced Topics
3.00 credits
Topics that reflect the current interests and expertise of the faculty. On sufficient demand.
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 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:
CPSC 260 Minimum Grade: D or (CPEN 231 Minimum Grade: D and CPEN 231L Minimum Grade: D)
CPSC 435 Parallel & Cloud 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:
CPSC 260 Minimum Grade: D or (CPEN 231 Minimum Grade: D and CPEN 231L 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:
CPSC 260 Minimum Grade: D or (CPEN 231 Minimum Grade: D and CPEN 231L 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 and CPSC 260 Minimum Grade: D or (CPEN 231 Minimum Grade: D and CPEN 231L 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:
CPSC 122 Minimum Grade: D and (MATH 231 Minimum Grade: D or MATH 301 Minimum Grade: D)
CPSC 475 Speech&NaturalLangProcessing
3.00 credits
Computational approaches to language processing: text normalization, N-grams, sentiment classification, part-of-speech tagging, parsing, semantic analysis, and applied phonetics. Fall, even years.
Prerequisite:
CPSC 223 Minimum Grade: D or CPSC 322 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.
Prerequisite:
CPSC 223 Minimum Grade: D and CPSC 224 Minimum Grade: D
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.
Prerequisite:
CPSC 223 Minimum Grade: D and CPSC 224 Minimum Grade: D
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.
Prerequisite:
CPSC 223 Minimum Grade: D and CPSC 224 Minimum Grade: D
Concurrent:
CPSC 491 CPSC 491L

Want to connect with Computer Science and Computational Thinking?

Send a message
502 E. Boone Ave
Spokane, WA 99258
Herak 226
(509) 313-3906