Computer Science Courses

CSCI 115 : Solve It With the Computer – MR, NS


Teaches how computer use combined with mathematical reasoning can solve “real world” problems. Students use computer tools to solve everyday problems involving mathematics, data, and computing. Prerequisite: fulfillment of PLU entrance requirement in mathematics. (4)

CSCI 120 : Computerized Information Systems – NS


Introduction to computers including net-centric computing, computer ethics, operation systems, spreadsheets, graphics, and related topics. Includes a computer laboratory component. Prerequisite: MATH 128 or 140 or equivalent. (4)

CSCI 131 : Introduction to Engineering – NS


An introduction to the engineering profession and development of basic skills important to the profession, including problem solving, engineering design, graphics, use of computers, computer programming, engineering economics, and ethics in engineering. Prerequisite: completion of college-preparatory mathematics. (2)

CSCI 133 : Introduction to Computational and Data Science


Introduction to computer programming and problem-solving using real datasets from a variety of domains such as science, business, and the humanities. Introduces the foundations of computational thinking, modeling and simulation and data visualization using the Python programming language and R statistical package. Intended for students without prior programming experience. Prerequisite: four years of high school mathematics or MATH 140 or equivalent. (4)

CSCI 144 : Introduction to Computer Science – NS


An introduction to computer science including problem solving, algorithm design, object-oriented programming, numerical and non-numerical applications, and use of data files. Ethical and social impacts of computing. Prerequisite: four years of high school mathematics or MATH 140 or equivalent. (4)

CSCI 190 : FYEP190: Privacy and Technology NS


This course will explore the impact of technology on privacy. The goal is to provide students with insight into the importance of privacy in their daily lives and how to protect that privacy as it comes under attack from new technology. It will explore these issues from several different perspectives, including a look at the history of privacy, the development of laws related to privacy, methods used to protect privacy, and developments in technology that threaten privacy. In the process students will study concepts from mathematics, computer science, history, political science, English and military science. (4)

CSCI 270 : Data Structures


Study of object-oriented programming techniques and fundamental data structure abstractions and implementations including list, stack, queue, and trees with applications to sorting, searching, and data storage. Prerequisite: CSCI 144. (4)

CSCI 287 : Special Topics in Computer Science


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 288 : Special Topics in Computer Science


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 289 : Special Topics in Computer Science


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 291 : Independent Studies


To provide individual undergraduate students with introductory study not available in the regular curriculum. The title will be listed on the student term-based record as DS: followed by the specific title designated by the student. Prerequisite: consent of department chair. (1 to 4)

CSCI 302 : Computer Organization


Introduction to digital logic and computer architecture. Topics include instruction and data representations, RISC and CISC instruction sets, addressing, subroutines, benchmarking, interface between assembly language and high-level programming languages, memory structure, combinational logic, and the construction and operation of the datapath. Laboratory component includes computer system and assembly language simulation. Prerequisite: CSCI 144. Strongly recommended: CSCI 270. (4)

CSCI 330 : Introduction to Artificial Intelligence


An introduction to concepts of artificial intelligence (AI), including expert systems, natural language processing, image understanding, and problem solving techniques. Consideration of the ethical and social dilemmas posed by AI. The programming languages LISP and PROLOG will be taught and used in several projects. Prerequisite: CSCI 270. (4)

CSCI 331 : Electrical Circuits


Introduction to the fundamental techniques and concepts of analysis and design of DC and AC circuits including Kirchhoff’s Laws, circuit theorems, OP Amps, first and second order transient and steady state circuits, and frequency response. Computer simulation and laboratory work are essential parts of the course. Prerequisites: MATH 151; PHYS 154 or consent of instructor. (4)

CSCI 340 : Formal Languages


Study of formal models of computation (finite automata, pushdown automata, and Turing machines). Study of formal language concepts, such as regular expressions and grammars. There will be a significant programming component where students implement and test algorithms. Prerequisite: CSCI 270. (4)

CSCI 343 : Programming Language Concepts


A study and comparison of features found in different computer languages. Imperative object-oriented, functional and declarative languages will be studied. Programs written in several of the languages. Includes a computer laboratory component. Prerequisite: CSCI 270. (4)

CSCI 345 : Microelectronics


