ECE218 R Data Structures Spring 2020
Tue, Thur, 2:00-3:15 in LC 130

Examinations:

Assignments:

All to be emailed to grader218 @ rabbit.eng.miami.edu
Always include transcript/screenshot of a successful run.
    1   Due: Sat 1 Feb.
       The RPN calculator.
2Due: Sat 22 Feb.
Shaker-Sort.
3Due: Sat 4 Apr (extended)
Super-Calculator.
4Due: Tues 21 Apr
Linked list database.
Here is the database in downloadable form.
5Due: Sat 2 May
Binary tree database.

Class History

Class 1  ‑ Tue 14‑1‑2020   Quick introductions.
Showing how unsafe C++ arrays can be,
Defining a very basic object that implements a safe array.
Class 2  ‑ Thur 16‑1‑2020 An example using protected: the tomorrow calculator.
And the excessive value monitor.
Class 3  ‑ Tue 21‑1‑2020 Reading all the words form a file into an array: The unsafe version that crashes after a while,
The safe version that requires me to guess at the size,
The best version,
Class 4  ‑ Thur 23‑1‑2020 Reverse Polish Notation (RPN).
A vector based evaluator for RPN expressions.
Class 5  ‑ Tue 28‑1‑2020 Vector Operations.
Creating our own vector just like in the library, using a template
(except no constructor or destructor yet).
Class 6  ‑ Thur 30‑1‑2020 Constructors and Destructors,
Memory leaks,
Our finished implementation of vector.
Class 7  ‑ Tue 4‑2‑2020 The special timing function.
A self-testing sorting program
Class 8  ‑ Thur 6‑2‑2020 Tuesday's sort method was Selection Sort.
Character encoding and making random strings,
Insertion sort, also self testing,
Selection sort and Insertion sort are both O(N2).
Class 9  ‑ Tue 11‑2‑2020 String operations take longer than int operations,
Comparing selection sort and insertion sort fairly, with a templated function.
Bubble sort and Shaker sort.
Class 10  ‑ Thur 13‑2‑2020 Thoughts on the BigInt class implementation and operations.
The consequences of dividing an array in two and sorting the two halves individually.
Class 11  ‑ Tue 18‑2‑2020 Quicksort, the whole procedure;
A first partitioning method.
Class 12  ‑ Thur 20‑2‑2020 Our first partition method animated,
The entire quicksort algorithm animated.
When is the mid-term? Tuesday 3rd March
The first appearance of Quicksort: paper, algorithm part 1, part 2. The test system.
Class 13  ‑ Tue 25‑2‑2020 The third quicksort partition method.
The beginning of a small database,
and its final form.
Class 14  ‑ Thur 27‑2‑2020 Review day.
Class 15  ‑ Tue 3‑3‑2020 Test Day.
A sample test, and its solution,
and another mini-test, with its solution.
Another sample, and its solution.
Another sample, (remember that some of these samples cover test 2 material).
Class 16  ‑ Thur 5‑3‑2020 Introducing Polymorphism, step 1, 2a, 2b, 3a, 3b, Final version.
Break
Class 17  ‑ Tue 17‑3‑2020 (closed)
Class 18  ‑ Thur 19‑3‑2020 (closed)
Class 19  ‑ Tue 24‑3‑2020 At the supermarket: discovering the linked list.
(recorded class)
Class 20  ‑ Thur 26‑3‑2020 (recorded class)
Class 21  ‑ Tue 31‑3‑2020 Linked lists that remember where their own ends are.
(recorded class)
Class 22  ‑ Thur 2‑4‑2020 Doubly-linked linked lists.
Scribblings from class
(recorded class)
Class 23  ‑ Tue 7‑4‑2020 Splitting a linked list into two equal halves,
(recorded class)
Class 24  ‑ Thur 9‑4‑2020 Merging two sorted linked list, and
Discovering merge-sort.
Recording of class
Class 25  ‑ Tue 14‑4‑2020 Notes from today
(recorded class)
Class 26  ‑ Thur 16‑4‑2020 Second Test.
A better sample test
Class 27  ‑ Tue 21‑4‑2020 Introducing binary trees.
(recorded class)
Class 28  ‑ Thur 23‑4‑2020 Binary Trees part two.
(recorded class)
Class 29  ‑ Tue 28‑4‑2020 Final Exam, part A
Class 30  ‑ Thur 30‑4‑2020 Review day Today's notes.
(recorded class)
Class 31  ‑ Tue 5‑5‑2020 Final Exam part B