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. Program design, Big O notation and algorithms: searching and sorting. Advanced data structures: stacks, queues, link lists, binary trees and hash tables.

Please check the cs182 web page each week for:

Required Text:

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

Online Homework 20% 40 points

Participation 10% 20 points
Needed Point Totals: A 175 points, B 150 points, C 120 points, D 100 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.
See Back/Below for Lab Info
CS182 Lab Grading 6 Programming projects, 15 points each, 90 points total
Online Coursework, 90 points total

Class Participation 20 points

Needed Point Totals: A 175 points, B 150 points, C 120 points, D 100 points
 

Please check the CS 182 Web Page each week for:

Student Learning Outcomes:
Evaluate and compare computer data structures, and analyze each data structure's impact on algorithms, program design and program performance.


Course Outline

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