Computer Science
253.535.7400
www.cs.plu.edu
Computer Science
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-level courses
which insure a depth of knowledge and an understanding of current developments
in the field.
The Bachelor of Science degree in computer science has been accredited
by the Computing Accreditation Commission of ABET.
Computer Engineering
Computer engineering is a relatively new 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, microprocessor applications, computer design, application
software development, and artificial intelligence.
Faculty: Blaha, Chair; Brink, Hauser, Kakar, Murphy, Spillman, Wolff.
Beginning Classes: There are several beginning-level classes in computer science designed for students with various needs:Computer Science and Computer Engineering 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. Not recommended for students with strong mathematics backgrounds. This course also satisfies the Mathematical Reasoning requirement.
Computer Science and Computer Engineering 120: Computerized Information Systems
Especially appropriate for business majors and other students wishing an introduction to the computer and applications of software packages.
Computer Science and Computer Engineering 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.
Computer Science and Computer Engineering 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 Equipment: All students have unlimited access to the university Computer Center's user-room facilities. The Department of Computer Science and Computer Engineering also maintains a Solaris server and laboratories of its own. The upper-level lab contains Linux, and Windows workstations. The other lab is used as a teaching laboratory and open lab; it has 18 Windows NT workstations and computer projection equipment. All machines are on the Ethernet, are accessible through the campus network, and have full access to the Internet.
Computer Science Majors: Students majoring in computer science may choose to earn either a Bachelor of Arts degree or a Bachelor of Science degree. 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 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.
Both degrees are based on the same core courses: Computer Science and Computer Engineering 144, 270, 346, 380, 499, Mathematics 151, 152, and 245. Students should begin Computer Science and Computer Engineering 144, 270 and Mathematics 151, 152 early in their program.
A minimum grade of C- is required in all courses (including supporting courses) counted for the major.
Bachelor of Arts Major: At least 26 semester hours of computer science and engineering including 144, 270; 346 or 380; and 499. The remaining hours are from computer science and engineering courses numbered above 329 (except 345, 449, and 501-509). Up to 4 hours may be substituted from Math 340, 341, and 356. Required supporting: Math 151, 152, and 245.
Bachelor of Science Major: 44 semester hours in computer science plus 30 hours of supporting courses in mathematics and science. The 40 semester hours of computer science must include 144, 270, 343, 346, 371, 372, 380, 499, and 14 additional credits of approved elective courses, one of which must be from 367, 420, 436, or 444. Elective courses submitted for approval are to be selected from the computer science courses numbered above 329 (except 345, 449 and 501-509), 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, 245, 230 (or 331), 340 (or 341).
- A minimum of 12 hours of approved science courses which includes a year's sequence of a laboratory science. Physics 153, 154 with 163, 164 are preferred. Chemistry 120 or 125 and either 232 or 338, Biology 161, 162, Geosciences 101, 102, or 103; and 201 are acceptable.
- Approved sciences courses are: any Biology except 111,112; any Chemistry except 104, 105, 210; any Geosciences except 104; any Physics except 205; Computer Science and Engineering 345.
- The remaining hours, if any, may be chosen from any Mathematics course numbered above 329 (except 446) or any approved science course.
Minor in Computer Science: 20 semester hours including Computer Science and Computer Engineering 144, 270, and 8 additional hours of upper-division computer science courses numbered above 329 (except 345, 449, and 501-509). Required supporting: Mathematics 151, 128, or equivalent.
Minor in Information Science: 24 semester hours including Computer Science and Computer Engineering 144 and 367, Business 202, at least 4 additional hours from computer science courses numbered above 250 (except 345, 449, and 501-509), and at least 8 additional hours selected from Business 320, 375, 376, 378, or 478.
Secondary Teaching Minor: See description under School of Education.
Elementary Teaching Major: See description under School of Education.
State Endorsement Requirements: See description under School of Education.
Bachelor of science major in computer engineering: Computer Science and Computer Engineering 131, 245, 345, 346, 499; Mathematics 151, 152, 245, 253, 340 or 341 and one of 230, 331, or 356; Computer Science and Computer Engineering 144, 270, 380, 480; Physics 153, 154, 163, 164; Chemistry 120 or 125; at least 4 semester hours chosen from Physics 233, 234, 333, 334, 336, or Chemistry 341; 10 additional semester hours from any upper-level Computer Science and Computer Engineering course (except 449 and 501-509).
Minor in electrical engineering: Computer Science and Computer Engineering 131, 245, 345, 346; and 144. Required supporting: Chemistry 120 or 125; Math 151, 152, and 245 or 253; Physics 125, 126, 135, 136 or 153, 154, 163, 164.
Back to topCourse Offerings
A grade of C or higher is strongly recommended in all prerequisite
courses.
115 Solve It With the Computer - MR, NS
Teaches how computer use can be combined with mathematical reasoning
to solve problems. Spreadsheet package and other computer tools to solve
problems from elementary statistics, financial transactions, and other
areas where mathematics and data are used in every day life. Prerequisite:
fulfillment of the PLU entrance requirement in mathematics. II (4)
120 Computerized Information Systems - NS
Introduction to computers including management information systems development,
telecommunications, operating systems, spreadsheets, graphics, and database
management. Includes a computer laboratory component. Prerequisite:
MATH 128 or 140 or equivalent. I II (4)
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. I, II (2)
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:
4 years of high school mathematics or MATH 140 or equivalent. I II (4)
199 Directed Reading
Supervised study of topics selected to meet the individual's needs or
interests, primarily for students awarded advanced placement in computer
science. Admission only by department invitation. (1 or 2)
245 Electrical Circuits - NS
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.
I (4)
270 Data Structures - NS
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: a grade of C- or higher in 144. I II (4)
291 Independent Studies - NS
Prerequisite: consent of department chair. (1-4)
330 Introduction to Artificial Intelligence - NS
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: 270, MATH 245.
a/y (4)
343 Programming Language Concepts - NS
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. Prerequisite:
270. I, II (4)
345 Analog Electronics - NS
An introduction to analog integrated circuit design techniques, including
single and multistage amplifiers, frequency response and feedback methods.
Laboratory work is part of the course. Prerequisite: 245 II (4)
346 Digital Electronics - NS
Analysis of digital design techniques, including coverage of combinational
logic, flip flops, registers, counters, and timing circuits. The hardware
description language WHDL will be taught and used in several projects.
Prerequisite: 144. I II (4)
348 Modeling and Simulation - NS
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:
144. Recommended: 270 and either MATH 341 or 345. a/y (4)
367 Database Management - NS
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: 144 Recommended: 270. II (4)
371 Design and Analysis of Algorithms - NS
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 algorithm. Prerequisite: 270, MATH
245. I (4)
372 Algorithms, Machines, and Grammars - NS
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 text algorithms. Prerequisite: 371. II
(4)
380 Assembly Language and Computer Organization - NS
Fundamentals of assembly language and computer organization. Topics
include data and instruction formats, addressing, linking, macro definition,
interrupt processing, computer architecture, and interface between assembly
language and high-level programming languages. Prerequisite: 270. Strongly
recommended: 346. I, II (4)
385 Computer Architecture - NS
An introduction to the structure and operation of large computer systems.
Topics include data representation, memory structure, I/O processing,
multiprocessing systems such as parallel, pipeline, and stack machines.
Examples of the architecture of several large systems are analyzed.
Prerequisite: 380, MATH 245. a/y (2)
386 Computer Networks - NS
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: 144. Recommended: 270, 346;
MATH 341 or 345. I (4)
391 Problem Solving and Programming Seminar - NS
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: 270 or consent of
instructor. I (1)
400 Topics in Computer Science - NS
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. J S a/y (1-4)
410 Topics in Computer Engineering - NS
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. J S a/y (1-4)
412 Computer Graphics - NS
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:
270 and MATH 230 or 331. a/y (4)
420 Software Engineering - NS
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. Prerequisites: 270, MATH 245. a/y (4)
436 Pattern Recognition - NS
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: 270, MATH 245. a/y (4)
438 Expert Systems - NS
The development of AI systems which operate at the level of a human
expert. Students will explore the structure of expert systems and use
an expert system development tool. Prerequisite: 330 or consent of instructor.
a/y (4)
444 Operating Systems - NS
An introduction to computer operating systems including process scheduling,
memory management, and file systems. Major small group project. Prerequisite:
380, MATH 245. I (4)
446 VLSI Design - NS
An introduction to the design of very large-scale integrated systems
using computer-aided design methods. Prerequisite: 346. II (2)
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: 144. a/y II (2)
455 Compilers - NS
An introduction to the organization, specification, and analysis of
programming languages, including scanning, parsing, object code, run-time
machine structures and optimization. Prerequisites: 380, MATH 245. a/y
(2)
480 Microprocessors - NS
Study of microprocessors and their use in microcomputer systems. Prerequisites:
346, 380. II (4)
491 Independent Studies
Prerequisite: consent of department chair. (1-4)
492 Computer Science Research
Involvement in an ongoing research project in computer science under
the supervision of a faculty member. Prerequisite: consent of instructor.
(1-4)
499 Capstone: Seminar - SR
Written and oral presentation of a project in a topic of interest by
the student under the supervision of a faculty member. Discussion of
the skills needed for good research and technical communication of that
research. Study of the social implications of computing. Completion
of this course satisfies the core requirement for a senior capstone
seminar/project. Lasts two semesters 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. Final presentations are given during the spring semester.
There are 2 credits given each term for a total of 4 credits. Prerequisite:
Senior Computer Science or Computer Engineering major or consent of
department chair. I II (2)
503 Workshops in Educational Technology
Workshops designed to expand teachers' knowledge about the application
of new computer and related technology in educational settings Does
not count toward degrees in computer science. (1-4)