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.

Courses & Requirements

Courses You Might Take

MAT 230

Sets and Proofs

Instructor
Staff

An introduction to proof techniques (including quantifiers and induction), elementary set theory, abstract functions, infinite cardinalities, and properties of sets of real numbers; followed by an introduction to topics chosen from topology, analysis, dynamical systems, or set theory, among others.  Emphasis throughout is on developing abilities in writing proofs.

Satisfies the Mathematical and Quantitative Thought requirement.

Prerequisites
Mathematics 150 or Mathematics 160  or permission of the instructor.

CSC 121

Programming & Problem Solving

Instructor
Staff

An introduction to computer science and structured programming, including algorithmic thinking, using control structures, essential data structures, creating functions, recursion, and object-oriented programming.

Satisfies the Mathematical and Quantitative Thought requirement.
Satisfies a requirement in the Data Science interdisciplinary minor.

Prerequisites
Not open to students with credit for CSC 120 (= DIG 120), CSC 200 (=PHY 200), or CSC 209 (= BIO 209).

DIG 120

Programming in the Humanities

Instructor
Kabala

Computational methods have significantly broadened and deepened the possibilities of inquiry in the Humanities. Programming skills have allowed textual scholars, in particular, to take advantage of enormous digitized corpora of historical documents, newspapers, novels, books, and social network data like Twitter feeds to pose new questions to the written word. We can now trace the changing semantics of words and phrases across millions of documents and hundreds of years, visualize centuries-old plot structures in new ways through sentiment analysis and character networks, and solve long-standing riddles of authorship attribution-among many other exciting feats. This course offers an introduction to computer science through applications in the Humanities. Students will learn to program in the Wolfram Language, aka Mathematica. The Wolfram Language is especially well suited for humanists: its rich documentation and natural language processing capabilities ensure a gentle introduction for first-time programmers, its symbolic computation structure allows us to work with texts written in any language and any alphabet, while its Notebook environment provides an interactive medium for publishing and sharing our results with peers. Mathematica also provides a great springboard for further work in computer science, physical computing, and Digital Studies more broadly.

Satisfies a minor requirement in Computer Science.
Satisfies a requirement in the Data Science interdisciplinary minor.
Satisfies the Mathematical and Quantitative Thought requirement. 

Prerequisites
Not open to students with credit for CSC 121, CSC 200 (= PHY 200), or CSC 209 (= BIO 209).

(Spring)