CS 228: Data Structures
Meets: Tuesday, Thursday 2:00-3:15 in Baldwin 645
Instructor: Fred Annexstein
Office: 889 Rhodes (Office
Hours: Wed 1:30-2:30, Thurs 1:00-2:00)
Phone: 556-1807
Email: fred.annexstein@uc.edu
Web: www.ececs.uc.edu/~annexste
Course Information
Final Exam
Practice Exam
Midterm Exam: Thursday October 31 in Class
Practice
Exam
Course
Syllabus
Teaching Assistant
The TA for the coursse is Wei Wu (wuwi@email.uc.edu)
Office: 811F Rhodes
Hall.
Office hours are Mon
2:00-3:00, Fri 10:30-12:30.
Resources
Week 2:
Course Notes
Copy Constructor, Destructor
Assignment Operator Overloading
Week 3:
Course Notes -
Makefiles
Queues:
Linked List and Circular Array Implementations
Week
4: Course Notes -
Intro
to Algorithms
Best-case B(n), Worst-case W(n) and Avg case A(n) computing times
Searching algorithms: Sequential Search, Binary Search
Computing Powers
Empirical Testing and Sampletime Class
Week
5: Course Notes
Insertion Sort, Selection Sort
Mergesort
Quicksort
Recurrence Relations
Sample code: tryit.cc – Code for testing the sampletime analysis code.
sampletime.h – Class definition and
implementation
Week 6:
Course Notes
Array Implementation of a
complete binary tree
Pointer-based Implementation of a
binary tree
Traversal of Trees: Preorder, Inorder, Postorder
Pointer-based Implementation of
important functions
Week 7:
Course Notes
ADT
Binary Search Trees
Definition and Implementation of a
BST
TreeSort,
Storing Trees in a File, General Trees
Week 8:
Course Notes
Table ADT, Priority Queues
Heaps, Heapsort
Hashing
Unix
unix.html--- A brief
introduction to basic unix commands.
Homework Assignments
Students will have regular programming assignments. The official C++
compiler for this class is GNU's g++. For the TA's convenience,
the official computer is oz.uc.edu. All programs must compile on oz's g++
compiler; programs that do not compile on that compiler will immediately lose
50% of their credit. However, if you develop your program on another UNIX or
LINUX or CYGWIN system using a recent version of g++ and then upload it to oz,
conversion problems should be nonexistent -- will be minimal at worst,
and the TA and I will be willing to help if any flukes arise. (But if you
develop your program on MicroSoft Visual C++ and
expect it to run on g++, you should
expect no special help to port it.)
If you don't yet have an oz account, you can register for one over the web at http://oz.uc.edu/apply.html.
On the OZ machine there
will be a special directory for our class. For example, if Joe User (username userj) is in the class, the course directory would be named
20ECES228001 in Joe’s home directory, ~userj.
When Joe wants to submit homework, he could first change to the course directory.
% cd
20ECES228001
And then copy the appropriate files.
% cp ../homework1.cpp ./
Your homeworks should include an appropriate makefile (prog1.make, for example) which the grader can use
to compile your code. See the lecture notes from Week 3 for more on Makefiles.
Program1
: Parts 1 and 2 - Due Wednesday October 9
Parts 3 and 4 – Due
Wednesday October 16
Program2
: Due Thursday October 31
Program3
: Due Tuesday, November 19
Program4
: Due Sunday, December 8
Return
to Dr. Annexstein's homepage
Free JavaScripts
provided
by The
JavaScript Source