The Computer Science Major and Minor at Davidson

Computer science combines problem-solving skills with cutting-edge technology to develop automated solutions and build systems for individuals and societies in diverse applications.

A major or minor in Computer Science can support the students interested not only in the creative, beautifully abstract computing problems and techniques, but also in the application and expression of those sophisticated concepts for the benefit of sciences and societies. Several of our students have entered distinguished graduate programs in computer science at Stanford, Duke, and Washington University in St. Louis, after earning their undergraduate degree. Both faculty and students have won national and international recognition for software development within physics and bioinformatics.

Info Circle

Ceiling Exception Request

The Department of Mathematics and Computer Science does not keep "waiting lists" for classes, however, by the end of the first week of classes, the chair will make any ceiling exceptions on a case-by-case basis. If you think a MAT or CSC course should be considered for a ceiling exception, please complete a request.

Ceiling Exception Request

Courses You Might Take

PHY 200

Computational Physics

Instructor
M. Kuchera

(Cross-listed as CSC 200) This course is an introduction to computer programming and computational physics using Python. No prior programming experience is necessary. This course will provide studetns with the skills required to write code to solve…

CSC 321

Analysis of Algorithms

Instructor
Wiedenbeck

Algorithm design strategies, including greedy, divide-and-conquer, and dynamic programming methods.  Advanced data structures, including balanced search trees, graphs, heaps, and priority queues.  Advanced methods of searching and sorting.  Computational complexity and analysis of algorithms.  NP-complete problems.

Counts towards…

CSC 250

Computer Organization

Instructor
Wiedenbeck

An introduction to how digital computers are built and the process by which computer programs expressed in a high-level language are translated into signals to be routed on a digital circuit board. Topics include data representation and manipulation…