Introduction to microelectronic technology and integrated circuit analysis and design based on BJT and MOSFET devices. Analog and digital applications are discussed. Topics include: single and multistage filters and amplifiers, frequency response, feedback concepts, digital logic and memory circuits. Computer simulation and laboratory work are essential parts of the course. Prerequisite: CSCI 331. (4)

CSCI 367 : Databases and Web Programming


An introduction to the fundamental concepts necessary for design, use, and implementation of database systems, with application to web-based software. The entity-relationship and relational models are studied in detail. Individual, organization, and societal concerns related to accuracy and privacy of data. Major small group project. Prerequisite: successful completion of, or concurrent enrollment in, CSCI 270. (4)

CSCI 371 : Design and Analysis of Algorithms


Elementary data structures reviewed for efficiency under different conditions. Analysis of problems associated with searching and sorting. This course will also include analysis of advanced data structures including Hash Tables, and Height-balanced trees. It will include the study of algorithms for graph theory, heuristic search, and other topics selected by the instructor. There will be a significant programming component where students will implement and test algorithms. Prerequisites: CSCI 270, MATH 245. (4)

CSCI 386 : Computer Networks 


An introduction to computer networks and computer communication protocols from the physical layer through the transport layer. Topics include connection oriented and connectionless networks, error detection and correction, LANs, sockets, and routing. Application layer topics can include HTTP, DNS, and email. Prerequisite: CSCI 270. Recommended: MATH 242. (4)

CSCI 387 : Special Topics in CSCI 


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 388 : Special Topics in Computer Science


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 389 : Special Topics in Computer Science


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 390 : Objects and Design


Object-oriented programming techniques, tools, and best practices for dealing with large programs. Topics include object-oriented design and programming, specifications, quality processes, effective debugging, and software testing. Prerequisite: CSCI 270. (4)

CSCI 391 : Problem Solving and Programming Seminar


Designed to improve advanced problem solving and programming skills, including advanced data structures. A goal of the course is participation in the regional ACM programming competition. Pass/Fail only. Students may take this course more than once. Prerequisite: CSCI 270 or consent of instructor. (1)

CSCI 412 : Computer Graphics


A study of the techniques and theory used to generate computer graphics. Both two-and three-dimensional representations will be covered. Course work includes several programming assignments plus a project. Prerequisites: CSCI 270, MATH 152. Recommended: PHYS 153. (4)

CSCI 444 : Operating Systems


An introduction to computer operating systems including process scheduling, memory management, and file systems. Major small group project. Prerequisite: CSCI 302 or 380, and MATH 245. Recommended: CSCI 343. (4)

CSCI 480 : Microprocessors and Embedded Systems


Study of microprocessors and their use in microcomputer embedded systems. Includes a computer laboratory component focusing on advanced computer architecture topics and incorporating a microcontroller-based project. Prerequisite: CSCI 385 or permission of the instructor. (4)

CSCI 487 : Special Topics in CSCI


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 488 : Special Topics in Computer Science


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 489 : Special Topics in Computer Science


To provide undergraduate students with new, one-time, and developing courses not yet available in the regular curriculum. The title will be listed on the student term-based record as ST: followed by the specific title designated by the academic unit. (1 to 4)

CSCI 491 : Independent Studies


Prerequisite: consent of department chair. (1 to 4)

CSCI 495 : Computer Science Internship


Involvement in an ongoing research project in computer science under the supervision of a faculty member. Prerequisite: consent of instructor. (1 to 4)

CSCI 499A : Capstone: Senior Seminar SR


Written and oral presentation of a project in a topic of interest by the student under the supervision of a faculty member. Students normally work in small groups (two or three students). Includes gathering requirements from the client/customer, taking a product through the full life cycle, technical communication and a study of the social implications of computing. The capstone is a two-semester sequence beginning in the fall semester. May graduates should start the course in the fall of their senior year and December graduates should begin the course in the fall of their junior year. With CSCI 499B meets the senior seminar/project requirement. Prerequisites: Prerequisites depend on the major and degree. The B.S. in computer science requires CSCI 390. The B.A. in computer science requires CSCI 270; and CSCI 367 or 390. (2)

CSCI 499B : Capstone: Senior Seminar SR


Continuation of Continuation of CSCI 499A. With CSCI 499A meets the senior seminar/project requirement. Prerequisite: CSCI 499A. (2)