Computer Science and Computer Engineering

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. Computer engineering is an engineering specialty that has grown out of rapidly evolving micro- and mini-computer technology. The curriculum consists of essential and advanced elements from computer science and electrical engineering, developing both hardware and software expertise. Electives permit concentration in areas such as integrated circuit design, robotics, microprocessor applications, computer design, computer security, application software development, and artificial intelligence. The Bachelor of Science degree in computer engineering program has been accredited by the Engineering 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 and computer engineering programs. Our objectives state what a PLU graduate with a major in computer science or computer engineering 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 CSCE objectives and outcomes visit the department website at www.plu.edu/csce/.

Beginning Classes in Computer Science and Computer Engineering (CSCE)

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

    • CSCE 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.
    • CSCE 120: Computerized Information Systems: Especially appropriate for business majors and other students wishing an introduction to the computer and applications of software packages.
    • CSCE 144: Introduction to Computer Science: For students majoring in computer science, computer engineering, mathematics, and most science majors, as well as others wishing a strong experience in computer programming.
    • CSCE 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 and Computer Engineering Majors

Students majoring in computer science may choose to earn either a Bachelor of Arts degree in computer science or a Bachelor of Science degree in either computer science or computer engineering. 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 degrees are strong, scientific degrees that contain additional courses in computer science, mathematics, and science and serve both students going directly into employment on graduation and those going into graduate programs. Students should take CSCE 144, 270 and MATH 151, 152 early in their program

Restrictions for all three majors

    • A minimum grade of C is required in all CSCE and MATH courses counted for a major and a minimum grade of a C- in all other supporting courses.
    • Only one CSCE 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 CSCE, plus 12 semester hours in mathematics

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

Bachelor of Science Degree

Major in Computer Science

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

    • CSCE 144, 270, 302, 343, 371, 390, 444,  499A and 499B
    • 12 additional hours selected from computer science courses numbered above CSCE 300 (except 331 and 345), 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; CSCE 345.
      • The remaining hours may be chosen from any mathematics course numbered above 329 (except 446), CSCE 331, CSCE 131, or any approved science course.

Major in Computer Engineering

44 semester hours in CSCE, plus 42 semester hours of supporting courses in mathematics and science

    • CSCE 131, 144, 231, 270, 331, 345, 380, 385, 499A and 499B
    • MATH 151, 152, 242, 245, 253; 331 or 356
    • PHYS 153, 154, 163, 164
    • CHEM 115
    • At least 4 semester hours chosen from:
      • PHYS 221, 240, 333, 334, 336, or CHEM 341
    • 10 additional semester hours from any upper-division computer science and computer engineering courses numbered above CSCE 319 (except CSCE 449).

Minors

Restrictions on Computer Science and Electrical Engineering Minors:  At least eight upper-division semester hours must be completed at PLU.

Minor in Computer Science

20 semester hours, including

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

44 semester hours including

    • CSCE 131, 144, 302, 331, 345
    • Required supporting:
      • CHEM 115; MATH 151, 152, and MATH 245 or 253
      • PHYS 153, 154, 163, 164

Courses Offered by Semester/Term

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

Computer Science and Computer Engineering (CSCE) - Undergraduate Courses

CSCE 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)

CSCE 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)

CSCE 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)

CSCE 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)

CSCE 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)

CSCE 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)

CSCE 231 : Digital Systems

Analysis of digital design techniques including coverage of combinational logic, circuit timing, sequential logic, counters, and finite state machines. The hardware description language VHDL will be taught and used in several projects. Includes a computer laboratory component that explores the relevant digital logic through simulation and hardware implementations. Prerequisite: CSCE 144. (4)

CSCE 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: CSCE 144. (4)

CSCE 287 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 288 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 289 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 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)

CSCE 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: CSCE 144. Strongly recommended: CSCE 270. (4)

CSCE 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: CSCE 270. (4)

CSCE 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)

CSCE 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: CSCE 270. (4)

CSCE 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: CSCE 270. (4)

CSCE 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: CSCE 331. (4)

CSCE 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: CSCE 144. Recommended: CSCE 270. (4)

CSCE 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: CSCE 270, MATH 245. (4)

CSCE 380 : Computer Organization and Assembly Language

Fundamentals of assembly programming and low-level computer organization. Instruction sets for RISC and CISC processors are analyzed and compared qualitatively and quantitatively. Topics include data and instruction formats, addressing, subroutines, macro definition, basic computer architecture, benchmarking, and interface between assembly language and high-level programming languages. Prerequisite: CSCE 270. Strongly recommended: CSCE 231. (4)

CSCE 385 : Computer Architecture

An introduction to the structure and operation of large computer systems. Topics include information representation of instructions and data, memory structure, datapath and control unit organization and design, pipelining, and multiprocessing systems. Lab component includes designing and testing computer systems in simulation and on reprogrammable hardware. Prerequisites: CSCE 231, CSCE 380. (4)

CSCE 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: CSCE 270. Recommended: MATH 242. (4)

CSCE 387 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 388 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 389 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 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: CSCE 270. (4)

CSCE 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: CSCE 270 or consent of instructor. (1)

CSCE 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: CSCE 270, MATH 152. Recommended: PHYS 153. (4)

CSCE 444 : Operating Systems

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

CSCE 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: CSCE 385 or permission of the instructor. (4)

CSCE 487 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 488 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 489 : Special Topics in Computer Science and Computer Engineering

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)

CSCE 491 : Independent Studies

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

CSCE 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)

CSCE 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 CSCE 499B meets the senior seminar/project requirement. Prerequisites: Prerequisites depend on the major and degree. The B.S. in computer science requires CSCE 390. The B.S. in computer engineering requires CSCE 231, 270, and 345. The B.A. in computer science requires CSCE 270; and CSCE 367 or 390. (2)

CSCE 499B : Capstone: Senior Seminar - SR

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

Last Modified: July 23, 2015 at 9:53 pm