Editing CS 3510

From Georgia Tech Student Wiki

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
  +
== Overview ==
'''CS 3510''', formally known as '''Design and Analysis of Algorithms''', is a 3-credit Computer Science class taken as a thread requirement for six of the eight CS threads. Unlike CS 1332, which goes over a suite of specific algorithms, CS 3510 goes over broader categories of algorithms and algorithm design techniques, and in addition it teaches proof of correctness and proof of efficiency for algorithms. It is preceeded by [[CS 1332]], [[CS 2050]]/[[CS 2051]], and [[MATH 3012]]. It is succeeded by [[CS 4510]], [[CS 4540]], [[MATH 4150]], [[CS 6515]], and [[CS 4644|CS 4803/CS 4644]].
 
  +
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.
   
== Workload ==
+
===== 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.
  +
1. Divide and Conquer
 
2. Dynamic Programming
  +
3. Graphs/Networks
  +
4. Optimization
  +
5. Hardness/Approximations
   
  +
The textbook used in this course is ''Algorithms'' by Dasgupta, Papadimitriou, and Vazirani.
== Topic List ==
 
# Basics of Pseudocode
 
# Recurrence Relations, Big-O, and the Master Theorem
 
# Divide-and-Conquer Algorithms
 
# Dynamic Programming
 
# Graph Algorithms
 
# Network Flow
 
# Optimization (with some semesters going over basic Linear Programming)
 
# NP-Completeness, Complexity, and Hardness,
 
# Approximation Algorithms
 
   
Textbooks used in this course in the past have included:
+
===== 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.
 
* ''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>
 
 
== Prerequisite Knowledge ==
 
 
=== Algorithms ===
 
As CS 3510 is an algorithms course, a working knowledge of basic sorting and graph algorithms is suggested. A good understanding of mergeSort and Djikstra's Single-Source Shortest-Path algorithm is a useful benchmark in assessing algorithms knowledge for the class.
 
 
=== Data Structures ===
 
While there is no explicit programming in this class, a lot of algorithms are written in psuedocode, and thus, a knowledge of basic data structures and how they work is essential. In particular, arrays, trees, and graphs are the most important data structures for success in the class.
 
 
=== Discrete Mathematics ===
 
An understanding of basic Set Theory, Big-O bounds, and fundamental number theory (Euclid's Algorithm, Fast Exponentiation) is useful for success in the class. Big-O is absolutely critical, while the other two are useful and will help, but are not required.
 
 
=== Combinatorial Mathematics ===
 
An understanding of graph theory and recurrences is absolutely essential for CS 3510. In addition, basic combinatorial mathematics (such as permutations and combinations) is useful for the class.
 
 
=== Proof Writing ===
 
Basic proof writing at the level of CS 2050/MATH 2106 is suggested, but extensive proof writing experience is not required. Most of the arguments in the class are more high-level than formal proof writing, but this varies by semester and professor.
 
 
== Future Outlook ==
 
CS 3510 is the introductory course in the design and Analysis of Algorithms. The course is more math-based, and unlike most courses, it programs exclusively in pseudocode.
 
 
For Theory and Intelligence threads, CS 3510 is an important prerequisite for the theory courses for the two threads, namely [[CS 4510]], and [[CS 4540]].
 
   
 
== Current Registration Info ==
 
== Current Registration Info ==
Line 50: Line 24:
 
== 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, Vigoda): [https://www.cc.gatech.edu/~vigoda/3510/ 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, 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]]

Please note that all contributions to Georgia Tech Student Wiki are considered to be released under the Creative Commons Attribution-ShareAlike (see GT Student Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)