This is the homepage for Data Structures and Algorithms (CS35) at Swarthmore College in the Fall 2020 semester. This site provides information regarding the course, including the lecture schedule, homework assignments, and syllabus.

To get acquainted with the course, you can either watch the introductory video or take a look at the course policies page.

This course presumes basic knowledge of computer programming.

At the beginning of the course, students are expected to be able to write algorithms and programs to solve simple tasks as well as read code to understand what it does and correct it.

Throughout this course, students will learn:

- How to design larger, more complex algorithms than are covered in an introductory course to solve bigger problems.
- How to formally understand algorithms and argue that code solves a problem for which it was designed.
- How to understand the performance of an algorithm in terms of its asymptotic complexity and how to compare the performance of different algorithms.
- How to reason about programs in abstract ways to break large, complex problems into smaller, more manageable problems.
- How to build a variety of data structures to solve general programming problems.
- A more formal and complete treatment of object-oriented programming than is given in an introductory course.

This site should contain all of the information you need to prepare for the course.

- Information about the course textbook can be found here.
- Information about the lecture itself appears on the schedule page.
- Make sure you are familiar with the academic integrity policy.