KSAWorks
KSAWorks
Knowledge • Skills • Abilities
Swarthmore College · Courses

CPSC

41 courses with the subject CPSC, 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.

CPSC 011Design Justice: Towards Design and Computation for the Public Good1

Cross-listed as SOAN 017C This course explores theories and practices of “design justice.” We begin by interrogating how design and computation have been linked to exploitation, militarism, and the reproduction of social hierarchies. We will then explore the potential for liberatory design and computation through methods and traditions such as critical and speculative design, participatory action research, feminist data science and human-computer interaction. We will explore how design justice has been enacted in domains such as health and medicine, urban design and architecture, and education. Through this course students will identify and develop a design justice project in a domain of their choosing. Social sciences. 1 credit. Eligible for FMST. Fall 2026. Huber.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 012Tech, Money, Power: Critical Perspectives on Computing and Capitalism1

This course interrogates digital technology by “following the money”: How are technologies designed to produce power and money - and for whom? How do hierarchies of race and gender contribute to exploitation in the tech industry? How do governments mitigate - or contribute to - the power of the tech industry? How are emerging technologies like AI harming workers, disrupting industries, and impacting the environment? Who is fighting back, and how? This course explores examples from the history of computing, science and technology studies, and critical political economy. Your final project will “follow the money” for a technology of your choice, and imagine how it might be made otherwise. Social Sciences. 1 credit. Eligible for Digital Humanities(DGHU). FMST. Access the class schedule to search for sections.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 013Computational Linguistics1

Cross-listed as LING 073 See LING 073 Natural Science. 1 credit. Eligible for ASIA, COGS, ESCH, GLBL-core.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 014Command Line Competency

This course builds on the set of software tools used to support programmers that is first presented in CPSC 021. Students will learn how to efficiently use a terminal emulator and other utilities to support development of programs, as well as become self-sufficient in seeking out additional documentation and resources. Topics include managing directory structures, practice with common Linux utilities, and practice searching and reading technical documentation. Become a Linux power user! Students may also take this course after completing one of CPSC 031 or CPSC 035.

Subject
CPSC
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 021
Corequisite
This course is
CPSC 015First-Year Seminar: Ethics and Technology1

(Cross-listed as PHIL 007 ) Natural science and engineering. 1 credit.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 019Ethics & Technology1

Cross-listed with PHIL 027 Artificial intelligence, machine learning, and other forms of technology have become pervasive in our daily lives. With this technology comes serious ethical questions. How do we use, create, and regulate all of it responsibly? Philosophers are often well-equipped to wrestle with ethical questions, but less well-equipped to wrestle with questions of technology itself. Computer scientists are well-equipped to deal with the problems and challenges of technology, but less well-equipped to deal with the ethical problems and challenges that technology can pose. In this co-taught course, we bring together the two fields to address ethical questions involving social media, data mining, machine learning, artificial intelligence, and other topics.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
First- and second-year students must complete one introductory level PHIL course before enrolling in this course. Natural Science. 1 credit. Eligible for COGS. Fall 2026. Thomason. Soni. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 021Introduction to Computer Science1

This course presents fundamental ideas in computer science while building skills in software development. Students implement algorithms as programs in a high-level programming language. Introducing object-oriented programming and data structures allows students to construct correct, understandable, and efficient algorithms. CPSC 031 and CPSC 035 present a deeper coverage of these topics. CPSC 021 is appropriate for all students who want to be able to write programs. It is the usual first course for computer science majors and minors. Students with Advanced Placement credit or extensive programming experience may be able to place out of this course. Students who think that they may fall into this latter category should consult with any computer science faculty member. Natural sciences and engineering practicum. Lab work required, programming intensive. 1 credit. Eligible for DGHU Fall 2026. Danner. Fontes. Webb. Spring 2027. Staff. Fall 2027 Staff. Spring 2028 Staff.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 031Introduction to Computer Systems1

