KSAWorks
KSAWorks
Knowledge • Skills • Abilities
Davidson College · Courses

CSC

36 courses with the subject CSC, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.

CSC 108Exploring Computer Science

Instructor Staff An introduction to the study of computational and algorithmic processes and the insight such study provides into age-old questions about human creativity and intelligence, the nature of social networks, evolution and self-replicating systems, mind-body duality, language, and economic systems. Students will learn to read and understand short computer programs in a beginner-friendly language. Satisfies the Mathematical and Quantitative Thought requirement. Prerequisites & Notes This course is not open to students with prior credit for (or concurrently enrolled in) any major or minor-eligible CSC course, CSC/MAT220, or MAT 230. No previous experience with computing is needed or assumed.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 110Data Science and Society

Instructor An introduction to methods of data science, including computer programming, data visualization, and statistical analysis. Students will collect, process, analyze, and present data in order to expose and help each other understand issues of social and economic justice. All work will be done in R, a freely available data analysis software package. Satisfies the Mathematical and Quantitative Thought requirement. Satisfies an elective requirement in the Data Science interdisciplinary minor (optional introductory course to the minor). Satisfies the Justice, Equality, and Community requirement.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 120Programming in the Humanities (= DIG 120)

Instructor Staff 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 core requirement in the Computer Science minor. Satisfies a requirement in the Data Science interdisciplinary minor. Satisfies the Mathematical and Quantitative Thought requirement. Prerequisites & Notes Not open to students with credit for CSC 121, PHY 240, or CSC 209 (= BIO 209).

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 121Programming and 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 a core requirement in the Computer Science minor. Satisfies a requirement in the Data Science interdisciplinary minor. Satisfies Digital Studies major and minor requirements. Satisfies the Mathematical and Quantitative Thought requirement. Prerequisites & Notes Not open to students with credit for CSC 120 (= DIG 120), CSC 240 (=PHY 240), or CSC 209 (= BIO 209).

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 171Applied Machine Learning

Instructor Condor A survey of the field of machine learning, with an applied introduction to the fundamental algorithms in the field. Topics include techniques for regression, classification, ensemble methods, and dimensionality reduction. Satisfies Data Science minor requirement. Satisfies Math and Quantitative Thought requirement. Prerequisites & Notes Requires comprehension of basic probability and statistics, and prior programming experience with a language like python, R or Java.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 209Bioinformatics Programming (= BIO 209)

Instructor Staff (Cross-listed as Biology 209.) An interdisciplinary introduction to computer science and structured programming using the Python programming language in the context of biological datasets and applications, including algorithms for analyzing genomic data. Satisfies the Mathematical and Quantitative Thought requirement. Satisfies a core requirement in the Computer Science minor. Satisfies a requirement in the Data Science interdisciplinary minor. Prerequisites & Notes Not open to students with credit for CSC 120 (=DIG 120), CSC 121 or PHY 240.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 221Data Structures

Instructor Staff 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 the implementation of an algorithm. Efficient methods of sorting and searching. Satisfies a core requirement in the Computer Science major and minor. Satisfies Mathematics major and minor requirement. Counts as an elective in the Data Science interdisciplinary minor. Satisfies the Mathematical and Quantitative Thought requirement. Prerequisites & Notes CSC/DIG 120, CSC 121, BIO/CSC 209, PHY 240, or permission of instructor.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 250Computer Organization

Instructor Staff 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, digital logic building blocks (logic gates, flip-flops), computer memory, assembly and machine code, hardware components and their organization, and the C programming language. Satisfies a core requirement in the Computer Science major and minor. Prerequisites & Notes CSC 120, 121, 209, 240, or permission of instructor.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 275Critical AI Studies (DIG 275)

Instructor Staff This course examines the ethical, social, and cultural dimensions of artificial intelligence. Through fiction, film, historical and theoretical readings, and hands-on work with AI tools and techniques, students will explore critical questions about AI and machine learning. The course will also critique representations of AI in popular culture. The course places a particular emphasis on understanding the intersection of AI with power, justice, labor, and the environment. This course does not count for the Computer Science major or minor. Satisfies Digital and Screen Media major requirement. Satisfies Digital Studies minor requirement. Counts as an elective in the Data Science interdisciplinary minor. Satisfies Justice, Equality and Community requirement.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 312Software Engineering

