Lecture: | Tuesday/Thursday 1:15 - 2:30pm, Science Center 128 |
Lab A (Soni): | Monday 1:15 - 2:45pm, Science Center 240 |
Lab B (Brody): | Monday 3:00 - 4:30pm, Science Center 240 |
Instructor: | Ameet Soni (Lecture, Lab A) | Joshua Brody (Lab B) |
Email: | brody@cs.swarthmore.edu | |
Office: | Science Center 253 | Science Center 270 |
Office hours: | Thursday, 3 - 5pm and by appointment |
Thursday, 10am - noon and by appointment |
Ninja Sessions: | Thursday, 7-11pm, Science Center 240 |
Ninja Instructors: | AJ Valera, Molly Feldman, Chris Nam, Kitty Hamilton |
Course Discussion: | Piazza (by invitation; mandatory enrollment) |
Welcome to CS35. 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 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.
To enroll in this course you must have completed CPSC 21 or obtain permission from the instructor. This course is designated as a natural sciences and engineering practicum.
You may rely on either of two text books for the course:
In addition, you will need to read A Transition Guide from Python 2.x to C++ by Michael Goldwasser and David Letscher for the first two weeks
This course provides an introduction to object oriented programming as well as the C++ program language. Each could warrant their own course of study and I highly recommend you study them further. Some references of use: