Support WU
A-Z Index
Looking for the department's previous website

Computer Science

Collins Science Center
Willamette University
900 State Street
Salem, Oregon 97301

503-370-6077 voice

503-370-6773 fax

Program Requirements

Computer Science View this department's website

The computing revolution is transforming our world in ways we are only beginning to understand, but it is clear that a knowledge of computing is invaluable to any 21st-century citizen. Computer science is the study of the principles of computing: it is founded in the basic skills of programming and problem-solving, but a university education in the subject requires the development of deeper insights into the nature of algorithms, the languages we use to describe them and the machines on which we realize them. In addition to these subjects, students at Willamette have the opportunity to explore advanced topics ranging from 3D graphics to artificial intelligence, from genetic algorithms (in which populations of programs are "bred" for success) to the theoretical foundations of language and computation. Whichever topics they pursue, the Willamette curriculum is designed to provide students with a principled education that will support their goals of life-long learning in a constantly-changing field.

Introductory computing classes at Willamette provide non-majors and pre-majors with a broader perspective on computing, build basic skills which can be applied to other fields and foster the creative use of graphics and animation in collaboration with music and the arts. These classes are designed to synergize with other studies and thus to contribute to a broad liberal-arts education.

The study of computer science opens up a number of options in later life: many graduates with a computer science major or minor find careers in programming, design, consulting or system support. Other choose to deepen their studies in graduate school, ultimately providing contributions to basic research in the field or pursuing influential development opportunities in industry. Finally, some students combine these options, first building up practical work experience in a business or industrial setting and then consolidating these experiences through graduate study.

The University has excellent computing facilities open to students, including both general-access labs with Windows and Macintosh computers and a number of labs with specially-selected equipment to support graphics or laboratory use. Wired access in dorm rooms and a campus-wide wireless network allow students great flexibility in the pursuit of their studies, in communication with family and friends and in general access to the resources of the Internet.

Entering students with a score of five on the Computer Science Advanced Placement exam are awarded credit for CS 231, Introduction to Programming. Students with scores of four should confer with the department about possible credit.

Requirements for the Computer Science Major (12 Credits)

8 credits in Computer Science, 4 in Mathematics

  • CS 231 (QA*) Introduction to Programming (1)
  • CS 241 (QA) Introduction to Computer Science: Data Structures (1)
  • CS 343 Analysis of Algorithms (1)
  • CS 353 Architecture and Compilers (1)
  • CS 496 (W) Senior Seminar in Computer Science (1)
  • MATH 142 (QA*) Calculus II (1)
  • MATH 251 (W) Foundations of Advanced Mathematics (1)
  • MATH 263 (QA) Discrete Mathematics (1)
  • Three additional credits in courses numbered CS 440 through CS 459

One credit from the following (1)

  • MATH 253 (QA) Linear Algebra (1)
  • MATH 349 (QA) Numerical Analysis (1)
  • MATH 366 (QA) Applied Mathematics: Optimization (1)
  • MATH 466 Probability and Statistics I (1)

Requirements For The Computer Science Minor (5 Credits)

  • CS 231 (QA*) Introduction to Programming (1)
  • CS 241 Introduction to Computer Science: Data Structures (1)
  • CS 343 Analysis of Algorithms (1) OR
  • CS 353 Architecture and Compilers (1)
  • Two additional Computer Science credits at the 300 or 400 level (2) (Excluding CS 391 and CS 392)

Faculty

  • Karl Fritz Ruehr, Associate Professor of Computer Science, Chair
  • James R. Levenick, Associate Professor of Computer Science
  • Genevieve B. Orr, Professor of Computer Science