Instructor Staff This course introduces the fundamental practices and principles of Software design and implementation. This course goes beyond designing software. Students will learn to set the requirements, plan, design, implement, and test software. The course covers various software development approaches, including Scrum, XP, waterfall, etc. The semester-long project will help students learn to manage the team and address challenges that may arise internally and externally. Satisfies a requirement in the Computer Science major and minor. Prerequisites & Notes Course

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
Prerequisite
CSC 221.
CSC 321Analysis of Algorithms

Instructor Staff 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. Satisfies a core requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Counts towards the Mathematics major and minor. Prerequisites & Notes CSC 221 and one of CSC/MAT 220 or MAT 230, or permission of instructor.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 322Programming Languages

Instructor Staff Principles of programming languages, including lexical and syntactic analysis, semantics, types, functions and parameters, and memory management. Programming paradigms, drawn from imperative, object-oriented, functional, and logical programming languages. Satisfies an elective requirement in the Computer Science major and minor. Prerequisites & Notes CSC 221.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 324Theory of Computation

Instructor Pulaj, Ramanujan Mathematical models of computation, and the fundamental capabilities and limitations of computers. Topics include regular languages, finite automata, context-free languages, grammars, Turing machines, the Chomsky hierarchy, the halting problem, algorithms, decidable and undecidable problems, algorithmic reductions, complexity theory, the classes P, NP, and PSPACE, and NP-complete problems. Satisfies an elective requirement in the Computer Science major and minor. Counts towards the Mathematics major and minor. Prerequisites & Notes One of MAT/CSC 220 or 230.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 325Linear and Discrete Optimization

Instructor Staff This course will serve as an introduction to the theory of linear and discrete optimization, which underlies algorithmic methods with connections to both pure and applied mathematics. We will learn fundamental techniques that solve linear programs and discrete optimization problems in a mathematically rigorous way. The focus of the course will be the interplay between geometry, linear algebra and the resulting duality theory and simplex method. Within this framework, we will learn how to prove that an algorithmic solution to a problem of interest is optimal. Satisfies an elective requirement in the Computer Science major and minor. Counts towards the Mathematics major and minor. Prerequisites & Notes MAT 150, one of CSC 120, CSC 121, CSC 240, or CSC 209, and one of CSC/MAT 220, or MAT 230.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 329Cryptology

Instructor Staff The study of making and breaking secret codes, including classical ciphers and their cryptanalysis, modern symmetric ciphers, and public-key systems, and their application in cryptographic protocols for secrecy, key exchange, information assurance, and authentication. Analysis of the security of cryptosystems using tools from mathematics and computer science. Satisfies as an elective requirement in the Computer Science major and minor. Counts towards the Mathematics major and minor. Counts as an elective in the Social Science track of the Applied Mathemetics interdisciplinary minor. Prerequisites & Notes MAT 150, and one of CSC/MAT220 or MAT 230

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 351Operating Systems

Instructor Mendes Operating Systems are collections of software services that manage physical hardware resources, from small sensors to complex servers, and provide applications with a higher-level interface for common tasks. Typical responsibilities of operating systems include task and memory management; input and output abstractions and services (which includes file systems and networking); and authentication / authorization. For workstations and servers, operating systems also commonly include the means to define and enforce security policies, to perform virtualization, and to manage energy consumption, among others. In our course, students develop in practice the crucial parts of a modern operating system, and develop scientific writing and public presentation skills in an informal and rewarding class environment. Satisfies the systems elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Prerequisites & Notes CSC 221 and CSC 250

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 352Blockchains

Instructor Mendes Blockchains are distributed computer systems designed to maintain a decentralized ledger, and also collectively execute & validate public computations, assuming an environment with open admittance but without mutual trust. In this course, we study the computational ideas in the design and implementation of blockchains, including public-key cryptography, data structures for state management, consensus protocols for conflict resolution, virtual machines for smart contract execution, security aspects of trustless / permissionless systems, and scalability and synchrony issues in computer networks. We also study the anatomy of popular decentralized finance applications from a software design perspective(not financial perspective). The course adopts a hands-on approach: students solve practical programming assignments during the course, and develop a final project designed jointly with the professor. Satisfies the Systems elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Prerequisites & Notes CSC 221 and one of CSC/MAT 220 or MAT 230

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 354Applied Cryptography

