Course Syllabus

Computer Science 182 and 182L  – Data Structures and Program Design


Course Description: A review of primitive data types and their internal representation. Data structures built from primitive types such as arrays and records. Advanced data structures, stacks, queues, and link lists.

Required Text: Data Structures and Algorithms in Java, 2nd Edition,  Author: LaFore, ISBN: 0672324539
 

Grading: Grading will be based on the following breakdown:

Quiz 1 10% 20 points

Midterm 20% 40 points

Quiz 2 10% 20 points

Final 30% 60 points

Homework 20% 40 points

Participation 10% 20 points

Needed Point Totals: A – 175 points, B – 150 points, C – 110 points, D – 90 points

Makeup exams will not be allowed.
 

Surfing the Internet during class time is reserved for class related web sites. EBay, chat rooms, sports sites and other non-class related surfing is strictly prohibited and may result in penalty reduction of points.
 
 

Important Dates:

Please be sure to avoid scheduling conflicts with these dates.
 

Please check the CS 182 Web Page each week for:

CS182 Lab Grading 6 Programming projects, 30 points each, 180 points total

Class Participation 20 points

Needed Point Totals: A – 175 points, B – 150 points, C – 110 points, D – 90 points
 

Please check the CS 182 Web Page each week for:


Course Outline

  1. Intro to Data Structures, Design decisions - Choosing the right structure for the job, Algorithms
  2. Arrays, Searching, Insertion, Deletion, Logarithms, Big O Notation, Measuring algorithms
  3. Simple Sorting, Bubble sort, Selection Sort, Insertion Sort, Comparing sort speeds
  4. Stacks, Push-Pop-Peek, Queues, Insert-Remove, Priority queues, Array implementations
  5. Simple Linked List, Double-ended Linked List, Doubly Linked List, Iterators, Abstract data types
  6. Recursion, Divide and Conquer algorithms, Factorials, Recursive binary search, Merge Sort
  7. Shellsort, Partitioning, Quicksort, Medium of three, Comparing sort algorithms with Big O notation
  8. Binary Trees, terminology, Find, Insert, Delete, Traversing, Inorder-Preorder-Postorder
  9. Hash Tables, Keys, Converting keys to numbers, hash functions, Collisions, Probing, Double hashing, Separate chaining
  10. When to use What, Choosing the right data structure to 'match' the data/application