This course is a broad introduction to computer science that focuses on how a computer works and how programs run on computers. We examine the hardware and software components required to go from a program expressed in a high-level programming language like C or Python to the computer actually running the program. This course takes a bottom-up approach to discovering how a computer works. Topics include theoretical models of computation, data representation, machine organization, assembly and machine code, memory, I/O, the stack, the operating system, compilers and interpreters, processes and threads, and synchronization. This course also introduces parallel and distributed computing with a specific focus on shared memory parallelism for multicore and SMP systems.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 021 or equivalent. Natural sciences and engineering practicum. Lab work required. 1 credit. Fall 2026. Newhall. Spring 2027. Staff. Fall 2027 Staff. Spring 2028 Staff. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 033Foundations of AI & Machine Learning1.0

This course provides a broad introduction to the foundations of modern artificial intelligence (AI) and will also develop advanced programming and data processing skills essential for upper-level courses in computer science. Topics will include advanced Python programming, mathematical foundations, data processing, machine learning methodology, neural networks, and large language models. Throughout the course, students will examine the ethical issues that arise in AI and its societal impacts. The course culminates in a final project. Students will gain core skills that will prepare them for a deeper examination of these issues in both later courses and independent projects. The course is suitable for any student interested in gaining a deeper understanding of AI regardless of their intended major.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
Completion of CPSC 021 or its equivalent. Natural sciences and engineering practicum. 1.0 credit. Fall 2026. Meeden. Mitchell. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 035Data Structures and Algorithms1

This course completes the broad introduction to computer science begun in CPSC 021 . It provides a general background for further study in the field. Topics to be covered include object-oriented programming in C++, advanced data structures (trees, priority queues, hash tables, graphs, etc.) and algorithms, and software design and verification. Students will be expected to complete several programming projects illustrating the concepts presented.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 021 or equivalent. Discrete Mathematics is recommended. Natural sciences and engineering practicum. Lab work required. 1 credit. Fall 2026. Brody. Spring 2027. Staff. Fall 2027 Staff. Spring 2028 Staff. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 035XCompetitive Programming

CPSC 035X is an attachment to CPSC035 for students who wish to strengthen their foundation in data structures and C++ programming. Topics will include Input/Output, applications of data structures including Lists, Dictionaries, Stacks and Queues, debugging, and graph algorithms. Each week students will work on problem sets consisting of competitive programming style coding problems.

Subject
CPSC
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
Students must be currently enrolled in CPSC 035 and must apply for admission. .05 Credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 040Computer Graphics1

(Cross-listed as ENGR 026 ) Computer graphics focuses on the creation and manipulation of digital imagery. We cover the modeling, rendering, and animating of geometric object in two (2D) and three (3D) dimensions. Topics include drawing algorithms for 2D geometric primitives (points, lines, polygons), geometric matrix transformations, projective geometry, geometric object representations, hidden surface removal, hierarchical modeling, shading, lighting, shadows, ray-tracing, procedural (non-geometric) modeling, texture mapping, and animation. Labs will explore various tools for rendering graphics, including pixel buffers, OpenGL, shading languages, and general purpose GPU computing. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 , CPSC 035 and Linear Algebra required or permission of the instructor.
Corequisite
(Linear Algebra may be taken concurrently.) Natural sciences and engineering practicum. Lab work required. 1 credit. Eligible for DGHU Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 041Algorithms1

The study of algorithms is useful in many diverse areas. As algorithms are studied, considerable attention is devoted to analyzing formally their time and space requirements and proving their correctness. Topics covered include abstract data types, trees (including balanced trees), graphs, searching, sorting, NP complete optimization problems, and the impact of several models of parallel computation on the design of algorithms and data structures. Group 1 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 required. Mathematics background at the level of Linear Algebra or higher is required (may be taken concurrently). Natural science and engineering. Lab work required. 1 credit. Eligible for DGHU Fall 2026. Lutz. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 043Computer Networks1

This course covers the design, implementation and applications of computer networks, primarily focused on the protocols that enable the Internet and network applications. Additionally, this course will cover network security, such as viruses, worms, and botnets. Topics will include: data communication theory; packet-switched routing; the Internet and its protocols; socket and network application programming; overlays and P2P networks; and network security. Group 2 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 and CPSC 035 Natural science and engineering. Lab work required. 1 credit. Fall 2026. Ware. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 044Database Systems1

