The Computer Science Major and Minor at Davidson

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

A major or minor in Computer Science supports students interested in core computing ideas and techniques, and in the application and expression of those concepts for the benefit of society. Recent graduates work in industry or pursue graduate degrees in computer science and related fields at programs including Stanford, Duke, and University of Maryland College Park. Students regularly compete in programming competitions and hack-a-thons, collaborate with faculty on research, and publish and present papers at international computer science conferences. Student organizations promoting diversity in computer science include FICSIT and D-Code.

Students interested in declaring a computer science major may ask any continuing faculty member to serve as their major advisor, with whom they will meet to complete the Computer Science Major Declaration Form (PDF).

Students interested in declaring a computer science minor submit the Computer Science Minor Declaration Form (PDF) to the department chair.

Courses You Might Take

CSC 370

Machine Reasoning


A survey of core algorithms and techniques from the field of machine reasoning and decision-making. Topics include search, game playing, constraint satisfaction problems, planning, reinforcement learning, knowledge representation, and logic.  

Counts towards the Mathematics major and minor.
Counts towards the Computer…

CSC 121

Programming & Problem Solving


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…

CSC 221

Data Structures


A study of abstract data types, including lists, stacks, queues, and search tables, and their supporting data structures, including arrays, linked lists, binary search trees, and hash tables. Implications of the choice of data structure on the efficiency of…