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 190 Directed Study
1.00- 3.00 credits
Topic to be decided by faculty.
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.
Prerequisite:
CPSC 121 Minimum Grade: D
Equivalent:
ITEC 212 - OK if taken between Fall 2011 and Fall 2023
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. Fall & Spring.
Prerequisite:
CPSC 121 Minimum Grade: D
or ENSC 201 Minimum Grade: D
CPSC 223 Algorithm&Abstract Data Struct
3.00 credits
Algorithm analysis using Big-O notation, sorting, heaps, balanced binary search trees, and hash tables. Fall and Spring.
MATH 231 and CPSC 223 can be taken concurrently.
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 Minimum Grade: D
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 223
Prerequisite:
CPSC 223 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 or CPSC 222
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. Fall. Prerequisite: CPSC 122 or CPSC 222
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. Fall.
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, odd years.
Prerequisite:
CPSC 322 Minimum Grade: D
or CPSC 323 Minimum Grade: D
Equivalent:
CPSC 483 - OK if taken since Fall 2024
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 224 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. Spring, odd years.
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, and security. Fall.
Prerequisite(s): CPSC 122 and (CPSC 260 or (CPEN 231 and CPEN 231L))
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. Spring.
Prerequisite:
CPSC 223 Minimum Grade: D
and CPSC 260 Minimum Grade: D
or (CPEN 231 Minimum Grade: D
and CPEN 231L Minimum Grade: D)
Equivalent:
CPSC 448 - Taken before Spring 2020
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(s): CPSC 122 and (MATH 231 or MATH 301)
Prerequisite:
CPSC 223 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. Fall.
Prerequisite(s): CPSC 223 and (MATH 231 or MATH 301)
Prerequisite:
CPSC 223 Minimum Grade: D
and (MATH 231 Minimum Grade: D
or MATH 301 Minimum Grade: D)
CPSC 390 Directed Study
1.00- 3.00 credits
Topic to be decided by faculty.
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. Spring, odd years.
Prerequisite:
CPSC 223 Minimum Grade: D
and MATH 231 Minimum Grade: D
CPSC 431 Computer Hrdwr Dsg & Achtr
3.00 credits
Understanding the design techniques, machine structures, technology factors, and evaluation methods that will determine the form of computers in 21st century. Spring.
Prerequisite:
CPSC 260 Minimum Grade: D
or CPEN 231 Minimum Grade: D
CPSC 435 Parallel & Cloud Computing
3.00 credits
Parallel Programming platforms; principles of parallel algorithm design; basic communication operations; programming using the message-passing paradigm (MPI); programming on shared address space platforms (POSIX Thread and OpenMP); cloud computing; big data analysis; 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)
Equivalent:
CPEN 435 - Successful completion
CPSC 436 Biomedical Informatics&Comput
3.00 credits
Investigation of the role of computers in the provision of medical services; machine learning algorithms for regression, classification, clustering, and anomaly detection; medical decision-making support; 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)
Equivalent:
CPEN 436 - Successful completion
CPSC 439 Digital Forensics
3.00 credits
Digital forensics covers the three functions of digital forensics performed by organizations: employee abuse investigations, incident response, and electronic discovery. Students will learn to conduct all three. In particular students will learn to gather, analyze and present digital evidence to the sponsoring organization as well as to legal audiences. On sufficient demand.
Prerequisite(s):CPSC 223 and (CPSC 260 or (CPEN 231 and CPEN 231L))
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 - even years.
Prerequisite(s): CPSC 223 and (CPSC 260 or (CPEN 231 and CPEN 231L))
CPSC 448 Network and System Security
3.00 credits
Computer Network and System Security covers cybersecurity in computer operating systems, network infrastructure, and devices like routers and switches, server management for Windows and Linux operating systems, along with managing sensitive data. On sufficient demand.
Prerequisite(s): CPSC 223 and (CPSC 260 or (CPEN 231 and CPEN 231L))
CPSC 450 Design&Analysis-Comp Algorithm
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. Fall - even 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. Spring - even years.
Prerequisite(s): CPSC 122 and (MATH 231 or MATH 301)
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. Spring, odd years.
Prerequisite:
CPSC 223 Minimum Grade: D
or CPSC 322 Minimum Grade: D
CPSC 481 Data Analytics & Communication
3.00 credits
In this course, students will learn a variety of techniques and tools for effectively communicating data analysis questions, results, and insights to a range of audiences. The course will cover techniques related to data storytelling, data visualization, interactive dashboarding, digital portfolio design and development, technical report writing, and technical presentation skills for data science. Students will also learn to effectively use modern tools related to data storytelling and visualization. On sufficient demand.
Prerequisite: CPSC 222
CPSC 482 Data Intensive Systems
3.00 credits
This course covers tools and techniques used in applying statistical and machine learning approaches to real-world data sets. Through hands-on assignments and projects, students learn relevant architectures, programming models, and tools related to data modeling and storage, extract-transform-load (ETL) processes, data warehousing, and data pipeline creation and management. The course also explores scalable, distributed, and cloud-based approaches used in data-intensive applications for accessing, filtering, clustering, and classifying data. On sufficient demand.
Prerequisite:
(CPSC 223 Minimum Grade: D
or CPSC 322 Minimum Grade: D)
and CPSC 321 Minimum Grade: D
Equivalent:
CPSC 324 - Taken before Fall 2024
CPSC 483 Data Science Capstone
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. On sufficient demand.
Prerequisite:
CPSC 322 Minimum Grade: D
or CPSC 323 Minimum Grade: D
Equivalent:
CPSC 325 - Taken before Fall 2024
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 493 Software Security Engineering
3.00 credits
Secure Software Engineering covers the principles and practices of secure programming: writing programs in a safe fashion, avoiding vulnerabilities which can be exploited by attackers, and using library security features like authentication and encryption. On sufficient demand.
Prerequisite:
CPSC 223 Minimum Grade: D
and CPSC 224 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