CS1570: Design and Analysis of Algorithms

Fall 2024

Course Info

This is a core undergraduate Computer Science course on the foundations of algorithmic theory and applications. The questions it aims to answer are:
  • What are the different algorithmic archetypes? How can we analyze the performance of algorithms?
  • Which design guidelines should be followed towards achieving efficient algorithms?
  • What data structures can be used for specific algorithmic tasks?
We will cover these questions and, in the process, explore the use of algorithms in important applications such as artificial intelligence, data management, network analysis, and geographic information systems. The course has lectures, written homework assignments, and exams.

Lectures

Lectures are held in-person on Tuesdays and Thursdays from 2:30 to 3:50p.m. in Friedman 202. Lecture slides will be posted on EdStem and recordings will be available on Panopto.

Assignments

All assignments must be typeset using LaTeX and submitted on Gradescope. Please refer to the syllabus for the class collaboration and late submission policy.

AssignmentOutDueSolution
Getting Started09/0509/18
Proof Techniques09/1009/17
Searching & Sorting09/1709/24
Greedy Algorithms09/2410/03
Dynamic Programming10/0310/10
Divide & Conquer10/1010/17
Data Structures & Hashing10/2410/31
Graph Algorithms10/3111/07
Computational Geometry11/0711/14
Pattern Matching & More Hashing11/1411/21
Complexity Theory11/2112/05

Hours

Hours will follow an open format, where students can work together in groups to brainstorm solutions and ask the TA for help when needed.

In order to safeguard everyone's health, please refrain from going to in-person hours if you are feeling unwell or experiencing any symptoms. Reach out to the TA staff to inquire about the availability of remote TA hours.

Resources

Course Syllabus

You can find the course syllabus here! The course collaboration policy and late day policy for all assignments are also included in the syllabus.

Anonymous Feedback Form

If you have any feedback for the course staff, please feel free to submit it here! All submissions are welcome!

LaTeX Resources

For this course your solutions must be typeset using LaTeX. Below are some resources that you might find helpful:
  • Overleaf is an online LaTeX editor that you can use to write your solutions.
  • Overleaf LaTeX Documentation is a great resource for learning LaTeX.
  • Detexify is a tool that allows you to draw a symbol and get the corresponding LaTeX code.
  • Pseudocode Guide contains our recommendations for typesetting pseudocode in LaTeX.
  • The CS1570 class file is used to apply our styles and macros for your LaTeX documents. You'll want this if you prefer not to use our Overleaf template.

Department Resources

The CS department provides many resources to help students succeed in their courses.

Brown CS Health And Wellness

If you need accommodation for your physical and mental health, please feel free to reach out to Professor De Stefani — we want to support you as much as we can in the most comfortable way for you. It is important to note that TAs should not be handling health and accomodations information, so inquiries should be directed towards the professor only. Resources for physical/mental health, accessibility, and accommodations can be found here.

Staff

You can reach the entire course staff at cs1570tas@lists.brown.edu, the HTA and Professor at cs1570htas@lists.brown.edu and just the Professor at lorenzo_destefani@brown.edu.
Lorenzo De Stefani

Lorenzo De Stefani Professor

Aditya Agashe

Aditya Agashe HTA

Luke Choi

Luke Choi HTA

Sudham Hebbar

Sudham Hebbar UTA

Heon Lee

Heon Lee UTA

Alexander Liang

Alexander Liang UTA

Kevin Luo

Kevin Luo UTA

Ruth Ukubay

Ruth Ukubay UTA

Zachary Wang

Zachary Wang UTA

Derek Yang

Derek Yang UTA