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.
Required Text: Data Structures and Algorithms in Java, 2nd Edition,
LaFore
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
– 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.
Please check the CS 182 Web Page
each week for:
-
Weekly Lecture Topics
-
Weekly Reading Assignments
-
Project Assignments
-
Project Deadlines
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
– 120 points, D – 100 points
Please check the CS 182 Web Page
each week for:
-
Project Assignments
-
Project Deadlines
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
-
Intro to Data Structures, Design decisions - Choosing the right structure
for the job, Algorithms
-
Arrays, Searching, Insertion, Deletion, Logarithms, Big O Notation, Measuring
algorithms
-
Simple Sorting, Bubble sort, Selection Sort, Insertion Sort, Comparing
sort speeds
-
Stacks, Push-Pop-Peek, Queues, Insert-Remove, Priority queues, Array implementations
-
Simple Linked List, Double-ended Linked List, Doubly Linked List, Iterators,
Abstract data types
-
Recursion, Divide and Conquer algorithms, Factorials, Recursive binary
search, Merge Sort
-
Shellsort, Partitioning, Quicksort, Medium of three, Comparing sort algorithms
with Big O notation
-
Binary Trees, terminology, Find, Insert, Delete, Traversing, Inorder-Preorder-Postorder
-
Hash Tables, Keys, Converting keys to numbers, hash functions, Collisions,
Probing, Double hashing, Separate chaining
-
When to use What, Choosing the right data structure to 'match' the data/application