ENROLL Course Search

NOTE: There are some inconsistencies in the course listing data - ITS is looking into the cause.

Alternatives: For requirement lists, please refer to the current catalog. For up-to-the-minute enrollment information, use the "Search for Classes" option in The Hub. If you have any other questions, please email registrar@carleton.edu.

Saved Courses (0)

Your search for courses for 23/SP and with code: CSREQUIRED found 10 courses.

Revise Your Search New Search

CS 111.01 Introduction to Computer Science 6 credits

Open: Size: 34, Registered: 30, Waitlist: 0

Olin 310

MTWTHF
1:50pm3:00pm1:50pm3:00pm2:20pm3:20pm
Synonym: 64304

Richard D. Wells

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. Students who have received credit for Computer Science 201 or above are not eligible to enroll in Computer Science 111.

CS 111.02 Introduction to Computer Science 6 credits

Open: Size: 34, Registered: 31, Waitlist: 0

Olin 310

MTWTHF
9:50am11:00am9:50am11:00am9:40am10:40am
Synonym: 64305

Sneha Narayan

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. Students who have received credit for Computer Science 201 or above are not eligible to enroll in Computer Science 111.

Sophomore Priority

CS 111.03 Introduction to Computer Science 6 credits

Open: Size: 34, Registered: 23, Waitlist: 0

Olin 310

MTWTHF
12:30pm1:40pm12:30pm1:40pm1:10pm2:10pm
Synonym: 64306

Amy Csizmar Dalal

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. Students who have received credit for Computer Science 201 or above are not eligible to enroll in Computer Science 111.

Sophomore Priority

CS 201.01 Data Structures 6 credits

Open: Size: 34, Registered: 25, Waitlist: 0

Anderson Hall 329

MTWTHF
1:50pm3:00pm1:50pm3:00pm2:20pm3:20pm

Other Tags:

Synonym: 64309

Kiran Tomlinson

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.

Prerequisite: Computer Science 111 or instructor permission

Sophomore Priority

CS 201.02 Data Structures 6 credits

Open: Size: 34, Registered: 29, Waitlist: 0

Olin 310

MTWTHF
11:10am12:20pm11:10am12:20pm12:00pm1:00pm

Other Tags:

Synonym: 64310

Richard D. Wells

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.

Prerequisite: Computer Science 111 or instructor permission

CS 202.00 Mathematics of Computer Science 6 credits

Closed: Size: 34, Registered: 34, Waitlist: 0

CMC 301

MTWTHF
11:10am12:20pm11:10am12:20pm12:00pm1:00pm
Synonym: 64312

Kiran Tomlinson

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.

Prerequisite: Computer Science 111 and Mathematics 111 or instructor permission

CS 208.00 Introduction to Computer Systems 6 credits

Closed: Size: 34, Registered: 32, Waitlist: 0

Olin 310

MTWTHF
8:30am9:40am8:30am9:40am8:30am9:30am

Other Tags:

Synonym: 64313

Jeff Ondich

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.

Prerequisite: Computer Science 201 or instructor permission

CS 252.00 Algorithms 6 credits

Closed: Size: 34, Registered: 33, Waitlist: 0

Anderson Hall 036

MTWTHF
11:10am12:20pm11:10am12:20pm12:00pm1:00pm
Synonym: 64314

Eric Alexander

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.

Prerequisite: Computer Science 201 and Computer Science 202 (Mathematics 236 will be accepted in lieu of Computer Science 202)

CS 254.00 Computability and Complexity 6 credits

Closed: Size: 34, Registered: 33, Waitlist: 0

CMC 301

MTWTHF
9:50am11:00am9:50am11:00am9:40am10:40am
Synonym: 64315

Anna Rafferty

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.

Prerequisite: Computer Science 201 and Computer Science 202 (Mathematics 236 will be accepted in lieu of Computer Science 202)

CS 257.00 Software Design 6 credits

Closed: Size: 34, Registered: 34, Waitlist: 0

Weitz Center 235

MTWTHF
9:50am11:00am9:50am11:00am9:40am10:40am

Other Tags:

Synonym: 64316

Amy Csizmar Dalal

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.

Prerequisite: Computer Science 201 or instructor permission

Search for Courses

This data updates hourly. For up-to-the-minute enrollment information, use the Search for Classes option in The Hub

Instructional Mode
Class Period
Courses or labs meeting at non-standard times may not appear when searching by class period.
Requirements
You must take 6 credits of each of these.
Overlays
You must take 6 credits of each of these,
except Quantitative Reasoning, which requires 3 courses.
Special Interests