Instructor Staff Cryptography is a pervasive technology rooted in Mathematics, with well-known applications in media delivery, payment networks, privacy systems, communications & military technologies, among many others. In this course we comprehend and abstract the mathematical foundations of cryptographic protocols by first carefully analyzing their mathematical assumptions and requirements, and subsequently implementing practical projects relying on our previous analytical study. Our course adopts a hands-on approach: our projects are useful in practice, and are developed in consultation with the professor throughout the semester. Our projects focus in the areas of web privacy, blockchain applications, and network applications. Satisfies the Systems elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor Prerequisites & Notes CSC 221 and one of CSC/MAT 220 or MAT 230

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 355Compiler Design

Instructor Staff The course provides an overview of fundamental principles in compiler design. These principles encompass lexical, syntactic, and semantic analysis involving finite and push-down automata, top-down and bottom-up parsing, error detection and recovery, semantic actions, and code generation. Satisfies the Systems elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor Prerequisites & Notes CSC 221 and CSC 250

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 356Computer Security

Instructor Staff This course offers a comprehensive introduction to computing systems security, combining fundamental concepts with practical applications. It covers essential topics such as threat models, security policies, security services, and physical, operational, and organizational security. Students will also explore the role of people in security, learn the basics of cryptography and public key infrastructure, and study system hardening, secure coding, and secure application development. Topics include communication security, software security, operating systems security, network security, web security, and hardware-based security. Satisfies the Systems elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Prerequisites & Notes CSC 221 and CSC 250

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 357Concurrent and Parallel Computing

Instructor Staff Core concepts, problems, and techniques related to the construction and maintenance of highly-scalable concurrent and parallel systems, including how computer and network architecture influence performance. Both theoretical and practical perspectives are considered as tools to analyze modern systems. Satisfies the Systems elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Prerequisites & Notes CSC 221

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 358Real-Time Systems

Instructor Nemitz This introduction to real-time systems begins with grouping such systems under several fundamental classifications. We will develop a model to reason about real-time systems and cover a sampling of scheduling algorithms for uniprocessor systems. We will apply a set of tests to determine whether a given scheduling algorithm guarantees that timing requirements will be met. We will also cover resource access protocols, multiprocessor scheduling, and recent research topics. This course builds on the reasoning skills developed in CSC 220 and the knowledge of basic computer architecture covered in CSC 250. Satisfies the Systems elective requirement in the Computer Science major and minor. Prerequisites & Notes CSC 250 and one of CSC/MAT 220 or MAT 230

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 359Networks and Distributed Systems

Instructor Staff Computer networks have revolutionized the way societies create and communicate information. In particular, the Internet is a massive deployment of network algorithms and systems, with lasting social, scientific, and economical impact. Network algorithms and systems are specified by protocols, which allow different organizations to interoperate. Protocols are designed to handle network failures and non-cooperative agents, and to operate at large scale without critical performance issues. Algorithms and systems associated with network protocols are elegant and significant applications of fundamental Computer Science ideas. This course studies fundamental Internet protocols such as ARP, IP, ICM, and TCP; higher-level application protocols, such as DNS, HTTP, SMTP, and security-related protocols; as well as medium access control specifications for Ethernet and wireless networks. All of these protocols are studied from a perspective that emphasizes their algorithmic and design-related aspects, with focus on the fundamental computer science principles underlying the associated algorithms and systems. Satisfies the Systems elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Prerequisites & Notes CSC 221 and CSC 250

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 361Computer Graphics

Instructor Staff Overview of 2D and 3D computer graphics techniques: line drawing routines, antialiasing, 3D object representation, culling, z-buffers, a-buffers, illumination and shading models, ray tracing, color models, the graphics pipeline, levels of detail, and image processing. Emphasis on understanding and implementing computer graphics algorithms and creating computer generated images using OpenGL and C++. Satisfies the Applications elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Counts towards the Mathematics major and minor. Prerequisites & Notes MAT 140 or MAT 150 and CSC 221

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 362Data Visualization

Instructor Staff An introduction to the theory and application of graphical representations of data. Topics include: the human visual system, low-level vision processing, attentive vs. preattentive processes, color vision and color map design, interaction, space perception, and visualization design. Satisfies the Applications elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Counts as an elective in the Data Science interdisciplinary minor. Prerequisites & Notes CSC 221

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 363Human Computer Interaction

