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 1: Course Notes

Sample code: ratclient.cpp – Client code
                       rational.h – Class definition
                       rational.cpp – Class Implemtation

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

 

Carrano Chapter 9 Notes

Carrano Chapter 10 Notes

Carrano Chapter 11 Notes

Carrano Chapter 12 Notes

 

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

Written Assignment 1: Due October 22

Program2 : Due Thursday October 31

Written Assignment 2: Due November 12

Program3 : Due Tuesday, November 19

Written Assignment 3: Due November 26

Program4 : Due Sunday, December 8

 

 


 

Return to Dr. Annexstein's homepage

 

 

Free JavaScripts provided
by The JavaScript Source