Curriculum Overview 

The study of computer science includes, but is not limited to, computer programming. We learn how to solve problems by creating, implementing, and analyzing algorithms, and study how computers are organized, how they carry out their operations, how they store and transmit information, and how we control and interact with them.

Computer science has rich overlaps with a wide variety of fields, in terms of both shared skills and paradigms and interdisciplinary synergies, with particularly clear connections to mathematics, natural and physical sciences, philosophy, psychology, and the language arts. The computer is now deeply embedded in our culture and society, which means that its use and abuse is a cultural and social concern.

A major in Computer Science consists of eleven computer science courses together with a mathematics requirement. The major includes seven required computer science courses: CPS 111, 112, 222, 237, Computer Organization, 261 and 337, as well as four electives at the 200-level or above. Three electives must be chosen from Artificial Intelligence, 363, Machine Learning, Networking, and Operating Systems, and at most one may be chosen from PHI 244, PSY/SPM 305, PSY/SPM 312 or an otherwise related course outside of computer science, approved by the chairperson. Required mathematics courses are: MAT 109, 110 and either 216 or 229.

A minor in Computer Science consists of six courses: CPS 111 and 112, and four other CPS courses, including at least one at the 300-level that is not cross-listed with another department or discipline.

Opportunities exist for students to design a joint or special studies major in Bioinformatics in consultation with the Biology and Computer Science chairs.

Computer Science students have studied abroad in the following programs in recent years: Institute for Study Abroad at Butler University Programs in England, Ireland, Scotland, Australia and New Zealand. See the International Programs section of the Catalog for further information.

Courses Offered

 

A list of regularly offered courses follows. Please note the key for the following abbreviations: (A) Arts; (H) Humanities; (S) Social Sciences; (N) Natural Sciences with Laboratory; (LS) Language Studies requirement; (NSP) Natural Science in Perspective; (NW) Non-Western Cultures requirement.

111. Computer Science I.

Introduces basic concepts in computer science and computational problem solving through the design of algorithms and computational processes, modularization, and abstraction. Also introduces the processes of programming and software development as a means to put solutions into practice. Has a required lab, but does not satisfy the “Natural Science with Laboratory” requirement. Offered every Fall.                                                                                                                             Hu, A. Weaver

112. Computer Science II.

A second course in computer science and computational thinking, focusing on data structures and advanced programming. Topics include implementation and applications of data structures such as stacks, queues, linked lists, trees and graphs. Also introduces performance analysis of algorithms. Has a required lab, but does not satisfy the “Natural Science with Laboratory” requirement. Prerequisite: CPS 111 (formerly CPS 170 or 150) or permission of the instructor. Offered every Spring.                                                                                                                                                  Staff

222. Computer Science III.

This course will prepare students for advanced computer science courses. Using a production-level programming language as a tool, students will implement advanced data structures and algorithms. Students will also study advanced programming concepts and strategies for algorithm development and analysis. Through programming projects, students will explore complex tree structures, graph algorithms, greedy algorithms, dynamic programming, divide-and-conquer algorithms, and parallelism/concurrency. Prerequisite: CPS 112 and MAT 109. Offered every Fall.                   Talvitie

237. Discrete Mathematics.

Basic set theory, basic proof techniques, combinatorics (the theory of counting), and graph theory with related algorithms. Prerequisite: MAT 109. Offered every Fall. Same as MAT 237.                                                                                                                                      Feldman, Staff

261. Algorithms.

Trees, graphs and networks; further analysis of algorithms and their efficiency. Prerequisite: CPS 112 (formerly CPS 270 or 260), CPS/MAT 237.                                                                                       Staff

270 – 279. Topics in Computer Science.

Intermediate level courses.

291. Directed Reading.

Reading directed by the Computer Science staff. Permission of chairperson.

337. Theoretical Foundations of Computer Science.

An introduction to the theoretical models used to understand the capabilities and fundamental limitations of computational devices. Topics include formal languages, automata, grammars, computability, reductions, and complexity. Prerequisites: CPS 112, CPS/MAT 237.                 Talvitie

338. Computational Mathematics.

Numerical analysis as implemented on computers. Polynomial and rational approximations, numerical differentiation and integration, systems of linear equations, matrix inversion, eigenvalues, first and second order differential equations. Prerequisites: CPS 111, MAT 229. Same as MAT 338.                                                                                                                                              C. Weaver

363. Introduction to Bioinformatics.

An introduction to the field of bioinformatics, addressing some of the important biology and computer science concepts related to it, with a focus on the computational aspects. Topics include a molecular biology primer, biological sequence alignments and analysis, gene mutation patterns, phylogenic tree and construction algorithms, protein structures and functions, proteomics, application of basic machine learning algorithms, and other commonly used bioinformatics tools and resources. Prerequisites: Advanced Data Structures or CPS 222 or CPS 261.                                     Hu

370 – 379. Topics in Computer Science.

Study of specialized areas of Computer Science.

390. Independent Study.

Independent study directed by Computer Science staff. Permission of chairperson.

391. Directed Reading.

Reading directed by the Computer Science staff. Permission of chairperson.

490. Independent Study.

Independent study directed by Computer Science staff. Permission of chairperson.

491. Directed Reading.

Reading directed by the Computer Science staff. Permission of chairperson.

 

 

Topics Courses Expected to be Offered in 2015-2016

  • Machine Learning.
  • Computer Organization.