This course provides an introduction to relational database management systems. Topics covered include data models (ER and relational model); data storage and access methods (files, indices); query languages (SQL, relational algebra, relational calculus, QBE); query evaluation; query optimization; transaction management; concurrency control; crash recovery; and some advanced topics (distributed databases, object relational databases). A project that involves implementing and testing components of a relational database management system is a large component of the course. Group 2 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 and CPSC 035 Natural science and engineering. Lab work required. 1 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 045Operating Systems1

(Cross-listed as ENGR 022 ) This course is an introduction to the theory, design, and implementation of operating systems. An operating system is the software layer between user programs and the computer hardware. It provides abstractions of the underlying hardware that are easier to program, and it manages the machine’s resources. The following topics will be covered: processes (including synchronization, communication, and scheduling); memory (main memory allocation strategies, virtual memory, and page replacement policies); file systems (including naming and implementation issues); I/O (including devices, drivers, disks, and disk scheduling); and security. Group 2 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 and CPSC 035 Natural sciences and engineering practicum. Lab work required. 1 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 046Theory of Computation1

(Cross-listed as MATH 046 ) This study of various models of computation leads to a characterization of the kinds of problems that can and cannot be solved by a computer. Solvable problems will be classified with respect to their degree of difficulty. Topics to be covered include formal languages and finite state devices; Turing machines; and other models of computation, computability, and complexity. Group 1 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 and Mathematics background at the level of Linear Algebra or higher (may be taken concurrently) Natural science and engineering. Lab work required. 1 credit. Fall 2026. Grammel. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 049The Probabilistic Method1

(Cross-listed as MATH 059 ) In mathematics and theoretical computer science, we often consider classes of objects (say graphs, circuits or matrices) and we’d like to know if there are objects that have certain nice properties. One way to show these nice objects exist is to look at a random object, and show it has the nice property with nonzero probability. If this is true, there must be some object with this nice property. This is the Probabilistic Method in a nutshell. It has become an essential tool for understanding structure of lots and lots of things in theoretical computer science and combinatorics, even in problems and applications which involve no randomness at all. This class will start from the ground up, first introducing discrete probability theory, then covering the probabilistic method in detail: how it works, extensions, and most of all lots of applications. We’ll also spend a few weeks discussing NP-Completeness and randomized algorithms. Group 1 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 and MATH 039 , or permission of the instructor. Natural sciences and engineering. Lab work required 1 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 052Principles of Computer Architecture1

Cross-listed as ENGR 025 Natural sciences and engineering practicum. 1 credit.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 056Computer Animation1

The goal of this course is to give students a foundation for programming animated and interactive graphics. In particular, we will “look under the hood” at the algorithms used by game engines and modeling tools to create authorable, interactive characters and special effects. Labs will give students hands on experience implementing algorithms in C++ as well as opportunities to derive their own unique animations. Topics will include mathematical foundations (coordinate systems, transformations, quaternions), interpolation techniques, keyframing, motion capture and procedural animation, and physically-based systems. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 , CPSC 035 , MATH 015 (or have placed into MATH 025 ) Lab work required. 1 credit Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 063Artificial Intelligence1

Artificial intelligence (AI) can be defined as the branch of computer science that is concerned with the automation of intelligent behavior. Intelligent behavior encompasses a wide range of abilities; as a result, AI has become a very broad field that includes game playing, automated reasoning, expert systems, natural language processing, modeling human performance (cognitive science), planning, and robotics. This course will focus on a subset of these topics and specifically on machine learning, which is concerned with the problem of how to create programs that automatically improve with experience. Machine learning approaches studied typically include neural networks, decision trees, genetic algorithms, and reinforcement techniques. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 Natural sciences and engineering practicum. Lab work required. 1 credit. Eligible for COGS Fall 2026. Hope. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 065Natural Language Processing1

(Cross-listed as LING 020 ) This course is an introduction to the fundamental concepts in natural language processing, the study of human language from a computational perspective. The focus will be on creating statistical algorithms used in the analysis and production of language. Topics to be covered include parsing, morphological analysis, text classification, speech recognition, and machine translation. No prior linguistics experience is necessary. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 Natural science and engineering. Lab work required. 1 credit. Eligible for COGS Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 066Machine Learning1

