Computer Science

253.535.7400 www.plu.edu/computer-science/ cs@plu.edu
Laurie Murphy, Ph.D., Chair

Computer science deals with the theory, design, and application of computing systems and the study of the storing and manipulation of information. The program at Pacific Lutheran University provides a broad base core of fundamental material that stresses analysis and design experiences with substantial laboratory work, including software development. In addition, students are exposed to a variety of programming languages and systems. Students can choose from a number of upper-division courses, which ensure a depth of knowledge and an understanding of current developments in the field. The Bachelor of Science degree in computer science program has been accredited by the Computing Accreditation Commission of ABET.

In keeping with the University’s mission “to educate students for lives of thoughtful inquiry, service, leadership, and care—for other people, for their communities, and for the earth,” there are four major objectives of the computer science program. Our objectives state what a PLU graduate with a major in computer science  is expected to achieve within a few years after graduation.

  1. Graduates who choose to enter the workforce will become well-rounded, creative, productive, and valuable professionals in their field.
  2. Graduates who choose to pursue advanced degrees will be accepted into a graduate program and make effective progress towards their degree.
  3. Graduates will have an aptitude and desire to engage in lifelong learning, and will adapt to new technologies, tools, and methodologies.
  4. Graduates will understand the societal, legal, and ethical implications of their work, and will share their knowledge skills and expertise with their colleagues and community.

For a complete description of the CSCI objectives and outcomes visit the department website at cs.plu.edu.

Beginning Classes in Computer Science (CSCI)

There are several beginning-level classes designed for students with various needs:

  • CSCI 115: Solve it with the Computer: Especially for students with little or no background in computer science who wish an introduction to the use of the computer for problem solving. This course also satisfies the Mathematical Reasoning requirement.
  • CSCI 120: Computerized Information Systems: Especially appropriate for business majors and other students wishing an introduction to the computer and applications of software packages.
  • CSCI 144: Introduction to Computer Science: For students majoring in computer science, mathematics, and most science majors, as well as others wishing a strong experience in computer programming.
  • CSCI 270: Data Structures: This is the second course in the major. With departmental approval, students with a strong programming background may receive advanced placement into this course.

Computer Science Majors

Students majoring in computer science may choose to earn either a Bachelor of Arts degree or a Bachelor of Science degree in computer science. The Bachelor of Arts program is the minimum preparation suitable for further professional study and is often combined with extensive study or a second major in an allied field. The Bachelor of Science degree is a strong, scientific degree that contains additional courses in computer science, mathematics, and science and serves both students going directly into employment on graduation and those going into graduate programs. Students should take CSCI 144, 270 and MATH 151, 152 early in their program.

Restrictions for both majors

  • A minimum grade of C is required in all CSCI and MATH courses counted for a major and a minimum grade of a C- in all other supporting courses.
  • Only one CSCI topics course (either 400, 410, x87, x88, or x89) can be used as an elective for a major.
  • For the B.A. degree, at least 12 upper-division hours must be completed at PLU.
  • For the B.S. degrees, at least 16 upper-division hours must be completed at PLU.

Bachelor of Arts Degree

Major in Computer Science

28 semester hours in CSCI, plus 12 semester hours in mathematics

  • CSCI 144, 270; 367 or 390; 499A, and 499B
  • The remaining hours are from computer science courses numbered above CSCI 300 (except CSCI 331).
  • Required supporting: MATH 151, 152, and 245

Bachelor of Science Degree

Major in Computer Science

44 semester hours in CSCI, plus 30 semester hours of supporting courses in mathematics and science

  • CSCI 144, 270, 302, 343, 371, 390, 444,  499A, and 499B
  • 12 additional hours selected from computer science courses numbered above CSCI 300 (except 331), or hours from MATH 356 not counted toward the 30 hours of required supporting courses.
  • The 30 hours of supporting courses in mathematics and science must include:
    • MATH 151, 152, 242, 245
    • A minimum of 8 semester hours of approved science courses, which includes a year’s sequence of a laboratory science. PHYS 153, 154 with 163, 164 are preferred.
        • Also acceptable are any of the following three options: CHEM 115, 116; BIOL 225, 226; or one of GEOS 102-105 and GEOS 201
    • Approved sciences courses are: any BIOL, except 111; any CHEM, except 104, 105; any geosciences; any physics.
    • The remaining hours may be chosen from any mathematics course numbered above 320 (except 446), CSCI 331, CSCI 131, or any approved science course.

Minor

Restrictions on Computer Science Minors

At least eight upper-division semester hours must be completed at PLU. A minimum grade of C is required in all CSCI and MATH courses for a minor and a minimum grade of a C- in all other supporting courses.

Minor in Computer Science

20 semester hours, including

  • CSCI 144, 270
  • Eight additional hours of upper-division computer science courses numbered above CSCI 300 (except CSCI 331, 499A, and 499B).
  • Required supporting: MATH 128, 151, or equivalent

Courses Offered by Semester/Term

  • Fall Semester: 120, 131, 144, 270, 302, 343, 371, 386, 499A
  • J-Term: 115
  • Spring Semester: 115, 133, 144, 270, 302, 367, 390, 444, 499B
  • Alternate Years: 330, 331, 340, 412, 480, 487, 488

Computer Science (CSCI) - Undergraduate 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 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)