Instructor Williams The field of Human Computer Interaction (HCI) encompasses the design, implementation, and evaluation of interactive computing systems. This course will provide a survey of HCI theory and will provide web-based implementation practice of these theories. The course will address the presentation of information and the design of interaction from a practical, human-centered perspective. Through a combination of technical topics in interface and interaction design, students will explore the capabilities and limits of both humans and computers. Satisfies Computer Science major and minor requirement. Satisfies a major requirement in Digital & Screen Media (CIS) Satisfies an interdisciplinary minor requirement in Digital Studies Prerequisites & Notes CSC 221 or DIG 245

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 364Image Processing

Instructor Staff An introduction to image processing techniques for digital images: image file formats, histograms, point operations, filters, edge detection, convolution, interpolation, and Fourier transforms. There will be an emphasis on understanding and implementing algorithms and processing images. Satisfies the Applications elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Prerequisites & Notes CSC 221 and MAT 140, 150, or 160.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 370Machine Reasoning

Instructor Staff 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. Satisfies the Applications elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Counts towards the Mathematics major and minor. Prerequisites & Notes CSC 221 and one of CSC/MAT 220, or MAT 230

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 371Machine Learning

Instructor Staff A survey of the field of machine learning, with an introduction to the fundamental algorithms in the field and the theory underpinning them. Topics include techniques for regression, classification, ensemble methods, and dimensionality reduction. Satisfies the Applications elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Counts towards the Mathematics major and minor. Counts as an elective in the Data Science interdisciplinary minor. Prerequisites & Notes CSC 221 and one of CSC/MAT 220 or MAT 230

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 372Natural Language Processing

Instructor Staff In this course, students will be introduced to the field of natural language processing (NLP), providing them with a comprehensive understanding of the diverse methods employed to analyze text within computational systems. As NLP is inherently interdisciplinary, the course draws from both linguistics and computer science, and we explore text analysis methods applicable in a variety of fields such as computational social science, digital humanities, and computational journalism. The course will place a strong emphasis on core NLP algorithms utilized across various practical applications, including part-of-speech tagging, parsing, semantic labeling, and machine translation. Additionally, we will explore the linguistic phenomena that these algorithms aim to capture and model. Students will actively engage in implementing these algorithms. Satisfies the Applications elective requirement in the Computer Science major. Satisfies an elective requirement in the Computer Science minor. Satisfies a requirement for the Data Science Interdisciplinary minor. Prerequisites & Notes CSC 221 and one of CSC?MAT 220 or MAT 230

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 374Deep Learning

Instructor M. Kuchera This course focuses on theoretical foundations and practical applications of deep learning, the subfield of machine learning concerned with large neural networks trained on large data sets. Topics include training models by stochastic gradient descent, implementing various neural network architectures, and choosing network hyperparameters. Application areas include classification, regression, and reinforcement learning problems. Students will implement their own neural networks from scratch and get experience using state-of-the-art deep learning libraries. Satisfies Mathematics major and minor requirement. Satisfies Computer Science major requirement. Satisfies Data Science minor requirement. Satisfies Applied Math minor requirement. Prerequisites & Notes CSC 221 and MAT 150

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 381Seminar: Rotating Topics

Instructor Staff Advanced topics in computer science offered on a periodic basis. Prerequisites & Notes Permission of the instructor.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 390Independent Study

Instructor Staff Independent study under the direction and supervision of a faculty member who reviews and approves the topic(s) of the independent study and who determines the basis for the evaluation of students’ work. Does not carry credit towards the Computer Science major or minor. Prerequisites & Notes Open to qualified students with the permission of the department chair.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 396Independent Study

Instructor Staff Independent study under the direction and supervision of a faculty member who reviews and approves the topic(s) of the independent study and who determines the basis for the evaluation of students’ work. Satisfies an elective requirement in the Computer Science major and minor. Prerequisites & Notes Open to qualified students with the permission of the department chair.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 495Independent Study

Instructor Staff Independent study for students pursuing Honors in Computer Science, under the direction and supervision of a faculty member who reviews and approves the topic(s) of the independent study and who determines the basis for the evaluation of students’ work. Prerequisites & Notes Open to qualified students with the permission of the department chair.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu
CSC 496Honors Independent Study

Instructor Staff Independent study for students pursuing Honors in Computer Science, under the direction and supervision of a faculty member who reviews and approves the topic(s) of the independent study and who determines the basis for the evaluation of students’ work. Prerequisites & Notes Open to qualified students with the permission of the department chair.

Subject
CSC
Type
course
Edition
2026-2027
Catalog
2026-2027 Catalog
Source
catalog.davidson.edu

Source: Davidson College's catalog, linked per course · table learning_unit · CourseShelf publish 61