This course will introduce algorithms and frameworks that train computers to learn from data in order to better complete specific tasks. The first part of the course will focus on the task of making predictions (supervised learning). The course will then cover other areas of the field including structured learning, unsupervised learning, and semi-supervised learning, among others. The course will also develop general machine learning methodologies; frameworks for analyzing and validating algorithms and theoretical foundations. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 Natural science and engineering. Lab work required 1 credit. Eligible for COGS Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 068Bioinformatics1

(Cross-listed as BIOL 068 ) This course is an introduction to the fields of bioinformatics and computational biology, with a central focus on algorithms and their application to a diverse set of computational problems in molecular biology. Computational themes will include dynamic programming, greedy algorithms, supervised learning and classification, data clustering, trees, graphical models, data management, and structured data representation. Applications will include genetic sequence analysis, pair wise-sequence alignment, phylogenetic trees, motif finding, gene-expression analysis, and protein-structure prediction. No prior biology experience is necessary. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 Natural science and engineering. Lab work required. 1 credit. Eligible for COGS Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 071Software Engineering1

Software engineering is the application of systematic, measurable, and disciplined approach to the creation of computer programs. In this course, students will learn how to plan, organize, and maintain large software projects. Topics include software development methodologies, design principles, collaboration techniques, the use of modern libraries and frameworks, quality assurance, and timeline management. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 Natural science and engineering. Lab work required. 1 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 072Computer Vision1

Cross-listed as ENGR 027 Please read the full course description in the Engineering catalog for prerequisites and further details. Natural sciences and engineering practicum. 1 credit. Eligible for COGS

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 073Programming Languages

This course presents a collection of features central to programming languages’ design and implementation. Core topics include identifiers and scope, higher-order functions, types and type checking, state and mutation, objects, and memory management. The course explores these concepts through the implementation of interpreters and other programs that manipulate programs, and through exercises that explore choices in the space of programming language design. Group 3 Course

Subject
CPSC
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 Group 3 course. Lab work required, programming intensive Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 075Compilers1

(Cross-listed as ENGR 023 ) This course explores the conversion of programs from source code to executable forms. Topics covered include lexical analysis, formal grammars and parsing, runtime representation decisions, code transformation and generation, and static optimization techniques. Group 2 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 and CPSC 035 Natural sciences and engineering. Lab work required. 1 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 077Social Computing1

Social computing is the study of how technology mediates social interactions between humans, including interpersonal relationships, teams, crowds, communities, institutions, and entire societies. It explores how technology shapes human social interaction and vice versa, as well as the design of new social computing technologies or systems. The field encompasses the study of social media platforms (e.g., TikTok and Snapchat), crowdsourcing platforms (Mechanical Turk, Wikipedia), online communities (Pokemon Go, Tumblr), collaboration software (Google Docs, Figma, Slack), among others. This course will examine the landscape of social computing, taking a systems-oriented perspective to examine and imagine new social computing systems to address societal issues. We will read literature on different subareas of social computing to learn why some posts go viral and others don’t, how sociotechnical algorithms are perceived to work and how they actually work, why some platforms fail while others succeed, and how platforms enable both incredibly prosocial and occasionally terrifying behavior. We will also learn to use different web programming languages and application programming interfaces (APIs) to augment existing social computing systems or build entirely new ones. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 1 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 081Adaptive Robotics1

This seminar addresses the problem of controlling robots that will operate in dynamic, unpredictable environments. In laboratory sessions, students will work in groups to program robots to perform a variety of tasks such as navigation to a goal, obstacle avoidance, and vision-based tracking. In discussion sessions, students will examine the major paradigms of robot control through readings from the primary literature with an emphasis on adaptive approaches. Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 . Recommended: CPSC 063 Natural sciences and engineering practicum. Lab work required. 1 credit. Eligible for COGS Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 082Mobile Robotics1

(Cross-listed as ENGR 028 ) Please read the full course description in the Engineering catalog for prerequisites and further details. Natural sciences and engineering practicum. 1 credit. Eligible for COGS

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 086Game Systems1.0

