Difference between revisions of "CS 1332"
From Georgia Tech Student Wiki
(changed to hrs/week) |
m (Zxcv moved page CS 1332 - Data Structures and Algorithms to CS 1332 without leaving a redirect: revert) |
||
Line 1: | Line 1: | ||
+ | #REDIRECT [[CS 1332]] |
||
− | {{DISPLAYTITLE:CS 1332 - Data Structures and Algorithms for Applications}} |
||
− | ==Overview== |
||
− | CS 1332 is a 3 credit-hour CS class with no lab or studio and an optional recitation. Recitation sections are under CS 1332R. |
||
− | |||
− | You must register for one of the lecture sections, marked by a single letter (A, B, C, etc.). If you do decide to register for recitation, you must register for a recitation section with the same leading letter (e.g. if you register for lecture section B, you must register for recitation section B01, B02, etc.). |
||
− | |||
− | '''Key Registration Footnote:''' |
||
− | |||
− | Computer Engineering students must wait 2 weeks before being given access to register for this course (unlike CS, CM students, who can register immediately). |
||
− | * This is still shorter than the wait period for other majors, which is roughly 4 weeks. |
||
− | |||
− | == Class Structure == |
||
− | Average estimated hours per week: 9 hrs (3 hrs/week of classes + 2 hrs/week recitation + 4 hrs/week HW & Studying) |
||
− | |||
− | ==== Prerequisites ==== |
||
− | The sole prerequisite for CS 1332 is a C or higher in [[CS 1331]]. |
||
− | |||
− | Due to this prerequisite, CS 1332 expects all students to have a solid grasp of fundamental concepts in the Java programming language, including inheritance, polymorphism, and exception handling. |
||
− | |||
− | ==== Workload ==== |
||
− | Like most 1000-level CS classes, CS 1332 primarily consists of homework assignments and a set of exams. |
||
− | |||
− | Homework assignments generally explore the implementation of a data structure or algorithm from scratch in the Java programming language. Aid is occasionally given through pseudo-code. Average homework length tends to be between 2 and 6 hours, depending on the difficulty. |
||
− | |||
− | Exams test knowledge of the theory of the data structure (efficiency, inner workings) as well as usage and implementation through multiple choice, fill-in-the-blank, and code writing questions. |
||
− | |||
− | ====Topic List==== |
||
− | The topics covered in the course are as follows: |
||
− | |||
− | #Arrays |
||
− | #Lists |
||
− | ##ArrayLists |
||
− | ##LinkedLists (Singly, Doubly, Circular) |
||
− | #Stacks and Queues |
||
− | ##Array-Backed Implementations |
||
− | ##Node-Backed Implementations |
||
− | ##Deques (Double-Ended Queues) |
||
− | #Binary Search Trees |
||
− | ##Tree Terminology |
||
− | ##Tree Traversal (In-Order, Post-Order, Pre-Order, Level-Order) |
||
− | ##Binary Search Trees |
||
− | #Heaps |
||
− | ##MaxHeaps |
||
− | ##MinHeaps |
||
− | #Self-Balancing Trees |
||
− | ##AVLs |
||
− | ##2-4 Trees |
||
− | #HashMaps |
||
− | ##Probing |
||
− | ##Chaining |
||
− | ##Double Hashing |
||
− | #Sorting Algorithms |
||
− | ##Bubble Sort |
||
− | ##Insertion Sort |
||
− | ##Selection Sort |
||
− | ##Cocktail-Shaker Sort |
||
− | ##Merge Sort |
||
− | ##Quick Sort |
||
− | ##Radix Sort |
||
− | #Pattern Matching Algorithms |
||
− | ##Brute Force |
||
− | ##Boyer-Moore and Last Occurrence Table |
||
− | ##Knuth-Morris Pratt and Failure Tables |
||
− | ##Rabin-Karp |
||
− | #Graphs and Graph Algorithms |
||
− | ##Graph Terminology |
||
− | ##Breadth-First/Depth-First Search |
||
− | ##MSTs and MST Algorithms (Prim's and Kruskal's) |
||
− | ##Shortest Path Algorithm (Djikstra's) |
||
− | #A selection of more advanced algorithms and data structures (varies by semester) |
||
− | |||
− | ==== Majors ==== |
||
− | Majors that take CS 1332 are listed below: |
||
− | |||
− | * Computer Science |
||
− | * Computer Engineering |
||
− | * Computational Media |
||
− | |||
− | ====Future Outlook==== |
||
− | While the topics in CS 1332 are quite useful for technical interviews, many classes do not actually have CS 1332 as a direct prerequisite. The only key classes that use CS 1332 as a prerequisite are [[CS 3510]] (Algorithm Design) and [[CS 3600]] (Intro to AI). Overall, CS 1332 is quite important for the Theory and Intelligence threads, but is not an important prereq for classes in other threads. |
||
− | |||
− | == Resources == |
||
− | Dr. HB's Summer 2020 syllabus is linked [https://ctl.gatech.edu/sites/default/files/images/hudachek-buswell_cs1332_syllabus.pdf here]. Note that the class now uses Java 11 instead of Java 8. |
||
− | |||
− | ==== Spring 2021 ==== |
||
− | The advanced topics in Spring 2021 included: |
||
− | |||
− | * SkipLists |
||
− | * QuickSelect |
||
− | * An introduction to Dynamic Programming |
||
− | {{DEFAULTSORT:CS_1332_-_Data_Structures_and_Algorithms_for_Applications}} |
Revision as of 22:03, 8 June 2021
Redirect to: