csce350: Data Structures and Algorithms

Fall 2018 - University of South Carolina - Jason O'Kane

Past Present Future Undated Key Dates
2018-08-23
Homework 00
This assignment is a very quick summary (hopefully, a reminder) of the some math that we'll use later. It is recommended but not required.
[hw00.pdf]
2018-08-23
Lecture 01
Introduction to the course. What is an algorithm? Describing algorithms.
2018-08-27
2018-08-28
Lecture 02
Euclid's algorithm. How to describe algorithms. Algorithm design process.
2018-08-29
Add/Drop deadline
2018-08-30
Homework 01
1.1.4, 1.1.6a, 1.1.8, 1.2.3 (for each one, answer yes or no and explain), 1.2.4 (be sure that your algorithm works for all inputs)
2018-08-30
Lecture 03
Review of basic data structures. Steps for algorithm analysis. Sequential search.
2018-09-04
Lecture 04
Orders of growth. Big Theta.
2018-09-06
Homework 02
1.4.3, 1.4.10, 2.1.3, 2.1.6
2018-09-06
Lecture 05
More on Big Theta. Big O. Big Omega.
2018-09-11
Lecture 06
(no class due to hurricane)
2018-09-13
Lecture 07
(no class due to hurricane)
2018-09-18
Homework 03
Deadline extended due to hurricane.
[hw03.pdf]
2018-09-18
Lecture 08
Shortcuts for asymptotic analysis. Counting operations in non-recursive algorithms. Summations.
2018-09-19
Project 1
Deadline extended due to hurricane.
[project1.pdf]
2018-09-20
Lecture 09
Counting operations in non-recursive algorithms. Summations. Counting operations in recursive algorithms. Recurrences.
2018-09-25
Lecture 10
Solving recurrences.
2018-09-27
Homework 04
2.3.4, 2.3.5, 2.3.6, 2.4.3a
2018-09-27
Lecture 11
Preview of Test 1. Brute force.
2018-10-02
Test 1
Covering material from Lectures 1-11.
2018-10-04
Lecture 13
Project time. In lieu of the usual lecture today, please use the class time to read the details for Project 2, to ask any questions you may have about that project via email, and to begin work on it.
2018-10-09
Lecture 14
Brute force string matching. Knapsack problem.
2018-10-11
Lecture 15
(no class due to hurricane)
2018-10-16
Homework 05
(No change to due date.)
[hw05.pdf]
2018-10-16
Lecture 16
Debrief Test 1. Decrease and conquer. Fast integer powers. Insertion sort.
2018-10-18
Last day to drop without WF
(extended)
2018-10-18
Fall Break
(no class)
2018-10-23
Lecture 17
Binary search. Partitioning. Quickselect.
2018-10-25
Lecture 18
More on Quickselect. Divide and conquer. Mergesort. Quicksort.
2018-10-30
Homework 06
2018-10-30
Lecture 19
More on Quicksort. Preview of Project 3. Karatsuba multiplication.
2018-11-01
Homework 07
2018-11-01
Lecture 20
Preview of Test 2. More on Karatsuba multiplication.
2018-11-06
Election Day (no class)
(no class)
2018-11-08
Test 2
Covering material from Lectures 13-20.
2018-11-13
Project 3
2018-11-13
Lecture 22
Discussion of Project 3. Dynamic programming.
2018-11-15
Lecture 23
More on dynamic programming. Knapsack problem via dynamic programming.
2018-11-20
Homework 08
2018-11-20
Lecture 24
Debrief Test 2. Transform and conquer.
2018-11-22
Thanksgiving Break
(no class)
2018-11-27
Homework 09
2018-11-27
Lecture 25
More on transform and conquer. AVL trees.
2018-11-29
Homework 10
2018-11-29
Lecture 26
2-3 trees.
2018-12-04
Lecture 27
Greedy algorithms.
2018-12-06
Project 4
2018-12-06
Lecture 28
More on greedy algorithms. Final exam preview.
2018-12-13
Final exam
9am-11:30am