CS35: Data Structures and Algorithms

Fall 2018



This course continues the broad introduction to computer science begun in CS21, providing a general background for further study in the field. By concentrating on data structures and algorithms, you will obtain the basic building blocks by which all large software projects are built. These topics are central to every sub-discipline in computer science, and also connect to central concepts across the sciences. Topics to be covered include object-oriented programming in C++, advanced data structures (such as priority queues, trees, hash tables, and graphs), advanced algorithms, as well as software design and verification. At the end of this course, you will have obtained the ability to successfully analyze problems in the discipline. You will also take your first steps towards developing the skills necessary to synthesize and evaluate the must fundamental questions in the field.

Course Basics

Class: Tue., Thu. 9:55 - 11:10AM, Science Center 199
Lab A: Thursday 1:05 - 2:35PM, Science Center 256
Lab B: Thursday 2:45 - 4:15PM, Science Center 256

Contact Information
Professor: Lisa Meeden
Email: meeden at cs dot swarthmore.edu
Office: Science Center 243
Office Hours: Tuesday 1:30-3:30pm
Wednesday 1:30-3:30pm
And any time my door is open

Additional Support
Ninja Sessions: Monday, Tuesday 7-9PM: Sci 256
Ninjas: Daniel Chaiken, Michael Davinroy, Michelle Ma,
Kyra Moed, Haochen Wang, and Bayliss Wagner
Course Discussion: Piazza (by invitation and mandatory)

Course Goals

By the end of the course, you will have developed the following knowledge and skills:

Student Responsibilities

We have outlined the skills and objects this course promises to provide you. For this promises to be upheld, you will need to commit towards the policies outlined below. CS35 is substantially faster-paced than CS21, covering a broad range of topics. To succeed you should: