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: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.
- 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?
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.
Assignment | Out | Due | Solution |
---|---|---|---|
Getting Started | 09/05 | 09/18 | |
Proof Techniques | 09/10 | 09/17 | |
Searching & Sorting | 09/17 | 09/24 | |
Greedy Algorithms | 09/24 | 10/03 | |
Dynamic Programming | 10/03 | 10/10 | |
Divide & Conquer | 10/10 | 10/17 | |
Data Structures & Hashing | 10/24 | 10/31 | |
Graph Algorithms | 10/31 | 11/07 | |
Pattern Matching & Computational Geometry | 11/14 | 11/22 | |
Complexity Theory | 11/21 | 12/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.