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 23:03, 8 June 2021

Redirect to: