Search Results
Your search for · CS · during 26FA, 27WI, 27SP · returned 22 results (and 4 Related Courses results)
-
CS 100 Ethics of Technology 6 credits
What should technology know about us? What actions should technology be allowed to conduct on our behalf? Who makes these decisions, and whose voices are excluded from these conversations? Can algorithms ever be truly fair, just, and unbiased, or are they forever doomed to perpetuate existing inequities? We'll address these questions, and many more, as we explore the history, present, and possible futures of the design, implementation, deployment, and usage of algorithms, apps, systems, devices, and all things tech. This course will equip you to perform the complex ethical reasoning required of living in a technically-focused society.
Held for new first year students
- Fall 2026
- AI/WR1, Argument & Inquiry/WR1
-
Student is a member of the First Year First Term class level cohort. Students are only allowed to register for one A&I course at a time. If a student wishes to change the A&I course they are enrolled in they must DROP the enrolled course and then ADD the new course. Please see our Workday guides Drop or 'Late' Drop a Course and Register or Waitlist for a Course Directly from the Course Listing for more information.
-
CS 111 Introduction to Computer Science 6 credits
This course will introduce you to computer programming and the design of algorithms. By writing programs to solve problems in areas such as image processing, text processing, and simple games, you will learn about recursive and iterative algorithms, complexity analysis, graphics, data representation, software engineering, and object-oriented design. No previous programming experience is necessary.
- Fall 2026, Winter 2027, Spring 2027
- FSR, Formal or Statistical Reasoning QRE, Quantitative Reasoning
-
NOT open to students who have completed any of the following course(s): CS 200 or greater with a grade of C- or better.
-
CS 201 Data Structures 6 credits
Think back to your favorite assignment from Introduction to Computer Science. Did you ever get the feeling that “there has to be a better/smarter way to do this problem”? The Data Structures course is all about how to store information intelligently and access it efficiently. How can Google take your query, compare it to billions of web pages, and return the answer in less than one second? How can one store information so as to balance the competing needs for fast data retrieval and fast data modification? To help us answer questions like these, we will analyze and implement stacks, queues, trees, linked lists, graphs, and hash tables. Students who have received credit for a course for which Computer Science 201 is a prerequisite are not eligible to enroll in Computer Science 201.
- Fall 2026, Winter 2027, Spring 2027
- FSR, Formal or Statistical Reasoning QRE, Quantitative Reasoning
-
Student has completed any of the following course(s): CS 111 with a grade of C- or better or received a score of 4 or better on the Computer Science A AP exam or received a Carleton Computer Science 111 Requisite Equivalency. Not open to students that have taken CS 200.
-
CS 202 Mathematics of Computer Science 6 credits
This course introduces some of the formal tools of computer science, using a variety of applications as a vehicle. You’ll learn how to encode data so that when you scratch the back of a DVD, it still plays just fine; how to distribute “shares” of your floor’s PIN so that any five of you can withdraw money from the floor bank account (but no four of you can); how to play chess; and more. Topics that we’ll explore along the way include: logic and proofs, number theory, elementary complexity theory and recurrence relations, basic probability, counting techniques, and graphs.
- Fall 2026, Winter 2027, Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any of the following course(s): CS 111 with a grade of C- or better or received a score of 4 or better on the AP Computer Science exam or received a Carleton Computer Science 111 or better Requisite Equivalency AND MATH 101 or MATH 111 or greater with a grade of C- or better or greater or received a score of 4 or better on the Calculus AB AP exam or received a score of 4 or better on the Calculus BC AP exam or received a score of 5 or better on the Mathematics IB exam or received a Carleton MATH 111 or better Requisite Equivalency.
-
CS 208 Introduction to Computer Systems 6 credits
Are you curious what’s really going on when a computer runs your code? In this course we will demystify the machine and the tools that we use to program it. Our broad survey of how computer systems execute programs, store information, and communicate will focus on the hardware/software interface, including data representation, instruction set architecture, the C programming language, memory management, and the operating system process model.
- Fall 2026, Winter 2027, Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any one of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency.
-
CS 251 Programming Languages: Design and Implementation 6 credits
What makes a programming language like “Python” or like “Java”? This course will look past superficial properties (like indentation) and into the soul of programming languages. We will explore a variety of topics in programming language construction and design: syntax and semantics, mechanisms for parameter passing, typing, scoping, and control structures. Students will expand their programming experience to include other programming paradigms, including functional languages like Scheme and ML.
- Fall 2026, Winter 2027, Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any one of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency.
-
CS 252 Algorithms 6 credits
A course on techniques used in the design and analysis of efficient algorithms. We will cover several major algorithmic design paradigms (greedy algorithms, dynamic programming, divide and conquer, and network flow). Along the way, we will explore the application of these techniques to a variety of domains (natural language processing, economics, computational biology, and data mining, for example). As time permits, we will include supplementary topics like randomized algorithms, advanced data structures, and amortized analysis.
- Fall 2026, Winter 2027, Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 200 Requisite Equivalency AND CS 202 or MATH 236 with a grade of C- or better or received a Carleton Computer Science 202 Requisite Equivalency or received a Carleton Math 236 Requisite Equivalency. MATH 236 will be accepted in lieu of CS 202.
-
CS 254 Computability and Complexity 6 credits
An introduction to the theory of computation. What problems can and cannot be solved efficiently by computers? What problems cannot be solved by computers, period? Topics include formal models of computation, including finite-state automata, pushdown automata, and Turing machines; formal languages, including regular expressions and context-free grammars; computability and uncomputability; and computational complexity, particularly NP-completeness.
- Fall 2026, Winter 2027, Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 200 Requisite Equivalency AND CS 202 or MATH 236 with a grade of C- or better or received a Carleton Computer Science 202 Requisite Equivalency or received a Carleton Math 236 Requisite Equivalency. MATH 236 will be accepted in lieu of CS 202.
-
CS 257 Software Design 6 credits
It’s easy to write a mediocre computer program, and lots of people do it. Good programs are quite a bit harder to write, and are correspondingly less common. In this course, we will study techniques, tools, and habits that will improve your chances of writing good software. While working on several medium-sized programming projects, we will investigate code construction techniques, debugging and profiling tools, testing methodologies, UML, principles of object-oriented design, design patterns, and user interface design.
- Fall 2026, Winter 2027, Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any one of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency.
-
CS 298 Reading and Analysis Associated with External Computing Experience 1 credits
An independent study course intended for students who require Curricular Practical Training (CPT) or Optional Practical Training (OPT) to go with an external activity related to computer science (for example, an internship or an externship). The student will choose and read academic material relating to a practical experience (e.g., internship), and write a paper describing what the student learned from the reading, and how it related to the practical experience.
This requires an independent study form.
Not offered in 2026-27
-
CS 302 (De)constructing Everyday Technologies 6 credits
What makes computers computers? Are computers defined by their existing functionalities, future capabilities, individual components, or something else? Are there inherent risks to the technologies we surround ourselves with, and are there ways we can mitigate those risks to live happier lives? What is truth in the post-GenAI world?
By peering into the black-box of everyday technologies alongside the philosophical discussions they engender, we will investigate the fundamental questions computing technologies and its mind-bending pace of advancement are posing in our lives, communities, and society.
CS 302 is cross listed with DGAH 302.
Not open to students who have previously taken CS 302* (*=Junior Seminar).
X seats held for CS Match until the day after X priority registration.
- Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any one of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency.
-
CS 304 Social Computing 6 credits
The last decade has seen a vast increase in the number of applications that connect people with one another. This course presents an interdisciplinary introduction to social computing, a field of study that explores how computational techniques and artifacts are used to support and understand social interactions. We will examine a number of socio-technical systems (such as wikis, social media platforms, and citizen science projects), discuss the design principles used to build them, and analyze how they help people mobilize and collaborate with one another. Assignments will involve investigating datasets from online platforms and exploring current research in the field.
- Spring 2027
- FSR, Formal or Statistical Reasoning QRE, Quantitative Reasoning
-
Student has completed any one of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency.
-
CS 311 Computer Graphics 6 credits
Scientific simulations, movies, and video games often incorporate computer-generated images of fictitious worlds. How are these worlds represented inside a computer? How are they “photographed” to produce the images that we see? What performance constraints and design trade-offs come into play? In this course we learn the basic theory and methodology of three-dimensional computer graphics, including both triangle rasterization and ray tracing. Familiarity with vectors and matrices is recommended but not required.
- Winter 2027
- FSR, Formal or Statistical Reasoning QRE, Quantitative Reasoning
-
Student has completed any one of the following course(s): CS 208 or CS 251 with a grade of C- or better.
-
CS 314* Data Visualization (*=Junior Seminar) 6 credits
Though the wealth of data surrounding us can be overwhelming, we have evolved incredible tools for finding patterns in large amounts of information: our eyes! Data visualization is concerned with turning information into pictures to better communicate patterns or discover new insights, drawing from computer graphics, human-computer interaction, design, and perceptual psychology. In this junior seminar, we will learn different ways in which data can be expressed visually and which methods work best for which tasks, with a particular focus on technical communication. Using this knowledge, we will critique existing visualizations as well as design and build new ones.
- Winter 2027
- FSR, Formal or Statistical Reasoning QRE, Quantitative Reasoning
-
Student has completed any of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency. Not open to students who have taken CS 314.
-
CS 320* Machine Learning (*=Junior Seminar) 6 credits
What does it mean for a machine to learn? Much of modern machine learning focuses on identifying patterns in large datasets and using these patterns to make predictions about the future. Machine learning has impacted a diverse array of applications and fields, from scientific discovery to healthcare to education. In this artificial intelligence-related course, we’ll both explore a variety of machine learning algorithms in different application areas, taking both theoretical and practical perspectives, and discuss impacts and ethical implications of machine learning more broadly. As a junior seminar, this course emphasizes written and oral scientific communication.
Not open to students who have previously taken CS 320.
X seats held for CS Match until the day after X priority registration.
- Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 200 Requisite Equivalency AND CS 202 or MATH 236 with a grade of C- or better or received a Carleton Computer Science 202 Requisite Equivalency or received a Carleton Math 236 Requisite Equivalency. MATH 236 will be accepted in lieu of CS 202.
-
CS 321 Making Decisions with Artificial Intelligence 6 credits
There are many situations where computer systems must make intelligent choices, from selecting actions in a game, to suggesting ways to distribute scarce resources for monitoring endangered species, to a search-and-rescue robot learning to interact with its environment. Artificial intelligence offers multiple frameworks for solving these problems. While popular media attention has often emphasized supervised machine learning, this course instead engages with a variety of other approaches in artificial intelligence, both established and cutting edge. These include intelligent search strategies, game playing approaches, constrained decision making, reinforcement learning from experience, and more. Coursework includes problem solving and programming.
- Winter 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 200 Requisite Equivalency AND CS 202 or MATH 236 with a grade of C- or better or received a Carleton Computer Science 202 Requisite Equivalency or received a Carleton Math 236 Requisite Equivalency. MATH 236 will be accepted in lieu of CS 202.
-
CS 332* Operating Systems (*=Junior Seminar) 6 credits
While you use a lab machine to write a program and browse online documentation, the computer clock ticks, a program keeps watch for incoming e-mail, and other users can log on from elsewhere in the network. Coordinating all this hardware and software is the job of the operating system. In this course we will study the fundamentals of operating system design, including the operating system kernel, scheduling and concurrency, memory management, and file systems. In addition to implementing kernel fundamentals, students will engage in technical communication such as writing and evaluating design documents and presenting project or research paper summaries.
- Spring 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed any of the following course(s): CS 200 or CS 201with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency AND CS 208 with a grade of C- or better. Not open to students who have taken CS 332.
-
CS 347* Advanced Software Design (*=Junior Seminar) 6 credits
The history of software engineering includes a long list of techniques intended to make software development more predictable and its end products more useful, reliable, and maintainable. In this junior seminar, you will design, implement, test, and deploy a modern, cloud-based application. During this project, you will explore and evaluate many of the most important software engineering tools and processes, including large-language-model-based programming assistants. Throughout the project, you will write a variety of technical documents, including API references, developer guides, and discussions of the trade-offs introduced by the engineering techniques your project uses.
Not open to students who have previously taken CS 347.
X seats held for CS Match until the day after X priority registration.
- Winter 2027
- FSR, Formal or Statistical Reasoning
-
Student has completed the following course(s): CS 257 with a grade of C- or better or received a Carleton Computer Science 257 Requisite Equivalency.
-
CS 348 Parallel and Distributed Computing 6 credits
As multi-core machines become more prevalent, different programming paradigms have emerged for harnessing extra processors for better performance. This course explores parallel computation for both shared memory and distributed parallel programming paradigms. In particular, we will explore how these paradigms affect the code we write, the libraries we use, and the advantages and disadvantages of each. Topics will include synchronization primitives across these models for parallel execution, debugging concurrent programs, fork/join parallelism, example parallel algorithms, computational complexity and performance considerations, computer architecture as it relates to parallel computation, and related theory topics.
- Fall 2026
- FSR, Formal or Statistical Reasoning
-
Student has completed any one of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency.
-
CS 361* Artificial Life and Digital Evolution (*=Junior Seminar) 6 credits
The field of artificial life seeks to understand the dynamics of life by separating them from the substrate of DNA. In this course, we will explore how we can implement the dynamics of life in software to test and generate biological hypotheses, with a particular focus on evolution. Topics will include the basic principles of biological evolution, transferring experimental evolution techniques to computational systems, cellular automata, computational modeling, and digital evolution. Students will develop technical communication skills in writing and user interface design through several projects aimed at explaining science to public and scientific audiences.
16 seats held until the day after X priority registration.
- Fall 2026
- FSR, Formal or Statistical Reasoning QRE, Quantitative Reasoning
-
Student has completed any of the following course(s): CS 200 or CS 201 with a grade of C- or better or received a Carleton Computer Science 201 or better Requisite Equivalency. Not open to students who have taken CS 361.
-
CS 399 Senior Seminar 3 credits
As part of their senior capstone experience, majors will work together in small teams on faculty-specified topics to design and implement the first stage of a project. Required of all senior majors. Students are strongly encouraged to complete CS 252 and CS 257 before starting CS 399.
- Fall 2026, First Five Weeks, Fall 2026, First Five Weeks, Winter 2027
- No Exploration
-
Student is a Computer Science major AND has Senior Priority.
-
CS 400 Integrative Exercise 3 credits
Beginning with the prototypes developed in the Senior Seminar (CS 399), project teams will complete their project and present it to the department. Required of all senior majors. Each CS 400 is paired with a particular section of CS 399, and the prerequisite for CS 400 must be filled by satisfactory completion of that CS 399.
- Second Five Weeks, Fall 2026, Winter 2027, Second Five Weeks, Winter 2027
- No Exploration
-
Student is a Computer Science major AND has Senior Priority.
Related Courses
We found 4 courses in other departments that may fulfill CS requirements or are otherwise related to CS.