Difference between revisions of "CS 3510"

From Georgia Tech Student Wiki
m
Line 1: Line 1:
  +
'''CS 3510: Design and Analysis of Algorithms''' is a 3 credit hour concentration requirement for many CS threads. It provides an overview of various algorithms at a more advanced level compared to [[CS 1332|CS 1332: Data Structures and Algorithms]], and it also teaches techniques to prove their time complexity and correctness. Algorithms are nearly exclusively written in pseudocode, not an actual programming language. The course has no lab component and is taken by most CS majors. The honors version is [[CS 3511]], and a related course that may be taken afterwards is [[CS 4540|CS 4540: Advanced Algorithms]].
== Overview ==
 
CS 3510 is a 3 credit hour concentration requirement for many CS threads. The course has no lab component and is taken by most CS majors.
 
   
 
== Overview ==
 
===== Topic List =====
 
===== Topic List =====
 
This course provides an introduction to algorithm design from the mathematical side. Evaluations of algorithms are through written, proof-based homework and tests.
 
This course provides an introduction to algorithm design from the mathematical side. Evaluations of algorithms are through written, proof-based homework and tests.
1. Divide and Conquer
 
2. Dynamic Programming
 
3. Graphs/Networks
 
4. Optimization
 
5. Hardness/Approximations
 
   
  +
Topics include:
The textbook used in this course is ''Algorithms'' by Dasgupta, Papadimitriou, and Vazirani.
 
  +
  +
# Divide-and-conquer algorithms
 
# Dynamic programming
 
# Graphs/networks
 
# Optimization
  +
# Hardness and approximation algorithms
  +
  +
Textbooks used in this course in the past have included:
  +
  +
* ''Algorithms'' by Dasgupta, Papadimitriou, and Vazirani (used by Professor Vigoda, Spring 2020)<ref>https://www.cc.gatech.edu/~vigoda/3510/</ref>
  +
* ''Algorithm Design'' by Kleinberg and Tardos (used by Professor Dovrolis, Spring 2020)<ref>https://www.cc.gatech.edu/~dovrolis/Courses/cs3510-S20.html</ref>
   
 
===== How it fits in the curriculum =====
 
===== How it fits in the curriculum =====
CS 3510 is the base, introductory course in the design and analysis of algorithms. The course is more math-based meaning it doesn't require a computer language. The course is a vital stepping-point in the Theory thread as it's used as the more advanced algorithm course in the thread.
+
CS 3510 is the base, introductory course in the design and analysis of algorithms. The course is more math-based meaning it doesn't require a computer language. The course is a vital stepping-point in the [[Theory]] thread before taking [[CS 4540|CS 4540: Advanced Algorithms]], a required course in the Theory thread.
   
 
== Current Registration Info ==
 
== Current Registration Info ==
Line 24: Line 30:
 
== Resources ==
 
== Resources ==
 
* CS 3510: Design and Analysis of Algorithms (Fall 2017): [https://www.cc.gatech.edu/~rpeng/CS3510_F17/ click here]
 
* CS 3510: Design and Analysis of Algorithms (Fall 2017): [https://www.cc.gatech.edu/~rpeng/CS3510_F17/ click here]
* CS 3510: Design and Analysis of Algorithms (Spring 2020): [https://www.cc.gatech.edu/~vigoda/3510/ click here]
+
* CS 3510: Design and Analysis of Algorithms (Spring 2020, Vigoda): [https://www.cc.gatech.edu/~vigoda/3510/ click here]
  +
* CS 3510: Design and Analysis of Algorithms (Spring 2020, Dovrolis): [https://www.cc.gatech.edu/~dovrolis/Courses/cs3510-S20.html click here]
 
* Oscar Details: [https://oscar.gatech.edu/bprod/bwckctlg.p_disp_course_detail?cat_term_in=202108&subj_code_in=CS&crse_numb_in=3510 click here]
 
* Oscar Details: [https://oscar.gatech.edu/bprod/bwckctlg.p_disp_course_detail?cat_term_in=202108&subj_code_in=CS&crse_numb_in=3510 click here]
 
[[Category:Courses|^CS^CS]]
 
[[Category:Courses|^CS^CS]]

Revision as of 11:09, 30 June 2021

CS 3510: Design and Analysis of Algorithms is a 3 credit hour concentration requirement for many CS threads. It provides an overview of various algorithms at a more advanced level compared to CS 1332: Data Structures and Algorithms, and it also teaches techniques to prove their time complexity and correctness. Algorithms are nearly exclusively written in pseudocode, not an actual programming language. The course has no lab component and is taken by most CS majors. The honors version is CS 3511, and a related course that may be taken afterwards is CS 4540: Advanced Algorithms.

Overview

Topic List

This course provides an introduction to algorithm design from the mathematical side. Evaluations of algorithms are through written, proof-based homework and tests.

Topics include:

  1. Divide-and-conquer algorithms
  2. Dynamic programming
  3. Graphs/networks
  4. Optimization
  5. Hardness and approximation algorithms

Textbooks used in this course in the past have included:

  • Algorithms by Dasgupta, Papadimitriou, and Vazirani (used by Professor Vigoda, Spring 2020)[1]
  • Algorithm Design by Kleinberg and Tardos (used by Professor Dovrolis, Spring 2020)[2]
How it fits in the curriculum

CS 3510 is the base, introductory course in the design and analysis of algorithms. The course is more math-based meaning it doesn't require a computer language. The course is a vital stepping-point in the Theory thread before taking CS 4540: Advanced Algorithms, a required course in the Theory thread.

Current Registration Info

In order to register for the course, you must register under a certain section as depicted by letters (A, B, C...).

Prerequisites

  • CS 2050/2051/2106 (min. grade of C)
  • CS 1332 (min. grade of C) or MATH 3012/3022 (min. grade of D)

Resources

  • CS 3510: Design and Analysis of Algorithms (Fall 2017): click here
  • CS 3510: Design and Analysis of Algorithms (Spring 2020, Vigoda): click here
  • CS 3510: Design and Analysis of Algorithms (Spring 2020, Dovrolis): click here
  • Oscar Details: click here