This course studies games using the lens of computing systems; exploring the design and implementation of historic and modern computing systems for games, including the hardware, software, and their interface. This course will go beyond only creating games, and will challenge students to critically reflect on how the architectural and programming choices in games can encode inequality and particular worldviews procedurally, as much as other game elements like visuals, audio and narrative. We will cover the low-level aspects of games platforms: graphics programming, networking, and peripherals; mid-level concerns: software engineering, design patterns, concurrency, and interfaces; and higher-level issues related to emulation, ethics, platform studies and media archaeology. This is a Group 2 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 and CPSC 035 . Natural Science. 1.0 credit. Fall 2026. O’Hara. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 088Security and Privacy1

This course will cover the breadth of security and privacy topics in Computer Systems including software system security, applied cryptography, denial-of-service, and privacy-preserving mechanisms. This course will also include applied aspects of security and privacy including public policy and legal frameworks of censorship and anonymity. Course topics may include: Buffer overflows and defences, cryptography, symmetric encryption, hash functions, web security, certificates, authentication, denial of service attacks, internet crime - ransomware, botnets, and spam, privacy preserving mechanisms, and internet censorship. Group 2 Course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 and CPSC035. At least one upper-level course is recommended. Natural Science and Engineering Laboratory work required. 1 credit Access the class schedule to search for sections.
CPSC 089Cloud Systems and Data Center Networks1

On the Internet today, popular services like Google, Facebook, and many others are too large to be hosted by just a few servers. Instead, service providers “scale out” across a coordinated set of hundreds to thousands of machines. Such clusters yield an interesting operating environment, the data center, in which a single administrative entity owns a network at the scale that resembles the Internet. To meet customer demands, administrators often face stringent inter-machine coordination constraints. In this course, we’ll examine the current state of the art in providing cloud-based services, including many interesting problems in distributed systems, networking, failure recovery, and OS virtualization. Group 2 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 031 and CPSC 035 Lab work required. 1 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 091RSpecial Topics: Advanced topics in Machine Learning1.0

This course will cover the foundations of modern deep learning and generative AI, through the lens of probabilistic modeling. Students will gain the necessary tools to implement modern machine-learning models, including: large-scale neural network design, latent variable models, Bayesian learning, autoregressive models, and model evaluation. We will consider applications in computer vision, natural language processing and physical sciences, among others. Previous exposure to basic topics in probability (probability mass and density functions, normal distribution, expectation, conditional probability, etc.) is strongly recommended. This is a Group 3 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 and either CPSC 063 or CPSC 066 Natural science and engineering. 1.0 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 091TSpecial Topics: Theory of Communication1.0

This course will investigate advanced topics in theoretical computer science, with a focus on the challenges faced by communication between computers. Topics covered include noisy channels, eavesdroppers, correctness proofs, finite probability distributions, information theory, entropy, and NP-completeness. This is a Group 1 course.

Subject
CPSC
Credits (min)
1
Credits (max)
1
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
Prerequisite
CPSC 035 and MATH 027 or permission of the instructor is required. Natural Science. 1.0 credit. Catalog chapter: Computer Science Department website: https://www.swarthmore.edu/computer-science Access the class schedule to search for sections.
CPSC 093Directed Reading and/or Research Project

A qualified student may undertake a program of extra reading and/or a project in an area of computer science with the permission of a staff member who is willing to supervise.

Subject
CPSC
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 095Senior Thesis

Access the class schedule to search for sections.

Subject
CPSC
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 099Senior Comprehensive0

For the culminating senior capstone experience, students will create a poster based on a project from either a course taken in the Computer Science Department at Swarthmore or from a summer research project with a Swarthmore CS faculty member. Seniors will present their work at a poster session to be held in the Spring semester of their senior year. The Chair will send out information at the start of the Spring semester detailing the scheduling of the poster session and other relevant dates. This course must be satisfactorily completed in order to complete the major. 0 credit.

Subject
CPSC
Credits (min)
0
Credits (max)
0
Credit unit
credit
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 180Senior Honor Thesis

For Computer Science Honors Majors only. Writing course.

Subject
CPSC
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu
CPSC 199Senior Thesis
Subject
CPSC
Type
course
Edition
2026-2027
Catalog
College Bulletin 2026-2027
Source
catalog.swarthmore.edu

Source: Swarthmore College's catalog, linked per course · table learning_unit · CourseShelf publish 59