Computer Science and Computer Engineering

253.535.7400
www.cs.plu.edu
csce@plu.edu

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 program in computer science 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 program in computer engineering 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.

Objective I: To provide a solid education in computer science and computer engineering in a liberal arts setting that prepares the student for graduate study or entrance into a profession in computing technology.

Objective II: To help students develop the ability and mental precision necessary to analyze, think critically, consider alternatives, and finally to be creative in computer science and computer engineering.

Objective III: To provide courses and personnel that view computer science and computer engineering as part of the human endeavor, that is, to see computer science and computer engineering in relation to more general intellectual development and to the needs of society.

Objective IV: To foster an aptitude and desire for life-long learning.

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

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 courses (including supporting courses) counted for a major.
  • 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 MAJOR IN COMPUTER SCIENCE
28 semester hours in CSCE, plus 12 semester hours in mathematics

  • CSCE 144, 270; 231 or 380; 499A and 499B
  • The remaining hours are from computer science and computer engineering courses numbered above CSCE 319
    (except CSCE 331, 345, and 449)
  • Up to 4 semester hours may be substituted from MATH 242 or 356.
  • Required supporting: MATH 151, 152, and 245

BACHELOR OF SCIENCE MAJOR IN COMPUTER SCIENCE
44 semester hours in CSCE, plus 30 semester hours of supporting courses in mathematics and science

  • 44 semester hours of computer science must include CSCE 144, 231, 270, 320, 343, 371, 380, 499A and 499B
  • 12 additional credits of approved elective courses, one of which must be from CSCE 367, 386, or 444
  • Elective courses submitted for approval are to be selected from the computer science courses numbered above CSCE 319 (except 331, 345 and 449), 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 12 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, 210; any Geosciences; any Physics; CSCE 345.
  • The remaining hours, if any, may be chosen from any Mathematics course numbered above 329 (except 446) or any approved science course.

BACHELOR OF SCIENCE MAJOR IN COMPUTER ENGINEERING
44 semester hours in CSCE, plus 42 semester hours of supporting courses in mathematics and science

  • CSCE 131, 144, 245, 270, 345, 346, 380, 480, 499A and 499B (Fall 2012)
  • CSCE 131, 144, 231, 270, 331, 345, 380, 385, 499A and 499B (Spring 2013)
  • 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 8 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 319 (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, 231, 245* (renumbered to 331* in Spring 2013), 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, 245*, 270, 343, 371, 380, 386, 499A (*renumbered to 331 in Spring 2013)
J-Term: 120
Spring Semester: 120, 131, 144, 231, 270, 320, 345, 367, 385, 499B
Alternate Years: 115, 340, 412, 436, 438, 444, 446, 480, 487, 488

Computer Science and Computer Engineering (CSCE) Undergraduate-Level 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 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 - F, 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 (previously CSCE 346). Prerequisite: CSCE 144. (4)

CSCE 245 : Electrical Circuits

Introduction to the fundamental concepts of DC and AC circuits analysis including Kirchhoff's Laws, circuit theorems, first and second order circuits, and frequency response. Laboratory work is an integral part of the course. Prerequisite: MATH 151; PHYS 154 or consent of the instructor. (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 320 : Software Engineering

An engineering approach to the development of large software packages. Topics include software requirements definition, object-oriented design and programming, specifications, and software testing. Consideration of societal and ethical issues surrounding software engineering. Major small group project. Prerequisite: 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. (effective Spring Semester 2013; previously CSCE 245).(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 348 : Modeling and Simulation

An introduction to the fundamental concepts of mathematical modeling and computer simulation. The course will cover building and validating abstract models and simulating them using simulation languages. Prerequisite: CSCE 144. Recommended: CSCE 270 and MATH 242. (4)

CSCE 367 : Database Management

An introduction to the fundamental concepts necessary for design, use, and implementation of database systems. 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: CSCE 231, 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 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 400 : Topics in Computer Science

Selected topic from the list below or topic of current interest in the discipline. Frequent topics are: Computer Security, Parallel Computing, Graphical User Interface Programming, Parallel Processing Topologies, Genetic Algorithms, and Neural Networks. (1 to 4)

CSCE 410 : Topics in Computer Engineering

Selected topic from the list below or topic of current interest in the discipline. Frequent topics are: Computer Security, Parallel Computing, Graphical User Interface Programming, Parallel Processing Topologies, Genetic Algorithms, and Neural Networks. (1 to 4)

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 436 : Pattern Recognition

The use of the computer to recognize patterns in data. Topics include data mining, cluster analysis algorithms, learning algorithms, and pattern processing. Issues associated with making decisions from data analyzed by machines and the societal and privacy implications and ethical concerns involved in those kinds of decisions. Includes a major small group project. Prerequisites: CSCE 270, MATH 245. (4)

CSCE 438 : Expert Systems

The development of AI systems that operate at the level of a human expert. Students will explore the structure of expert systems and use an expert system development tool. Prerequisite: CSCE 330 or consent of instructor. (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 380, MATH 245. Recommended: CSCE 343. (4)

CSCE 446 : VLSI Design

An introduction to the design of very large-scale integrated systems using computer-aided design methods. Prerequisite: CSCE 231. (2)

CSCE 449 : Computer Science in the Secondary School

Methods and materials in secondary school computer science teaching. LOGO, PILOT, etc., may be considered. Does not count toward a major in computer science. Prerequisite: CSCE 144. (2)

CSCE 455 : Compilers

An introduction to the organization, specification, and analysis of programming languages, including scanning, parsing, object code, run-time machine structures and optimization. Prerequisites: CSCE 380, MATH 245. (2)

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

CSCE 495 : Computer Science Research

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 discussion of the skills needed for good research and technical communication of that research 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. There are two semester hours given each term for a total of four semester hours. Prerequisites: Requirements and prerequisites depend on the major and degree. 1) The B.S. in computer science - design and implement a significant software program and requires CSCE 320; 2) The B.S. in computer engineering - design and implement a significant hardware component and requires CSCE 231, 270, 345; and 3) The B.A. in computer science - same as the B.S. in computer science or write a research paper and requires CSCE 270. (2)

CSCE 499B : Capstone: Senior Seminar - SR

See description for CSCE 499A. (2)