Course Syllabus Computer Science 182 and 182L - Data Structures and Program Design
Insert Semester WARNING: This is a 50/50 Hybrid course 50% in-person, 50% online

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.

Insert WhenWhere

Attendance for the classroom portion is mandatory. Students with excessive absences may be dropped according to the rules of the Santa Clarita Community College District.

Completing online work on time is mandatory. Students with excessive missed assignments may be dropped according to the rules of the Santa Clarita Community College District.

Please check CMP SCI 182 on Canvas each week for:

Insert Instructor

Required Text: Insert Book Info

Lecture Grading Lab Grading
Exam 1 10% 20 points

Midterm 20% 40 points

Exam 3 10% 20 points

Final 30% 60 points

Online Coursework 20% 40 points

Class Participation 10% 20 points

200 points total

11 Online programming projects, 60 points 30%

4 In-person programming tests, 80 points 40%

Online Coursework, 40 points 20%

Class Participation 20 points 10%

200 points total

Needed Point Totals (out of 200): A - 175 points, B - 155 points, C - 130 points, D - 110 points

Makeup exams will not be allowed.

Important Dates (Please be sure to avoid scheduling conflicts with these dates):

Insert Exam 1
Insert Midterm
Insert Exam 3
Insert Final
Insert Program 1
Insert Program 2
Insert Program 3
Insert Program 4

Please be sure to avoid scheduling conflicts with these dates.

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. See Back/Below for Lab Info

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, Classes and Objects
  2. Arrays, Searching, Insertion, Deletion, Logarithms, Big O Notation, Measuring algorithms
  3. Simple Linked List, Double-ended Linked List, Doubly Linked List
  4. Stacks, Push-Pop-Peek, Array and List implementations
  5. Queues, Insert-Remove, Priority queues, Array and List implementations
  6. Recursion, Divide and Conquer algorithms, Factorials, Fibonocci, Recursive binary search, Towers of Hanoi
  7. Advanced OOP, Abstracts and Interfaces, Big O notation, Algorithm Efficiency
  8. Sorting, Bubble sort, Selection Sort, Insertion Sort, Comparing sort algorithms with Big O notation
  9. Advanced Sorting, 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